In我试图分别检索查询的OPTIONAL
和NON OPTIONAL
部分中涉及的SPARQL表达式的三元组。
我使用了API ARQ Jena访问者,但ElementPathBlock
、ElementGroup
和ElementOptional
都不够。ElementPathBlock
检索所有三元组,ElementGroup
检索三元组组(由{}
包围(,ElementOptional
检索可选的Elements
。
你能帮我吗?
感谢您的回答。我找到了解决办法。我按照你的建议使用ElementWalker。然而,ElementWalker对于像往常一样遍历SPARQL查询没有用处(或者我找不到好的方法(,我的意思是从左到右和自上而下的遍历。我必须使用instanceof和每种类型的SPARQL表达式(ElementPathBlock、ElementOptional等(以及递归编写自己的方法来遍历SPARQL。通过这种方式,我能够提取查询的可选部分(和强制部分(,以及并集和减号等。