Next: MWE, Previous: FG_TAGDCgen, Up: Grammars
This grammar models the combination of lexicalized context-free grammars from the paper at ESSLLI 2007 (Workshop: Model-Theoretic Syntax at 10). It was written by Ralph Debusmann.
usedim id
usedim lp
usedim inter
usedim lex
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define id dimension
defdim id {
deftype "id.label" {s np vp "^"}
deflabeltype "id.label"
defentrytype {in: valency("id.label")
out: valency("id.label")
order: set(tuple("id.label" "id.label"))}
%%
useprinciple "principle.graph" {
dims {D: id}}
useprinciple "principle.tree" {
dims {D: id}}
useprinciple "principle.valency" {
dims {D: id}}
% useprinciple "principle.order2" {
% dims {D: id}}
% useprinciple "principle.projectivity" {
% dims {D: id}}
%%
output "output.pretty"
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define lp dimension
defdim lp {
deftype "lp.label" {s mf vc "^"}
deflabeltype "lp.label"
defentrytype {in: valency("lp.label")
out: valency("lp.label")
order: set(tuple("lp.label" "lp.label"))}
%%
useprinciple "principle.graph" {
dims {D: lp}}
useprinciple "principle.tree" {
dims {D: lp}}
useprinciple "principle.valency" {
dims {D: lp}}
useprinciple "principle.order2" {
dims {D: lp}}
useprinciple "principle.projectivity" {
dims {D: lp}}
%%
output "output.pretty"
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define inter dimension
defdim inter {
defentrytype {linkDaughterEnd: vec("id.label" set("lp.label"))}
useprinciple "principle.linkingDaughterEnd" {
dims {D1: id D2: lp D3: inter}
args {End: ^.D3.entry.linkDaughterEnd}}
%%
output "output.pretty"
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define lex dimension
defdim lex {
defentrytype {word: string}
%%
output "output.dags1"
output "output.latexs1"
useoutput "output.dags1"
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% define lexicon
defclass "id_saw1" {
dim id {in: {s?}
out: {np#{2} vp!}
order: <np vp "^">}
dim lex {word: "saw"}}
defclass "lp_saw1" {
dim lp {in: {s?}
out: {mf! vc!}
order: <mf vc "^">}
dim lex {word: "saw"}}
defentry {
"id_saw1"
"lp_saw1"}
defclass "id_help1" {
dim id {in: {vp?}
out: {np! vp!}
order: <np vp "^">}
dim lex {word: "help"}}
defclass "id_help2" {
dim id {in: {vp?}
out: {np!}
order: <np "^">}
dim lex {word: "help"}}
defclass "lp_help1" {
dim lp {in: {vc?}
out: {vc!}
order: <vc "^">}
dim lex {word: "help"}}
defclass "lp_help2" {
dim lp {in: {vc?}
out: {}
order: <vc "^">}
dim lex {word: "help"}}
defclass "inter_help1" {
dim inter {linkDaughterEnd: {vp: {vc}}}}
defentry {
("id_help1" | "id_help2")
("lp_help1" | "lp_help2")
"inter_help1"}
defclass "id_feed1" {
dim id {in: {vp?}
out: {np!}
order: <np "^">}
dim lex {word: "feed"}}
defclass "lp_feed1" {
dim lp {in: {vc?}
out: {}
order: <>}
dim lex {word: "feed"}}
defentry {
"id_feed1"
"lp_feed1"}
defclass "id_john1" {
dim id {in: {np?}
out: {}
order: <>}
dim lex {word: "john"}}
defclass "lp_john1" {
dim lp {in: {mf?}
out: {mf!}
order: <"^" mf>}
dim lex {word: "john"}}
defclass "lp_john2" {
dim lp {in: {mf?}
out: {}
order: <>}
dim lex {word: "john"}}
defentry {
"id_john1"
("lp_john1" | "lp_john2")}
defclass "id_mary1" {
dim id {in: {np?}
out: {}
order: <>}
dim lex {word: "mary"}}
defclass "lp_mary1" {
dim lp {in: {mf?}
out: {mf!}
order: <"^" mf>}
dim lex {word: "mary"}}
defclass "lp_mary2" {
dim lp {in: {mf?}
out: {}
order: <>}
dim lex {word: "mary"}}
defentry {
"id_mary1"
("lp_mary1" | "lp_mary2")}
defclass "id_peter1" {
dim id {in: {np?}
out: {}
order: <>}
dim lex {word: "peter"}}
defclass "lp_peter1" {
dim lp {in: {mf?}
out: {mf!}
order: <"^" mf>}
dim lex {word: "peter"}}
defclass "lp_peter2" {
dim lp {in: {mf?}
out: {}
order: <>}
dim lex {word: "peter"}}
defentry {
"id_peter1"
("lp_peter1" | "lp_peter2")}
defclass "id_animals1" {
dim id {in: {np?}
out: {}
order: <>}
dim lex {word: "animals"}}
defclass "lp_animals1" {
dim lp {in: {mf?}
out: {mf!}
order: <"^" mf>}
dim lex {word: "animals"}}
defclass "lp_animals2" {
dim lp {in: {mf?}
out: {}
order: <>}
dim lex {word: "animals"}}
defentry {
"id_animals1"
("lp_animals1" | "lp_animals2")}