如何在java中获得解决方案X prolog

时间:2015-05-13 12:30:50

标签: java prolog ffi jpl

我使用jpl库来连接prolog和java。在prolog中,我可以执行查询: ? - meaning_forms([apple,is,fruit],X)。 输出为:X = [is_a(x1,x2),objectx(x1,apple),objectx(x2,fruit)]。 但是在java中,我看不到这个查询的输出。我在java中尝试了一些代码: 变量X =新变量(" X"); 查询q4 =新查询(" meaning_forms",new Term [] {new Atom(" apple,is,fruit"),X}); while(q4.hasMoreElements()){     java.util.Hashtable solution =(Hashtable)q4.nextElement();     System.out.println(" X =" +(Term)solution.get(" X")); } java中没有输出。这种情况的解决方案?

1 个答案:

答案 0 :(得分:1)

Hashtable[] solutions = q4.allSolutions();
for (int i = 0 ; i < solutions.length; ++i) {
    System.out.println("X = " + solutions[i].get(X));
}

另见http://www.swi-prolog.org/packages/jpl/java_api/getting_started.html