% file: sr.p % desc: simplification rules for "geometric answer-man" language % ----------------------------------------------------------- % see allowable sentences in file "source-lang" % =========================================================== % simplification rules % ----------------------------------------------------------- % sr(+S,-T) sr([pick, up |X],[pick | X]). sr([put, down |X],[put | X]). sr([how, many, surfaces, are, on |X],[what, number, surfaces | X]). sr([the | X],X). % these rules reduce the input to: % pick Color Shape % put Color Shape % what number surfaces Color Shape % ----------------------------------------------------------- % simplify(+S,-T) simplify(X,Z) :- sr(X,Y), !, simplify(Y,Z). simplify([X|Xs],[X|Zs]) :- simplify(Xs,Zs). simplify([],[]).