sentence-->sentence(X). sentence(X)-->noun_phrase(X),verb_phrase(X). noun_phrase(X)-->determiner(X),noun(X). verb_phrase(X)-->verb(X),noun_phrase(Y). verb_phrase(X)-->verb(X). determiner(_)-->[the]. determiner(_)-->[an]. determiner(_)-->[a]. noun(singular)-->[apple]. noun(singular)-->[pear]. noun(singular)-->[man]. noun(plural)-->[apples]. noun(plural)-->[pears]. noun(plural)-->[men]. verb(singular)-->[eats]. verb(singular)-->[likes]. verb(plural)-->[eat]. verb(plural)-->[like]. /* noun(singular,[apple|R],R). verb(plural,[like|R],R). verb(singular,[likes|R],R). verb_phrase-->verb. verb_phrase(X)-->verb(X). verb_phrase(X,S1,R):-verb(X,S1,R). verb_phrase(X,S1,R):-verb(X,S1,S2),noun_phrase(Y,S2,R). */