Я хотел бы задать вопрос. Я попытался соединить php с SWI-Prolog с помощью функции exec, и мои усилия увенчались успехом. Мне удалось запросить пролог через php, и я смог повторить ответ Пролога.
То, что я хочу сделать, но не могу понять, как это сделать, - это повторить возврат истинного/ложного пролога.
Давайте предположим, что у меня есть простой файлknowledge_base.pl со следующими фактами и правилами:
girl(erin).
boy(john).
likes(erin,reading).
likes(john,reading).
hangs_out_with(erin,X) :- likes(X,reading), boy(X), writeln('Someone s got a new friend!!').
Учитывая приведенную выше простую базу знаний, можно создавать запросы и отвечать прологом.
Например:
?- girl(erin). Prolog based on our knowledge base will respond true.
?- girl(john). Prolog based on our knowledge base will respond false.
?- hangs_out_with(erin,john). Proslog will respond : Someone s got a new friend!! true.
Мне нужно, чтобы PHP повторил истинный или ложный ответ. Как я могу этого добиться?
Заранее спасибо за вашу помощь.
girl(X). X=erin ; X=mary
и т. д. С одной стороны, я хочу, чтобы отображалось значение true/false, но, с другой стороны, мне интересно, стоит ли вообще все эти хлопоты... :( - person Erin   schedule 17.09.2012;
. Если вы разрешите это, ваш скрипт остановится и будет ждать, пока кто-нибудь не нажмет эту кнопку. Вряд ли вы хотели бы, чтобы это было частью вашего веб-сервиса, верно? Если вам нужны все решения для вашего предиката, ознакомьтесь с предикатами всех решений в документе SWI. - person Will Ness   schedule 19.09.2012