java - 如何将三元组添加到 jena 查询

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

谢谢!

最佳答案

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

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

关于java - 如何将三元组添加到 jena 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15163137/

相关文章:

java - SONAR 问题 "main"不应该是 "throw"任何 JAVA 7

java - 如何以编程方式在 SVG 文件中进行组转换?

java - 客户端 服务器 Java 应用程序

sparql - 从linkedgeodata.org 检索数据

java - Java 8 中 Java 11 方法 String.isBlank() 的替换

python - 如何在 Python 中使用 OAuth 对 Wikimedia Commons 查询服务进行身份验证?

java - SPARQL查询不检索java中的结果

sparql - 以编程方式将数据集上传到 fuseki

sparql - Wikidata - 尽管检索到结果,resultset.hasNext() 仍返回 false

java - Sparql 与 Java Jena