首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在Gnu Prolog for java中使用字符串(atom)术语

如何在Gnu Prolog for java中使用字符串(atom)术语
EN

Stack Overflow用户
提问于 2018-02-06 15:05:57
回答 1查看 171关注 0票数 0

我是prolog的新手,我想用prolog + java编写wampus AI,试图用java做prolog和GUI的逻辑,但我卡住了,而且是一个非常基础的级别。

基本上,我的知识库中有这样的东西

代码语言:javascript
代码运行次数:0
运行
复制
parent(john, sarah).

我想知道谁是莎拉的父母(父母(X,莎拉)),但我不能,因为我不能否认萨拉这个词!我可以定义这样的术语

代码语言:javascript
代码运行次数:0
运行
复制
VariableTerm("X"); // for variable
IntegerTerm // for integer
FloatTerm // for float

但是没有一个用于sara -string/ atom - Term的(实际上有and atom,但它是受保护的)。我觉得在我的在线自我辅导中,我错过了一些非常基本的东西。我已经翻了几遍gnu for prolog文档,但还是找不到答案。

附言:使用IntelliJ Idea集成开发环境

更新1:

我转到了swi-prolog (jpl),这样我就可以在那里做我的工作了,但在将库添加到我的java项目后,我甚至无法让代码运行,修复了其中的两个错误,但它只是一个接一个的错误(目前停留在java上: package org.jpl7不存在),谷歌/stackoverflow解决方案将无法工作

EN

回答 1

Stack Overflow用户

发布于 2018-02-06 17:37:50

你想要的是通过说parent(sarah, X)来询问莎拉的父母是谁,它将变量X与莎拉的已知父母约翰联系起来。然后,您可以将另一个目标链接到该目标后面,该目标以parent(sarah,X),parent(X,Y).统一的形式询问谁是X的父项,试图使两个术语相同,否则将返回false。X= john,所以查询变成了parent(sarah,john),parent(john,Y).

查看有关统一工作原理的参考资料:Learn Prolog Now!: Unification

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48637276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档