У меня есть Visit
метод класса ElementVisitorBase
. Находясь в этом Visit
методе, я хочу получить Filter
выражение Element
; затем я хочу преобразовать это Filter
выражение в Element
, чтобы я мог пройти по нему и найти, есть ли в этом Filter
выражении предложение OPTIONAL
. У меня есть код ниже,
public void visit(ElementFilter el) {
Element ele = (Element) el.getExpr();
ElementVisitorsub ev = new ElementVisitorsub();
ElementWalker.walk(ele, ev);
}
Но я получаю ошибку, которая говорит: «Выражение не может быть преобразовано в элемент 'ele'". Кроме того, если я использую ElementFilter
параметр "el" непосредственно для моего Walker
следующим образом: ElementWalker.walk(el, ev)
, он зацикливается на бесконечность. Итак, какие-либо решения для этого?
Спасибо!
The Filter expression inside my initial Query is as follows.
FILTER ( ( EXISTS {
?var1 <http://www.wikidata.org/prop/direct/P276> ?var5 .
?var5 <http://www.wikidata.org/prop/direct/P31> ?var6 .
?var5 ( <http://www.wikidata.org/prop/direct/P361> */
<http://www.wikidata.org/prop/direct/P131> *)
<http://www.wikidata.org/entity/Q5061> .
OPTIONAL {
?var5 <http://www.wikidata.org/prop/direct/P625> ?var2 .
}
}
)
)