This grammar covers a small fragment of English, and includes the two graph dimensions of Prosodic Structure (PS) and Information Structure (IS). It was written by Ralph Debusmann, in a project at the IGK annual meeting 2004 in Edinburgh together with Ciprian Gerstenberger, Oana Postolache, Stefan Thater and Maarika Traat. It is described in A Modular Account of Information Structure in Extensible Dependency Grammar (References).
usedim id
usedim lp
usedim ps
usedim is
usedim lex
usedim multi
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define dimension id
defdim id {
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define types
deftype "id.entry" {in: valency("id.label")
out: valency("id.label")}
deftype "id.label" {subj obj det adj root}
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}}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 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" {topf subjf f objf
detf adjf n
d a
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: [topf subjf f objf
detf adjf n
d a
root r]
Yields: true}}
useprinciple "principle.projectivity" {
dims {D: lp}}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% use and choose outputs
output "output.pretty"
}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define dimension ps
defdim ps {
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define types
deftype "ps.entry" {in: valency("ps.label")
out: valency("ps.label")
on: iset("ps.label")}
deftype "ps.label" {"L+H*" "H*" "LH%" "LL%" "L+H*_LH%" "H*_LL%" na nb b}
defentrytype "ps.entry"
deflabeltype "ps.label"
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% use principles
useprinciple "principle.graph" {
dims {D: ps}}
useprinciple "principle.tree" {
dims {D: ps}}
useprinciple "principle.valency" {
dims {D: ps}
args {In: _.D.entry.in
Out: _.D.entry.out}}
useprinciple "principle.order1" {
dims {D: ps}
args {On: _.D.entry.on
Order: [{"L+H*" "H*" "LH%" "LL%" "L+H*_LH%" "H*_LL%" na nb} {b}]
Yields: true}}
useprinciple "principle.projectivity" {
dims {D: ps}}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% use and choose outputs
output "output.pretty"
}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define dimension is
defdim is {
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define types
deftype "is.entry" {in: valency("is.label")
out: valency("is.label")
on: iset("is.label")}
deftype "is.label" {f nf theme rheme umtheme backgr}
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}}
useprinciple "principle.order" {
dims {D: is}
args {On: _.D.entry.on
Order: []
Yields: true}}
useprinciple "principle.projectivity" {
dims {D: is}}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% use and choose outputs
output "output.pretty"
}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define dimension lex
defdim lex {
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define types
defentrytype {word: string}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% use and choose outputs
output "output.dags"
output "output.dags1"
output "output.dags2"
output "output.dags3"
output "output.latexs"
output "output.latexs1"
output "output.latexs2"
output "output.latexs3"
%%
useoutput "output.dags1"
}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define dimension multi
defdim multi {
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define types
defentrytype {blocks_lpid: set("id.label")
%%
linkEnd_lpis: vec("lp.label" set("is.label"))}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% use principles
useprinciple "principle.climbing" {
dims {D1: lp
D2: id}}
useprinciple "principle.barriers" {
dims {D1: lp
D2: id
D3: multi}
args {Blocks: _.D3.entry.blocks_lpid}}
%%
useprinciple "principle.subgraphs" {
dims {D1: is
D2: ps
D3: multi}
args {Start: {theme: {"LH%" "L+H*_LH%"}
rheme: {"LL%" "H*_LL%"}
umtheme: bot}}}
%%
useprinciple "principle.linkingEnd" {
dims {D1: lp
D2: is
D3: multi}
args {End: ^.D3.entry.linkEnd_lpis}}
}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define lexical classes
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% syntax
defclass "noun_idlp" {
(dim id {in: {subj?}} & dim lp {in: {subjf? topf?}} |
dim id {in: {obj?}} & dim lp {in: {objf? topf?}})
dim id {in: {root?}}
dim lp {in: {root?}
on: {n}}}
defclass "pname_idlp" {
"noun_idlp"}
defclass "cnoun_idlp" {
"noun_idlp"
dim id {out: {det! adj*}}
dim lp {out: {detf? adjf*}}}
defclass "det_idlp" {
dim id {in: {det? root?}}
dim lp {in: {detf? root?}
on: {d}}}
defclass "adj_idlp" {
dim id {in: {adj? root?}}
dim lp {in: {adjf? root?}
on: {a}}}
defclass "tv_idlp" {
dim id {in: {root?}
out: {subj! obj!}}
dim lp {in: {root?}
out: ({topf! subjf!}|
{subjf! objf!})
on: {f}}
dim multi {linkEnd_lpis: {topf: {theme umtheme}}}}
defclass "root_idlp" {
dim id {in: {}
out: {root!}}
dim lp {in: {}
out: {root!}
on: {r}}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% prosodic structure
defclass "pa1" Word {
dim ps {in: {"L+H*"?}
on: {nb}}
dim lex {word: Word@"_L+H*"}}
defclass "bo1" Word {
dim ps {in: {"LH%"?}
out: {"L+H*"* na*}
on: {b}}
dim lex {word: Word@"_LH%"}}
defclass "pa1_bo1" Word {
dim ps {in: {"L+H*_LH%"?}
out: {"L+H*"* na*}
on: {b}}
dim lex {word: Word@"_L+H*_LH%"}}
%%
defclass "pa2" Word {
dim ps {in: {"H*"?}
on: {nb}}
dim lex {word: Word@"_H*"}}
defclass "bo2" Word {
dim ps {in: {"LL%"?}
out: {"H*"* na*}
on: {b}}
dim lex {word: Word@"_LL%"}}
defclass "pa2_bo2" Word {
dim ps {in: {"H*_LL%"?}
out: {"H*"* na*}
on: {b}}
dim lex {word: Word@"_H*_LL%"}}
%%
defclass "na" Word {
dim ps {in: {na?}
on: {nb}}
dim lex {word: Word@""}}
%%
defclass "root_ps" {
dim ps {in: {}
out: {"LH%"* "LL%"* "L+H*_LH%"* "H*_LL%"*}
on: {nb}}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% information structure
defclass "tf" {
dim is {in: {theme?}
out: {backgr*}
on: {f}}}
defclass "tnf" {
dim is {in: {backgr? umtheme?}
on: {nf}}}
%%
defclass "rf" {
dim is {in: {rheme?}
out: {backgr*}
on: {f}}}
defclass "rnf" {
dim is {in: {backgr?}
on: {nf}}}
%%
defclass "root_is" {
dim is {in: {}
out: ({theme* rheme+}|{umtheme* rheme+})
on: {nf}}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% prosodic and information structure
defclass "theme_pa" Word {
"pa1" {Word: Word}
"tf"}
defclass "theme_bo" Word {
"bo1" {Word: Word}
"tnf"}
defclass "theme_pa_bo" Word {
"pa1_bo1" {Word: Word}
"tf"}
%%
defclass "rheme_pa" Word {
"pa2" {Word: Word}
"rf"}
defclass "rheme_bo" Word {
"bo2" {Word: Word}
"rnf"}
defclass "rheme_pa_bo" Word {
"pa2_bo2" {Word: Word}
"rf"}
%%
defclass "theme_na" Word {
"na" {Word: Word}
"tnf"}
%%
defclass "psis" Word {
"theme_pa" {Word: Word}|
"theme_bo" {Word: Word}|
"theme_pa_bo" {Word: Word}|
"rheme_pa" {Word: Word}|
"rheme_bo" {Word: Word}|
"rheme_pa_bo" {Word: Word}|
"theme_na" {Word: Word}}
%%
defclass "root_psis" {
"root_ps"
"root_is"}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% combined lexical classes
%% proper names
defclass "pname" Word {
"pname_idlp"
"psis" {Word: Word}}
%% common nouns
defclass "cnoun" Word {
"cnoun_idlp"
"psis" {Word: Word}}
%% transitive verbs
defclass "tv" Word {
"tv_idlp"
"psis" {Word: Word}}
%% determiners
defclass "det" Word {
"det_idlp"
"psis" {Word: Word}}
%% adjectives
defclass "adj" Word {
"adj_idlp"
"psis" {Word: Word}}
%% roots
defclass "root" Word {
"root_idlp"
"root_psis"
dim lex {word: Word}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% lexical entries
defentry { "pname" {Word: "Annie"|"Manny"|"Marcel"|"completeness"} }
defentry { "cnoun" {Word: "man"|"woman"} }
defentry { "tv" {Word: "married"|"proved"} }
defentry { "det" {Word: "the"|"a"} }
defentry { "adj" {Word: "little"|"big"} }
defentry { "root" {Word: "."} }