final static public ATermAppl negate(final ATermAppl a) { return isNot(a) ? (ATermAppl) a.getArgument(0) : makeNot(a); }
public static final boolean isNegatedPrimitive(final ATermAppl c) { return isNot(c) && isPrimitive((ATermAppl) c.getArgument(0)); }
final static public ATermAppl negate(final ATermAppl a) { return isNot(a) ? (ATermAppl) a.getArgument(0) : makeNot(a); }
public static final boolean isNegatedPrimitive(final ATermAppl c) { return isNot(c) && isPrimitive((ATermAppl) c.getArgument(0)); }
/** * This function finds preferred disjuncts using different heuristics. 1) A common kind of axiom that exist in a lot of ontologies is in the form A = and(B, * some(p, C)) which is absorbed into an axiom like sub(B, or(A, all(p, not(C))). For these disjunctions, we always prefer picking all(p, C) because it * causes an immediate clash for the instances of A so there is no overhead. For non-instances of A, this builds better pseudo models * * @return */ private int preferredDisjunct() { if (_allDisjonctions.length != 2) return -1; if (ATermUtils.isPrimitive(_allDisjonctions[0]) && ATermUtils.isAllValues(_allDisjonctions[1]) && ATermUtils.isNot((ATermAppl) _allDisjonctions[1].getArgument(1))) return 1; if (ATermUtils.isPrimitive(_allDisjonctions[1]) && ATermUtils.isAllValues(_allDisjonctions[0]) && ATermUtils.isNot((ATermAppl) _allDisjonctions[0].getArgument(1))) return 0; return -1; }
/** * This function finds preferred disjuncts using different heuristics. 1) A common kind of axiom that exist in a lot of ontologies is in the form A = and(B, * some(p, C)) which is absorbed into an axiom like sub(B, or(A, all(p, not(C))). For these disjunctions, we always prefer picking all(p, C) because it * causes an immediate clash for the instances of A so there is no overhead. For non-instances of A, this builds better pseudo models * * @return */ private int preferredDisjunct() { if (_allDisjonctions.length != 2) return -1; if (ATermUtils.isPrimitive(_allDisjonctions[0]) && ATermUtils.isAllValues(_allDisjonctions[1]) && ATermUtils.isNot((ATermAppl) _allDisjonctions[1].getArgument(1))) return 1; if (ATermUtils.isPrimitive(_allDisjonctions[1]) && ATermUtils.isAllValues(_allDisjonctions[0]) && ATermUtils.isNot((ATermAppl) _allDisjonctions[0].getArgument(1))) return 0; return -1; }
propertyAtoms++; else if (ATermUtils.isNot(term)) head = term;
propertyAtoms++; else if (ATermUtils.isNot(term)) head = term;
propertyAtoms++; else if (ATermUtils.isNot(term)) head = term;
propertyAtoms++; else if (ATermUtils.isNot(term)) head = term;
private static boolean isSafe(final KnowledgeBase kb, final Individual parent, final Role role, final CachedNode node) { if (!isFunctionalSafe(role, node)) return false; for (final ATermAppl c : node.getDepends().keySet()) if (ATermUtils.isAllValues(c)) { if (!isAllValuesSafe(kb, parent, role, c)) return false; } else if (ATermUtils.isNot(c)) { final ATermAppl arg = (ATermAppl) c.getArgument(0); if (ATermUtils.isMin(arg)) if (!isMaxSafe(kb, role, arg)) return false; } return true; }
private static boolean isSafe(final KnowledgeBase kb, final Individual parent, final Role role, final CachedNode node) { if (!isFunctionalSafe(role, node)) return false; for (final ATermAppl c : node.getDepends().keySet()) if (ATermUtils.isAllValues(c)) { if (!isAllValuesSafe(kb, parent, role, c)) return false; } else if (ATermUtils.isNot(c)) { final ATermAppl arg = (ATermAppl) c.getArgument(0); if (ATermUtils.isMin(arg)) if (!isMaxSafe(kb, role, arg)) return false; } return true; }
static public ATermList negate(final ATermList list) { if (list.isEmpty()) return list; ATermAppl a = (ATermAppl) list.getFirst(); a = isNot(a) ? (ATermAppl) a.getArgument(0) : makeNot(a); final ATermList result = makeList(a, negate(list.getNext())); return result; }
static public ATermList negate(final ATermList list) { if (list.isEmpty()) return list; ATermAppl a = (ATermAppl) list.getFirst(); a = isNot(a) ? (ATermAppl) a.getArgument(0) : makeNot(a); final ATermList result = makeList(a, negate(list.getNext())); return result; }
@Override public Iterator<Unfolding> unfold(final ATermAppl c) { if (ATermUtils.isPrimitive(c)) { final MultiIterator<Unfolding> result = new MultiIterator<>(_primitiveTbox.unfold(c)); result.append(_unaryTbox.unfold(c)); result.append(_binaryTbox.unfold(c)); return result; } else if (isNot(c)) return _primitiveTbox.unfold(c); else return IteratorUtils.emptyIterator(); }
@Override public Iterator<Unfolding> unfold(final ATermAppl c) { if (ATermUtils.isPrimitive(c)) { final MultiIterator<Unfolding> result = new MultiIterator<>(_primitiveTbox.unfold(c)); result.append(_unaryTbox.unfold(c)); result.append(_binaryTbox.unfold(c)); return result; } else if (isNot(c)) return _primitiveTbox.unfold(c); else return IteratorUtils.emptyIterator(); }
@Override public void addType(final ATermAppl c, final DependencySet d) { if (hasType(c)) return; /* * A negated nominal is turned into a different */ if (ATermUtils.isNot(c)) { final ATermAppl arg = (ATermAppl) c.getArgument(0); if (ATermUtils.isNominal(arg)) { final ATermAppl v = (ATermAppl) arg.getArgument(0); Literal other = _abox.getLiteral(v); if (other == null) other = _abox.addLiteral(v, d); super.setDifferent(other, d); return; } } super.addType(c, d); // TODO when two literals are being merged this is not efficient // if(_abox.isInitialized()) checkClash(); }
@Override public void addType(final ATermAppl c, final DependencySet d) { if (hasType(c)) return; /* * A negated nominal is turned into a different */ if (ATermUtils.isNot(c)) { final ATermAppl arg = (ATermAppl) c.getArgument(0); if (ATermUtils.isNominal(arg)) { final ATermAppl v = (ATermAppl) arg.getArgument(0); Literal other = _abox.getLiteral(v); if (other == null) other = _abox.addLiteral(v, d); super.setDifferent(other, d); return; } } super.addType(c, d); // TODO when two literals are being merged this is not efficient // if(_abox.isInitialized()) checkClash(); }
private boolean isCDDesc(final ATermAppl desc) { if (desc == null) return true; if (ATermUtils.isPrimitive(desc)) return true; if (ATermUtils.isAllValues(desc)) return true; if (ATermUtils.isAnd(desc)) { boolean allCDConj = true; final ATermList conj = (ATermList) desc.getArgument(0); for (ATermList subConj = conj; allCDConj && !subConj.isEmpty(); subConj = subConj.getNext()) { final ATermAppl ci = (ATermAppl) subConj.getFirst(); allCDConj = isCDDesc(ci); } return allCDConj; } if (ATermUtils.isNot(desc)) { final ATermAppl negd = (ATermAppl) desc.getArgument(0); if (ATermUtils.isPrimitive(negd)) return true; } return false; }
private boolean isCDDesc(final ATermAppl desc) { if (desc == null) return true; if (ATermUtils.isPrimitive(desc)) return true; if (ATermUtils.isAllValues(desc)) return true; if (ATermUtils.isAnd(desc)) { boolean allCDConj = true; final ATermList conj = (ATermList) desc.getArgument(0); for (ATermList subConj = conj; allCDConj && !subConj.isEmpty(); subConj = subConj.getNext()) { final ATermAppl ci = (ATermAppl) subConj.getFirst(); allCDConj = isCDDesc(ci); } return allCDConj; } if (ATermUtils.isNot(desc)) { final ATermAppl negd = (ATermAppl) desc.getArgument(0); if (ATermUtils.isPrimitive(negd)) return true; } return false; }