@Override public void write(Kryo kryo, Output output, Template object) { final BasicPattern bgp = object.getBGP(); output.writeInt(bgp.size()); for (final Triple triple : bgp) { kryo.writeClassAndObject(output, triple); } }
@Override public Template read(Kryo kryo, Input input, Class<Template> type) { final BasicPattern bgp = new BasicPattern(); final int count = input.readInt(); for (int i = 0; i < count; i++) { bgp.add((Triple) kryo.readClassAndObject(input)); } return new Template(bgp); }
@Override public int hashCode() { // BNode invariant hashCode. int calcHashCode = Template.HashTemplateGroup ; for ( Triple t : bgp.getList() ) calcHashCode ^= hash(t) ^ calcHashCode<<1 ; return calcHashCode ; }
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 query) { x ^= query.getConstructTemplate().hashCode() ; }
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; }
Map<Node, Node> bNodeMap = new HashMap<Node, Node>() ; Binding binding = queryIterator.nextBinding() ; template.subst(set, bNodeMap, binding) ;
@Override public void visitConstructResultForm(Query query1) { check("Not both CONSTRUCT queries", query2.isConstructType()) ; check("CONSTRUCT templates", query1.getConstructTemplate().equalIso(query2.getConstructTemplate(), new NodeIsomorphismMap()) ) ; }
public void visitConstructResultForm(Query query) { x ^= query.getConstructTemplate().hashCode() ; }
@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); }
/** * {@inheritDoc} */ @SuppressWarnings("unchecked") public Model execConstruct(Model model) { ensureQueryType( QueryType.CONSTRUCT ); ResultSet results = exec(); if( results == null ) { QueryExecutionFactory.create( query, source, initialBinding ).execConstruct( model ); } else { model.setNsPrefixes( source.getDefaultModel() ); model.setNsPrefixes( query.getPrefixMapping() ); Set set = new HashSet(); Template template = query.getConstructTemplate(); while( results.hasNext() ) { Map bNodeMap = new HashMap(); Binding binding = results.nextBinding(); template.subst( set, bNodeMap, binding ); } for( Iterator iter = set.iterator(); iter.hasNext(); ) { Triple t = (Triple) iter.next(); Statement stmt = ModelUtils.tripleToStatement( model, t ); if( stmt != null ) model.add( stmt ); } close(); } return model; }
@Override public Template read(Kryo kryo, Input input, Class<Template> type) { final BasicPattern bgp = new BasicPattern(); final int count = input.readInt(); for (int i = 0; i < count; i++) { bgp.add((Triple) kryo.readClassAndObject(input)); } return new Template(bgp); }
@Override public void write(Kryo kryo, Output output, Template object) { final BasicPattern bgp = object.getBGP(); output.writeInt(bgp.size()); for (final Triple triple : bgp) { kryo.writeClassAndObject(output, triple); } }
@Override public int hashCode() { // BNode invariant hashCode. int calcHashCode = Template.HashTemplateGroup ; for ( Triple t : bgp.getList() ) calcHashCode ^= hash(t) ^ calcHashCode<<1 ; return calcHashCode ; }
final public Template ConstructTemplate() throws ParseException { TripleCollectorBGP acc = new TripleCollectorBGP(); Template t = new Template(acc.getBGP()) ; setInConstructTemplate(true) ; jj_consume_token(LBRACE);
@Override public void format(Template template) { out.print("{") ; out.incIndent(INDENT) ; out.pad() ; formatTriples(template.getBGP()) ; out.decIndent(INDENT) ; out.print("}") ; out.newline() ; }
final public Template ConstructTemplate() throws ParseException { TripleCollectorBGP acc = new TripleCollectorBGP(); Template t = new Template(acc.getBGP()) ; setInConstructTemplate(true) ; jj_consume_token(LBRACE);
public RuleforJena(Query constructQuery, int id) { this.id = id; antecedent = Algebra.compile(constructQuery); // KAVITHA: the consequent should be a single triple List<Triple> list = constructQuery.getConstructTemplate().getBGP() .getList(); consequent = new OpTriple(list.get(0)); if (SPARQLRewriterForJena.GENERATE_TRACE == true) { Op bind = null; VarExprList expr = new VarExprList(); expr.add( Var.alloc("RULEID"), new NodeValueNode(Node_Literal.createLiteral(String .valueOf(id)))); bind = OpExtend.extend(antecedent, expr); antecedent = bind; } }