code: public static ObjectPropertyAssertion createObjectPropertyAssertion(ObjectPropertyExpression ope, ObjectConstant o1, ObjectConstant o2) throws InconsistentOntologyException {
          if (ope.isTop())
              return null;
          if (ope.isBottom())
              throw new InconsistentOntologyException();
  
          if (ope.isInverse())
              return new ObjectPropertyAssertionImpl(ope.getInverse(), o2, o1);
          else
              return new ObjectPropertyAssertionImpl(ope, o1, o2);
      }
docs: Creates an object property assertion
  <p>
  ObjectPropertyAssertion := 'ObjectPropertyAssertion' '(' axiomAnnotations
  ObjectPropertyExpression sourceIndividual targetIndividual ')'
  <p>
  Implements rule [O4]:
  - ignore (return null) if the property is top
  - inconsistency if the property is bot
  - swap the arguments to eliminate inverses