Next: , Previous: ANBNPW, Up: Grammars


5.5 Acl01

This grammar covers German subordinate clauses and word order variation therein. It uses the two TDG graph dimensions ID and LP, and was written by Denys Duchier and Ralph Debusmann, for their ACL 2001 paper Topological Dependency Trees: A Constraint-Based Account of Linear Precedence (References), and is described therein.

usedim id
usedim lp
usedim idlp
usedim lex
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define dimension id
defdim id {
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% define types
  deftype "id.label" {det subj obj vbse vprt vinf prt}
  deftype "id.person" {first second third}
  deftype "id.number" {sg pl}
  deftype "id.gender" {masc fem neut}
  deftype "id.case" {nom gen dat acc}
  deftype "id.def" {def indef undef}
  deftype "id.agr" tuple("id.person" "id.number" "id.gender" "id.case" "id.def")
  deftype "id.agrs" iset("id.agr")

  deflabeltype "id.label"
  defattrstype {agr: "id.agr"}
  defentrytype {in: valency("id.label")
                out: valency("id.label")
                agrs: "id.agrs"
                agree: set("id.label")
                govern: vec("id.label" "id.agrs")}
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% use principles
  useprinciple "principle.graph" {
    dims {D: id}}
  useprinciple "principle.tree" {
    dims {D: id}}
  useprinciple "principle.valency" {
    dims {D: id}}
  useprinciple "principle.agr" {
    dims {D: id}
    args {Agr: _.D.attrs.agr
          Agrs: _.D.entry.agrs}}
  useprinciple "principle.agreement" {
    dims {D: id}
    args {Agr1: ^.D.attrs.agr
          Agr2: _.D.attrs.agr
          Agree: ^.D.entry.agree}}
  useprinciple "principle.government" {
    dims {D: id}
    args {Agr2: _.D.attrs.agr
          Govern: ^.D.entry.govern}}
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% use and choose outputs
  output "output.dag"
  output "output.latex"
  output "output.decode"
  output "output.pretty"
  output "output.xml"
  output "output.xml1"
  output "output.xml2"
  output "output.xml3"
  output "output.xml4"
}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define dimension lp
defdim lp {
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% define types
  deftype "lp.label" {d df n mf vcf p pf v vxf}
  deflabeltype "lp.label"
  defentrytype {in: valency("lp.label")
                out: valency("lp.label")
                on: iset("lp.label")
}
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% use principles
  useprinciple "principle.graph" {
    dims {D: lp}}
  useprinciple "principle.tree" {
    dims {D: lp}}
  useprinciple "principle.valency" {
    dims {D: lp}}
  useprinciple "principle.order" {
    dims {D: lp}
    args {Order: [d df n mf vcf p pf v vxf]
          On: _.D.entry.on
          Yields: true}}
  useprinciple "principle.projectivity" {
    dims {D: lp}}
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% use and choose outputs
  output "output.dag"
  output "output.latex"
  output "output.decode"
  output "output.pretty"
}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define dimension idlp
defdim idlp {
  defentrytype {blocks: set("id.label")
                end: vec("lp.label" set("id.label"))}
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% use principles
  useprinciple "principle.climbing" {
    dims {D1: lp
          D2: id}}
  useprinciple "principle.barriers" {
    dims {D1: lp
          D2: id
          D3: idlp}
    args {Blocks: _.D3.entry.blocks}}
  useprinciple "principle.linkingEnd" {
    dims {D1: lp
          D2: id
          D3: idlp}
    args {End: ^.D3.entry.end}}
}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define dimension lex
defdim lex {
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% define types
  defentrytype {word: string}
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% use principles
  useprinciple "principle.entries" {}
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% use and choose outputs
  output "output.dags1"
  output "output.latexs1"
  useoutput "output.dags1"
}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define classes
defclass "det" Word Agrs {
  dim id {in: {det?}
          agrs: Agrs
          govern: {det: $ ()}}
  dim lp {in: {df?}
          on: {d}}
  dim lex {word: Word}}

defclass "cnoun" Word Agrs {
  dim id {in: {subj? obj?}
          out: {det?}
          agrs: Agrs
          agree: {det}}
  dim lp {in: {mf?}
          on: {n}
          out: {df?}}
  dim idlp {blocks: {det}
            end: {df: {det}}}
  dim lex {word: Word}}

defclass "pname" Word Agrs {
  dim id {in: {subj? obj?}
          agrs: Agrs}
  dim lp {in: {mf?}
          on: {n}}
  dim lex {word: Word}}

defclass "fin" Word Agrs {
  dim id {in: {}
          out: {subj}
          agrs: Agrs
          agree: {subj}
          govern: {subj: $ nom}}
  dim lp {in: {}
          out: {mf* vxf?}
          on: {v}}
  dim idlp {blocks: bot}
  dim lex {word: Word}}

defclass "can" Word {
  dim lp {in: {vcf?}
          on: {v}}
  dim lex {word: Word}}

defclass "noncan" Word {
  dim lp {in: {vxf?}
          on: {v}
          out: {mf* vxf?}}
  dim lex {word: Word}}

