@Override
 public void visit(OWLAnnotationPropertyRangeAxiom axiom) {
   write("Range");
   axiom.getProperty().getIRI().accept(this);
   writeSpace();
   axiom.getRange().accept(this);
 }
 @Override
 protected int compareObjectOfSameType(OWLObject object) {
   OWLAnnotationPropertyRangeAxiom other = (OWLAnnotationPropertyRangeAxiom) object;
   int diff = property.compareTo(other.getProperty());
   if (diff != 0) {
     return diff;
   }
   return range.compareTo(other.getRange());
 }
 @Override
 public void visit(OWLAnnotationPropertyRangeAxiom axiom) {
   axiom.getProperty().accept(this);
   OWLAnnotationProperty prop = (OWLAnnotationProperty) obj;
   axiom.getRange().accept(this);
   IRI range = (IRI) obj;
   obj =
       dataFactory.getOWLAnnotationPropertyRangeAxiom(
           prop, range, duplicateAxiomAnnotations(axiom));
 }
 @Override
 public boolean equals(Object obj) {
   if (super.equals(obj)) {
     // superclass is responsible for null, identity, owlaxiom type and
     // annotations
     if (!(obj instanceof OWLAnnotationPropertyRangeAxiom)) {
       return false;
     }
     OWLAnnotationPropertyRangeAxiom other = (OWLAnnotationPropertyRangeAxiom) obj;
     return property.equals(other.getProperty()) && range.equals(other.getRange());
   }
   return false;
 }
 public Set<OWLAxiom> write(OWLAnnotationProperty property) {
   Set<OWLAxiom> axioms = new HashSet<OWLAxiom>();
   axioms.addAll(writeEntityStart(ANNOTATION_PROPERTY, property));
   if (!isFiltered(AxiomType.ANNOTATION_ASSERTION)) {
     for (OWLOntology ont : getOntologies()) {
       Set<OWLAnnotation> annos = new TreeSet<OWLAnnotation>();
       for (OWLAnnotationAssertionAxiom ax : ont.getAnnotationAssertionAxioms(property.getIRI())) {
         if (isDisplayed(ax)) {
           annos.add(ax.getAnnotation());
         }
       }
       writeSection(ANNOTATIONS, annos, ",", true, ont);
     }
   }
   if (!isFiltered(AxiomType.SUB_ANNOTATION_PROPERTY_OF)) {
     for (OWLOntology ont : getOntologies()) {
       Set<OWLAnnotationProperty> props = new TreeSet<OWLAnnotationProperty>();
       for (OWLSubAnnotationPropertyOfAxiom ax : ont.getSubAnnotationPropertyOfAxioms(property)) {
         if (isDisplayed(ax)) {
           props.add(ax.getSuperProperty());
         }
       }
       writeSection(SUB_PROPERTY_OF, props, ",", true, ont);
     }
   }
   if (!isFiltered(AxiomType.ANNOTATION_PROPERTY_DOMAIN)) {
     for (OWLOntology ont : getOntologies()) {
       Set<IRI> iris = new TreeSet<IRI>();
       for (OWLAnnotationPropertyDomainAxiom ax :
           ont.getAnnotationPropertyDomainAxioms(property)) {
         if (isDisplayed(ax)) {
           iris.add(ax.getDomain());
         }
       }
       writeSection(DOMAIN, iris, ",", true, ont);
     }
   }
   if (!isFiltered(AxiomType.ANNOTATION_PROPERTY_RANGE)) {
     for (OWLOntology ont : getOntologies()) {
       Set<IRI> iris = new TreeSet<IRI>();
       for (OWLAnnotationPropertyRangeAxiom ax : ont.getAnnotationPropertyRangeAxioms(property)) {
         if (isDisplayed(ax)) {
           iris.add(ax.getRange());
         }
       }
       writeSection(RANGE, iris, ",", true, ont);
     }
   }
   writeEntitySectionEnd(ANNOTATION_PROPERTY.toString());
   return axioms;
 }
 @Override
 public void visit(OWLAnnotationPropertyRangeAxiom axiom) {
   handleObject(axiom);
   axiom.getProperty().accept(this);
   axiom.getRange().accept(this);
 }
 public void visit(OWLAnnotationPropertyRangeAxiom axiom) {
   type = AXIOM_TYPE_INDEX_BASE + axiom.getAxiomType().getIndex();
 }
 public void visit(OWLAnnotationPropertyRangeAxiom axiom) {
   axiom.getProperty().accept(this);
   processAxiomAnnotations(axiom);
 }