/** * init c'tor */ public SyntacticLocalityChecker() { topEval = new TopEquivalenceEvaluator(this); botEval = new BotEquivalenceEvaluator(this); }
@Override public void visit(OWLClass expr) { isTopEq = getSignature().topCLocal() && !getSignature().contains(expr); }
/** * @param n cardinality * @param r role * @param c filler * @return true iff (>= n R.C) is topEq */ private boolean isMinTopEquivalent(int n, OWLPropertyExpression r, OWLPropertyRange c) { return n == 0 || isTopEquivalent(r) && isCardLargerThan(c, n - 1); }
/** * @return true iff EXPR is top equivalent */ @Override public boolean isTopEquivalent(OWLObject expr) { return topEval.isTopEquivalent(expr); }
@Override public void visit(OWLObjectExactCardinality expr) { int n = expr.getCardinality(); isTopEq = isMinTopEquivalent(n, expr.getProperty(), expr.getFiller()) && isMaxTopEquivalent(n, expr .getProperty(), expr.getFiller()); }
@Override public void visit(OWLDataSomeValuesFrom expr) { isTopEq = isMinTopEquivalent(1, expr.getProperty(), expr.getFiller()); }
@Override public void visit(OWLDataMaxCardinality expr) { isTopEq = isMaxTopEquivalent(expr.getCardinality(), expr.getProperty(), expr.getFiller()); }
/** * @param c C * @param n cardinality * @return true if #C^I > n */ private boolean isCardLargerThan(OWLObject c, int n) { if (n == 0) { return isBotDistinct(c); } if (c instanceof OWLDatatype) { return ((OWLDatatype) c).isBuiltIn() && !((OWLDatatype) c).getBuiltInDatatype() .isFinite(); } // FIXME!! try to be more precise return false; }
/** * @return true iff EXPR is top equivalent */ @Override public boolean isTopEquivalent(OWLObject expr) { return topEval.isTopEquivalent(expr); }
@Override public void visit(OWLObjectExactCardinality expr) { int n = expr.getCardinality(); isTopEq = isMinTopEquivalent(n, expr.getProperty(), expr.getFiller()) && isMaxTopEquivalent(n, expr .getProperty(), expr.getFiller()); }
@Override public void visit(OWLObjectSomeValuesFrom expr) { isTopEq = isMinTopEquivalent(1, expr.getProperty(), expr.getFiller()); }
@Override public void visit(OWLObjectMaxCardinality expr) { isTopEq = isMaxTopEquivalent(expr.getCardinality(), expr.getProperty(), expr.getFiller()); }
/** * @param c C * @param n cardinality * @return true if #C^I > n */ private boolean isCardLargerThan(OWLObject c, int n) { if (n == 0) { return isBotDistinct(c); } if (c instanceof OWLDatatype) { return ((OWLDatatype) c).isBuiltIn() && !((OWLDatatype) c).getBuiltInDatatype() .isFinite(); } // FIXME!! try to be more precise return false; }
/** * @return true iff EXPR is top equivalent */ @Override public boolean isTopEquivalent(OWLObject expr) { return topEval.isTopEquivalent(expr); }
@Override public void visit(OWLObjectExactCardinality expr) { int n = expr.getCardinality(); isTopEq = isMinTopEquivalent(n, expr.getProperty(), expr.getFiller()) && isMaxTopEquivalent(n, expr .getProperty(), expr.getFiller()); }
/** * @param n cardinality * @param r role * @param c filler * @return true iff (>= n R.C) is topEq */ private boolean isMinTopEquivalent(int n, OWLPropertyExpression r, OWLPropertyRange c) { return n == 0 || isTopEquivalent(r) && isCardLargerThan(c, n - 1); }
@Override public void visit(OWLObjectSomeValuesFrom expr) { isTopEq = isMinTopEquivalent(1, expr.getProperty(), expr.getFiller()); }
@Override public void visit(OWLDataProperty expr) { isTopEq = getSignature().topRLocal() && !getSignature().contains(expr); }
@Override public void visit(OWLDataMaxCardinality expr) { isTopEq = isMaxTopEquivalent(expr.getCardinality(), expr.getProperty(), expr.getFiller()); }
/** * init c'tor */ public SyntacticLocalityChecker() { topEval = new TopEquivalenceEvaluator(this); botEval = new BotEquivalenceEvaluator(this); }