Next: FG_TAGDC, Previous: ESSLLI04_idlpdspasc, Up: Grammars
This grammar is the same as ESSLLI04_idlpdspasc except that it only uses PW principles.
usedim id
usedim lp
usedim ds
usedim pa
usedim sc
usedim lpid
usedim idds
usedim dsid
usedim pads
usedim pasc
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 sc
defdim sc {
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define types
deftype "sc.entry" {in: set(tuple("sc.label" {"!" "?" "+" "*"}))
out: set(tuple("sc.label" {"!" "?" "+" "*"}))}
deftype "sc.label" {r s a del root}
defentrytype "sc.entry"
deflabeltype "sc.label"
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% use principles
useprinciple "principle.graphPW" { dims {D: sc} }
useprinciple "principle.treePW" { dims {D: sc} }
useprinciple "principle.valencyPW" { dims {D: sc} }
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% use and choose outputs
output "output.latex"
output "output.latex1"
output "output.pretty"
}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define dimension pasc
defdim pasc {
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define types
defentrytype {linkBelowStart: set(tuple("pa.label" "sc.label"))
linkAboveEnd: set(tuple("pa.label" "sc.label"))}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% use principles
useprinciple "principle.linkingBelowStartPW" {
dims {D1: pa
D2: sc
D3: pasc}}
useprinciple "principle.linkingAboveEndPW" {
dims {D1: pa
D2: sc
D3: pasc}}
}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 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!}}}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% sc
defclass "root_sc" {
dim sc {in: {}
out: {root* del*}}}
defclass "det_sc" {
dim sc {in: {r? s? root?}
out: {r! s!}}}
defclass "cnoun_sc" {
dim sc {in: {r? s? root?}}}
defclass "pname_sc" {
dim sc {in: {r? s? root?}
out: {s!}}}
defclass "part_sc" {
dim sc {in: {del!}}}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% altogether
defclass "root" Word {
"root_id"
"root_lp"
"root_ds"
"root_pa"
"root_sc"
dim lex {word: Word}}
defclass "det" Word Agrs {
"det_id"
"det_lp"
"det_ds"
"det_pa"
"det_sc"
dim id {agrs: Agrs}
dim lex {word: Word}}
defclass "cnoun" Word Agrs {
"cnoun_id"
"cnoun_lp"
"cnoun_ds"
"cnoun_pa"
"cnoun_sc"
dim id {agrs: Agrs}
dim lex {word: Word}}
defclass "pname" Word {
"pname_id"
"pname_lp"
"pname_ds"
"pname_pa"
"pname_sc"
dim lex {word: Word}}
defclass "part" Word {
"part_id"
"part_lp"
"part_ds"
"part_pa"
"part_sc"
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]}}
dim pasc {linkAboveEnd: {[arg1 s]}}}
%% require arg2 realized by a deep object
defclass "arg2objd" {
dim pa {out: {arg2!}}
dim pads {linkBelowStart: {[arg2 objd]}
linkBelowEnd: {[arg2 objd] [arg2 detd]}}
dim pasc {linkAboveEnd: {[arg2 s]}}}
%% 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 sc {out: {a!}}
dim pads {linkBelowEnd: {[arge vcd]}}
dim pasc {linkBelowStart: {[arge a]}}}
%% 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!}}
dim sc {in: {r? s? a? root?}}}
%% words without semantic content
defclass "nocont" {
dim pa {in: {del!}}
dim sc {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"}}