如何向jena查询添加三元组



假设我有一个jena查询对象:

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

  1. 构造一个代数表达式并转换为查询(OpAsQuery)
  2. Query对象是经过清理的解析结构,可以被操作(Query.getQueryPattern)
  3. 在解析前进行字符串操作。

最新更新