Next: , Previous: EQABPW, Up: Grammars


5.16 ESSLLI04_id

This is the first part of the grammar developed in the ESSLLI 2004 course, using only the ID graph dimension. It was written by Ralph Debusmann and Denys Duchier. The ESSLLI 2004 course slides can be found here: http://www.ps.uni-sb.de/~rade/talks.html.

usedim id
usedim lex
usedim multi
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define dimension id
defdim id {
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% define types
  deftype "id.agr" {nom acc}
  deftype "id.agrs" iset("id.agr")
  deftype "id.attrs" {agr: "id.agr"}
  deftype "id.entry" {in: valency("id.label")
                      out: valency("id.label")
                      agrs: "id.agrs"
                      agree: set("id.label")
                      govern: vec("id.label" "id.agrs")}
  deftype "id.label" {det subj obj vbse vprt vinf part root}
  defattrstype "id.attrs"
  defentrytype "id.entry"
  deflabeltype "id.label"
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% use principles
  useprinciple "principle.graph" {
    dims {D: id}}
  useprinciple "principle.tree" {
    dims {D: id}}
  useprinciple "principle.valency" {
    dims {D: id}
    args {In: _.D.entry.in
          Out: _.D.entry.out}}
  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.latex"
  output "output.latex1"
  output "output.pretty"
}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define dimension lex
defdim lex {
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% define types
  defentrytype {word: string}
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% use and choose outputs
  output "output.dags"
  output "output.dags1"
  %%
  useoutput "output.dags1"
}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define dimension multi
defdim multi {
}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define lexical classes

%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% general classes

%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% id
defclass "root_id" {
  dim id {in: {}
          out: {root!}}}

defclass "det_id" {
  dim id {in: {det? root?}}}

defclass "cnoun_id" {
  dim id {in: {subj? obj? root?}
          out: {det!}
          agree: {det}}}

defclass "pname_id" {
  dim id {in: {subj? obj? root?}}}

defclass "fin_id" {
  dim id {in: {root?}
          out: {subj!}
          govern: {subj: {nom}}}}

defclass "part_id" {
  dim id {in: {part? root?}}}

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

defclass "vinf_id" {
  dim id {in: {vinf? root?}
          out: {part!}}}

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

defclass "ersatz_id" {
  dim id {in: {vbse? vprt? root?}}}

%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% altogether
defclass "root" Word {
  "root_id"
  dim lex {word: Word}}

defclass "det" Word Agrs {
  "det_id"
  dim id {agrs: Agrs}
  dim lex {word: Word}}

defclass "cnoun" Word Agrs {
  "cnoun_id"
  dim id {agrs: Agrs}
  dim lex {word: Word}}

defclass "pname" Word {
  "pname_id"
  dim lex {word: Word}}

defclass "part" Word {
  "part_id"
  dim lex {word: Word}}

defclass "fin" Word {
  "fin_id"
  dim lex {word: Word}}

defclass "vbse" Word {
  "vbse_id"
  dim lex {word: Word}}

defclass "vinf" Word {
  "vinf_id"
  dim lex {word: Word}}

defclass "vprt" Word {
  "vprt_id"
  dim lex {word: Word}}

defclass "ersatz" Word {
  "ersatz_id"
  dim lex {word: Word}}

defclass "mainverb" Word1 Word2 Word3 {
    "fin" {Word: Word1}
  | "vbse" {Word: Word2}
  | "vprt" {Word: Word3}
  | "vinf" {Word: Word2}}

%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% special classes

%% requiring an object (in accusative case)
defclass "objc" {
  dim id {out: {obj!}
          govern: {obj: {acc}}}}

%% requiring an infinite verb with id label Label
defclass "Labelc" Label {
  dim id {out: {Label!}}}

%% intransitive verbs
defclass "intransitive" {}

%% transitive verbs
defclass "transitive" {
  "objc"}

%% subject-to-subject raising
defclass "subjraising" {
  "Labelc" {Label: vinf}}

%% subject-to-subject control
defclass "subjcontrol" {
  "subjraising"}

%% subject-to-object control
defclass "objcontrol" {
  "Labelc" {Label: vinf}
  "objc"}

%% auxiliaries
defclass "aux" Label {
  "Labelc" {Label: Label}}

%% auxiliaries (past participle)
defclass "auxprt" { "aux" {Label: vprt} }

%% auxiliaries (bare infinitive), also used for modals
defclass "auxbse" { "aux" {Label: vbse} }

%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define entries

% Roots
defentry {
  "root" {Word: "."}}

% Determiners
defentry {
  "det" {Agrs: {nom}
         Word: "ein"}}
defentry {
  "det" {Agrs: {acc}
         Word: "einen"}}
defentry {
  "det" {Agrs: {nom acc}
         Word: "eine"}}

% Common nouns
defentry {
  "cnoun" {Agrs: {nom acc}
           Word: "frau"}}

defentry {
  "cnoun" {Agrs: {nom acc}
           Word: "mann"}}

defentry {
  "cnoun" {Agrs: {nom acc}
           Word: "roman"}}

% Proper names
defentry {
  "pname" {Word: "maria"}}

defentry {
  "pname" {Word: "peter"}}

defentry {
  "pname" {Word: "hans"}}

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

% Auxiliaries
defentry {
  "fin" {Word: "wird"}
  "auxbse"}

defentry {
  "fin" {Word: "hat"}
  "auxprt"}

defentry {
  "vbse" {Word: "haben"}
  "auxprt"}

% Modals
defentry {
  "vbse" {Word: "koennen"}
  "auxbse"}

defentry {
  "ersatz" {Word: "koennen"}
  "auxbse"}

% Main verbs
defentry {
  "intransitive"
  "mainverb" {Word1: "lacht"
              Word2: "lachen"
              Word3: "gelacht"}}

defentry {
  "transitive"
  "mainverb" {Word1: "liebt"
              Word2: "lieben"
              Word3: "geliebt"}}

defentry {
  "transitive"
  "mainverb" {Word1: "schreibt"
              Word2: "schreiben"
              Word3: "geschrieben"}}

defentry {
  "subjraising"
  "mainverb" {Word1: "scheint"
              Word2: "scheinen"
              Word3: "geschienen"}}

defentry {
  "subjcontrol"
  "mainverb" {Word1: "versucht"
              Word2: "versuchen"
              Word3: "versucht"}}

defentry {
  "subjcontrol"
  "mainverb" {Word1: "verspricht"
              Word2: "versprechen"
              Word3: "versprochen"}}

defentry {
  "objcontrol"
  "mainverb" {Word1: "ueberredet"
              Word2: "ueberreden"
              Word3: "ueberredet"}}