Next: , Previous: TAG1, Up: Grammars


5.37 adjunction

This grammar showcases the old Tree Adjoining Grammar (TAG) encoding developed by Marco Kuhlmann, and was also written by him.

%%
%% Sample grammar for TAG adjunction
%% Marco Kuhlmann <kuhlmann@ps.uni-sb.de>
%%

%% This grammar encodes TAG-like trees into lexical entries in
%% XDG.  Note that I say TAG-like, because the trees that you
%% get when you decode these lexical entries are probably not
%% the trees that you would usually draw when modelling problems
%% like the ones in this sample grammar in TAG.

usedim ds
usedim lex

defdim ds {
  defentrytype "ds.entry"
  deflabeltype "ds.label"
  deftype "ds.label" {s1 s11 s11b s121 s122 s13 a12l a12r}
  deftype "ds.entry" {
    in    : iset("ds.label")
    on    : iset("ds.label")
    out   : valency("ds.label")
    cut   : vec("ds.label" set("ds.label"))
    paste : set("ds.label")
  }
  useprinciple "principle.graph" {
    dims {D: ds}}
  useprinciple "principle.tree" {
    dims {D: ds}}
  useprinciple "principle.in" {
    dims {D: ds}}
  useprinciple "principle.out" {
    dims {D: ds}}
  useprinciple "principle.orderWithCuts" {
    dims {D: ds}
    args {Order: [s1 s11 s11b a12l s121 s122 a12r s13]}}
  output "output.dag"
  output "output.pretty"
  useoutput "output.dag"
  useoutput "output.pretty"
}

defdim lex {
  defentrytype {word: string}
}

%% alpha with head in A

defentry {
  dim ds {
    in    : {s1 s11 s121 s122 s13}
    on    : {s11}
    out   : {s121 s13 a12l? a12r?}
    cut   : {a12l: {s121} a12r: {s121}}
  }
  dim lex {
    word  : "alpha_A"
  }
}

%% alpha with head in C

defentry {
  dim ds {
    in    : {s1 s11 s121 s122 s13}
    on    : {s121}
    out   : {s11 s13 a12l? a12r?}
    cut   : {a12l: {s121} a12r: {s121}}
  }
  dim lex {
    word  : "alpha_C"
  }
}

%% alpha with head in E

defentry {
  dim ds {
    in    : {s1 s11 s121 s122 s13}
    on    : {s13}
    out   : {s11 s121 a12l? a12r?}
    cut   : {a12l: {s121} a12r: {s121}}
  }
  dim lex {
    word  : "alpha_E"
  }
}

%% beta with head in B

defentry {
  dim ds {
    in    : {a12l}
    on    : {s11}
    out   : {s122 a12l? a12r?}
    cut   : {a12l: {s121 s122} a12r: {s121 s122}}
    paste : {s121}
  }
  dim lex {
    word  : "beta_B"
  }
}

defentry {
  dim ds {
    in    : {a12r}
    on    : {s13}
    out   : {s121 a12l? a12r?}
    cut   : {a12l: {s121 s122} a12r: {s121 s122}}
    paste : {s122}
  }
  dim lex {
    word  : "beta_D"
  }
}

%% dummy entry for substitution sites

defentry {
  dim ds {
    in    : {s1 s11 s121 s122 s13}
    on    : {s1}
  }
  dim lex {
    word  : "x"
  }
}

%% --------------------------------------------------------------
%% Hippo sentences
%% --------------------------------------------------------------

defentry {
  dim ds {
    in    : {s1 s11 s11b s121 s122 s13}
    on    : {s1}
  }
  dim lex {
    word  : "ik"
  }
}

defentry {
  dim ds {
    in    : {s1 s11 s11b s121 s122 s13}
    on    : {s1}
  }
  dim lex {
    word  : "Henk"
  }
}

defentry {
  dim ds {
    in    : {s1 s11 s11b s121 s122 s13}
    on    : {s1}
  }
  dim lex {
    word  : "Cecilia"
  }
}

defentry {
  dim ds {
    in    : {s1 s11 s121 s122 s13}
    on    : {s1}
  }
  dim lex {
    word  : "de"
  }
}

defentry {
  dim ds {
    in    : {s1 s11 s11b s121 s122 s13}
    on    : {s13}
    out   : {s11}
  }
  dim lex {
    word  : "nijlpaarden"
  }
}

defentry {
  dim ds {
    in    : {s1 s11 s11b s121 s122 s13}
    on    : {s122}
    out   : {s11 a12l? a12r?}
    cut   : {a12l: {s122} a12r: {s122}}
  }
  dim lex {
    word  : "zag"
  }
}

defentry {
  dim ds {
    in    : {a12l a12r}
    on    : {s122}
    out   : {s11 a12l? a12r?}
    paste : {s121}
    cut   : {a12l: {s121 s122} a12r: {s121 s122}}
  }
  dim lex {
    word  : "helpen"
  }
}

defentry {
  dim ds {
    in    : {a12l a12r}
    on    : {s122}
    out   : {s11 a12l? a12r?}
    paste : {s121}
    cut   : {a12l: {s121 s122} a12r: {s121 s122}}
  }
  dim lex {
    word  : "zwemmen"
  }
}

defentry {
  dim ds {
    in    : {a12l a12r}
    on    : {s122}
    out   : {s11 s11b a12l? a12r?}
    paste : {s121}
    cut   : {a12l: {s121 s122} a12r: {s121 s122}}
  }
  dim lex {
    word  : "voeren"
  }
}