2016-11-13 81 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