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