@Override
 public void visit(OWLDataMinCardinality desc) {
   desc.getProperty().accept(this);
   OWLDataPropertyExpression prop = (OWLDataPropertyExpression) obj;
   desc.getFiller().accept(this);
   OWLDataRange filler = (OWLDataRange) obj;
   obj = dataFactory.getOWLDataMinCardinality(desc.getCardinality(), prop, filler);
 }
 @Override
 public void visit(OWLDataMinCardinality desc) {
   write(MIN);
   writeSpace();
   write(desc.getCardinality());
   writeSpace();
   desc.getProperty().accept(this);
 }
 public void visit(OWLDataMinCardinality object) {
   if (!object.getProperty().isOWLBottomDataProperty() || object.getCardinality() == 0) {
     AtomicRole atomicRole = getAtomicRole(object.getProperty());
     if (object.getCardinality() == 1) {
       m_factory.getOWLDataSomeValuesFrom(object.getProperty(), object.getFiller()).accept(this);
       // if the cardinality is more than one then we don't make the disjunction explicit because
       // of how we are going
       // to overapproximate it (also, making the disjunction explicitly would be exponential)
     } else {
       LiteralDataRange literalRange = m_dataRangeConverter.convertDataRange(object.getFiller());
       AtLeastDataRange atLeast =
           AtLeastDataRange.create(object.getCardinality(), atomicRole, literalRange);
       if (!atLeast.isAlwaysFalse()) m_headAtoms.add(Atom.create(atLeast, X));
     }
   }
 }
 @Override
 public void visit(OWLDataMinCardinality desc) {
   handleObject(desc);
   desc.getProperty().accept(this);
 }
 public void visit(OWLDataMinCardinality desc) {
   desc.getProperty().accept(this);
   desc.getFiller().accept(this);
 }