use of org.eclipse.rdf4j.query.parser.QueryParser in project incubator-rya by apache.
the class StatementPatternStorage method addStatementPatternRange.
protected void addStatementPatternRange(String subj, String pred, String obj, String ctxt) throws IOException {
logger.info("Adding statement pattern[subject:" + subj + ", predicate:" + pred + ", object:" + obj + ", context:" + ctxt + "]");
StringBuilder sparqlBuilder = new StringBuilder();
sparqlBuilder.append("select * where {\n");
if (ctxt != null) {
/**
* select * where {
* GRAPH ?g {
* <http://www.example.org/exampleDocument#Monica> ?p ?o.
* }
* }
*/
sparqlBuilder.append("GRAPH ").append(ctxt).append(" {\n");
}
sparqlBuilder.append(subj).append(" ").append(pred).append(" ").append(obj).append(".\n");
if (ctxt != null) {
sparqlBuilder.append("}\n");
}
sparqlBuilder.append("}\n");
String sparql = sparqlBuilder.toString();
if (logger.isDebugEnabled()) {
logger.debug("Sparql statement range[" + sparql + "]");
}
QueryParser parser = new SPARQLParser();
ParsedQuery parsedQuery = null;
try {
parsedQuery = parser.parseQuery(sparql, null);
} catch (MalformedQueryException e) {
throw new IOException(e);
}
parsedQuery.getTupleExpr().visitChildren(new AbstractQueryModelVisitor<IOException>() {
@Override
public void meet(StatementPattern node) throws IOException {
Var subjectVar = node.getSubjectVar();
Var predicateVar = node.getPredicateVar();
Var objectVar = node.getObjectVar();
subject_value = getValue(subjectVar);
predicate_value = getValue(predicateVar);
object_value = getValue(objectVar);
Var contextVar = node.getContextVar();
Map.Entry<TABLE_LAYOUT, Range> temp = createRange(subject_value, predicate_value, object_value);
layout = temp.getKey();
Range range = temp.getValue();
addRange(range);
if (contextVar != null && contextVar.getValue() != null) {
String context_str = contextVar.getValue().stringValue();
addColumnPair(context_str, "");
}
}
});
}
use of org.eclipse.rdf4j.query.parser.QueryParser in project incubator-rya by apache.
the class SparqlToPigTransformVisitorTest method testMutlipleJoins.
public void testMutlipleJoins() throws Exception {
String query = "select * where {\n" + "?subj <urn:lubm:rdfts#name> 'Department0'.\n" + "?subj <urn:lubm:rdfts#subOrganizationOf> <http://www.University0.edu>.\n" + "?subj <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <urn:lubm:rdfts#Department>.\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.eclipse.rdf4j.query.parser.QueryParser in project incubator-rya by apache.
the class SparqlToPigTransformVisitorTest method testLimit.
public void testLimit() throws Exception {
String query = "select * where {\n" + "?subj <urn:lubm:rdfts#name> 'Department0'.\n" + "?subj <urn:lubm:rdfts#subOrganizationOf> ?suborg.\n" + "} limit 100";
// 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.eclipse.rdf4j.query.parser.QueryParser 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.eclipse.rdf4j.query.parser.QueryParser 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