java - 如何更改 Jena 中 TriplePath 的节点?

标签 java jena apache-jena arq

我想更改 Jena TriplePath (org.apache.jena.sparql.core.TriplePath) 的一个节点,但我还没有找到任何方式。想象一下我有这段代码:

TriplePath tp = null;
....
//tp has been defined and not null

Node domain = tp.getSubject();
Node predicate = tp.getPredicate();
Node range = tp.getObject();
Node newNode = NodeFactory.createURI("http://www.example.com/example/example");

//And now? How can I set a Node (domain/predicate/range) of tp?

问题是,如何使用我创建的新节点设置 TriplePath tp 的任何节点(域/谓词/范围)?有什么办法吗?

最佳答案

您需要创建一个新路径并将其分配给tpTriplePath 是不可变的,Jena 中的 SPARQL 代数的其余部分也是如此(不应该使用任何方法来打败它!)。

对于更复杂的设置,有一个带有变量的模板并使用:

TriplePath Substitute.substitute(TriplePath triplePath, Binding binding)

关于java - 如何更改 Jena 中 TriplePath 的节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38186703/

相关文章:

java - 我哪里错了? (异常处理)

sparql - 耶拿/阿克 : Query Processing get stuck

docker - 如何使用命令行向 Apache Fuseki 添加新数据集?

java - 为什么会出现此异常 com.hp.hpl.jena.reasoner.rulesys.Rule$ParserException : In Using Apache Jena Reasoner?

SPARQL 两个节点之间的路径

java - 如何在低于 21 的 Android API 中使用 VectorDrawables?

java - 这些特殊情况类型转换是可以避免的吗?

java - 如何使用Gson库解析错误的JSON

java - Lambda 表达式 Java 1.8 代码到 Java 1.6

jena - 如何在 TDB 中存储多个本体