2016-07-04 31 views
2

Ich möchte einen Knoten eines Jena TriplePath (org.apache.jena.sparql.core.TriplePath) ändern, aber ich habe keine Weise gefunden. Stellen Sie sich vor ich habe diesen Code:Wie ändere ich den Knoten eines TriplePath in Jena?

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? 

Die Frage ist, wie kann ich jeden Knoten gesetzt (Domain/Prädikat/Bereich) des TriplePath tp mit dem newNode ich angelegt habe? Gibt es eine Art und Weise?

Antwort

1

Sie müssen einen neuen Pfad erstellen und ihn tp zuweisen. TriplePath s sind unveränderlich, ebenso wie der Rest der SPARQL-Algebra in Jena (jede Möglichkeit, dies zu verhindern, sollte nicht verwendet werden!).

zu komplexeren Einstellungen, haben Sie eine Vorlage mit Variablen und Verwendung:

TriplePath Substitute.substitute(TriplePath triplePath, Binding binding)