- From: Steve Harris <steve.harris@garlik.com>
- Date: Fri, 16 Oct 2009 11:10:04 +0100
- To: "Seaborne, Andy" <andy.seaborne@hp.com>
- Cc: "public-rdf-dawg@w3.org Group" <public-rdf-dawg@w3.org>
On 15 Oct 2009, at 19:20, Seaborne, Andy wrote: >> >> 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 } That seems logical to me. > for just DELETE. > > INSERT { <a> <b> ?z . <c> <d> ?z } > > seems meaningless but an easy mistake to make. It would be a no-op? >> 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. Garlik would be in favour of that. We've found it invaluable when dealing with FOAF data in particular. However, I'm not quite sure how it fits in with the semantics of RDF. It's a form of skolemisation I suppose, in our case it just externalises what's happening inside the store. - Steve
Received on Friday, 16 October 2009 10:10:34 UTC