问题标签 [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 回答
1983 浏览

prolog - 检查原子是否为小写字母

我这样做是这样的:

有没有一种方法感觉不像是一种工作方式?

0 投票
2 回答
1881 浏览

exception - HOWTO catch timeout exception in Prolog

I want to limit "executing" of algorithm in prolog. Can you give me a hint, how to do it? I have found this predicate: call_with_time_limit How can I catch the time_limit_exceeded exception? Thanks

UPDATE:

I am trying it this way:

but noting happend when I call timeout(1):

but when I do it this way:

and again call timeout(1) everything is fine. Why? Thanks UPDATE 2:

Problem solved, it is necessary to have predcate "argument" with upper case...

0 投票
1 回答
512 浏览

prolog - 断言和撤回以模拟全局变量

我这样做是为了模拟全局变量:

还有其他方法吗?(除了将变量作为参数传递之外)。不一定更有效率,我只是好奇。

0 投票
4 回答
7878 浏览

prolog - 在 SWI-Prolog 中聚合谓词

我需要计算所有X持有some_predicate(X)的东西,而且确实有很多这样的X. 最好的方法是什么?

第一条线索是findall,累积到一个列表并返回列表的长度。

permutation/2只是一个虚拟占位符,表明有很多结果并且计算计数的方法很糟糕)

显然,对于真实数据,会有堆栈溢出。

然后,我试图用 替换findallsetof但无济于事。

最后,我找到了 [ aggregate][1] (可点击的)谓词系列,并尝试使用aggregate/3and aggregate/4

一切都错了,我想。我需要得到这样的东西:

  1. 我究竟做错了什么?

  2. 我如何声明一个谓词来计算正确的答案?[1]:http ://www.swi-prolog.org/pldoc/doc/home/vnc/prolog/lib/swipl/library/aggregate.pl

0 投票
1 回答
291 浏览

user-interface - Logtalk 和 XPCE

可以同时使用 XPCE 和 Logtalk 开发应用程序,还是类系统在某些方面不兼容?

0 投票
4 回答
6791 浏览

python - 从python调用prolog谓词

我有一些.pl文件,我想从 python 脚本调用在其中声明的谓词。我怎样才能做到这一点?

例如,test.pl

像这样工作

我想以rD某种方式从 python 脚本调用并在结果变量中得到答案

ps:这只是一个例子,我不想重写我现在的Prolog程序。

0 投票
1 回答
903 浏览

prolog - 寻找 SWI-prolog 的记录库示例

我正在寻找记录库的示例用途(或教程)

http://www.cs.fit.edu/~pkc/classes/ai/swi-prolog/Manual/record.html

对于我可以用作模板的 SWI-prolog。你有什么指示吗?

谢谢,

SetJmp

0 投票
1 回答
933 浏览

prolog - 如何在 Prolog 中加载文件?

我有一个文件,名称:“file1.pl”在 c:/。

现在我想将文件加载到prolog中,然后询问有关我定义的过程和关系的查询。

据我了解,我需要做下一个步骤:

  1. 文件-> 编辑。

  2. 文件 -> 重新加载修改过的文件。

  3. 文件 -> 导航器查看文件和程序。

当我执行这些步骤时,什么都没有发生。当我问这个查询时,它给了我下一个问题:toplevel: Undefined procedure: blabla/2 (DWIN couldnt correct goal)

谢谢你。

0 投票
1 回答
2595 浏览

prolog - 如何使用 SWI-Prolog 的语义网络库查询 RDF/OWL?

如何使用 SWI-Prolog Semantic Web Library 查询 OWL/RDF 文件并提取一些信息?

OWL/RDF 文件包含有关所有 Debian 软件包的信息,因此我需要进行查询以查找软件包依赖项。

例如:

OWL 文件的结构如下:

如何将 OWL/RDF 文件加载到 Prolog 脚本中,以及在 Prolog 脚本中进行查询以使我将 A 作为参数并且脚本输出 B 和 C 的语法是什么?

0 投票
2 回答
3133 浏览

java - 如何在 Ubuntu11.04 上使用 JPL 解决“符号查找错误”?

我正在用 Java 编写程序,我想连接到 Prolog。因此,我决定使用 JPL。在 Windows Vista 上使用 JPL 是完美的。后来,我不得不将操作系统平台更改为 Ubuntu 11.04。不幸的是,有一个错误:

符号查找错误:/usr/lib/swi-prolog/lib/i386/libjpl.so:未定义符号:PL_is_initialised

环境:

  1. Ubuntu 11.04
  2. Java 版本 1.6.0_24
  3. Eclipse 伽利略版本:3.5.2
  4. 适用于 i386 的 SWI-Prolog 版本 5.10.1
  5. Jpl (apt-get install swi-prolog-java)
  6. 家庭.java + 家庭.pl

我将工作步骤和问题解释如下。step1:使用 Synaptic 包管理器安装 swi-prolog + jpl Swi-prolog 安装

step2:运行Family.java,发现报错 未找到 JPL 错误

step3:在VMarguments 处配置库路径设置 VMarguments step4:再次运行,出现错误 /usr/lib/jvm/java-6-sun-1.6.0.24/bin/java: symbol lookup error: /usr/lib/swi-prolog /lib/i386/libjpl.so:未定义符号:PL_is_initialised step5 :我也配置了环境,但错误仍然相同。 设置环境参数

我从互联网上搜索的步骤3和5中用于解决问题的方法。我找不到其他解决方案来尝试。有谁有想法吗?
提前致谢。