我是prolog的新手,想用prolog + java编写wampus AI, 试图在java中的prolog和GUI中执行逻辑 但我坚持并且是一个非常基本的水平。
基本上我的知识库中有这样的东西
parent(john, sarah).
我想知道莎拉的父母是谁(父母(X,莎拉)) 我不能因为我不能说sara这个词! 我可以定义像
这样的术语VariableTerm("X"); // for variable
IntegerTerm // for integer
FloatTerm // for float
但是sara -string / atom-Term没有一个(实际上有和原子但受保护)。 我在网上自我辅导中错过了一些非常基本的东西。 我已多次通过gnu为prolog docs但我无法找到答案
P.S。:使用IntelliJ Idea IDE
更新1:
我转移到swi-prolog(jpl)所以我可以在那里完成我的工作但是我甚至无法在将lib添加到我的java项目后运行代码,修复了2个错误,但它只是1个错误接一个(目前卡在java:包org.jpl7不存在)和google / stackoverflow解决方案将无法正常工作
答案 0 :(得分:0)
你想要的是询问sarah的父母是谁parent(sarah, X)
将变量X与已知的sarah父亲(约翰)统一起来。然后,您可以链接另一个目标,即以parent(sarah,X),parent(X,Y).
统一形式询问谁是X的父级,尝试使两个术语相同,或者返回false。 X = john,因此查询变为parent(sarah,john),parent(john,Y).
。
查看此资源,了解统一的工作原理:Learn Prolog Now!: Unification