En enkel frasstrukturgrammatik
Fragment
lisa springer
lisa skjuter en älgGrammatik
s --> np, vp.np --> pn.
np --> det, n.vp --> iv.
vp --> tv, np.pn --> [lisa].
det --> [en].
n --> [älg].
iv --> [springer].tv --> [skjuter]. Igenkänning och generering
Igenkänning ?- s([lisa,springer],[]).
yes?- s([springer,lisa],[]).
noGenerering
?- s(Sent,[]).
Sent = [lisa,springer] ;
Sent = [lisa,skjuter,lisa] ;
Sent = [lisa,skjuter,en,älg] ;
Sent = [en,älg,springer] ;
Sent = [en,älg,skjuter,lisa] ;
Sent = [en,älg,skjuter,en,älg] ;
noUnifieringsbaserad grammatik
Fragment
en älg, ett lejon*ett älg, *en lejon Grammatik
np --> det(Gen), n(Gen).det(utrum) --> [en]. det(neutrum) --> [ett].
n(utrum) --> [älg]
n(neutrum) --> [lejon].?- np([en,älg],[]).
yes
? - np([ett,älg],[]).no Ett exempel från engelskan
Grammatik s --> np(Num,nom), vp(Num). np(Num,Case) --> pron(Num,Case). np(Num,_) --> det(Num), n(Num). vp(Num) --> v(Num), np(_,acc). pron(sg,nom) --> [he];[she]. pron(sg,acc) --> [him];[her]. pron(pl,nom) --> [they]. pron(pl,acc) --> [them]. det(sg) --> [a]. det(_) --> [the]. n(sg) --> [dog];[cat]. n(pl) --> [dogs];[cats]. v(sg) --> [chases]. v(pl) --> [chase]. ?- s([she,chases,him],[]). yes ?- s([him,chases,she],[]). no