2016-11-13 37 views
2

字符串列表我有一個序言查詢這就需要數組作爲原子:JPL7,在序言查詢

searchEventsOnCategory(類別,事件) 分類是字符串的列表。

示例輸入: searchEventsOnCategory([ '酒吧', '迪斯科'],事件)

輸出: 事件= [listOfEvents]

searchEventsOnCategory(Categories,Events):- 
    findall([X,V], event(X,_,_,V), List), 
    compareCategories(List,Categories,Events1), 
    Events = Events1. 

我的Java代碼是:

public ArrayList<String> getEventsByPrologWithCategories(ArrayList<String> Categories){ 
    ArrayList<String> events = new ArrayList<String>(); 

    //(Persons,Budget,Categories,Events) 
    Variable X = new Variable("X"); 
    Compound V = new Compound("[Bar]"); 

    Query q4 = 
      new Query(
       "searchEventsOnCategory", 
       new Term[] {V,X} 
      ); 

    ... 

    return events; 

} 

我該如何去隱藏V,那prolog纔會把V作爲一個字符串列表?

回答

1

代替化合物,你應該使用期限

Variable X = new Variable("X"); 

Term t = Util.textToTerm("[Bar]"); 

Query q4 = 
    new Query(
     "searchEventsOnCategory", 
     new Term[] {t,X} 
     ); 
+0

那是有用的,在我的情況下工作:) – DraGott