def evalDeleteWhere(ctx, u): """ http://www.w3.org/TR/sparql11-update/#deleteWhere """ res = evalBGP(ctx, u.triples) for g in u.quads: cg = ctx.dataset.get_context(g) ctx.pushGraph(cg) res = _join(res, evalBGP(ctx, u.quads[g])) ctx.popGraph() for c in res: g = ctx.graph g -= _fillTemplate(u.triples, c) for g in u.quads: cg = ctx.dataset.get_context(c.get(g)) cg -= _fillTemplate(u.quads[g], c)
def evalDeleteWhere(ctx, u): """ http://www.w3.org/TR/sparql11-update/#deleteWhere """ res = evalBGP(ctx, u.triples) for g in u.quads: cg = ctx.dataset.get_context(g) ctx.pushGraph(cg) res = _join(res, evalBGP(ctx, u.quads[g])) ctx.popGraph() for c in res: g = ctx.graph g -= _fillTemplate(u.triples, c) for g in u.quads: cg = ctx.dataset.get_context(g) cg -= _fillTemplate(u.quads[g], c)
def customEval(ctx, part): """ Rewrite triple patterns to get super-classes """ if part.name == 'BGP': # rewrite triples triples = [] for t in part.triples: if t[1] == rdflib.RDF.type: bnode = rdflib.BNode() triples.append((t[0], t[1], bnode)) triples.append((bnode, inferredSubClass, t[2])) else: triples.append(t) # delegate to normal evalBGP return evalBGP(ctx, triples) raise NotImplementedError()