问题标签 [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.

0 投票
2 回答
6153 浏览

editor - SWI-Prolog 编辑器的问题

前段时间我在摆弄 SWI-Prolog 编辑器,试图让一些东西工作,我改变了一些配置设置。它没有用,所以我把它改回来了。现在 SWI-Prolog 编辑器无法正常工作。我将加载文件,但是当我单击“咨询”时,它只会抛出此错误:

咨询('C:/Users/Cubearth/Documents/Prolog/'filename.pl')。

而且我无法在知识库上执行查询……它什么也不做。我知道它应该返回:

但我什至不明白。我尝试卸载 prolog 和编辑器,但仍然没有运气。

有想法该怎么解决这个吗?

为了提供帮助,我已经包含了 prolog 的配置转储:

安装

0 投票
1 回答
3596 浏览

swi-prolog - 用 Prolog 定义我的算术函数?

它回复

现在我想使用

但它与

如何将算术函数与列表一起使用?

0 投票
1 回答
1119 浏览

animation - 寻找XPCE教程

我将在 XPCE 中编写一个简单的动画(准确地说是四眼镜拼图)。我对 XPCE 一无所知,所以我查阅了一个教程,但结果令人失望。谁能指出我在以下方面的一些材料:

  • 使用“画布”
  • 动画片
  • 计时器

编辑:好的,这里有一个更详细的问题:我想画两个盒子,等待两秒钟,隐藏盒子,然后启动一个计时器。

编辑2:好的,这是另一个问题(我应该打开一个新问题吗?):这是我正在使用的代码:

我想为B1. 我怎么做?改造BM1就够了吗?或者也许有替代解决方案?我一直在考虑在屏幕外画出直立和倒置的眼镜并交换它们,但我不确定这种解决方案的细节。

EDIT2':解决了。为后代:

0 投票
1 回答
2069 浏览

php - 如何结合 PHP 和 Prolog

我正在尝试使用 PHP 脚本调用 Prolog。我正在使用在这里找到的语法,即:

该程序/bin/pl是我安装 Prolog/home/popx/cgi-bin/test.pl的位置,也是要查阅的文件的位置。相应地更改路径后,我没有得到任何输出。有人可以帮助我,并给我一些指示吗?

我已经熟悉如何将 Prolog 与 PHP 一起使用?, 和 Invoking SWI-Prolog from PHP,但他们没有回答我的问题。

0 投票
5 回答
29534 浏览

io - 在 Prolog 中逐行读取文件

我想读取一个纯文本文件并对每一行应用一个谓词(谓词包含write输出的内容)。我该怎么做?

0 投票
2 回答
3223 浏览

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看起来很有趣。

0 投票
2 回答
4228 浏览

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 文件的开头和结尾?

0 投票
1 回答
690 浏览

performance - swi-prolog 时间/1 到文件

是否可以将 time/1 的结果写入文件或将它们作为变量返回以自动运行运行时比较?

还是有另一个谓词可以做到这一点?

0 投票
1 回答
1402 浏览

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 进行开发,但如果有帮助,我可以尝试其他工具:)

0 投票
1 回答
1246 浏览

xml - 在 swi-prolog 中,如何漂亮地打印从 load_xml_file('file.xml', Term) 获得的 Term?

swi-prolog 使用 list of list of ... 来表示 XML 树。我试过了

它缩进不好,并且

它不支持列表,并且

它似乎不是列表,它是在 rb 树库中定义的。