sentence(S1,R):-noun_phrase(S1,S2),verb_phrase(S2,R). noun_phrase(S1,R):-determiner(S1,S2),noun(S2,R). verb_phrase(S1,R):-verb(S1,S2),noun_phrase(S2,R). verb_phrase(S1,R):-verb(S1,R). determiner([the|R],R). determiner([an|R],R). determiner([a|R],R). noun([apple|R],R). noun([pear|R],R). noun([man|R],R). verb([eats|R],R). verb([likes|R],R). /* sentence([a,man,eats,an,apple],[]) */