public void visit(OWLSubPropertyChainOfAxiom axiom) {
   for (OWLObjectPropertyExpression prop : axiom.getPropertyChain()) {
     prop.accept(this);
   }
   axiom.getSuperProperty().accept(this);
   processAxiomAnnotations(axiom);
 }
 public void visit(OWLEquivalentObjectPropertiesAxiom axiom) {
   for (OWLObjectPropertyExpression propA : axiom.getProperties()) {
     for (OWLObjectPropertyExpression propB : axiom.getProperties()) {
       if (!propA.equals(propB)) {
         addChildParent(propA, propB, axiom);
       }
     }
   }
 }
 @Override
 public void visit(OWLDisjointObjectPropertiesAxiom axiom) {
   write("DisjointObjectProperties");
   writeSpace();
   for (OWLObjectPropertyExpression p : axiom.getProperties()) {
     p.accept(this);
     writeSpace();
   }
 }
 @Override
 public void visit(OWLSubPropertyChainOfAxiom axiom) {
   axiom.getSuperProperty().accept(this);
   OWLObjectPropertyExpression prop = (OWLObjectPropertyExpression) obj;
   List<OWLObjectPropertyExpression> chain = new ArrayList<OWLObjectPropertyExpression>();
   for (OWLObjectPropertyExpression p : axiom.getPropertyChain()) {
     p.accept(this);
     chain.add((OWLObjectPropertyExpression) obj);
   }
   obj = dataFactory.getOWLSubPropertyChainOfAxiom(chain, prop, duplicateAxiomAnnotations(axiom));
 }
 public void visit(OWLEquivalentObjectPropertiesAxiom axiom) {
   for (OWLObjectPropertyExpression prop : axiom.getProperties()) {
     prop.accept(this);
   }
   processAxiomAnnotations(axiom);
 }
 public ObjectPropertyPointer translate(OWLObjectPropertyExpression property) throws OWLException {
   property.accept(this);
   return getLastObjectPropertyPointer();
 }