问题标签 [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 投票
1 回答
8271 浏览

java - 如何在 Windows 上使用 JPL(双向 Java/Prolog 接口)?

我对在 Java 中嵌入 Prolog 解释器很感兴趣。一种选择是使用JPL,但 JPL 站点上的下载链接已损坏,并且安装页面提到了我找不到的 jpl.zip。我下载了似乎包含 JPL 的 SWI-Prolog(它在安装时将其列为组件),但我仍然不确定如何将它与 Java 一起使用。

关于如何在 Windows 上使用 JPL 的任何想法?我可以使用另一个库来实现相同的目标吗?我遇到过一些,但它们似乎不如 JPL 稳定。

0 投票
1 回答
369 浏览

java - 在 jpl 中调用列表函数

我想知道是否有人设法使用了“列表”。JPL 中的命令来检查 Prolog 知识库的内容?JPL 要求您构建查询,并将根据您在查询中设置的变量返回解决方案。例如(Java):

我看不出这对于listing/0 或什至需要实例化输入的listing/1 是如何工作的。目前我正在玩形式的代码

它返回知识库中存在的函数:

答案:

但这还不够,因为没有返回任何目标。我想我需要的是一个函数(如果不能使用 JPL 调用列表函数),它作为变量返回谓词头以及必须满足的相关目标列表。不幸的是,我不熟悉列表功能的内部结构,所以我不确定如何去做。

提前致谢

0 投票
1 回答
2873 浏览

java - 如何将我的 Java UI 连接到 JPL Prolog 应用程序?

我正在使用SWI-Prolog提供的JPL在 Java 中编写一个应用程序,以从 Java 调用 Prolog。

我使用 Eclipse 作为 IDE。我不知道如何开始我在网上找到的这个例子:

这里的java代码:

如果我直接从 Prolog 运行 Prolog 程序,它可以正常工作,并且当我从 Java 应用程序调用它时也一样。

我还可以在 Eclipse 控制台中看到输出,并且可以回答问题。

但是我想为用户和系统之间的交互构建一个Java UI,但是我不知道如何从Java中的Prolog中获取代码并将其放入UI中。

例如,如何从 Java UI 捕获输入并将其传递给 Prolog 代码?

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 投票
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中用于解决问题的方法。我找不到其他解决方案来尝试。有谁有想法吗?
提前致谢。

0 投票
2 回答
653 浏览

java - 尝试在 OS X 中使用 JPL 和 YAP Prolog 时引发异常

我正在尝试使用 JPL 进行 Java 程序和 YAP Prolog 的交互。

在我的 java 文件中,这一行抛出异常:

Query query = new Query("consult", new Term[] { new Atom("test.pl") });

异常如下所示:

虽然我没有发现有人在 YAP 中报告了同样的问题,但有些人在使用 SWI 时遇到了这个问题,建议他们验证 SWI 是在多线程支持下编译的。以防万一我编译了支持多线程的 YAP,但它没有帮助。

这个问题只发生在 OS X 中,我在 Ubuntu 中尝试过,一切正常。

有人知道 OS X 中这个问题的解决方法吗?

0 投票
1 回答
1168 浏览

java - 将 SWI-Prolog 与 Eclipse 和 Java(以及 JUNG)一起使用:我应该使用 ProDT、PDT 还是两者都使用?

我想一起使用 SWI-Prolog、Eclipse 和 Java,我有两个相互关联的问题:

  1. 我不知道我是否应该使用ProDTPDT或两者结合使用。

  2. PDT 说它包括一个“使 Java 代码能够与 SWI-Prolog 交互的子系统”。我不知道这本身是否足够,或者我是否应该使用InterPrologJPL或三者的某种组合。

背景

我想与使用JUNG作为其数据类型的现有 java 代码库进行交互,因此整齐地适合 java 对象层次结构可能很有用。(我想使用 JUNG 对象(例如树和图)作为我的域来应用约束——尽管如果需要,我愿意以迂回的方式执行此操作,即将 JUNG 对象映射到使用 SWI 可用约束模式更易于管理的数据类型。 )

我想部署到 PC 和 MAC,也想试用 SWI 的CHRrp 包

0 投票
1 回答
764 浏览

prolog - 访问序言列表项

我一直在使用 jpl 从 java 调用 prolog。我在java中使用以下代码从prolog中获取X的值。

我的解决方案是——

我现在想做的是从解决方案中获取值 2 并将数字加倍。谁能帮助我如何处理?

0 投票
2 回答
1639 浏览

java - 如何在java中处理序言列表

我正在使用 jpl 连接 java 和 prolog。我正在尝试处理 java 中的序言列表。执行时我的序言代码返回如下列表

现在我正在尝试使用以下代码在 java 中处理此输出

执行此操作,我们得到查询的第一个解决方案,即

而且我能够打印出列表的第一个元素“38”

同样,我无法处理列表中的所有元素。请帮我这样做?

0 投票
1 回答
469 浏览

java - 在 Eclipse 插件中显示第三方 JNI 库的控制台输出

我正在使用 JPL,一个用于与 Java 中的 Prolog 交互的 JNI 库。在我的应用程序中,重要的是查看 Prolog 引擎生成的输出(例如:加载 Prolog 文件、执行单元测试等时)。当我在独立的 Java 应用程序中使用该库时,就会发生这种情况。

但是,当我将我的应用程序打包为 Eclipse 插件时,我再也看不到 JPL 生成的输出(这样的输出来自 Prolog 引擎)。

有人知道是否有办法在 Eclipse 控制台中查看此输出?

提前致谢。