% ========================================================================== % $Id: parsetree_dictionary_clumsy.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_clumsy.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) --> [].