In Jena, Resource
Objekte selbst sind nicht in das Modell. Das Modell enthält nur Tripel - Statement
Objekte, die einen Subjekt, ein Prädikat und ein Objekt enthalten (normalerweise abgekürzt SPO). Irgendeines von S, P oder O kann eine Ressource sein (wobei angemerkt wird, dass ein Property
ein Untertyp von Resource
in Jena und in dem RDF-Standard ist). Sie müssen also Ihre Frage verfeinern aus „ist dieses Modell diese Ressource enthalten“ entweder:
hat Modell M enthalten Ressource R als Subjekt?
enthält Modell M die Ressource R als Subjekt, Prädikat oder Objekt?
Dies kann erreicht werden:
Resource r = ... ;
Model m = ... ;
// does m contain r as a subject?
if (m.contains(r, null, (RDFNode) null)) {
..
}
// does m contain r as s, p or o?
if (m.containsResource(r)) {
..
}
Übrigens Sie in Ihrem Codebeispiel
haben
model.getResource("example")
Dies gibt eine Resource
Objekt an die angegebene URI entspricht, tut aber nicht Seite - Wirf die Tripel im Modell auf. Dies ist der Grund, dass Model
sowohl getResource
als auch createResource
hat - get ist möglicherweise etwas effizienter, da es Ressourcenobjekte wiederverwendet, aber die Semantik ist im Wesentlichen identisch. Das Argument, das Sie an getResource
oder createResource
übergeben, sollte jedoch eine URI sein. Sie leihen sich Ärger aus der Zukunft, wenn Sie Token wie "example"
anstelle von vollständigen URIs verwenden, also würde ich empfehlen, diese schlechte Angewohnheit zu stoppen, bevor Sie sich damit vertraut machen!
vielleicht ist dieser Link [Schnittstellenmodell] (http://jena.apache.org/documentation/javadoc/jena/com/hp/hpl/jena/rdf/model/Model.html) nützlich. –
Nach etwas Recherche habe ich den nächsten Weg gefunden. Ich weiß nicht, ob dies wirklich der beste Weg ist, um es zu erreichen, aber funktioniert: Ressource toSearch = ResourceFactory.createResource ("Beispiel"); if (! Model.containsResource (toSearch)) ...; – jevora
Wenn es gelöst ist, dann posten Sie eine Antwort und akzeptieren Sie sie, damit die nächste Person mit dem gleichen Problem die Antwort findet, Sie erhalten auch ein Abzeichen! :) – Boaz