问题标签 [jpl]

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 投票
0 回答
87 浏览

swi-prolog - SWI-Prolog 中的 JPL 和 CLPFD

我需要将 CLPFD 查询从 JPL 发送到 SWI-Prolog,并将它们的执行输出接收到 Java 程序中。PFA 我使用 JPL 从 Java 端使用的代码。

现在我需要使用 JPL 将 CLPFD 查询发送到 SWI-Prolog。查询如下。

我想知道如何使用 JPL 将 CLPFD 发送到 SWI-Prolog 并取回执行的输出。如下:

我想知道这在 JPL 中是否可行,如果可以,那么有人可以分享他们在这方面的专业知识吗?

0 投票
1 回答
1758 浏览

java - jpl.PrologException:存在错误

我试图了解如何使用 JPL。为此,我将其中一个测试从 doc 部分 ( swipl\doc\packages\examples\jpl\java\Time) 复制到 eclipse 并尝试运行它。

如果我双击批处理文件,一切运行良好。如果我使用 eclipse 运行 Time 类,我会得到

我创建了一个简单的 java 项目。复制Time.javatime.pl根目录。我还创建了所需的路径变量并将其连接jpl.jar到项目。

JPL.init()作品。我在这部分的 if 语句上失败了:

0 投票
1 回答
1084 浏览

java - 在 JPL 中使用多个结果查询 Prolog

我想在 Prolog 中为 AI 建立一个知识库。首先,我想通过用大象、巨型蚂蚁等做一个玩具示例来尝试学习 Prolog 及其用途。

我正在使用:NetBeans 8.0.1、SWI-Prolog 6.6.6 和 Windows 8.1。一切都是 64 位的,并且环境变量设置正确。我还链接到jpl.jar我的 NetBeans 库中的 。

我的 Prolog 知识库如下所示:

受此启发。知识库在 SWI-Prolog 中没有任何错误。

但是,当 X 在 Java 中大于 ant 时试图获得多个答案时,我遇到了堆栈溢出错误。

这是我使用 JPL 的 Java 代码的片段。

Java 代码大部分取自这里

从我可以从 NetBeans 中的调试器中得到的信息来看,当 Java 试图确定solution.get("X")代码片段末尾的值时,似乎会发生堆栈溢出错误。

这是我的控制台输出的样子:

关于如何解决这个问题的任何想法?如果需要,我很乐意提供更多信息。

0 投票
0 回答
872 浏览

eclipse - JPL Prolog/JAVA 连接

我想从 Eclipse 控制台咨询我的 Prolog 项目。我安装了:SWI PROLOG 32 位和 ECLIPSE LUNA 32 位关于环境系统变量...我添加SWI_HOME_DIR了我的 swi prolog 路径,即C:\Program Files(x86)\swipl;

path在最后添加了变量;%PrologPath%\bin;%PrologPath%\lib\jpl.jar ;

我应该怎么做才能将 prolog-project 的输出输出到我的控制台?我应该在eclipse中构建什么样的项目,我应该创建什么样的java文件?有人可以给我一些代码来咨询我的序言项目吗?我的序言项目在序言主页( C:\Program Files (x86)\swipl\project1\src\file.pl )

0 投票
1 回答
872 浏览

java - 如何在java中获得解决方案X prolog

我使用 jpl 库来连接 prolog 和 java。在序言中,我可以执行查询:

输出是:X = [is_a(x1, x2), objectx(x1, apple), objectx(x2, fruit)].

但是在java中,我看不到这个查询的输出。我在java中尝试了一些代码:

java 中没有输出。这种情况有什么解决办法吗?

0 投票
0 回答
693 浏览

java - 合适的 jpl.jar 库版本


输出:


% 家庭.pl

你好,

我在 Eclipse 上运行上面的代码。通常没关系,除非我使用变量。在上述情况下,它应该打印出:

相反,它打印'X = null'。

之前在这里问过同样的问题: https ://stackoverflow.com/questions/30495077/swi-prolog-returns-null-but-hassolutions-true-and-also-allsolutions-is-true

问这个问题的人说这是由于jpl.jar 文件。如果这是问题所在,我在哪里可以找到合适的 jpl.jar 版本来解决我的问题?请注意,最近我下载了最新版本的 SWI-Prolog,其中可能还包括最新版本的 jpl.jar 库文件。这是我使用的版本。

谢谢。

0 投票
1 回答
223 浏览

java - 如何使用 JPL 在 java 和 prolog 之间共享对象状态?

我想在java中创建一个对象:

我想通过 jpl 查询将它传递给 prolog。

我怎样才能完成java来prolog对象传递?

我知道我可以在这样的 prolog 文件中使用 jpl_new:

但是,我想避免 jpl_new 调用,而只是将 jpl_call 与 java 对象 obj 一起使用。

反之, 我怎样才能完成 prolog 到 java 对象的传递?

我的意思是传递给 java,使用 jpl_new 调用创建的对象。

换句话说,我想在 java 和 prolog 之间共享一个对象状态。

0 投票
1 回答
1002 浏览

java - Java Die,数蛇眼

好的,对于大学来说,我们必须创建两个 Die 对象并滚动它们几次,计算出现的蛇眼的数量。

这是我拥有的代码,我需要一些帮助,因为每次编译和执行我的程序时,我都会失败。我不能 100% 确定我哪里出错了,除非你去我的大学,否则我不完全知道解决方案是否会有所帮助,但感谢任何帮助:) 谢谢。

失败是 - http://i.imgur.com/ghcOlpP.png

(这都是在 JPLIDE 中编码的)

0 投票
1 回答
232 浏览

java - JPL textToTerm 只产生匿名变量

我正在使用 JPL 在 Java 程序中执行一些 SWI-Prolog 查询。当我想创建一个新的查询时,我希望能够jpl.Util.textToTerm直接从用户输入中实例化术语,而无需自己解析它。

问题是这种方法似乎总是将变量标识符(即以大写字母开头的东西)解析为匿名变量(即以 开头的东西_)。

例如,jpl.Util.textToTerm("X")返回一个jpl.Variable具有 name_1而不是 的X,这显然是一个问题,因为这意味着我将无法在查询后访问任何绑定。

jpl.Query直接从字符串创建一个,就像new Query("reverse([1,2],X)")有完全相同的问题。

0 投票
0 回答
224 浏览

prolog - JPL 将字符串解析为原子

假设我有以下代码,它It works!使用 predicate 打印一个术语是否是一个字符串string/1

这不会打印任何东西,这不是我所期望的。

更奇怪的是,用new Query("atom",string)now 替换查询确实可以正常工作,这意味着字符串作为原子而不是 SWI-Prolog 7 字符串传递,即使我给 JPL 库解析的文本使用了作为字符串的双引号定界符,而不是原子定界符。

更奇怪的是,Java 调试器告诉我 Termstring有 name test(不带引号)和 type string!所以textToTerm似乎产生了一个正确的字符串,但是 Term 本身还是作为原子传递的!

这是一个错误,还是默认行为?

编辑: JPL 7 文档指出

SWI Prolog V7 字符串在 JPL7 中表示为类型为“字符串”的原子

那么就没有办法将真正的字符串传递给查询吗?