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

java - 带有 Java 的 Prolog JPL 命令

我有一个用 prolog 编写的专家系统,当我从 java 接口运行它时,它会给我带来问题。这些问题与输出的通信有关。我尝试了 Streams,但是(仅在这个项目中)它们不能正常工作,应用程序在编写 txt 文件时显然冻结了,我做了这样的事情:

在写作结束时,我用 java 阅读了 txt,在我所有的旧系统中,这个方法工作得很好,但是有了这个,可能是为了推理或递归调用,出了点问题(java 端,因为如果我运行它直接从 swiprolog 一切正常)!所以我决定使用 jpl_get 并打电话,但我是新手。我需要一些帮助!在我的界面中,我有一个 jtextarea 可以打印 prolog 系统的所有输出。我称之为“jTextAreaOUTPUT”,这个组件在我的 java 类接口中。

我的项目文件夹是(在windows中):“main_folder”然后在里面我有(就像所有的eclipse项目一样)src,bin ...我将prolog系统pl文件放在main_folder中,所以interface.java的路径是:src /mypackage/interface.java 如何在我的 jtextarea 中打印示例消息“Start Message”?我试过这个:

...在我的 Java 应用程序中,我以这种方式调用查询:

当我从 main() 调用它时,t2 是“开始”!所以当我运行它时,系统会给我“ClassNotFoundException”!

问题1)有人可以给我一个很好的例子来做我想要的吗?

问题 2) jpl get 和 call 中变量 X 的作用是什么?

问题 3)如果我想打印一个变量,我该怎么做?

0 投票
1 回答
233 浏览

java - 在 Java UI 上重定向 Java 控制台内容

我有一个 prolog 文件(专家系统),我使用 Jpl 库(org.jpl7.*)从 Java 中查阅,我有一个 UI,我想在其中显示 prolog 查询的输出。这是我的自定义输出流,应该将每个控制台内容重定向到我的界面(jTextAreaOUTPUT 是我重定向内容的地方)

这是我的接口类中的一些行:这调用了自定义输出流方法:

由于某些奇怪的原因,它不适用于这个 prolog 文件(我尝试使用其他文件并且它有效):UI 冻结并且内容一直显示在 java 控制台(eclipse)中。专家系统文件与writeProlog 中的指令一起使用(例如write('Lorem Ipsum')

  1. 为什么standardOut中从未使用过?可以这样声明吗?
  2. 有没有办法强制重定向应该在 Eclipse 控制台中编写的所有文本?

我还尝试在 prolog 中使用“write Stream”方法,但是(仅针对此 prolog 文件,可能是由于递归)即使 outpus 写入 txt 文件,UI 也会冻结。

0 投票
0 回答
395 浏览

java - 有没有办法从 Java 动态生成 Prolog 规则(基于用户输入)?

动态关键词

我一直在为 SWI-Prolog 尝试 JPL,但据我所知,所能做的就是采用预先编写的 Prolog 文件并动态构建一些要在该知识库上运行的查询。它无法实际添加到知识库中。

我设想的是运行 Java 程序的用户能够通过某种命令行界面向 Prolog 知识库添加规则(即设置用户在交互式小说故事中创建的某些对象的属性)。

JPL 能做到这一点吗?可以有任何Prolog接口吗?还是我必须回去寻找一个既不是过度设计(Cyc)也不是乱七八糟(Tweety)的Java知识表示库?如果有,你有什么推荐的吗?

0 投票
1 回答
972 浏览

eclipse - 如何在 OS X (JPL) 上的 Eclipse 上使用 Java 配置 SWI-prolog

我正在尝试让 Java 和 Prolog 一起工作(在 OS X 10.11.1 上)。我想要的只是从 Java 输入我的 Prolog 查询。

当我运行 Java 代码时

我收到以下错误:

首先,我将条目添加到我的 PATH 变量中,因为我认为 SWIProlog 无法找到,但它没有显示任何效果。我的 PATH 包含:

希望有人知道怎么回事。有任何想法吗?

0 投票
0 回答
34 浏览

java - Java-Prolog 错误结果

我在 Java 中使用 Org.JPL7 进行了查询,并尝试以不同的方式进行多次,但它给了我很多错误的结果。.pl 文件中的代码是下一个。

接下来是 Java 代码。

结果:

我也试试这个。

结果:

和这个...

结果:

我尝试使用“q2.nextSolution()”和“q2.nextElement()”,但结果总是相同的“_N”,其中 N 是任意数字“0,1,2,3,4”,我不知道为什么。

0 投票
0 回答
388 浏览

java - 无法从 swi-prolog 和 JPL 获得解决方案

我想通过 JPL 使用 DCG 语法获取 prolog 解决方案,其中一个存储在外部文件中,但是当我getSolution从我的类中调用一个方法时,会从 prolog 中得到一个异常:

序言类:

0 投票
0 回答
270 浏览

java - 将参数从 java 传递给 Prolog

我在 Prolog 中有下面的代码,我用 Java 制作了一个 GUI。

在这个 gui 中,我有一些带有症状的复选框,我只想传递 findDiseases 谓词列表中单击的症状。谁能告诉我我该怎么做?我唯一知道的是如何调用开始谓词..

0 投票
0 回答
220 浏览

java - 将 java 控制台内容重定向到 UI jframe

我有一个 prolog 文件(专家系统),我使用 Jpl 库(org.jpl7.*)从 Java 咨询,我有一个使用 jframe 的 UI,我想在其中显示 prolog 查询的输出。在 netbeans 中查阅 prolog 文件时,请阅读() 谓词在控制台 java 中运行;我想在界面中的 jtextarea 中运行。谁能告诉我该怎么做?

在这个 UI 中,我有一个 jtextarea 用于回答,另一个 jtextarea 用于评分。这是使用 swi prolog 的 prolog 代码:

这是netbeans代码:

0 投票
1 回答
343 浏览

prolog - 如何使用 JPL 获取 swi-prolog 控制台输出?

我的一个项目需要 swipl 控制台输出(跟踪输出)。我正在尝试使用 JPL7 API 来执行此操作,但我似乎找不到从 swipl 控制台获取输出的方法。有没有办法我可以做到这一点?或者是否有一个我可以运行的查询将跟踪输出定向​​到一个文件,然后从那里工作?

提前致谢。

0 投票
1 回答
517 浏览

prolog - 如何检索 Prolog 中链式规则推断产生的所有事实

我已经实现了几个链式规则,最后一个规则根据前面的结果获得所需的结果。

我需要获得为每条规则推断出的每一个事实。我正在使用 jpl 库从 Java 执行此操作。

即使在 Prolog 中,我如何才能获得所有这些事实?在实际程序中,我有不止两条规则。