gpt4 book ai didi

java - tuProlog - 通过咨询使用多个文件 - 无法让引擎通过咨询加载其他文件(otherFile.pl)

转载 作者:行者123 更新时间:2023-11-30 06:49:38 25 4
gpt4 key购买 nike

编辑:清晰度 - 主 .pl 文件加载,所有被告知加载但未加载的子文件。 (所有请参阅('subfile.pl')。)

我有一个使用 tuProlog 的 Java 项目。它将理论称为:

Theory theory = new Theory(":-consult('main.pl').");
engine.setTheory(theory);

这是按照手册的。file.pl 与其他 prolog 文件位于同一文件夹中。在 main.pl 内部,我还有进一步

consult('otherfile.pl').

加载附加文件的语句(多个)。

文件夹结构为:

src/main.pl
src/Prolog_Files/otherfile.pl (multiple)
src/main/java/JavaStuff

我无法让引擎加载我告诉它在主文件内部查阅的理论。pl

  • 我尝试过:给它绝对路径,而不仅仅是文件名。
  • 移动文件。

我想知道tuProlog的用法是否有一些我不明白的地方?

该理论在加载以下内容时有效:

Theory theory = new Theory(new FileInputStream(url_of_file)).

但是,这在构建 jar 时给我带来了问题,因为它找不到文件位置。

我是否尝试正确加载文件?我在主 .pl 文件中的查询正确吗?

有人可以发布一个示例来说明如果没有的话应该如何完成吗?该手册没有详细阐述这个主题。

谢谢

最佳答案

该手册的某些部分略有过时 - 它说要使用Consult/1,而其他地方则指出Consult/1已被弃用,而include/1是替代品。

其次,当使用2p.jar时,它从项目根目录读取Prolog文件作为其根目录。创建 jar 时,2p.jar 不能位于项目 jar 内。它们应该位于相对文件夹中,并且 2p.jar 以 2p.jar 的位置作为 root 读取 Prolog 文件。它似乎无法读取项目 jar 内部。

希望这足够清楚!

关于java - tuProlog - 通过咨询使用多个文件 - 无法让引擎通过咨询加载其他文件(otherFile.pl),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43077485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com