W3C home > Mailing lists > Public > public-rdf-dawg@w3.org > January to March 2011

Re: SPARQL Update 1.1 review part1

From: Paul Gearon <gearon@ieee.org>
Date: Thu, 17 Feb 2011 11:42:50 -0500
Message-ID: <AANLkTim5sJ6M_MMT250XieMjdrX6TJd2AsD8UwdfbTFE@mail.gmail.com>
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 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 16:15:45 GMT