Я хотел бы добавить это утверждение (из Protégé "Индивидуальное описание" ) с помощью java owl-api:
person hasProperty only (ClassA or ClassB )
Как:
<ClassAssertion>
<ObjectAllValuesFrom>
<ObjectProperty IRI=“#hasProperty”/>
<ObjectUnionOf>
<Class IRI=“#ClassA”/>
<Class IRI=“#ClassB”/>
</ObjectUnionOf>
</ObjectAllValuesFrom>
<NamedIndividual IRI=“#Person”/>
</ClassAssertion
Как я могу это сделать?
OWLClass c1 = factory.getOWLClass(":ClassA", prefix );
OWLClass c2 = factory.getOWLClass(":ClassB", prefix );
OWLObjectProperty p = factory.getOWLObjectProperty("hasProperty", prefix);
OWLObjectIntersectionOf u = factory.getOWLObjectUnionOf(c1, c2);
OWLClassExpression e = factory.getOWLClass(property, u);
manager.addAxiom(owlOntology, factory.getOWLClassAssertionAxiom(p, person, e));