% ========================================================================== % $Id: parsetree_dictionary.pl,v 1.1 2014/02/13 05:47:11 jlang Exp $ % CSI2120 example Code for lecture 9 % ========================================================================== % (C)opyright: % % Jochen Lang % EECS, University of Ottawa % 800 King Edward Ave. % Ottawa, On., K1N 6N5 % Canada. % http://www.eecs.uottawa.ca/~jlang % % Creator: jlang (Jochen Lang) based on Clocksin & Mellish % Email: jlang@eecs.uottawa.ca % ========================================================================== % $Log: parsetree_dictionary.pl,v $ % Revision 1.1 2014/02/13 05:47:11 jlang % Added grammar examples for lecture 9. % % ========================================================================== sentence(PT) --> sentence(_,PT). sentence(X,sentence(NP,VP)) --> noun_phrase(X,NP), verb_phrase(X,VP). noun_phrase(X,noun_phrase(D,N)) --> determiner(X,D), noun(X,N). verb_phrase(X,verb_phrase(V)) --> verb(X,V). verb_phrase(X,verb_phrase(VP,NP)) --> verb(X,VP), noun_phrase(_,NP). determiner(X,determiner(Y)) --> [Y], {isDeterminer(Y,X)}. noun(X,noun(Y)) --> [Y], {isNoun(Y,X)}. verb(X,verb(Y)) --> [Y], {isVerb(Y,X)}. isDeterminer(the,_). isDeterminer(a,singular). isNoun(tomato,singular). isNoun(tomatos,plural). isNoun(bird,singular). isNoun(birds,plural). isNoun(man,singular). isNoun(men,plural). isNoun(cat,singular). isNoun(cats,plural). isVerb(eats,singular). isVerb(eat,plural). isVerb(sings,singular). isVerb(sing,plural). isVerb(loves,singular). isVerb(love,plural).