how can i add some triple to my Ontology by Jena?

笑着哭i 提交于 2019-12-18 13:39:24

问题


I have instance1 of class1 and instance2 of class2. Also I have defined HasName(object property) in my ontology. Now, how can I add the triple (instance1 HasName instance2) to my ontology by jena?


回答1:


Here's a way without dealing with intermediate Statements.

// RDF Nodes -- you can make these immutable in your own vocabulary if you want -- see Jena's RDFS, RDF, OWL, etc vocabularies
Resource class1 = ResourceFactory.createResource(yourNamespace + "class1");
Resource class2 = ResourceFactory.createResource(yourNamespace + "class1");
Property hasName = ResourceFactory.createProperty(yourNamespace, "hasName"); // hasName property

// The RDF Model
Model model = ... // Use your preferred method to get an OntModel, InfModel, or just regular Model

Resource instance1 = model.createResource(instance1Uri);
Resource instance2 = model.createResource(instance2Uri);

// Create statements
instance1.addProperty(RDF.type, class1); // Classification of instance1
instance2.addProperty(RDF.type, class2); // Classification of instance2
instance1.addProperty(hasName, instance2); // Edge between instance1 and instance2

You could also chain some of these calls in a builder-ish pattern.

Resource instance2 = model.createResource(instance2Uri).addProperty(RDF.type, class2);
model.createResource(instance1Uri).addProperty(RDF.type, class1).addProperty(hasName, instance2);



回答2:


In Jena, this can be done by creating an instance of a Statement (a triple, or quad), then committing the statement to an instance of a Model.

For example, consider the following:

OntModel model = ModelFactory.createOntologyModel(); // an ont model instance
...
Statement s = ResourceFactory.createStatement(subject, predicate, object);
model.add(s); // add the statement (triple) to the model

Where subject, predicate and object are instance elements of your triple with types conforming to the interface for ResourceFactory.createStatement().



来源:https://stackoverflow.com/questions/3975425/how-can-i-add-some-triple-to-my-ontology-by-jena

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!