问题标签 [swi-prolog]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
editor - SWI-Prolog 编辑器的问题
前段时间我在摆弄 SWI-Prolog 编辑器,试图让一些东西工作,我改变了一些配置设置。它没有用,所以我把它改回来了。现在 SWI-Prolog 编辑器无法正常工作。我将加载文件,但是当我单击“咨询”时,它只会抛出此错误:
咨询('C:/Users/Cubearth/Documents/Prolog/'filename.pl')。
而且我无法在知识库上执行查询……它什么也不做。我知道它应该返回:
但我什至不明白。我尝试卸载 prolog 和编辑器,但仍然没有运气。
有想法该怎么解决这个吗?
为了提供帮助,我已经包含了 prolog 的配置转储:
安装
swi-prolog - 用 Prolog 定义我的算术函数?
它回复
现在我想使用
但它与
如何将算术函数与列表一起使用?
animation - 寻找XPCE教程
我将在 XPCE 中编写一个简单的动画(准确地说是四眼镜拼图)。我对 XPCE 一无所知,所以我查阅了一个教程,但结果令人失望。谁能指出我在以下方面的一些材料:
- 使用“画布”
- 动画片
- 计时器
编辑:好的,这里有一个更详细的问题:我想画两个盒子,等待两秒钟,隐藏盒子,然后启动一个计时器。
编辑2:好的,这是另一个问题(我应该打开一个新问题吗?):这是我正在使用的代码:
我想为B1
. 我怎么做?改造BM1
就够了吗?或者也许有替代解决方案?我一直在考虑在屏幕外画出直立和倒置的眼镜并交换它们,但我不确定这种解决方案的细节。
EDIT2':解决了。为后代:
php - 如何结合 PHP 和 Prolog
我正在尝试使用 PHP 脚本调用 Prolog。我正在使用在这里找到的语法,即:
该程序/bin/pl
是我安装 Prolog/home/popx/cgi-bin/test.pl
的位置,也是要查阅的文件的位置。相应地更改路径后,我没有得到任何输出。有人可以帮助我,并给我一些指示吗?
我已经熟悉如何将 Prolog 与 PHP 一起使用?, 和 Invoking SWI-Prolog from PHP,但他们没有回答我的问题。
io - 在 Prolog 中逐行读取文件
我想读取一个纯文本文件并对每一行应用一个谓词(谓词包含write
输出的内容)。我该怎么做?
java - 语义网中的 SWI-Prolog
我想听听那些在使用 SWI-Prolog 的语义库方面有实际编程经验的人的意见。
编辑:这个问题的原因是,在与我交谈过的许多有 prolog 经验的人中,他们中的大多数人似乎在他们的学术项目中将它用于一些 AI 编程。我想知道是否有人在生产环境中广泛使用它。因为实时可维护性,性能不同于完成项目以获得好成绩。
您是如何与 Java 等编程语言集成的?
编辑:如答案中所述,似乎 REST 服务或使用 SWI-Prolog 的外部接口是两个最佳选择。
您将 prolog 库用于什么(在语义网络的上下文中)?
可能不会在这里得到明确的答案。可能,这个问题属于语义溢出。我现在有一个合理的想法,并将在更合适的论坛上继续讨论。
使用的是什么开发环境? SWI-Prolog 提供的 Emacs 或其变体似乎是压倒性的答案。
我从不想要一个像 Intellij IDEA for java 这样的 IDE。毕竟我会怎么做,自动完成?我理解基于规则的语言的必要性。再说一次,我讨论开发环境的原因是为了帮助我跟踪我的规则(调试),也可能识别我知识集中的异常。SWI-Prolog 的图形跟踪器满足了第一个要求,但至少在我看来,它显得粗制滥造和有限。但我不相信还有别的。
我真的很喜欢使用 SWI-Prolog 的想法,但如果它影响生产力,我会避开它。
正如答案中提到的,应该使用 Prolog 来执行它擅长的事情。我一直都知道这一点,因此我对与其他编程语言的集成提出了疑问。似乎最大的生产力猪是开发人员的质量,并且处于开发阶段。系统中的问题可能处于休眠状态且不易修复,但可以通过使用一组问题来检查系统的有效性来处理。
注意:当我提到答案时,我指的是@littletable 提供的答案。同样对于对语义网 SWI-Prolog 感兴趣的人来说,thea看起来很有趣。
prolog - SWI-Prolog 文件是否需要开始和结束字符?
我是 SWI-Prolog 的新手,正在尝试一些教程。但是,我尝试通过命令行加载的每个文件都会收到 2 条错误消息 - 一条在开头(预期为操作员),一条在结尾(意外结束文件)。文件保存在与我正在工作的目录相同的目录中。
例如,我将此文件保存为 kb2.pl
从打开 Prolog 开始(通过 /opt/local/bin/swipl),我的命令行如下所示:
% library(swi_hooks) 编译成 pce_swi_hooks 0.00 秒,3,928 字节
欢迎使用 SWI-Prolog(多线程,64 位,版本 5.10.2)
版权所有 (c) 1990-2010 University of Amsterdam, VU Amsterdam
SWI-Prolog 绝对附带没有保修。这是免费软件,
欢迎您在特定条件下重新分发它。
详情请访问http://www.swi-prolog.org。帮助,使用?-帮助(主题)。或 ?- apropos(Word)。
?- [kb2]。
错误:/Users/name/Desktop/kb2.pl:1:0:语法错误:操作员预期
错误:/Users/name/Desktop/kb2.pl:10:52:语法错误:文件意外结束
% kb2 编译 0.00秒,2,584 字节为
真。?-
当我询问已编译文件的列表时,我得到:
\快乐(约兰达)。
\playsAirGuitar(mia) :- 听音乐(mia)。
\playsAirGuitar(约兰达):- 听音乐(约兰达)。
真的。
所以它会删除文件的第一行和最后一行。
我在网上搜索了这些错误消息,发现了很多关于 Prolog 格式化的有用提示,但没有一个能解决这种情况。是否有某种特殊字符或格式应该用于 Prolog 文件的开头和结尾?
performance - swi-prolog 时间/1 到文件
是否可以将 time/1 的结果写入文件或将它们作为变量返回以自动运行运行时比较?
还是有另一个谓词可以做到这一点?
java - 如何在通过 JPL 在 Java 应用程序内运行的 Prolog 代码上使用 GUI 调试器?
我正在通过 JPL 桥开发 Java+Prolog 应用程序。主应用程序是 Java 语言,它使用以下方法调用 Prolog 代码Query.oneSolution("doPrologStuff(here)")
我尝试使用运行 GUI 调试器/跟踪器,Query.hasSolution("gtrace")
但它引发异常:
(同样适用于“guitracer”)
当我直接运行 Prolog 代码时,调用gtrace.
效果很好swipl
。
当我尝试Query.hasSolution("trace")
时,它可以让我使用文本控制台调试代码,但这不是我想要的。任何想法如何启用 GUI 调试器?
我在 Ubuntu 上使用 Eclipse 进行开发,但如果有帮助,我可以尝试其他工具:)
xml - 在 swi-prolog 中,如何漂亮地打印从 load_xml_file('file.xml', Term) 获得的 Term?
swi-prolog 使用 list of list of ... 来表示 XML 树。我试过了
它缩进不好,并且
它不支持列表,并且
它似乎不是列表,它是在 rb 树库中定义的。