use of fr.lirmm.graphik.graal.api.core.Term in project graal by graphik-team.
the class AbstractMapBasedSubstitution method aggregate.
@Override
public boolean aggregate(Variable term, Term substitut) {
Term termSubstitut = this.createImageOf(term);
Term substitutSubstitut = this.createImageOf(substitut);
if (!termSubstitut.equals(substitutSubstitut)) {
if (termSubstitut.isConstant()) {
if (substitutSubstitut.isConstant()) {
return substitutSubstitut.equals(termSubstitut);
} else {
Term tmp = termSubstitut;
termSubstitut = substitutSubstitut;
substitutSubstitut = tmp;
}
}
for (Variable t : this.getTerms()) {
Term image = this.createImageOf(t);
if (termSubstitut.equals(image) && !t.equals(substitutSubstitut)) {
this.getMap().put(t, substitutSubstitut);
}
}
this.getMap().put((Variable) termSubstitut, substitutSubstitut);
}
return true;
}
use of fr.lirmm.graphik.graal.api.core.Term in project graal by graphik-team.
the class ConjunctiveQueryWithFixedVariables method appendTo.
@Override
public void appendTo(StringBuilder sb) {
for (Constant t : this.atomSet.getConstants()) sb.append(t).append(',');
sb.append("), ANS(");
for (Term t : this.answerVariables) sb.append(t).append(',');
sb.append(") :- ");
sb.append(this.atomSet);
}
use of fr.lirmm.graphik.graal.api.core.Term in project graal by graphik-team.
the class DefaultConjunctiveQuery method appendTo.
@Override
public void appendTo(StringBuilder sb) {
sb.append("ANS(");
boolean first = true;
for (Term t : this.responseVariables) {
if (!first) {
sb.append(',');
}
first = false;
sb.append(t);
}
sb.append(") : ");
sb.append(this.atomSet);
}
use of fr.lirmm.graphik.graal.api.core.Term in project graal by graphik-team.
the class Rules method generateCriticalInstance.
private static void generateCriticalInstance(InMemoryAtomSet A, Set<Term> terms, Predicate p, int position, DefaultAtom a) {
if (position >= p.getArity()) {
A.add(a);
return;
}
for (Term t : terms) {
DefaultAtom a2 = new DefaultAtom(a);
a2.setTerm(position, t);
generateCriticalInstance(A, terms, p, position + 1, a2);
}
}
use of fr.lirmm.graphik.graal.api.core.Term in project graal by graphik-team.
the class FreshVarSubstitution method createImageOf.
// /////////////////////////////////////////////////////////////////////////
// PUBLIC METHODS
// /////////////////////////////////////////////////////////////////////////
@Override
public Term createImageOf(Term term) {
Term substitut = term;
if (!term.isConstant()) {
substitut = this.getMap().get(term);
if (substitut == null) {
substitut = gen.getFreshSymbol();
this.put((Variable) term, substitut);
}
}
return substitut;
}
Aggregations