Next: , Previous: ESSLLI04_idlpdspa, Up: Grammars


5.23 ESSLLI04_idlpdspaPW

This grammar is the same as ESSLLI04_idlpdspa except that it only uses PW principles.

usedim id
usedim lp
usedim ds
usedim pa
usedim lpid
usedim idds
usedim dsid
usedim pads
usedim lex
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define dimension id
defdim id {
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% define types
  deftype "id.agr" {nom acc}
  deftype "id.attrs" {agr: "id.agr"}
  deftype "id.entry" {in: set(tuple("id.label" {"!" "?" "+" "*"}))
                      out: set(tuple("id.label" {"!" "?" "+" "*"}))
                      agrs: set("id.agr")
                      agree: set("id.label")
                      govern1: set(tuple("id.label" "id.agr"))}
  deftype "id.label" {det subj obj vbse vprt vinf part root}
  defattrstype "id.attrs"
  defentrytype "id.entry"
  deflabeltype "id.label"
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% use principles
  useprinciple "principle.graphPW" { dims {D: id} }
  useprinciple "principle.treePW" { dims {D: id} }
  useprinciple "principle.valencyPW" { dims {D: id} }
  useprinciple "principle.agrPW" { dims {D: id} }
  useprinciple "principle.agreementPW" { dims {D: id} }
  useprinciple "principle.government1PW" { dims {D: id} }
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% use and choose outputs
  output "output.latex"
  output "output.latex1"
  output "output.pretty"
}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define dimension lp
defdim lp {
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% define types
  deftype "lp.entry" {in: set(tuple("lp.label" {"!" "?" "+" "*"}))
                      out: set(tuple("lp.label" {"!" "?" "+" "*"}))
                      order: set(tuple("lp.label" "lp.label"))}
  deftype "lp.label" {df mf vcf pf vxf root "^"}
  defentrytype "lp.entry"
  deflabeltype "lp.label"
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% use principles
  useprinciple "principle.graphPW" { dims {D: lp} }
  useprinciple "principle.treePW" { dims {D: lp} }
  useprinciple "principle.valencyPW" { dims {D: lp} }
  useprinciple "principle.orderPW" { dims {D: lp} }
  useprinciple "principle.projectivityPW" { dims {D: lp} }
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% use and choose outputs
  output "output.latex"
  output "output.latex1"
  output "output.pretty"
}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define dimension lpid
defdim lpid {
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% define types
  defentrytype {blocks: set("id.label")}
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% use principles
  useprinciple "principle.climbingPW" {
    dims {D1: lp
          D2: id}}
  useprinciple "principle.barriersPW" {
    dims {D1: lp
          D2: id
          D3: lpid}}
}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define dimension ds
defdim ds {
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% define types
  deftype "ds.entry" {in: set(tuple("ds.label" {"!" "?" "+" "*"}))
                      out: set(tuple("ds.label" {"!" "?" "+" "*"}))}
  deftype "ds.label" {detd subjd objd vcd partd root}
  defentrytype "ds.entry"
  deflabeltype "ds.label"
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% use principles
  useprinciple "principle.graphPW" { dims {D: ds} }
  useprinciple "principle.dagPW" { dims {D: ds} }
  useprinciple "principle.valencyPW" { dims {D: ds} }
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% use and choose outputs
  output "output.latex"
  output "output.latex1"
  output "output.pretty"
}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define dimension idds
defdim idds {
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% define types
  defentrytype {linkEnd: set(tuple("id.label" "ds.label"))}
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% use principles
  useprinciple "principle.climbingPW" {
    dims {D1: id
          D2: ds}}
  useprinciple "principle.linkingEndPW" {
    dims {D1: id
          D2: ds
          D3: idds}}
}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define dimension dsid
defdim dsid {
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% define types
  defentrytype {linkEnd: set(tuple("ds.label" "id.label"))}
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% use principles
  useprinciple "principle.linkingEndPW" {
    dims {D1: ds
          D2: id
          D3: dsid}}
}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define dimension pa
defdim pa {
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% define types
  deftype "pa.entry" {in: set(tuple("pa.label" {"!" "?" "+" "*"}))
                      out: set(tuple("pa.label" {"!" "?" "+" "*"}))}
  deftype "pa.label" {arg1 arg2 arge del root}
  defentrytype "pa.entry"
  deflabeltype "pa.label"
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% use principles
  useprinciple "principle.graphPW" { dims {D: pa} }
  useprinciple "principle.dagPW" { dims {D: pa} }
  useprinciple "principle.valencyPW" { dims {D: pa} }
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% use and choose outputs
  output "output.latex"
  output "output.latex1"
  output "output.pretty"
}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define dimension pads
defdim pads {
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% define types
  defentrytype {linkBelowStart: set(tuple("pa.label" "ds.label"))
                linkBelowEnd: set(tuple("pa.label" "ds.label"))}
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% use principles
  useprinciple "principle.linkingBelowStartPW" {
    dims {D1: pa
          D2: ds
          D3: pads}}
  useprinciple "principle.linkingBelowEndPW" {
    dims {D1: pa
          D2: ds
          D3: pads}}
}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define dimension lex
defdim lex {
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% define types
  defentrytype {word: string}
  %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% use and choose outputs
  output "output.dags"
  output "output.dags1"
  %%
  useoutput "output.dags1"
}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 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!}
          govern1: {[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?}}}

%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% lp

defclass "root_lp" {
  dim lp {in: {}
          out: {root!}
          order: <root "^">}}

defclass "det_lp" {
  dim lp {in: {df? root?}}}

defclass "cnoun_lp" {
  dim lp {in: {mf? root?}
          out: {df!}
          order: <df "^">}
  dim lpid {blocks: {det}}}

