如何在java中使用gnu prolog中使用字符串(原子)术语



我是Prolog的新手,想用Prolog Java写Wampus AI,试图在Java中执行Prolog and Gui的逻辑但是我卡住了,一个非常基本的水平。

基本上我的知识库中有类似的东西

parent(john, sarah).

我想知道谁是莎拉的父母(父母(x,sarah((我不能,因为我不能否认萨拉一词!我可以定义

之类的术语
VariableTerm("X"); // for variable
IntegerTerm // for integer
FloatTerm // for float

,但没有一个用于sara -string/Atom-术语(实际上是和原子,但受到了原子的保护(。我跌倒了,就像我错过了在线自我辅导中非常基本的东西。我已经多次浏览了prolog docs,但我找不到答案

P.S。:从事Intellij Idea IDE

工作

更新1:

我搬到了swi-prolog(jpl(,所以我可以在那里完成工作,但是在将lib添加到我的java项目之后,我什至无法将代码运行,就像固定了2个错误,但这只是1个错误在另一个之后(当前粘在Java:package org.jpl7不存在(,而Google/stackoverflow解决方案无法正常工作

您想要的是问莎拉的父母是谁,说明了 parent(sarah, X),它与已知的莎拉(Sarah(统一变量x,即约翰(John(。然后,您可以将另一个目标的另一个目标链接出来,该目标询问谁是parent(sarah,X),parent(X,Y).统一形式的X的父母,试图使两个术语相同,或者返回false。x =约翰,所以查询变为 parent(sarah,john),parent(john,Y).

查看有关统一的工作方式的此资源:现在学习prolog!:unification

最新更新