Search in sources :

Example 1 with QueryParser

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, "");
            }
        }
    });
}
Also used : SPARQLParser(org.eclipse.rdf4j.query.parser.sparql.SPARQLParser) ParsedQuery(org.eclipse.rdf4j.query.parser.ParsedQuery) Var(org.eclipse.rdf4j.query.algebra.Var) IOException(java.io.IOException) Range(org.apache.accumulo.core.data.Range) ByteRange(org.apache.rya.api.query.strategy.ByteRange) StatementPattern(org.eclipse.rdf4j.query.algebra.StatementPattern) QueryParser(org.eclipse.rdf4j.query.parser.QueryParser) MalformedQueryException(org.eclipse.rdf4j.query.MalformedQueryException)

Example 2 with QueryParser

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());
}
Also used : QueryParser(org.eclipse.rdf4j.query.parser.QueryParser) SPARQLParser(org.eclipse.rdf4j.query.parser.sparql.SPARQLParser) QueryRoot(org.eclipse.rdf4j.query.algebra.QueryRoot) ParsedQuery(org.eclipse.rdf4j.query.parser.ParsedQuery)

Example 3 with QueryParser

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());
}
Also used : QueryParser(org.eclipse.rdf4j.query.parser.QueryParser) SPARQLParser(org.eclipse.rdf4j.query.parser.sparql.SPARQLParser) QueryRoot(org.eclipse.rdf4j.query.algebra.QueryRoot) ParsedQuery(org.eclipse.rdf4j.query.parser.ParsedQuery)

Example 4 with QueryParser

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());
}
Also used : QueryParser(org.eclipse.rdf4j.query.parser.QueryParser) SPARQLParser(org.eclipse.rdf4j.query.parser.sparql.SPARQLParser) QueryRoot(org.eclipse.rdf4j.query.algebra.QueryRoot) ParsedQuery(org.eclipse.rdf4j.query.parser.ParsedQuery) SimilarVarJoinOptimizer(org.apache.rya.accumulo.pig.optimizer.SimilarVarJoinOptimizer)

Example 5 with QueryParser

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());
}
Also used : QueryParser(org.eclipse.rdf4j.query.parser.QueryParser) SPARQLParser(org.eclipse.rdf4j.query.parser.sparql.SPARQLParser) QueryRoot(org.eclipse.rdf4j.query.algebra.QueryRoot) ParsedQuery(org.eclipse.rdf4j.query.parser.ParsedQuery) TupleExpr(org.eclipse.rdf4j.query.algebra.TupleExpr)

Aggregations

ParsedQuery (org.eclipse.rdf4j.query.parser.ParsedQuery)12 QueryParser (org.eclipse.rdf4j.query.parser.QueryParser)12 SPARQLParser (org.eclipse.rdf4j.query.parser.sparql.SPARQLParser)12 QueryRoot (org.eclipse.rdf4j.query.algebra.QueryRoot)11 TupleExpr (org.eclipse.rdf4j.query.algebra.TupleExpr)2 IOException (java.io.IOException)1 Range (org.apache.accumulo.core.data.Range)1 SimilarVarJoinOptimizer (org.apache.rya.accumulo.pig.optimizer.SimilarVarJoinOptimizer)1 ByteRange (org.apache.rya.api.query.strategy.ByteRange)1 QueryJoinOptimizer (org.apache.rya.rdftriplestore.evaluation.QueryJoinOptimizer)1 InverseOfVisitor (org.apache.rya.rdftriplestore.inference.InverseOfVisitor)1 SymmetricPropertyVisitor (org.apache.rya.rdftriplestore.inference.SymmetricPropertyVisitor)1 TransitivePropertyVisitor (org.apache.rya.rdftriplestore.inference.TransitivePropertyVisitor)1 MalformedQueryException (org.eclipse.rdf4j.query.MalformedQueryException)1 StatementPattern (org.eclipse.rdf4j.query.algebra.StatementPattern)1 Var (org.eclipse.rdf4j.query.algebra.Var)1