问题标签 [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.
swi-prolog - SWI-Prolog 中的 JPL 和 CLPFD
我需要将 CLPFD 查询从 JPL 发送到 SWI-Prolog,并将它们的执行输出接收到 Java 程序中。PFA 我使用 JPL 从 Java 端使用的代码。
现在我需要使用 JPL 将 CLPFD 查询发送到 SWI-Prolog。查询如下。
我想知道如何使用 JPL 将 CLPFD 发送到 SWI-Prolog 并取回执行的输出。如下:
我想知道这在 JPL 中是否可行,如果可以,那么有人可以分享他们在这方面的专业知识吗?
java - jpl.PrologException:存在错误
我试图了解如何使用 JPL。为此,我将其中一个测试从 doc 部分 ( swipl\doc\packages\examples\jpl\java\Time
) 复制到 eclipse 并尝试运行它。
如果我双击批处理文件,一切运行良好。如果我使用 eclipse 运行 Time 类,我会得到
我创建了一个简单的 java 项目。复制Time.java
到time.pl
根目录。我还创建了所需的路径变量并将其连接jpl.jar
到项目。
JPL.init()
作品。我在这部分的 if 语句上失败了:
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")
代码片段末尾的值时,似乎会发生堆栈溢出错误。
这是我的控制台输出的样子:
关于如何解决这个问题的任何想法?如果需要,我很乐意提供更多信息。
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 )
java - 如何在java中获得解决方案X prolog
我使用 jpl 库来连接 prolog 和 java。在序言中,我可以执行查询:
输出是:X = [is_a(x1, x2), objectx(x1, apple), objectx(x2, fruit)].
但是在java中,我看不到这个查询的输出。我在java中尝试了一些代码:
java 中没有输出。这种情况有什么解决办法吗?
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 库文件。这是我使用的版本。
谢谢。
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 之间共享一个对象状态。
java - Java Die,数蛇眼
好的,对于大学来说,我们必须创建两个 Die 对象并滚动它们几次,计算出现的蛇眼的数量。
这是我拥有的代码,我需要一些帮助,因为每次编译和执行我的程序时,我都会失败。我不能 100% 确定我哪里出错了,除非你去我的大学,否则我不完全知道解决方案是否会有所帮助,但感谢任何帮助:) 谢谢。
失败是 - http://i.imgur.com/ghcOlpP.png
(这都是在 JPLIDE 中编码的)
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)")
有完全相同的问题。
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 中表示为类型为“字符串”的原子
那么就没有办法将真正的字符串传递给查询吗?