package uk.ac.manchester.cs.jfact; import org.semanticweb.owlapi.model.OWLDataFactory; import org.semanticweb.owlapi.model.OWLObjectProperty; import org.semanticweb.owlapi.model.OWLObjectPropertyExpression; import org.semanticweb.owlapi.reasoner.impl.DefaultNode; import org.semanticweb.owlapi.reasoner.impl.DefaultNodeSet; import org.semanticweb.owlapi.reasoner.impl.OWLObjectPropertyNode; import org.semanticweb.owlapi.reasoner.impl.OWLObjectPropertyNodeSet; import org.semanticweb.owlapi.vocab.OWLRDFVocabulary; import uk.ac.manchester.cs.jfact.kernel.ExpressionManager; import uk.ac.manchester.cs.jfact.kernel.dl.interfaces.ObjectRoleExpression; /** object property translator */ public class ObjectPropertyTranslator extends OWLEntityTranslator<OWLObjectPropertyExpression, ObjectRoleExpression> { private static final long serialVersionUID = 11000L; /** * @param em * em * @param df * df * @param tr * tr */ public ObjectPropertyTranslator(ExpressionManager em, OWLDataFactory df, TranslationMachinery tr) { super(em, df, tr); } @Override protected ObjectRoleExpression getTopEntityPointer() { return em.objectRole(OWLRDFVocabulary.OWL_TOP_OBJECT_PROPERTY.getIRI()); } @Override protected ObjectRoleExpression getBottomEntityPointer() { return em.objectRole(OWLRDFVocabulary.OWL_BOTTOM_OBJECT_PROPERTY .getIRI()); } @Override protected ObjectRoleExpression registerNewEntity( OWLObjectPropertyExpression entity) { ObjectRoleExpression pointer = createPointerForEntity(entity); fillMaps(entity, pointer); OWLObjectPropertyExpression inverseentity = entity.getInverseProperty() .getSimplified(); fillMaps(inverseentity, createPointerForEntity(inverseentity)); return pointer; } @Override protected ObjectRoleExpression createPointerForEntity( OWLObjectPropertyExpression entity) { // FIXME!! think later!! ObjectRoleExpression p = em.objectRole(entity.getNamedProperty() .getIRI()); if (entity.isAnonymous()) { p = em.inverse(p); } return p; } @Override protected OWLObjectProperty getTopEntity() { return df.getOWLTopObjectProperty(); } @Override protected OWLObjectProperty getBottomEntity() { return df.getOWLBottomObjectProperty(); } @Override protected DefaultNode<OWLObjectPropertyExpression> createDefaultNode() { return new OWLObjectPropertyNode(); } @Override protected DefaultNodeSet<OWLObjectPropertyExpression> createDefaultNodeSet() { return new OWLObjectPropertyNodeSet(); } }