Experimental DCG Grammar

Index

Sentence
Noun Phrase
Noun Group
Determiner Phrase
Verb Phrase
Verb Group
Auxiliary Phrase
Predicative Phrase
Prepositional Phrase
Adjective Phrase

Sentence

Students visited the town.
s(satz(NP,VP)) --> np(Num, NP), vp(Num, VP).

Noun Phrase

this student, a beer, the town
np(Num, np(Det, N)) --> detp(Num, Det), ng(Num,_, N).
students, beers, towns(plural countable)
np(pl, np( N)) --> ng(pl,c, N).
linguistics, money, meat (singular non-countable)
np(sg, np( N)) --> ng(sg,nc, N).
a cold beer
np(Num, np(Det, A, N)) --> detp(Num, Det), adjp(A), ng(Num,_, N).
the students of Tartu
np(Num, np(Det, N, PP)) --> detp(Num, Det), ng(Num,_, N), pp(PP).
he, they
np(Num, np(PersPron)) --> pers_pron(Num, PersPron).
(he saw) her reading
np(Num, np(Det, N, V)) --> detp(Num, Det), n(Num, _, N), v(_, _, part1, V).

Noun Group

student, beer, town
ng(Num,C, ng(N)) --> n(Num, C, N).
linguistics student, beer town
ng(Num,C, ng(N1, N2)) --> n(_, _, N1), n(Num, C, N2).

Determiner Phrase

a, the, this
detp(Num, detp(Det)) --> det(Num,Det).
my, his
detp(Num, detp(Pron)) --> poss_pron(Num,Pron).
one, two, four
detp(Num, detp(NDet)) --> num_det(Num,NDet).
those four
detp(Num, detp(Det, NDet)) --> det(Num, Det), num_det(Num, NDet).
all the
detg(Num, detg(QDet, Det)) --> quant_det(QDet), det(Num, Det).

Verb Phrase

goes, were, is sleeping
vp(Num, vp(V)) --> vg(Num, _, V).
give a book
vp(Num, vp(V, NP)) --> vg(Num, _, V), np(_, NP).
give the book to the teacher
p(Num, vp(V, NP, PP)) --> vg(Num, _, V), np(_, NP), pp(PP).
give her a book for birthday
vp(Num, vp(V, NP1, NP2, PP)) --> vg(Num, _, V), np(_, NP1), np(_, NP2), pp(PP).
give her a book for birthday on Monday
vp(Num, vp(V, NP, PP1, PP2)) --> vg(Num, _, V), np(_, NP), pp(PP1), pp(PP2).

Verb Group

visits, bought, go
vg(Num, _, vg(V)) --> v(Num, _, fin, V).

Auxiliary Phrase

is visiting, were bought
vg(Num, _, vg(Auxgr, V)) --> auxgr(Num, Pers, _, _, NextForm, Auxgr), v( Num, Pers, NextForm, V).
will be visited
auxgr(Num, Pers, Form, Preced, EndForm, Str) --> aux(Num, Pers, Form, EndForm, Preced, Aux), { Str =.. [auxgr, Aux] }.
could have been visited
auxgr(Num, Pers, Form, Preced, EndForm, Str) --> aux(Num, Pers, Form, NextForm, Preced, Aux), auxgr(_, _, NextForm, NextPreced, EndForm, Auxgr), { Preced < NextPreced, Str =.. [auxgr, Aux, Auxgr] }.

Predicative Phrase

(he) is a student
vg(Num, _, vg(V, COP_NP))--> v(Num, _, cop, V), cop_np(COP_NP).
(he) is ready to go
vg(Num, _, vg(V, PRP)) --> v(Num, _, cop, V), prp(PRP).
(he) is student
cop_np(np(N))-->n(sg, _,N).
(he) is an interesting teacher
cop_np(cop_np(NP)) --> np(_, NP).
(beer) is cold
prp(A) --> adj(A).
(he) is interesting
prp(A) --> adjv(A).

Prepositional Phrase

to the mountains
pp(pp(P, NP)) --> prep(P), np(_, NP).

Adjective Phrase

ready to go
adjv(adjv(A,InfMark,V)) --> adj(A), inf_mark(InfMark), v(_, _, base, V).

Erwin Bernhard ebernhard@access.ch
Lumme Erilt lumme@ehi.ee
Mattia Mastropietro mastro@ifi.unizh.ch
Kaili Müürisep kaili@ut.ee
Tiina Puolakainen tiinap@ut.ee
Martin Volk volk@ifi.unizh.ch