2013-04-09 1 views
0

Я пытаюсь написать OWLObjectPropertyExpression для объекта OWL Ontology. Если бы я имел OWL класс я использую что-то вроде следующего:Написание OWLObjectPropertyExpression on OWL Ontology с использованием OWL API

OWLOntologyManager managerWriter = OWLManager.createOWLOntologyManager(); 
OWLOntology ontoWrite=managerWriter.createOntology(); 
OWLDataFactory factory = manager.getOWLDataFactory(); 
managerWriter.addAxiom(ontoWrite,factory.getOWLDeclarationAxiom(factory.getOWLClass((cl.getIRI())))); 

Но что я должен писать, если я хочу написать OWLObjectPropertyExpression? Спасибо заранее.

ответ

0

В следующем фрагменте кода показан пример использования и создания выражения OWL с использованием OWL API (взятый и адаптированный there):

//OWL Expression we would like to create: 
//in OWL Functional syntax: ObjectIntersectionOf(A ObjectSomeValuesFrom(R B)) 
//in Manchester syntax: A and R some B 
PrefixManager pm = new DefaultPrefixManager("http://example.org/"); 
OWLClass A = factory.getOWLClass(":A", pm); 
OWLObjectProperty R = factory.getOWLObjectProperty(":R", pm); 
OWLClass B = factory.getOWLClass(":B", pm); 

//The expression 
OWLClassExpression expression = 
    factory.getOWLObjectIntersectionOf(A, factory.getOWLObjectSomeValuesFrom(R, B)); 

//Create a class in order to use the expression 
OWLClass C = factory.getOWLClass(":C", pm); 

// Declare an equivalentClass axiom 
//Just there to show how an example on how to use the expression 
OWLAxiom definition = factory.getOWLEquivalentClassesAxiom(C, expression); 
manager.addAxiom(ontology, definition); 
+0

Спасибо за ваш ответ. В моем случае, я получаю объект OWLClassExpression от внешнего объекта, и я не знаю, что добавить в определение OWLAxiom. Какие-либо предложения ? – Discipulos

+0

Что вы пытаетесь сделать с объектом OWLClassExpression? Обычно люди используют такие выражения в сочетании с аксиомами, как показано здесь. – loopasam

+0

Хорошо, позвольте мне объяснить дальше. Я использую Hermit Reasoner экспериментально. В рассудителе существует класс, org.semanticweb.Hermit.structural.OWLAxioms. Я пытаюсь написать в онтологии некоторые из своих полей (например, m_complexObjectPropertyExpressions). – Discipulos