问题标签 [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.
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)如果我想打印一个变量,我该怎么做?
java - 在 Java UI 上重定向 Java 控制台内容
我有一个 prolog 文件(专家系统),我使用 Jpl 库(org.jpl7.*)从 Java 中查阅,我有一个 UI,我想在其中显示 prolog 查询的输出。这是我的自定义输出流,应该将每个控制台内容重定向到我的界面(jTextAreaOUTPUT 是我重定向内容的地方)
这是我的接口类中的一些行:这调用了自定义输出流方法:
由于某些奇怪的原因,它不适用于这个 prolog 文件(我尝试使用其他文件并且它有效):UI 冻结并且内容一直显示在 java 控制台(eclipse)中。专家系统文件与write
Prolog 中的指令一起使用(例如write('Lorem Ipsum')
)
- 为什么standardOut中从未使用过?可以这样声明吗?
- 有没有办法强制重定向应该在 Eclipse 控制台中编写的所有文本?
我还尝试在 prolog 中使用“write Stream”方法,但是(仅针对此 prolog 文件,可能是由于递归)即使 outpus 写入 txt 文件,UI 也会冻结。
java - 有没有办法从 Java 动态生成 Prolog 规则(基于用户输入)?
动态关键词。
我一直在为 SWI-Prolog 尝试 JPL,但据我所知,所能做的就是采用预先编写的 Prolog 文件并动态构建一些要在该知识库上运行的查询。它无法实际添加到知识库中。
我设想的是运行 Java 程序的用户能够通过某种命令行界面向 Prolog 知识库添加规则(即设置用户在交互式小说故事中创建的某些对象的属性)。
JPL 能做到这一点吗?可以有任何Prolog接口吗?还是我必须回去寻找一个既不是过度设计(Cyc)也不是乱七八糟(Tweety)的Java知识表示库?如果有,你有什么推荐的吗?
eclipse - 如何在 OS X (JPL) 上的 Eclipse 上使用 Java 配置 SWI-prolog
我正在尝试让 Java 和 Prolog 一起工作(在 OS X 10.11.1 上)。我想要的只是从 Java 输入我的 Prolog 查询。
当我运行 Java 代码时
我收到以下错误:
首先,我将条目添加到我的 PATH 变量中,因为我认为 SWIProlog 无法找到,但它没有显示任何效果。我的 PATH 包含:
希望有人知道怎么回事。有任何想法吗?
java - Java-Prolog 错误结果
我在 Java 中使用 Org.JPL7 进行了查询,并尝试以不同的方式进行多次,但它给了我很多错误的结果。.pl 文件中的代码是下一个。
接下来是 Java 代码。
结果:
我也试试这个。
结果:
和这个...
结果:
我尝试使用“q2.nextSolution()”和“q2.nextElement()”,但结果总是相同的“_N”,其中 N 是任意数字“0,1,2,3,4”,我不知道为什么。
java - 无法从 swi-prolog 和 JPL 获得解决方案
我想通过 JPL 使用 DCG 语法获取 prolog 解决方案,其中一个存储在外部文件中,但是当我getSolution
从我的类中调用一个方法时,会从 prolog 中得到一个异常:
序言类:
java - 将参数从 java 传递给 Prolog
我在 Prolog 中有下面的代码,我用 Java 制作了一个 GUI。
在这个 gui 中,我有一些带有症状的复选框,我只想传递 findDiseases 谓词列表中单击的症状。谁能告诉我我该怎么做?我唯一知道的是如何调用开始谓词..
java - 将 java 控制台内容重定向到 UI jframe
我有一个 prolog 文件(专家系统),我使用 Jpl 库(org.jpl7.*)从 Java 咨询,我有一个使用 jframe 的 UI,我想在其中显示 prolog 查询的输出。在 netbeans 中查阅 prolog 文件时,请阅读() 谓词在控制台 java 中运行;我想在界面中的 jtextarea 中运行。谁能告诉我该怎么做?
在这个 UI 中,我有一个 jtextarea 用于回答,另一个 jtextarea 用于评分。这是使用 swi prolog 的 prolog 代码:
这是netbeans代码:
prolog - 如何使用 JPL 获取 swi-prolog 控制台输出?
我的一个项目需要 swipl 控制台输出(跟踪输出)。我正在尝试使用 JPL7 API 来执行此操作,但我似乎找不到从 swipl 控制台获取输出的方法。有没有办法我可以做到这一点?或者是否有一个我可以运行的查询将跟踪输出定向到一个文件,然后从那里工作?
提前致谢。
prolog - 如何检索 Prolog 中链式规则推断产生的所有事实
我已经实现了几个链式规则,最后一个规则根据前面的结果获得所需的结果。
我需要获得为每条规则推断出的每一个事实。我正在使用 jpl 库从 Java 执行此操作。
即使在 Prolog 中,我如何才能获得所有这些事实?在实际程序中,我有不止两条规则。