【问题标题】:tuProlog - using multiple files with consult - can't get engine to load additional files with consult(otherFile.pl)tuProlog - 使用多个文件进行咨询 - 无法让引擎通过咨询加载其他文件(otherFile.pl)
【发布时间】:2017-03-28 18:42:22
【问题描述】:

编辑:清晰 - 主 .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 文件中的咨询是否正确?

有人可以发布一个例子,如果没有,应该如何做?手册没有详细说明这个主题。

谢谢

【问题讨论】:

    标签: java prolog tuprolog


    【解决方案1】:

    该手册的某些部分有些过时 - 它说要使用 Consult/1,而在其他地方则声明不推荐使用 Consult/1,而 include/1 是替代品。

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

    希望这已经足够清楚了!

    【讨论】:

      猜你喜欢
      • 2020-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多