defclass "ersatz" {
  dim id {in: {vbse? vprt?}}}

defclass "vbse" {
  dim id {in: {vbse?}}}

defclass "vinf" {
  dim id {in: {vinf?}
          out: {prt}}
  dim lp {out: {pf}}}

defclass "vprt" {
  dim id {in: {vprt?}}}

defclass "tr" {
  dim id {out: {obj}
          govern: {obj: $ acc}}}

defclass "vbsec" {
  dim id {out: {vbse}}
  dim lp {out: {vcf?}}}

defclass "vprtc" {
  dim id {out: {vprt}}
  dim lp {out: {vcf?}}}

defclass "vinfc" {
  dim id {out: {vinf}}
  dim lp {out: {vcf?}}}

defclass "prt" Word {
  dim id {in: {prt?}}
  dim lp {in: {pf?}
          on: {p}}
  dim lex {word: Word}}

%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define entries
% Determiners
defentry {
  "det" {Agrs: ($ masc & nom & sg & indef) | ($ neut & (nom|acc) & sg & indef)
         Word: "ein"}}
defentry {
  "det" {Agrs: ($ masc & acc & sg & indef)
         Word: "einen"}}
defentry {
  "det" {Agrs: ($ (masc|neut) & dat & sg & indef)
         Word: "einem"}}
defentry {
  "det" {Agrs: ($ (masc|neut) & gen & sg & indef)
         Word: "eines"}}
defentry {
  "det" {Agrs: ($ fem & (nom|acc) & sg & indef)
         Word: "eine"}}
defentry {
  "det" {Agrs: ($ fem & (dat|gen) & sg & indef)
         Word: "einer"}}

defentry {
  "det" {Agrs: (($ masc & nom & sg & def) | ($ fem & (dat|gen) & sg & def) |
                ($ gen & pl & def))
         Word: "der"}}
defentry {
  "det" {Agrs: ($ masc & acc & sg & def) | ($ dat & pl & def)
         Word: "den"}}
defentry {
  "det" {Agrs: ($ (masc|neut) & dat & sg & def)
         Word: "dem"}}
defentry {
  "det" {Agrs: ($ (masc|neut) & gen & sg & def)
         Word: "des"}}
defentry {
  "det" {Agrs: ($ neut & (nom|acc) & sg & def)
         Word: "das"}}
defentry {
  "det" {Agrs: ($ fem & (nom|acc) & sg & def) | ($ (nom|acc) & pl & def)
         Word: "die"}}

% Common nouns
defentry {
  "cnoun" {Agrs: ($ fem & third & sg)
           Word: "frau"}}
defentry {
  "cnoun" {Agrs: ($ fem & third & pl)
           Word: "frauen"}}

defentry {
  "cnoun" {Agrs: ($ masc & third & sg & (nom|dat|acc))
           Word: "mann"}}
defentry {
  "cnoun" {Agrs: ($ masc & third & sg & dat)
           Word: "manne"}}
defentry {
  "cnoun" {Agrs: ($ masc & third & sg & gen)
           Word: "mannes"|"manns"}}
defentry {
  "cnoun" {Agrs: ($ masc & third & pl & (nom|gen|acc))
           Word: "maenner"}}
defentry {
  "cnoun" {Agrs: ($ masc & third & pl & dat)
           Word: "maennern"}}

% Proper names
defentry {
  "pname" {Agrs: ($ fem & sg & third & (nom|dat|acc))
           Word: "maria"}}
defentry {
  "pname" {Agrs: ($ fem & sg & third & gen)
           Word: "marias"}}

defentry {
  "pname" {Agrs: ($ masc & sg & third & (nom|dat|acc))
           Word: "peter"}}
defentry {
  "pname" {Agrs: ($ masc & sg & third & gen)
           Word: "peters"}}

defentry {
  "pname" {Agrs: ($ masc & sg & third)
           Word: "hans"}}

% Finite verbs
defentry {
  "fin" {Agrs: ($ third & sg & nom)
         Word: "wird"}
  "vbsec"}

defentry {
  "fin" {Agrs: ($ third & sg & nom)
         Word: "hat"}
  "vprtc"}

defentry {
  "fin" {Agrs: ($ third & sg & nom)
         Word: "versucht"}
  "vinfc"}

defentry {
  "fin" {Agrs: ($ third & sg & nom)
         Word: "liebt"}
  "tr"}

% Non-finite verbs
defentry {
  "can" {Word: "lieben"}
  "tr"
  "vbse"}
defentry {
  "can" {Word: "geliebt"}
  "tr"
  "vprt"}

defentry {
  "can" {Word: "koennen"}
  "vbsec"
  "vbse"}
defentry {
  "noncan" {Word: "koennen"}
  "vbsec"
  "ersatz"}

defentry {
  "noncan" {Word: "haben"}
  "vprtc"
  "vbse"}

defentry {
  "can" {Word: "lieben"}
  "tr"
  "vinf"}
defentry {
  "noncan" {Word: "lieben"}
  "tr"
  "vinf"}

% zu-particle
defentry {
  "prt" {Word: "zu"}}