private void translateSub(final List<ClauseEntry> outBody, final ATermAppl sub, final FreeVariableStore freeVar, final Node currentVar) { final AFun fun = sub.getAFun(); if (ATermUtils.isPrimitive(sub) || ATermUtils.isBottom(sub)) outBody.add(makeSubclassTriple(currentVar, _names.get(sub))); else if (fun.equals(ATermUtils.ANDFUN)) { ATermList list = (ATermList) sub.getArgument(0); while (!list.isEmpty()) { final ATermAppl conj = (ATermAppl) list.getFirst(); translateSub(outBody, conj, freeVar, currentVar); list = list.getNext(); } } else if (fun.equals(ATermUtils.SOMEFUN)) { final ATermAppl prop = (ATermAppl) sub.getArgument(0); final ATermAppl q = (ATermAppl) sub.getArgument(1); final Node nextVar = freeVar.next(); outBody.add(makeSubOfSomeTriple(currentVar, prop, nextVar)); translateSub(outBody, q, freeVar, nextVar); } else assert false; }
private void translateSub(final List<ClauseEntry> outBody, final ATermAppl sub, final FreeVariableStore freeVar, final Node currentVar) { final AFun fun = sub.getAFun(); if (ATermUtils.isPrimitive(sub) || ATermUtils.isBottom(sub)) outBody.add(makeSubclassTriple(currentVar, _names.get(sub))); else if (fun.equals(ATermUtils.ANDFUN)) { ATermList list = (ATermList) sub.getArgument(0); while (!list.isEmpty()) { final ATermAppl conj = (ATermAppl) list.getFirst(); translateSub(outBody, conj, freeVar, currentVar); list = list.getNext(); } } else if (fun.equals(ATermUtils.SOMEFUN)) { final ATermAppl prop = (ATermAppl) sub.getArgument(0); final ATermAppl q = (ATermAppl) sub.getArgument(1); final Node nextVar = freeVar.next(); outBody.add(makeSubOfSomeTriple(currentVar, prop, nextVar)); translateSub(outBody, q, freeVar, nextVar); } else assert false; }
private void translateSub(final List<ClauseEntry> outBody, final ATermAppl sub, final FreeVariableStore freeVar, final Node currentVar) { final AFun fun = sub.getAFun(); if (ATermUtils.isPrimitive(sub) || ATermUtils.isBottom(sub)) outBody.add(makeSubclassTriple(currentVar, _names.get(sub))); else if (fun.equals(ATermUtils.ANDFUN)) { ATermList list = (ATermList) sub.getArgument(0); while (!list.isEmpty()) { final ATermAppl conj = (ATermAppl) list.getFirst(); translateSub(outBody, conj, freeVar, currentVar); list = list.getNext(); } } else if (fun.equals(ATermUtils.SOMEFUN)) { final ATermAppl prop = (ATermAppl) sub.getArgument(0); final ATermAppl q = (ATermAppl) sub.getArgument(1); final Node nextVar = freeVar.next(); outBody.add(makeSubOfSomeTriple(currentVar, prop, nextVar)); translateSub(outBody, q, freeVar, nextVar); } else assert false; }
private TriplePattern makeSubOfSomeTriple(final Node t1, final ATermAppl p, final Node t2) { return makeSubOfSomeTriple(t1, _names.get(p), t2); }
private TriplePattern makeSubOfSomeTriple(final Node t1, final ATermAppl p, final Node t2) { return makeSubOfSomeTriple(t1, _names.get(p), t2); }
private TriplePattern makeSubOfSomeTriple(final Node t1, final ATermAppl p, final Node t2) { return makeSubOfSomeTriple(t1, _names.get(p), t2); }
protected void addClasses(final Collection<ATermAppl> classes) { for (final ATermAppl c : classes) { final Node n = _names.get(c); _facts.add(Triple.create(n, PRED_SUB, n)); _facts.add(Triple.create(n, PRED_SUB, TOP)); } }
protected void addClasses(final Collection<ATermAppl> classes) { for (final ATermAppl c : classes) { final Node n = _names.get(c); _facts.add(Triple.create(n, PRED_SUB, n)); _facts.add(Triple.create(n, PRED_SUB, TOP)); } }
protected void addClasses(final Collection<ATermAppl> classes) { for (final ATermAppl c : classes) { final Node n = _names.get(c); _facts.add(Triple.create(n, PRED_SUB, n)); _facts.add(Triple.create(n, PRED_SUB, TOP)); } }