Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在Gnu Prolog for java中使用字符串(atom)术语

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

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

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

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 09: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

复制
相关文章
prolog实例_prolog实例
Jetbrains全家桶1年46,售后保障稳定 现在打开编辑器GNU-Prolog,打开文件可以直接询问机器:
全栈程序员站长
2022/11/16
1.3K0
如何在 Java 中使用 MQTT
MQTT 是一种基于发布/订阅模式的 轻量级物联网消息传输协议 ,可在严重受限的硬件设备和低带宽、高延迟的网络上实现稳定传输。它凭借简单易实现、支持 QoS、报文小等特点,占据了物联网协议的半壁江山。
EMQ映云科技
2022/08/30
2.2K0
如何在Java中使用Table
在Java中,表用于将数据排列成列和行。列是表中水平排列的空间,而行是表中垂直排列的空间。列和行之间的交点称为单元格,用于保存单条数据。
灬沙师弟
2023/03/07
2.2K0
如何在Java中使用Table
如何在 Java 中使用断言
在 JDK 1.4之前,开发人员经常使用注释来记录关于程序正确性的假设。然而,注释作为测试和调试假设的机制是无用的。编译器忽略注释,因此无法使用它们进行 bug 检测。开发人员在更改代码时也经常不更新注释。
Java宝典
2021/01/28
7960
【npm】如何在Atom中安装emmet和atom-beautify插件?
本文介绍了如何在Atom编辑器中安装emmet和atom-beautify插件,以提高HTML和CSS的编写速度。首先介绍了通过Atom的引导界面安装emmet的方法,然后描述了在apm命令行工具中安装emmet的过程。最后,本文重点讲解了通过克隆emmet的远程库进行安装的方法,并提供了相应的npm安装命令。
啦啦啦321
2018/01/03
1.6K0
【npm】如何在Atom中安装emmet和atom-beautify插件?
如何在Java开发中使用AI
大家好,今天我来为大家介绍如何在Java开发中使用人工智能(AI)。既然要使用AI,那么我们就需要用到一些最新的技术和工具,不过不用担心,我将在本篇教程中为大家详细讲解如何快速上手使用AI。废话不多说,让我们一起来看看吧!
美小妮
2023/10/06
6290
如何在Java开发中使用AI
Sublime用腻了 换了Atom玩玩
https://github.com/JoelBesada/activate-power-mode (科学上网)
杨肆月
2019/08/15
5370
Sublime用腻了 换了Atom玩玩
如何在Java中使用WebSocket进行消息推送
WebSocket 是一种用于实现双向通信的网络协议,它基于 TCP 协议,可以实现服务器和客户端之间的实时消息传递。 在 Java 中,我们可以使用 Java WebSocket API 来实现 WebSocket。
用户1289394
2023/09/22
2.1K0
如何在Java中使用WebSocket进行消息推送
Prolog 语言入门教程
Prolog 是一种与众不同的语言,不用来开发软件,专门解决逻辑问题。比如,"苏格拉底是人,人都会死,所以苏格拉底会死"这一类的问题。
ruanyf
2020/01/21
3.4K0
如何在 GNU Linux 上通过 Nvm 安装 Node 和 Npm?
Node.js 是一个流行的 JavaScript 运行时环境,用于开发服务器端和网络应用程序。它带有一个强大的软件包管理器 npm,可以方便地安装和管理 JavaScript 包和依赖项。在 GNU/Linux 系统上,使用 Nvm(Node Version Manager)是一种常见的方法来安装和管理 Node.js 和 npm。
网络技术联盟站
2023/05/26
1.9K0
如何在 GNU Linux 上通过 Nvm 安装 Node 和 Npm?
GNU系统概览
GNU系统是一套向上兼容Unix的完全自由的操作系统。GNU代表“GNU's Not Unix”。它的发音是带有g音的单音节。Richard Stallman在1983年9月做出了GNU工程的初始声明。接着在1985年3月又发表了更长的版本,叫做GNU宣言。它被翻译成多种其他语言。
狼啸风云
2019/11/28
1.2K0
【Java】用java实现统计字符串个数
统计某种字符串中某个字符或某个字符串出现的次数,以及每次出现的索引位置 有如下字符串: 患者:“大夫,我咳嗽得很重。” 大夫:“你多大年记?” 患者:“七十五岁。” 大夫:“二十岁咳嗽吗”患者:“不咳嗽。” 大夫:“四十岁时咳嗽吗?” 患者:“也不咳嗽。” 大夫:“那现在不咳嗽,还要等到什么时咳嗽?” 需求:请统计出该字符中*“咳嗽*”二字的出现次数。 代码如下:
用户7886150
2021/04/06
1.7K0
「翻译」在生物信息学中使用 GNU-Parallel
原文出处:https://www.danielecook.com/using-gnu-parallel-for-bioinformatics/
王诗翔呀
2020/09/25
1.2K0
「翻译」在生物信息学中使用 GNU-Parallel
Atom飞行手册翻译: 1.3 Atom基础
缓冲区是Atom中一个文件的文本内容。在大多数描述中,它基本类似于文件,但是它是Atom在内存中存放的版本。例如你可以修改文本缓冲区的内容,但是如果你不保存文件,它就不会写到相关的文件中。
ApacheCN_飞龙
2022/11/27
1.2K0
Atom飞行手册翻译: 1.3 Atom基础
Atom
via https://www.iplaysoft.com/item/atom-shortcuts
林清猫耳
2018/08/31
1.3K0
用于数学的 10 个优秀编程语言
作为一个对数学和编程语言充满激情的人,谁也不能阻止我分享我总结的10个超棒的用于数学的编程语言。 正文共:2619 字 预计阅读时间:7 分钟 作为一个对数学和编程语言充满激情的人,谁也不能阻止我分
前朝楚水
2018/04/03
3.4K0
用于数学的 10 个优秀编程语言
如何在silverlihgt中使用右键
一般我们在silverlight中点击右键会出现如下的对话筐. 在flash中 其提供了一个可定制话的右键菜单系统.(ContextMenu) 这个在silverlight中也是一样可以做到的.
用户1172164
2018/01/16
6400
如何在silverlihgt中使用右键
如何在Rust中使用ClickHouse
由于公众号不再按时间线推送,如果不想错过精彩内容,请在关注公众号后,点击右上角 ... 设为星标,感谢支持。
Nauu
2021/04/16
2.4K0
如何在Rust中使用ClickHouse
如何在JavaScript中使用for循环
循环允许我们通过循环数组或对象中的项并做一些事情,比如说打印它们,修改它们,或执行其他类型的任务或动作。JavaScript有各种各样的循环,for循环允许我们对一个集合(如数组)进行迭代。
chuckQu
2022/11/28
5.1K0
如何在JavaScript中使用for循环
GNU和GPL
GNU是一个自由的操作系统,其内容软件完全以GPL方式发布。这个操作系统是GNU计划的主要目标,名称来自GNU’s Not Unix!的缩写,因为GNU的设计类似Unix,但它不包含具著作权的Unix代码。GNU的创始人,理查德·马修·斯托曼。
星哥玩云
2022/09/15
1.1K0
GNU和GPL

相似问题

GNU Prolog中编译前的术语扩展

118

如何在GNU Prolog中使用“长int”?

14

Java弹性搜索:搜索术语,如

12

如何在java中使用prolog?

41

如何在Java中使用Prolog?

52
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文