如何在Jena中更改TriplePath的节点?

时间:2016-07-04 14:07:38

标签: 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?

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

1 个答案:

答案 0 :(得分:1)

您需要创建新路径并将其分配给tpTriplePath是不可变的,就像耶拿的其他SPARQL代数一样(不应该使用任何打败它的方法!)。

对于更复杂的设置,请使用包含变量的模板并使用:

TriplePath Substitute.substitute(TriplePath triplePath, Binding binding)