Comment puis-je interroger un inverse d'une propriété d'objet à l'aide d'un reasoner?Obtenir InverseObjectProperty avec un reasoner
Par exemple, une personne peut avoir un pistolet et vice versa:
<Declaration>
<ObjectProperty IRI="#hasOwner"/>
</Declaration>
<Declaration>
<ObjectProperty IRI="#hasGun"/>
</Declaration>
<InverseObjectProperties>
<ObjectProperty IRI="#hasOwner"/>
<ObjectProperty IRI="#hasGun"/>
</InverseObjectProperties>
Parce qu'il ya axiomes simples, j'ai essayé de trouver une fonction uncomplicatedstar pour gérer ceci:
OWLObjectProperty getOWLInverseRelation(OWLReasoner reasoner, OWLObjectProperty relation) {
Set<OWLObjectPropertyExpression> inverseRelationExprs = reasoner.getInverseObjectProperties(relation).getEntities();
if (inverseRelationExprs.size() != 2) return null;
Iterator<OWLObjectPropertyExpression> inverseRelationExprIter = inverseRelationExprs.iterator();
OWLObjectPropertyExpression inverseRelationExpr = inverseRelationExprIter.next();
if (inverseRelationExpr.getNamedProperty().getIRI().getShortForm().equals(relation.getIRI().getShortForm()))
inverseRelationExpr = inverseRelationExprIter.next();
return inverseRelationExpr.asOWLObjectProperty();
}
Cette fonction est-elle un moyen simple et direct d'obtenir une propriété d'objet inverse?