- From: Paul Gearon <gearon@ieee.org>
- Date: Thu, 17 Feb 2011 11:42:50 -0500
- To: Andy Seaborne <andy.seaborne@epimorphics.com>
- Cc: Lee Feigenbaum <lee@thefigtrees.net>, Axel Polleres <axel.polleres@deri.org>, SPARQL Working Group <public-rdf-dawg@w3.org>, Alexandre Passant <Alexandre.Passant@deri.org>
Hi Andy, On Tue, Feb 15, 2011 at 11:58 AM, Andy Seaborne <andy.seaborne@epimorphics.com> wrote: > Can we have some test cases for this? because the details matter :-) > > Presumably shape matters: > > DELETE > { _:a :p 12 . > _:a :q ?o . > } > WHERE {?s :r ?q OPTIONAL { ?q :s ?o } } > > Is the expectation that the delete stage effectively use the template as a > second round of pattern matching? I'm assuming it's not on a per-triple > basis (as CONSTRUCT eliminates triples with unbounds). I presuming that the above operation should result in the removal of the triple from the following dataset? { :x :p 12 } I had originally thought that the query could be translated into something like this: DELETE{ ?tmp_a :p 12 . ?tmp_a :q ?o . } WHERE { ?s :r ?q OPTIONAL { ?q :s ?o } ?tmp_a :q ?o . ?tmp_a ?tmp_b ?tmp_c } But that doesn't work, since the lack of bindings for ?o will prevent anything from happening. I *think* that the correct equivalent would be: DELETE{ ?tmp_a :p 12 . ?tmp_a :q ?o . } WHERE { ?s :r ?q OPTIONAL { ?q :s ?o } ?tmp_a ?tmp_b ?tmp_c OPTIONAL { ?tmp_a :q ?o } } Do others agree? > I hope the document will point out the difference in behaviour to CONSTRUCT > and INSERT. I need to figure out the details correctly before I can adequately describe the differences. Regards, Paul Gearon
Received on Thursday, 17 February 2011 16:43:22 UTC