Search in sources :

Example 36 with Term

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;
}
Also used : Variable(fr.lirmm.graphik.graal.api.core.Variable) Term(fr.lirmm.graphik.graal.api.core.Term)

Example 37 with Term

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);
}
Also used : Constant(fr.lirmm.graphik.graal.api.core.Constant) Term(fr.lirmm.graphik.graal.api.core.Term)

Example 38 with Term

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);
}
Also used : Term(fr.lirmm.graphik.graal.api.core.Term)

Example 39 with Term

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);
    }
}
Also used : Term(fr.lirmm.graphik.graal.api.core.Term)

Example 40 with Term

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;
}
Also used : Term(fr.lirmm.graphik.graal.api.core.Term)

Aggregations

Term (fr.lirmm.graphik.graal.api.core.Term)173 Atom (fr.lirmm.graphik.graal.api.core.Atom)86 LinkedList (java.util.LinkedList)41 Substitution (fr.lirmm.graphik.graal.api.core.Substitution)36 Test (org.junit.Test)35 InMemoryAtomSet (fr.lirmm.graphik.graal.api.core.InMemoryAtomSet)34 Variable (fr.lirmm.graphik.graal.api.core.Variable)32 Predicate (fr.lirmm.graphik.graal.api.core.Predicate)27 DefaultAtom (fr.lirmm.graphik.graal.core.DefaultAtom)26 AtomSetException (fr.lirmm.graphik.graal.api.core.AtomSetException)23 LinkedListAtomSet (fr.lirmm.graphik.graal.core.atomset.LinkedListAtomSet)18 ConjunctiveQuery (fr.lirmm.graphik.graal.api.core.ConjunctiveQuery)15 Rule (fr.lirmm.graphik.graal.api.core.Rule)15 IteratorException (fr.lirmm.graphik.util.stream.IteratorException)14 TreeSet (java.util.TreeSet)12 Constant (fr.lirmm.graphik.graal.api.core.Constant)9 DBTable (fr.lirmm.graphik.graal.store.rdbms.util.DBTable)9 ArrayList (java.util.ArrayList)9 HashSet (java.util.HashSet)9 TreeMap (java.util.TreeMap)8