This grammar is the same as nut1 except that it only uses PW principles.
usedim syn usedim sem usedim synsem usedim lex %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% define dimension syn defdim syn { %% %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% define types deftype "syn.person" {"1" "2" "3"} deftype "syn.number" {sg pl} deftype "syn.agr" tuple("syn.person" "syn.number") deftype "syn.label" {root subj part obj vinf adv "^"} deflabeltype "syn.label" defattrstype {agr: "syn.agr"} defentrytype {in: set(tuple("syn.label" {"!" "?" "+" "*"})) out: set(tuple("syn.label" {"!" "?" "+" "*"})) order: set(tuple("syn.label" "syn.label")) agrs: set("syn.agr") agree: set("syn.label")} %% %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% use principles useprinciple "principle.graphPW" { dims {D: syn} } useprinciple "principle.treePW" { dims {D: syn} } useprinciple "principle.valencyPW" { dims {D: syn} } useprinciple "principle.agrPW" { dims {D: syn} } useprinciple "principle.agreementPW" { dims {D: syn} } useprinciple "principle.orderPW" { dims {D: syn} } useprinciple "principle.projectivityPW" { dims {D: syn} } %% %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% use and choose outputs output "output.decode" output "output.pretty" } %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% define dimension sem defdim sem { %% %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% define types deftype "sem.label" {root del ag pat th} deflabeltype "sem.label" defentrytype {in: set(tuple("sem.label" {"!" "?" "+" "*"})) out: set(tuple("sem.label" {"!" "?" "+" "*"}))} %% %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% use principles useprinciple "principle.graphPW" { dims {D: sem} } useprinciple "principle.dagPW" { dims {D: sem} } useprinciple "principle.valencyPW" { dims {D: sem} } %% %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% use and choose outputs output "output.decode" output "output.pretty" } %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% define dimension synsem defdim synsem { defentrytype {linkEnd: set(tuple("sem.label" "syn.label")) linkMother: set("sem.label")} %% %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% use principles useprinciple "principle.linkingEndPW" { dims {D1: sem D2: syn D3: synsem}} useprinciple "principle.linkingMotherPW" { dims {D1: sem D2: syn D3: synsem}} } %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% define dimension lex defdim lex { %% %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% define types defentrytype {word: string} %% %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% use principles %% %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% use and choose outputs output "output.allDags1" output "output.allDags2" output "output.latexs1" output "output.latexs2" useoutput "output.allDags1" } %% %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% define classes defclass "noun" Word Agrs { dim lex {word: Word} dim syn {in: {subj? obj?} agrs: Agrs} dim sem {in: {ag* pat*}}} defentry { "noun" {Word: "Peter" Agrs: {["3" sg]}} } defentry { "noun" {Word: "Mary" Agrs: {["3" sg]}} } defentry { "noun" {Word: "spaghetti" Agrs: {["3" sg]}} } defclass "root" Word { dim lex {word: Word} dim syn {in: {} out: {root!} order: <root "^">} dim sem {in: {} out: {root* del*}}} defentry { "root" {Word: "."} } defclass "adv" Word { dim lex {word: Word} dim syn {in: {adv?}} dim sem {in: {root!} out: {th!}} dim synsem {linkMother: {th}}} defentry { "adv" {Word: "today"} } defclass "part" Word { dim lex {word: Word} dim syn {in: {part?}} dim sem {in: {del!}}} defentry { "part" {Word: "to"} } defclass "inf" Word { dim lex {word: Word} dim syn {in: {vinf?} out: {part!} order: <part "^" obj vinf adv>}} defclass "fin" Word Agrs { dim lex {word: Word} dim syn {in: {root?} out: {subj!} order: <subj "^" obj vinf adv> agrs: Agrs agree: {subj}}} defclass "verb" { dim syn {out: {adv*}} dim sem {in: {root! th*}}} defclass "intrans" { dim sem {out: {ag!}} dim synsem {linkEnd: {[ag subj]}}} defclass "trans" { "intrans" dim syn {out: {obj!}} dim sem {out: {pat!}} dim synsem {linkEnd: {[pat obj]}}} defclass "vinfc" { dim syn {out: {vinf!}} dim sem {out: {[th "!"]}} dim synsem {linkEnd: {[th vinf]}}} defentry { "verb" ("intrans" | "trans") "vinfc" "fin" {Word: "wants" Agrs: {["3" sg]}}} defentry { "verb" ("intrans" | "trans") "vinfc" "fin" {Word: "want" Agrs: {["1" sg] ["2" sg] ["1" pl] ["2" pl] ["3" pl]}}} defentry { "verb" "intrans" | "trans" "fin" {Word: "eats" Agrs: {["3" sg]}}} defentry { "verb" "intrans" | "trans" "fin" {Word: "eat" % Agrs: {["1" sg] ["2" sg] ["1" pl] ["2" pl] ["3" pl]}}} Agrs: $ (("1"|"2") | ("3" & sg))}} defentry { "verb" "intrans" | "trans" "inf" {Word: "eat"}}