RE: Questions about Update 1.1



> -----Original Message-----
> From: public-rdf-dawg-request@w3.org [mailto:public-rdf-dawg-request@w3.org]
> On Behalf Of Steve Harris
> Sent: 15 October 2009 17:28
> To: public-rdf-dawg@w3.org Group
> Subject: Questions about Update 1.1
> 
> I've been noodling on update today, and I have a couple of questions
> for people who've already implemented it:
> 
> 1) If you have DELETE { <a> <b> ?z . <c> <d> ?z } what does that mean?
> The grammar allows it, but maybe it shouldn't? It could imply DELETE
> { <a> <b> ?z . <c> <d> ?z } WHERE { <a> <b> ?z . <c> <d> ?z }, but it
> should be explicit what happens somewhere.

The fact WHERE is optional is probably a historical mistake - when DELETE DATA didn't exist, it was not needed if the template was all ground triples.

I like the idea of it as a shorthand for 

DELETE { <a> <b> ?z . <c> <d> ?z } WHERE { <a> <b> ?z . <c> <d> ?z }

for just DELETE.

  INSERT { <a> <b> ?z . <c> <d> ?z }

seems meaningless but an easy mistake to make.

> 2) Can you delete bNodes with DATA? DELETE DATA { <a> <b> _:z }
> doesn't really make much sense. Some stores (including Jena and
> 4store) allow you to quote bNodes like DELETE DATA { <a> <b> <_:z> }
> but that's non-standard.

Yes - this is more of a problem now we have update and not just query.

We could document the <_:...> usage.

> Without DATA you can do something like:
>    DELETE { <a> <b> ?z . <c> <d> ?z }
>    WHERE { <a> <b> ?z . <c> <d> ?z . FILTER(isBNODE(?z)) }
> but that's really inconvenient, and will be hard to optimise if you
> want to delete large chunks of data.
> 
> - Steve

 Andy

Received on Thursday, 15 October 2009 18:37:15 UTC