2015-05-13 2 views
0

Я использую библиотеки jpl для подключения пролога и java. В прологе, я могу выполнить запрос:Как получить решение X пролог в java

?- meaning_forms([apple,is,fruit],X). 

выход: X = [is_a(x1, x2), objectx(x1, apple), objectx(x2, fruit)].

Но в Java, я не могу увидеть результат этого запроса. Я пробовал код в java:

Variable X = new Variable("X"); 
Query q4 = new Query("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 нет выхода. Любое решение в этом случае?

+0

Ваше выражение, 'новый запрос ("meaning_forms", новый срок [] {новый Atom ("яблоко, есть, фрукты"), X});' генерирует запрос это выглядит как 'mean_forms ('apple, is, fruit', X)', поэтому первый аргумент не будет массивом. Я думаю, вам нужно что-то вроде: 'new Query (« значение_формы », новый термин [] {Util.termArrayToList (новый термин [] {новый Atom (« яблоко »), новый Atom (« is »), новый Atom (« fruit ")}), X});', или некоторые такие ... :) – lurker

ответ