@Override public default Substitution unify(Term x, Substitution s) { if (s == null) { return null; } else if (equals(x)) { return s; } PrologTerm st = (PrologTerm) s.get(this); if (st != null) { return st.unify(x, s); } PrologTerm sx = (x instanceof Var) ? (PrologTerm) s.get((Var) x) : null; if (sx != null) { return unify(sx, s); } else if (x.getFreeVar().contains(this)) { return null; } else { s.addBinding(this, x); return s; } } }
combination.addBinding(var, get(var)); } else { combination.addBinding(var, term); Term term = substitution.get(var).applySubst(substitution); if (!var.equals(term)) { combination.addBinding(var, term);
for (Substitution subst : result) { try { subst.addBinding(var, translator.convert(this.forAgent)); } catch (MSTTranslationException e) { throw new MSTQueryException("failed to bind selector variable to agent name", e);