JPL7, список строк в пролог-запросе

У меня есть пролог-запрос, который нуждается в массиве в качестве атома:

searchEventsOnCategory (Категории, События) Категории - это список строк.

Пример ввода: searchEventsOnCategory(['Bar','Disco'],Events)

Вывод: Event = [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, чтобы пролог получил V в виде списка строк?

1 ответ

Решение

Вместо сложного, вы должны использовать термин

Variable X = new Variable("X");

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

Query q4 =
    new Query(
        "searchEventsOnCategory",
        new Term[] {t,X}
        );
Другие вопросы по тегам