code: @Override
      public void addDataPropertyRangeAxiom(DataPropertyRangeExpression range, Datatype datatype) throws InconsistentOntologyException {
          checkSignature(range);
          checkSignature(datatype);
          if (datatype.equals(DatatypeImpl.rdfsLiteral))
              return;
  
          // otherwise the datatype is not top
          if (range.getProperty().isBottom())
              return;
          if (range.getProperty().isTop())
              throw new InconsistentOntologyException();
  
          BinaryAxiom<DataRangeExpression> ax = new BinaryAxiomImpl<>(range, datatype);
          subDataRangeAxioms.add(ax);
      }
docs: Normalizes and adds a data property range axiom
  <p>
  DataPropertyRange := 'DataPropertyRange' '(' axiomAnnotations DataPropertyExpression DataRange ')'
  <p>
  Implements rule [D3]:
  - ignore if the property is bot or the range is rdfs:Literal (top datatype)
  - inconsistency if the property is top but the range is not rdfs:Literal
  
  @throws InconsistentOntologyException