use of fr.lirmm.graphik.graal.api.core.Substitution in project graal by graphik-team.
the class ConjunctiveQuery2Test method NFC2Test.
@Theory
public void NFC2Test(Homomorphism<ConjunctiveQuery, AtomSet> h, AtomSet store) {
Assume.assumeFalse(store instanceof TripleStore);
try {
store.addAll(DlgpParser.parseAtomSet("<P>(a,b,c)."));
ConjunctiveQuery query = DlgpParser.parseQuery("?(X,Y) :- <P>(X,Y,Y).");
CloseableIterator<Substitution> subReader = h.execute(query, store);
Assert.assertFalse(subReader.hasNext());
subReader.close();
} catch (Exception e) {
Assert.assertTrue(e.getMessage(), false);
}
}
use of fr.lirmm.graphik.graal.api.core.Substitution in project graal by graphik-team.
the class ConjunctiveQuery2Test method wrongArityQuery.
@Theory
public void wrongArityQuery(Homomorphism<ConjunctiveQuery, AtomSet> h, AtomSet store) {
Assume.assumeFalse(store instanceof TripleStore);
try {
store.add(DlgpParser.parseAtom("<P>(a,b)."));
ConjunctiveQuery query = DlgpParser.parseQuery("? :- <P>(X).");
CloseableIterator<Substitution> subReader;
subReader = h.execute(query, store);
Assert.assertFalse(subReader.hasNext());
subReader.close();
} catch (Exception e) {
Assert.assertTrue(e.getMessage(), false);
}
}
use of fr.lirmm.graphik.graal.api.core.Substitution in project graal by graphik-team.
the class ConjunctiveQuery2Test method diffLiteralQueryTest.
@Theory
public void diffLiteralQueryTest(Homomorphism<ConjunctiveQuery, AtomSet> h, AtomSet store) {
try {
store.add(DlgpParser.parseAtom("<P>(a,\"literal\")."));
ConjunctiveQuery query = DlgpParser.parseQuery("? :- <P>(a,\"otherLiteral\").");
CloseableIterator<Substitution> subReader;
subReader = h.execute(query, store);
Assert.assertFalse("Error on " + store.getClass(), subReader.hasNext());
subReader.close();
} catch (Exception e) {
Assert.assertTrue(e.getMessage(), false);
}
}
use of fr.lirmm.graphik.graal.api.core.Substitution in project graal by graphik-team.
the class ConjunctiveQuery2Test method NFC2WithLimit8Test.
@Theory
public void NFC2WithLimit8Test(Homomorphism<ConjunctiveQuery, AtomSet> h, AtomSet store) {
try {
store.addAll(DlgpParser.parseAtomSet("<Q>(k,a),<Q>(k,k),<P>(k,a),<P>(k,b),<P>(k,c),<P>(k,d),<P>(k,e),<P>(k,f),<P>(k,g),<P>(k,h),<P>(k,i)."));
ConjunctiveQuery query = DlgpParser.parseQuery("?(X,Y,Z) :- <P>(X,Z),<Q>(Y,Z).");
CloseableIterator<Substitution> subReader = h.execute(query, store);
Assert.assertTrue(subReader.hasNext());
subReader.next();
Assert.assertFalse(subReader.hasNext());
subReader.close();
} catch (Exception e) {
Assert.assertTrue(e.getMessage(), false);
}
}
use of fr.lirmm.graphik.graal.api.core.Substitution in project graal by graphik-team.
the class Utils method getSafeCopy.
public static Rule getSafeCopy(Rule rule) {
Substitution substitution = new TreeMapSubstitution();
for (Variable t : rule.getVariables()) {
substitution.put(t, varGen.getFreshSymbol());
}
InMemoryAtomSet body = rule.getBody();
InMemoryAtomSet head = rule.getHead();
InMemoryAtomSet safeBody = new LinkedListAtomSet();
InMemoryAtomSet safeHead = new LinkedListAtomSet();
substitution.apply(body, safeBody);
substitution.apply(head, safeHead);
return DefaultRuleFactory.instance().create(safeBody, safeHead);
}
Aggregations