如何在jena Query中添加三元组

时间:2013-03-01 17:10:45

标签: java sparql 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 Classes,但我似乎无法在上下文中找到任何合理的用例。

谢谢!

1 个答案:

答案 0 :(得分:2)

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

  1. 构造代数表达式并转换为查询(OpAsQuery)
  2. 可以操纵查询对象(已清理的已解析结构)(Query.getQueryPattern
  3. 在解析之前通过字符串操作来完成。