use of org.openrdf.query.parser.sparql.SPARQLParser in project incubator-rya by apache.
the class PCJOptimizerBenchmark method makeChainedQuery.
private static TupleExpr makeChainedQuery(final BenchmarkParams params) throws MalformedQueryException {
final Queue<String> varQueue = Lists.newLinkedList(variables);
final SPARQLParser parser = new SPARQLParser();
final List<String> queryVars = new ArrayList<>();
// The first statement pattern has two variables.
queryVars.add(varQueue.remove());
queryVars.add(varQueue.remove());
// The each extra statement pattern joins with the previous one, so only need one more variable each.
for (int i = 1; i < params.getQuerySPCount(); i++) {
queryVars.add(varQueue.remove());
}
final String sparql = buildChainedSPARQL(queryVars);
return parser.parseQuery(sparql, null).getTupleExpr();
}
use of org.openrdf.query.parser.sparql.SPARQLParser in project incubator-rya by apache.
the class PCJOptionalTestIT method testSimpleOptionalTest1.
@Test
public void testSimpleOptionalTest1() throws Exception {
final String query = //
"" + //
"SELECT ?u ?s ?t " + //
"{" + //
" ?s a ?t ." + //
" OPTIONAL{?t <http://www.w3.org/2000/01/rdf-schema#label> ?u } ." + //
" ?u <uri:talksTo> ?s . " + //
"}";
final SPARQLParser parser = new SPARQLParser();
final ParsedQuery pq1 = parser.parseQuery(query, null);
final SimpleExternalTupleSet extTup1 = new SimpleExternalTupleSet((Projection) pq1.getTupleExpr().clone());
final List<ExternalTupleSet> list = new ArrayList<ExternalTupleSet>();
list.add(extTup1);
final List<QueryModelNode> optTupNodes = Lists.newArrayList();
optTupNodes.add(extTup1);
final PCJOptimizer pcj = new PCJOptimizer(list, true, new AccumuloIndexSetProvider(new Configuration(), list));
final TupleExpr te = pq1.getTupleExpr();
pcj.optimize(te, null, null);
final NodeCollector nc = new NodeCollector();
te.visit(nc);
final List<QueryModelNode> qNodes = nc.getNodes();
Assert.assertEquals(qNodes.size(), optTupNodes.size());
for (final QueryModelNode node : qNodes) {
Assert.assertTrue(optTupNodes.contains(node));
}
}
use of org.openrdf.query.parser.sparql.SPARQLParser in project incubator-rya by apache.
the class SparqlToPigTransformVisitorTest method testJoin.
public void testJoin() throws Exception {
String query = "select * where {\n" + "?subj <urn:lubm:rdfts#name> 'Department0'.\n" + "?subj <urn:lubm:rdfts#subOrganizationOf> <http://www.University0.edu>.\n" + "}";
// System.out.println(query);
QueryParser parser = new SPARQLParser();
ParsedQuery parsedQuery = parser.parseQuery(query, null);
// System.out.println(parsedQuery);
SparqlToPigTransformVisitor visitor = new SparqlToPigTransformVisitor();
visitor.setTablePrefix(tablePrefix);
visitor.setInstance(instance);
visitor.setZk(zk);
visitor.setUser(user);
visitor.setPassword(password);
visitor.meet(new QueryRoot(parsedQuery.getTupleExpr()));
// System.out.println(visitor.getPigScript());
}
use of org.openrdf.query.parser.sparql.SPARQLParser in project incubator-rya by apache.
the class SparqlToPigTransformVisitorTest method testCross.
public void testCross() throws Exception {
String query = "select * where {\n" + "?subj0 <urn:lubm:rdfts#name> 'Department0'.\n" + "?subj1 <urn:lubm:rdfts#name> 'Department1'.\n" + "?subj0 <urn:lubm:rdfts#subOrganizationOf> <http://www.University0.edu>.\n" + "?subj1 <urn:lubm:rdfts#subOrganizationOf> <http://www.University0.edu>.\n" + "}";
// System.out.println(query);
QueryParser parser = new SPARQLParser();
ParsedQuery parsedQuery = parser.parseQuery(query, null);
QueryRoot tupleExpr = new QueryRoot(parsedQuery.getTupleExpr());
SimilarVarJoinOptimizer similarVarJoinOptimizer = new SimilarVarJoinOptimizer();
similarVarJoinOptimizer.optimize(tupleExpr, null, null);
// System.out.println(tupleExpr);
SparqlToPigTransformVisitor visitor = new SparqlToPigTransformVisitor();
visitor.setTablePrefix(tablePrefix);
visitor.setInstance(instance);
visitor.setZk(zk);
visitor.setUser(user);
visitor.setPassword(password);
visitor.meet(tupleExpr);
// System.out.println(visitor.getPigScript());
}
use of org.openrdf.query.parser.sparql.SPARQLParser in project incubator-rya by apache.
the class SparqlToPigTransformVisitorTest method testHardQuery.
public void testHardQuery() throws Exception {
String query = "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n" + " PREFIX ub: <urn:lubm:rdfts#>\n" + " SELECT * WHERE\n" + " {\n" + " ?y rdf:type ub:University .\n" + " ?z ub:subOrganizationOf ?y .\n" + " ?z rdf:type ub:Department .\n" + " ?x ub:memberOf ?z .\n" + " ?x ub:undergraduateDegreeFrom ?y .\n" + " ?x rdf:type ub:GraduateStudent .\n" + " }\n" + "limit 100";
// String query = "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n" +
// " PREFIX ub: <urn:lubm:rdfts#>\n" +
// " SELECT * WHERE\n" +
// " {\n" +
// "\t?x ub:advisor ?y.\n" +
// "\t?y ub:teacherOf ?z.\n" +
// "\t?x ub:takesCourse ?z.\n" +
// "\t?x rdf:type ub:Student.\n" +
// "\t?y rdf:type ub:Faculty.\n" +
// "\t?z rdf:type ub:Course.\n" +
// " }\n" +
// "limit 100";
// System.out.println(query);
QueryParser parser = new SPARQLParser();
ParsedQuery parsedQuery = parser.parseQuery(query, null);
TupleExpr tupleExpr = parsedQuery.getTupleExpr();
// CloudbaseRdfEvalStatsDAO rdfEvalStatsDAO = new CloudbaseRdfEvalStatsDAO();
// rdfEvalStatsDAO.setConnector(new ZooKeeperInstance("stratus", "stratus13:2181").getConnector("root", "password".getBytes()));
// rdfEvalStatsDAO.setEvalTable("l_eval");
// RdfCloudTripleStoreEvaluationStatistics stats = new RdfCloudTripleStoreEvaluationStatistics(new Configuration(), rdfEvalStatsDAO);
// (new SimilarVarJoinOptimizer(stats)).optimize(tupleExpr, null, null);
// System.out.println(tupleExpr);
SparqlToPigTransformVisitor visitor = new SparqlToPigTransformVisitor();
visitor.setTablePrefix(tablePrefix);
visitor.setInstance(instance);
visitor.setZk(zk);
visitor.setUser(user);
visitor.setPassword(password);
visitor.meet(new QueryRoot(tupleExpr));
// System.out.println(visitor.getPigScript());
}
Aggregations