假设我有一些耶拿查询对象:

String query = "SELECT * WHERE{ ?s <some_uri> ?o ...etc. }";
Query q = QueryFactory.create(query, Syntax.syntaxARQ);


如何获得有关jena查询对象的信息并以有效方式迭代地增加三元组?例如,假设我要添加三元组

?o dcterms:title "TheBestTitle".
?o dcterms:date ?date.


查询,也许还有更多。
是否有某种方法可以将这些三元组添加到查询中,或者可以做一些魔术来创建一个新的查询对象,该对象看起来像原始对象,并添加了这些三元组?假设我可能还需要从查询的原始版本中获取信息(例如,List resultVars = q.getResultVars();)。

我拥有的一些线索是使用Jena API提供的AlgebraGenerator和Op类,但是在这样的上下文中,我似乎找不到任何合理的用例。

谢谢!

最佳答案

http://jena.apache.org/documentation/query/manipulating_sparql_using_arq.html


构造代数表达式并转换为查询(OpAsQuery)
可以操纵查询对象,它是清理后的解析结构,(Query.getQueryPattern
在解析之前通过字符串操作来做到这一点。

08-25 14:32
查看更多