public void visit(OWLDataAllValuesFrom object) { // if the filler is the negation of a supported range then we will leave the expression as if // it was in the head, // because when we overapproximate we are only going to look at the property so there's no // point in decomposing it further // if the filler is positive, however, we will decompose it a bit LiteralDataRange literalRange = m_dataRangeConverter.convertDataRange(object.getFiller()); if (object.getProperty().isOWLTopDataProperty()) { if (literalRange.isAlwaysFalse()) return; // bottom } Variable y = nextY(); m_bodyAtoms.add(getRoleAtom(object.getProperty(), X, y)); if (literalRange.isNegatedInternalDatatype()) { InternalDatatype negatedRange = (InternalDatatype) literalRange.getNegation(); if (!negatedRange.isAlwaysTrue()) m_bodyAtoms.add(Atom.create(negatedRange, y)); } else { if (!literalRange.isAlwaysFalse()) { if (object.getFiller() instanceof OWLDataOneOf) { for (OWLLiteral lit : ((OWLDataOneOf) object.getFiller()).getValues()) m_headAtoms.add( Atom.create(Equality.INSTANCE, y, (Constant) lit.accept(m_dataRangeConverter))); } else m_headAtoms.add(Atom.create((DLPredicate) literalRange, y)); } } }
@Override public void visit(OWLDataAllValuesFrom desc) { desc.getProperty().accept(this); OWLDataPropertyExpression prop = (OWLDataPropertyExpression) obj; desc.getFiller().accept(this); OWLDataRange filler = (OWLDataRange) obj; obj = dataFactory.getOWLDataAllValuesFrom(prop, filler); }
@Override public void visit(OWLDataAllValuesFrom node) { write(ALL); writeSpace(); node.getProperty().accept(this); writeSpace(); node.getFiller().accept(this); }
@Override public void visit(OWLDataAllValuesFrom desc) { handleObject(desc); desc.getProperty().accept(this); }
@Override public void visit(OWLDataAllValuesFrom ce) { ce.getFiller().accept(this); ce.getProperty().accept(this); }
public void visit(OWLDataAllValuesFrom desc) { desc.getProperty().accept(this); desc.getFiller().accept(this); }