This grammar models a regular dependency grammar as introduced in the ACL 2007 paper by Marco Kuhlmann and Mathias Moehl.
usedim id
usedim lp
usedim idlp
usedim lex
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define id dimension
defdim id {
deftype "id.label" {s a b "^"}
deflabeltype "id.label"
defentrytype {in: set(tuple("id.label" {"!" "?" "+" "*"}))
out: set(tuple("id.label" {"!" "?" "+" "*"}))}
%%
useprinciple "principle.graphPW" {
dims {D: id}}
useprinciple "principle.treePW" {
dims {D: id}}
useprinciple "principle.valencyPW" {
dims {D: id}}
%%
output "output.pretty"
output "output.pretty1"
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define lp dimension
defdim lp {
deftype "lp.label" {b1 b2}
deflabeltype "lp.label"
defentrytype {in: set(tuple("lp.label" {"!" "?" "+" "*"}))
out: set(tuple("lp.label" {"!" "?" "+" "*"}))
order: set(tuple("lp.label" "lp.label"))}
%%
useprinciple "principle.graphPW" {
dims {D: lp}}
useprinciple "principle.valencyPW" {
dims {D: lp}}
useprinciple "principle.orderDepsPW" {
dims {D: lp}}
%%
output "output.pretty"
output "output.pretty1"
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define idlp dimension
defdim idlp {
defentrytype {order: set(tuple("id.label" "lp.label" "id.label" "lp.label"))
commas: set(tuple("id.label" "lp.label" "id.label" "lp.label"))}
%%
useprinciple "principle.blockPW" {
dims {D1: lp D2: id}}
useprinciple "principle.orderBlocksPW" {
dims {D1: id D2: lp D3: idlp}}
useprinciple "principle.commasPW" {
dims {D1: lp D2: id D3: idlp}}
%%
output "output.pretty"
output "output.pretty1"
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define lex dimension
defdim lex {
defentrytype {word: string}
%%
output "output.allDags1"
output "output.allLatexs1"
useoutput "output.allDags1"
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define lexicon
%% S -> <a,<01>>(B)
defentry {
dim id {in: {s?}
out: {b!}}
dim lp {in: {b1* b2*}
out: {b1+}}
dim idlp {order: {["^" b1 b b1]}
commas: {}}
dim lex {word: "a"}}
%% S -> <a,<0121>>(A,B)
defentry {
dim id {in: {s?}
out: {a! b!}}
dim lp {in: {b1* b2*}
out: {b1+}}
dim idlp {order: {["^" b1 a b1] ["^" b1 b b1] ["^" b1 a b2]
[a b1 b b1] [a b1 a b2] [b b1 a b2]}
commas: {}}
dim lex {word: "a"}}
%% A -> <a,<0,1>>(B)
defentry {
dim id {in: {a!}
out: {b!}}
dim lp {in: {b1* b2*}
out: {b1+ b2+}
order: <b1 b2>}
dim idlp {order: {["^" b1 b b1]}
commas: {["^" b1 b b1]}}
dim lex {word: "a"}}
%% A -> <a,<01,21>>(A,B)
defentry {
dim id {in: {a!}
out: {a! b!}}
dim lp {in: {b1* b2*}
out: {b1+ b2+}
order: <b1 b2>}
dim idlp {order: {["^" b1 a b1] ["^" b1 b b1] ["^" b1 a b2]
[a b1 b b1] [a b1 a b2] [b b1 a b2]}
commas: {[a b1 b b1]}}
dim lex {word: "a"}}
%% B -> <b,<0>>
defentry {
dim id {in: {b!}}
dim lp {in: {b1* b2*}
out: {b1+}}
dim idlp {commas: {}}
dim lex {word: "b"}}