首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在jpl中作为一个模块查阅文件

如何在jpl中作为一个模块查阅文件
EN

Stack Overflow用户
提问于 2013-07-24 14:48:34
回答 1查看 1.2K关注 0票数 1

由于jpl不支持多个Prolog vms,所以我试图将prolog文件作为一个模块进行查询。

在swipl控制台中,我可以成功地完成这样的任务。

代码语言:javascript
复制
?- consult(mod1:'data/load.pro') .

在java中(实际上是scala,但它们都在jvm之上),我可以直接查阅文件w/o。

代码语言:javascript
复制
scala> import jpl._

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

scala> q.query()
...
true

然而,当我试图作为模块查阅文件时,我总是会得到异常。

代码语言:javascript
复制
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文件的正确方法吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-24 15:25:48

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

代码语言:javascript
复制
val q = new Query("mod1:consult('full_path_to/load.pl')")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17837467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档