Next: ESSLLI04_idlpPW, Previous: ESSLLI04_idPW, Up: Grammars
This is the second part of the grammar developed in the ESSLLI 2004 course, using the ID and LP graph dimensions. 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 lp
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 lp
defdim lp {
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define types
deftype "lp.entry" {in: valency("lp.label")
out: valency("lp.label")
on: iset("lp.label")}
deftype "lp.label" {d
p
df n
mf vcf pf v vxf
root r}
defentrytype "lp.entry"
deflabeltype "lp.label"
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% use principles
useprinciple "principle.graph" {
dims {D: lp}}
useprinciple "principle.tree" {
dims {D: lp}}
useprinciple "principle.valency" {
dims {D: lp}
args {In: _.D.entry.in
Out: _.D.entry.out}}
useprinciple "principle.order" {
dims {D: lp}
args {On: _.D.entry.on
Order: [d
p
df n
mf vcf pf v vxf
root r]
Yields: true}}
useprinciple "principle.projectivity" {
dims {D: lp}}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% use and choose outputs
output "output.latex"
output "output.latex1"
output "output.pretty"
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
defdim is {
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define types
deftype "is.entry" {in: valency("is.label")
out: valency("is.label")}
deftype "is.label" {topic focus del root}
defentrytype "is.entry"
deflabeltype "is.label"
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% use principles
useprinciple "principle.graph" {
dims {D: is}}
useprinciple "principle.tree" {
dims {D: is}}
useprinciple "principle.valency" {
dims {D: is}
args {In: _.D.entry.in
Out: _.D.entry.out}}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 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 types
defentrytype {blocks_lpid: set("id.label")}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% use principles
useprinciple "principle.climbing" {
dims {D1: lp
D2: id}
args {MotherCards: true}}
useprinciple "principle.barriers" {
dims {D1: lp
D2: id
D3: multi}
args {Blocks: _.D3.entry.blocks_lpid}}
}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 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?}}}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% lp
defclass "root_lp" {
dim lp {in: {}
out: {root!}
on: {r}}}
defclass "det_lp" {
dim lp {in: {df? root?}
on: {d}}}
defclass "cnoun_lp" {
dim lp {in: {mf? root?}
out: {df!}
on: {n}}
dim multi {blocks_lpid: {det}}}
defclass "pname_lp" {
dim lp {in: {mf? root?}
on: {n}}}
defclass "fin_lp" {
dim lp {in: {root?}
out: {mf* vcf? vxf?}
on: {v}}
dim multi {blocks_lpid: {subj obj vbse vprt vinf part}}}
defclass "part_lp" {
dim lp {in: {pf? root?}
on: {p}}}
defclass "vinf_lp" {
dim lp {out: {pf!}}}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% altogether
defclass "root" Word {
"root_id"
"root_lp"
dim lex {word: Word}}
defclass "det" Word Agrs {
"det_id"
"det_lp"
dim id {agrs: Agrs}
dim lex {word: Word}}
defclass "cnoun" Word Agrs {
"cnoun_id"
"cnoun_lp"
dim id {agrs: Agrs}
dim lex {word: Word}}
defclass "pname" Word {
"pname_id"
"pname_lp"
dim lex {word: Word}}
defclass "part" Word {
"part_id"
"part_lp"
dim lex {word: Word}}
defclass "fin" Word {
"fin_id"
"fin_lp"
dim lex {word: Word}}
defclass "vbse" Word {
"vbse_id"
dim lex {word: Word}}
defclass "vinf" Word {
"vinf_id"
"vinf_lp"
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} & "can")
| ("vprt" {Word: Word3} & "can")
| ("vinf" {Word: Word2} & ("can" | "noncan"))}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 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!}}}
%% verbs in canonical position
defclass "can" {
dim lp {in: {vcf? root?}
on: {v}
out: {vcf?}}}
%% verbs in non-canonical position
defclass "noncan" {
dim lp {in: {vxf? root?}
on: {v}
out: {mf* vcf? vxf?}}}
%% 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"
"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"}}