Да се построи интерпретатор на подмножество на Пролог, несъдържащо вградени предикати (или съдържащо минимален брой такива - по желание). Клаузите се задават в избран от вас формат, например:
brother(X,Y) :- parent(Z,X),parent(Z,Y)
може да се зададе като:
'((brother (var X) (var Y)) (parent (var Z) (var X)) (parent (var Z) (var Y))).
Забележете, че използването на някакъв специален начин за отбелязване на променливи е наложително, понеже Scheme не прави разлика между малки и големи букви, за разлика от ПРОЛОГ.
Програмата-интерпретатор трябва да дава отговор на въпрос при дадена логическа програма по правилата за оценка в ПРОЛОГ. Работа с файл е желателно да се реализира.