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

prolog - 如何修复“配置:错误:找不到 java 包含文件”?

要安装 jpl(Prolog 的 Java 接口),当我输入“make”时,它显示

如何解决?

谢谢~

0 投票
1 回答
493 浏览

ubuntu - 在 Ubuntu 11.10 64 位上编译 Prolog-JPL?

我正在尝试按照此处所述编译 prolog-JPL: https ://code.google.com/p/javanaproche/wiki/HowToJPL

不幸的是,它以错误结束:

它似乎在抱怨 Prolog 代码中的问题,但我在另一台机器上编译它很好,它是 32 位,而不是 64 位。

更新:删除文件夹,重新下载并尝试编译后,我得到一个不同的错误。我想知道是否是不检查是否安装了库并因此而失败的情况?

0 投票
1 回答
385 浏览

java - 使用 JPL 从 Java 重新启动 Prolog 引擎

在一个使用 JPL 与 Prolog 交互的 java 应用程序中,我希望能够使用不同的设置重新启动 prolog 引擎。例如,我想从 SWI 更改为 YAP(我通过方法JPL.setNativeLibraryDir以及我需要使用的正确本机库的路径来配置使用哪个引擎)。

因此,在更改 JPL 配置后,我试图停止已经运行的 prolog 引擎,以便之后使用JPL.init().

首先我看了一下JPL.halt(),但是文档说它已被弃用,并且该方法的源代码中的注释说它是无操作的。

之后,我尝试使用“halt”启动查询,但尽管我在控制台中看到“YAP 执行已停止”,但我的 Java 应用程序也已停止(!)。

有没有办法使用 JPL 重新启动逻辑引擎而不杀死我的 java 应用程序?

0 投票
1 回答
778 浏览

java - 在 Java EE Web 应用程序中使用 JPL (Java + Prolog)

我想通过 JPL 开发一个 Java EE Web 应用程序,该应用程序需要 Prolog 来完成某些与搜索相关的任务。Web 应用程序将部署在 JBoss 应用程序服务器中。Prolog 引擎可以是 YAP 或 SWI(afaik 目前唯一与 JPL 兼容的 Prolog 引擎)。Prolog 查询依赖于存储在(可能很大的)数据库中的信息。

如果有人尝试过这个或类似的东西,您能否就以下问题给我反馈?:

  • 管理需要访问 Prolog 引擎的并发 http 会话的最佳方法是什么?是否有可能 - 可取? - 为每个单独的会话分配其自己的 Prolog 引擎?如果这个解决方案有效,是否可以实现类似于“Prolog 引擎池”的东西来快速将 Prolog 引擎分配给新会话?. 或者最好的解决方案是拥有一个同步管理所有查询请求的 Prolog 引擎?(慢慢地)。
  • 如何管理 Prolog 与数据库的交互?如果数据库中的数据经常变化,Prolog 需要这些数据来解决它的查询,那么让 Prolog 引擎中的事实与数据库中的数据保持同步的最佳策略是什么?如果数据库变大,在每个新会话中从头开始的海军选项(例如,将数据库中的所有数据作为 Prolog 事实重新加载)似乎不是一个好主意。
  • 在实施期间与 java-prolog-database 交互相关的任何其他预期问题/困难?

提前致谢!

0 投票
1 回答
957 浏览

sql - JPL:javax.persistence.Query.setParameter sql-injection 安全吗?

我可以 sql-inject setParameter 设置的 jpl 参数吗?我的意思是,我知道如果我有这样的事情我可以做到:

我可以用这样的东西做类似的事情吗?:

0 投票
2 回答
4257 浏览

java - 使用 JPL 查询 Prolog 变量

我想通过JPL查询在java中使用Prolog,我阅读了文档(http://www.swi-prolog.org/packages/jpl/java_api/getting_started.html)prolog谓词是这些:

我的代码看起来像这样

根据我的序言谓词,我的 java 代码应该检索“mary”和“steve”,但我得到了这个:

我做错了什么?提前致谢

编辑:这是我的整个测试

这就是我在我的 java 控制台中得到的结果

0 投票
0 回答
586 浏览

java - 在 Prolog 和 java 中查询谓词

我想通过 JPL 查询以在 java 中使用 Prolog,我想在 java 中调用这样的谓词:

我在java中进行查询以调用“predicate_test”,如下所示:

我从 catch 块中收到此消息

我的方法有什么问题?

提前致谢

0 投票
1 回答
963 浏览

java - 通过 JPL 从 SWI-Prolog 检索 ERROR 和 WARNING 消息

使用 JPL 时,我在检索错误和警告消息时遇到了一些问题。例如,尝试直接从 SWI-Prolog 查询不存在的文件会产生以下输出:

但是,通过 JPL 执行此查询时,不会抛出异常,并且 Query 类的 hasMoreSolutions() 方法返回 true:

我怎样才能检测到发生了错误并且咨询 NonExistingFile.pl 实际上失败了?同样的问题适用于检索不会导致谓词执行失败的警告消息。

编辑:将 JPL 与最高 6.0.2 的 SWI-Prolog 版本一起使用时,会发生所描述的情况

0 投票
1 回答
616 浏览

java - 将 JPL 输出转换为 Java 中的字符串

我通过 JPL 在 java 中使用 Prolog,我有一些带有格式谓词的谓词:

在 java 中使用 JPL 格式的输出到 java 中的控制台输出,我怎样才能将此结果检索到 java 中的字符串变量中?

提前致谢

0 投票
4 回答
12991 浏览

java - JPL/SWI Prolog 配置失败

我现在正在配置 JPL,并想使用 java 与 swi-prolog 一起工作。

我下载了最新的稳定版SWI-Prolog,6.2.0,安装在D:\swipl

首先,我在 PATH virable 中添加了以下路径:D:\swipl\bin,它应该包含所有需要的 dll 文件。

然后,我在 CLASSPATH virable 中添加了以下路径:D:swipl\lib\jpl.jar,这应该是需要的 jar 文件。

当我尝试运行提供的版本示例时,出现以下错误:

在网上搜索后,我发现很多人只是java.lang.UnsatisfiedLinkError: no jpl in java.library.path因为PATH变量的设置而得到,而不是我在这里得到的错误:(java.lang.UnsatisfiedLinkError: jpl.fli.Prolog.thread_self()I是的,行尾有一个“I”)。

以前有没有人收到过这个错误?我已经尝试了几个以前版本的 SWI-Prolog,但也遇到了其他类型的错误。我正在使用 Eclipse IDE 进行 Java 开发——我错过了什么吗?