gpt4 book ai didi

java - 如何在 jpl 中将文件作为模块进行查询

转载 作者:太空宇宙 更新时间:2023-11-04 07:30:13 27 4
gpt4 key购买 nike

我正在尝试将 Prolog 文件作为模块进行查询,因为 jpl 不支持多个 prolog vm。

在 swipl 控制台中,我可以成功地执行类似的操作

?- consult(mod1:'data/load.pro') .

在java中(嗯,它实际上是scala,但它们都在jvm之上),我可以直接查阅文件而不会出现问题

scala> import jpl._

scala> val q = new Query("consult", Array[Term](new Atom("data/load.pl")))

scala> q.query()
...
true

但是,当我尝试将文件作为模块查阅时,我总是遇到异常。

scala> val q = new Query("consult", Array[Term](new Atom("mod1:data/load.pl")))

scala> q.query()
jpl.PrologExcepion: PrologException: error(existence_error(source_sink, 'mod1:data/load.pl'), _0)
at jpl.Query.get1(Query.java:336)
at jpl.Query.hasMoreSolutions(Query.java:258)
at jpl.Query.oneSolution(Query.java:688)
at jpl.Query.query(Query.java:747)
at .<init>(<console>:15)
at .<clinit>(<console>)
....

有人可以指出我在 jpl 中将 prolog 文件作为模块进行查询的正确方法吗?谢谢!

最佳答案

我认为您可以交换谓词上的模块限定,当然,这将允许您传递源文件的完整路径:

val q = new Query("mod1:consult('full_path_to/load.pl')")

关于java - 如何在 jpl 中将文件作为模块进行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17837467/

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