defclass "pname_lp" {
  dim lp {in: {mf? root?}}}

defclass "fin_lp" {
  dim lp {in: {root?}
          out: {mf* vcf? vxf?}
          order: <mf vcf "^" vxf>}
  dim lpid {blocks: {subj obj vbse vprt vinf part}}}

defclass "part_lp" {
  dim lp {in: {pf? root?}}}

defclass "vinf_lp" {
  dim lp {out: {pf!}}}

%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% ds
defclass "root_ds" {
  dim ds {in: {}
          out: {root!}}}

defclass "det_ds" {
  dim ds {in: {detd? root?}}}

defclass "cnoun_ds" {
  dim ds {in: {subjd* objd? root?}
          out: {detd!}}}

defclass "pname_ds" {
  dim ds {in: {subjd* objd? root?}}}

defclass "fin_ds" {
  dim ds {in: {root?}}
  dim dsid {linkEnd: {[subjd subj]}}}

defclass "part_ds" {
  dim ds {in: {partd?}}}

defclass "vbse_ds" {
  dim ds {in: {vcd?}}}

defclass "vinf_ds" {
  dim ds {in: {vcd?}
          out: {partd!}}}

defclass "vprt_ds" {
  dim ds {in: {vcd?}}}

defclass "ersatz_ds" {
  dim ds {in: {vcd?}}}

%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% pa
defclass "root_pa" {
  dim pa {in: {}
          out: {root* del*}}}

defclass "det_pa" {
  dim pa {in: {arg1* arg2*}}}

defclass "cnoun_pa" {
  dim pa {in: {root!}
          out: {arg1!}}
  dim pads {linkBelowEnd: {[arg1 detd]}}}

defclass "pname_pa" {
  dim pa {in: {root! arg1* arg2*}}}

defclass "part_pa" {
  dim pa {in: {del!}}}

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

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

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

defclass "pname" Word {
  "pname_id"
  "pname_lp"
  "pname_ds"
  "pname_pa"
  dim lex {word: Word}}

defclass "part" Word {
  "part_id"
  "part_lp"
  "part_ds"
  "part_pa"
  dim lex {word: Word}}

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

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

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

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

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

defclass "mainverb" Word1 Word2 Word3 {
    "fin" {Word: Word1}
  | ("vbse" {Word: Word2} & "can")
  | ("vprt" {Word: Word3} & "can")
  | ("vinf" {Word: Word2} & ("can" | "noncan"))}

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

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

%% offer the surface subject as a deep subject
defclass "subjsubj" {
  dim idds {linkEnd: {[subj subjd]}}}

%% offer the surface object as a deep subject
defclass "objsubj" {
  dim idds {linkEnd: {[obj subjd]}}}

%% require a deep object realized by a surface object
defclass "objdobj" {
  dim ds {out: {objd!}}
  dim dsid {linkEnd: {[objd obj]}}}

%% require arg1 realized by a deep subject
defclass "arg1subjd" {
  dim pa {out: {arg1!}}
  dim pads {linkBelowStart: {[arg1 subjd]}
            linkBelowEnd: {[arg1 subjd] [arg1 detd]}}}

%% require arg2 realized by a deep object
defclass "arg2objd" {
  dim pa {out: {arg2!}}
  dim pads {linkBelowStart: {[arg2 objd]}
            linkBelowEnd: {[arg2 objd] [arg2 detd]}}}

%% require a deep subject
defclass "subjdc" {
  dim ds {out: {subjd!}}}

%% require a deep object realized by a surface object
defclass "objdc" {
  "objc"
  "objdobj"}

%% require arg1 realized by a deep subject
defclass "arg1" {
  "subjdc"
  "arg1subjd"}

%% require arg2 realized by a deep object, realized by a surface
%% object
defclass "arg2" {
  "objdc"
  "arg2objd"}

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

%% require a deep verbal complement realized by an infinite verb with
%% id label Label
defclass "vcdLabel" Label {
  "Labelc" {Label: Label}
  dim ds {out: {vcd!}}
  dim dsid {linkEnd: {[vcd Label]}}}

%% require arge realized by the deep verbal complement, realized by the
%% infinite verb with id label Label
defclass "arge" Label {
  "vcdLabel" {Label: Label}
  dim pa {out: {arge!}}
  dim pads {linkBelowEnd: {[arge vcd]}}}

%% verbs in canonical position
defclass "can" {
  dim lp {in: {vcf? root?}
          out: {vcf?}
          order: <vcf pf "^">}}

%% verbs in non-canonical position
defclass "noncan" {
  dim lp {in: {vxf? root?}
          out: {mf* vcf? vxf?}
          order: <mf vcf pf "^" vxf>}}

%% words with semantic content
defclass "cont" {
  dim pa {in: {root!|arge!}}}

%% words without semantic content
defclass "nocont" {
  dim pa {in: {del!}}}

%% intransitive verbs
defclass "intransitive" {
  "cont"
  "arg1"}

%% transitive verbs
defclass "transitive" {
  "cont"
  "arg1"
  "arg2"}

%% subject-to-subject raising
defclass "subjraising" {
  "cont"
  "arge" {Label: vinf}
  "subjsubj"}

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

%% subject-to-object control
defclass "objcontrol" {
  "cont"
  "arge" {Label: vinf}
  "objsubj"
  "arg1"
  "arg2"}

%% auxiliaries
defclass "aux" Label {
  "vcdLabel" {Label: Label}
  "subjsubj"}

%% 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"
  "noncan"}

% Modals
defentry {
  "vbse" {Word: "koennen"}
  "auxbse"
  "can"}
defentry {
  "ersatz" {Word: "koennen"}
  "auxbse"
  "noncan"}

% 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"}}