private static QueryType getQueryType(Query query) { if( query.isSelectType() ) return QueryType.SELECT; if( query.isConstructType() ) return QueryType.CONSTRUCT; if( query.isDescribeType() ) return QueryType.DESCRIBE; if( query.isAskType() ) return QueryType.ASK; return null; }
static private String labelForQuery(Query q) { if ( q.isSelectType() ) return "SELECT" ; if ( q.isConstructType() ) return "CONSTRUCT" ; if ( q.isDescribeType() ) return "DESCRIBE" ; if ( q.isAskType() ) return "ASK" ; return "<<unknown>>" ; }
static private String labelForQuery(Query q) { if ( q.isSelectType() ) return "SELECT" ; if ( q.isConstructType() ) return "CONSTRUCT" ; if ( q.isDescribeType() ) return "DESCRIBE" ; if ( q.isAskType() ) return "ASK" ; return "<<unknown>>" ; }
@Override public ClosableIterable<Statement> sparqlConstruct(String query) throws ModelRuntimeException, MalformedQueryException { Query jenaQuery = QueryFactory.create(query); QueryExecution qexec = QueryExecutionFactory.create(jenaQuery, this.dataset); if (jenaQuery.isConstructType()) { com.hp.hpl.jena.rdf.model.Model m = qexec.execConstruct(); Model resultModel = new ModelImplJena(null, m, Reasoning.none); resultModel.open(); return resultModel; } else { throw new RuntimeException( "Cannot handle this type of query! Please use CONSTRUCT."); } }
@Override public ClosableIterable<Statement> queryConstruct(String query, String querylanguage) throws QueryLanguageNotSupportedException, MalformedQueryException, ModelRuntimeException { Query jenaQuery = QueryFactory.create(query); QueryExecution qexec = QueryExecutionFactory.create(jenaQuery, this.dataset); if (jenaQuery.isConstructType()) { com.hp.hpl.jena.rdf.model.Model m = qexec.execConstruct(); Model resultModel = new ModelImplJena(null, m, Reasoning.none); resultModel.open(); return resultModel; } else { throw new RuntimeException( "Cannot handle this type of query! Please use CONSTRUCT."); } }
@Override public ClosableIterable<Statement> sparqlConstruct(String queryString) throws ModelRuntimeException { assertModel(); Query query = QueryFactory.create(queryString); QueryExecution qexec = QueryExecutionFactory.create(query, this.jenaModel); if(query.isConstructType()) { com.hp.hpl.jena.rdf.model.Model m = qexec.execConstruct(); Model resultModel = new ModelImplJena(null, m, Reasoning.none); resultModel.open(); return resultModel; } else { throw new RuntimeException("Cannot handle this type of queries! Please use CONSTRUCT."); } }
public void visitConstructResultForm(Query query1) { check("Not both CONSTRUCT queries", query2.isConstructType()) ; check("CONSTRUCT templates", query1.getConstructTemplate().equalIso(query2.getConstructTemplate(), new NodeIsomorphismMap()) ) ; }
@Override public void visitConstructResultForm(Query query1) { check("Not both CONSTRUCT queries", query2.isConstructType()) ; check("CONSTRUCT templates", query1.getConstructTemplate().equalIso(query2.getConstructTemplate(), new NodeIsomorphismMap()) ) ; }
private void execute(String sparqlQuery) { Query sparql = QueryFactory.create(sparqlQuery); this.prefixes = new LinkedList<Prefix>(); for(Map.Entry<String,String> e : sparql.getPrefixMapping().getNsPrefixMap().entrySet()) { this.prefixes.add(new Prefix(e.getKey(), e.getValue())); } Rule rule = new DefaultRule(); if (sparql.isConstructType()) { Template template = sparql.getConstructTemplate(); for (Triple triple : template.getTriples()) { rule.getHead().add(SparqlUtils.triple2Atom(triple)); } } ElementVisitorImpl visitor = new ElementVisitorImpl(rule.getBody()); sparql.getQueryPattern().visit(visitor); this.rule = rule; }
public Model execConstruct(Model model) if ( ! query.isConstructType() ) throw new QueryExecException("Attempt to get a CONSTRUCT model from a "+labelForQuery(query)+" query") ;
public static ResultSet query(Query query, Model model) { QueryExecution qe = QueryExecutionFactory.create(query, model); ResultSet results = null; if(query.isSelectType()) { results = qe.execSelect(); } else if(query.isDescribeType()) { Iterator<Triple> triples = qe.execDescribeTriples(); results = new TripleResultSet(triples, model); } else if(query.isConstructType()) { Iterator<Triple> triples = qe.execConstructTriples(); results = new TripleResultSet(triples, model); } else if(query.isAskType()) { Boolean answer = qe.execAsk(); List<Boolean> result = new ArrayList<Boolean>(); result.add(answer); results = new BooleanResultSet(result.iterator(), model); } return results; }
@Override public Iterator<Triple> execConstructTriples() { if ( ! query.isConstructType() ) throw new QueryExecException("Attempt to get a CONSTRUCT model from a "+labelForQuery(query)+" query") ; // This causes there to be no PROJECT around the pattern. // That in turn, exposes the initial bindings. query.setQueryResultStar(true) ; startQueryIterator() ; Template template = query.getConstructTemplate() ; return TemplateLib.calcTriples(template.getTriples(), queryIterator); }
public static void executeQuery(Query query, QueryExecution queryExecution, ResultsFormat outputFormat) { if ( query.isSelectType() ) doSelectQuery(query, queryExecution, outputFormat) ; if ( query.isDescribeType() ) doDescribeQuery(query, queryExecution, outputFormat) ; if ( query.isConstructType() ) doConstructQuery(query, queryExecution, outputFormat) ; if ( query.isAskType() ) doAskQuery(query, queryExecution, outputFormat) ; queryExecution.close() ; }
/** * Throws an exception if the syntax is not SPARQL */ @Override public ClosableIterable<Statement> queryConstruct(String queryString, String querylanguage) throws QueryLanguageNotSupportedException, ModelRuntimeException { assertModel(); com.hp.hpl.jena.query.Syntax syntax = com.hp.hpl.jena.query.Syntax.lookup(querylanguage); if(syntax == null) { // delegate to super return super.queryConstruct(queryString, querylanguage); } Query query = QueryFactory.create(queryString, syntax); QueryExecution qexec = QueryExecutionFactory.create(query, this.jenaModel); if(query.isConstructType()) { com.hp.hpl.jena.rdf.model.Model m = qexec.execConstruct(); Model resultModel = new ModelImplJena(null, m, Reasoning.none); resultModel.open(); return resultModel; } else { throw new RuntimeException("Cannot handle this type of queries! Please use CONSTRUCT."); } }
public static void executeQuery(Query query, QueryExecution queryExecution, ResultsFormat outputFormat) { if ( query.isSelectType() ) doSelectQuery(query, queryExecution, outputFormat) ; if ( query.isDescribeType() ) doDescribeQuery(query, queryExecution, outputFormat) ; if ( query.isConstructType() ) doConstructQuery(query, queryExecution, outputFormat) ; if ( query.isAskType() ) doAskQuery(query, queryExecution, outputFormat) ; queryExecution.close() ; }
if ( query.isConstructType() ) qType = "CONSTRUCT" ;
public void visit(QueryVisitor visitor) { visitor.startVisit(this) ; visitor.visitResultForm(this) ; visitor.visitPrologue(this) ; if ( this.isSelectType() ) visitor.visitSelectResultForm(this) ; if ( this.isConstructType() ) visitor.visitConstructResultForm(this) ; if ( this.isDescribeType() ) visitor.visitDescribeResultForm(this) ; if ( this.isAskType() ) visitor.visitAskResultForm(this) ; visitor.visitDatasetDecl(this) ; visitor.visitQueryPattern(this) ; visitor.visitGroupBy(this) ; visitor.visitHaving(this) ; visitor.visitOrderBy(this) ; visitor.visitOffset(this) ; visitor.visitLimit(this) ; visitor.visitValues(this) ; visitor.finishVisit(this) ; }
public void visit(QueryVisitor visitor) { visitor.startVisit(this) ; visitor.visitResultForm(this) ; visitor.visitPrologue(this) ; if ( this.isSelectType() ) visitor.visitSelectResultForm(this) ; if ( this.isConstructType() ) visitor.visitConstructResultForm(this) ; if ( this.isDescribeType() ) visitor.visitDescribeResultForm(this) ; if ( this.isAskType() ) visitor.visitAskResultForm(this) ; visitor.visitDatasetDecl(this) ; visitor.visitQueryPattern(this) ; visitor.visitGroupBy(this) ; visitor.visitHaving(this) ; visitor.visitOrderBy(this) ; visitor.visitOffset(this) ; visitor.visitLimit(this) ; visitor.visitBindings(this) ; visitor.finishVisit(this) ; }