как я могу добавить тройку к моей онтологии Йены? - PullRequest
3 голосов
/ 20 октября 2010

У меня instance1 class1 и instance2 class2. Также я определил HasName(object property) в моей онтологии. Теперь, как я могу добавить тройку (instance1 HasName instance2) к моей онтологии от jena?

Ответы [ 2 ]

9 голосов
/ 17 ноября 2010

Вот способ, не имея дело с промежуточным 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

Вы можете также связать некоторые из этих вызовов в шаблоне Builder-Ish.

Resource instance2 = model.createResource(instance2Uri).addProperty(RDF.type, class2);
model.createResource(instance1Uri).addProperty(RDF.type, class1).addProperty(hasName, instance2);
2 голосов
/ 17 ноября 2010

В Йене это можно сделать, создав экземпляр оператора (тройной или четверной), а затем зафиксировав оператор в экземпляре Model .

Например, рассмотрим следующее:

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

Где subject, predicate и object - это элементы экземпляра тройки с типами, соответствующими интерфейсу для ResourceFactory.createStatement () .

...