SPARQL ElementPathBlock
Я пытаюсь получить тройки выражения SPARQL, участвующего в OPTIONAL
а также NON OPTIONAL
часть запроса, отдельно.
Я использовал API ARQ Jena посетителя, но ни ElementPathBlock
ни ElementGroup
ни ElementOptional
достаточно. ElementPathBlock
извлекает все тройки и ElementGroup
извлекает группы троек (заключенные в {}
), а также ElementOptional
необязательный Elements
,
Не могли бы вы мне помочь, пожалуйста?
0 ответов
Спасибо за Ваш ответ. Я нашел решение. Я использовал ElementWalker, как вы предложили. Однако ElementWalker бесполезен (или я не смог найти хороший способ) для обхода запроса SPARQL, как обычно, я имею в виду обход слева направо и сверху вниз. Мне пришлось написать свой собственный метод обхода SPARQL с использованием instanceof и каждого типа выражения SPARQL: ElementPathBlock, ElementOptional и т. Д., А также рекурсии. Таким образом, я смог извлечь необязательную часть (и обязательную часть) запроса, а также объединение и минус и т. Д.