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