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

Re: SPARQL Update 1.1 review part1

From: Andy Seaborne <andy.seaborne@epimorphics.com>
Date: Tue, 15 Feb 2011 16:58:48 +0000
Message-ID: <4D5AB0C8.4040000@epimorphics.com>
To: Lee Feigenbaum <lee@thefigtrees.net>
CC: Paul Gearon <gearon@ieee.org>, Axel Polleres <axel.polleres@deri.org>, SPARQL Working Group <public-rdf-dawg@w3.org>, Alexandre Passant <Alexandre.Passant@deri.org>
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 hope the document will point out the difference in behaviour to 
CONSTRUCT and INSERT.

	Andy

On 15/02/11 15:09, Lee Feigenbaum wrote:
> On 2/8/2011 11:24 AM, Paul Gearon wrote:
>> On Tue, Feb 8, 2011 at 9:58 AM, Lee Feigenbaum<lee@thefigtrees.net>
>> wrote:
>>> On 2/7/2011 10:38 PM, Paul Gearon wrote:
>>>>
>>>> Alex originally dealt with Axe's review, but I am going over it now.
>>>>
>>>> I have a question about Axel's point 27:
>>>>
>>>>
>>>> On Thu, Sep 30, 2010 at 6:10 PM, Axel Polleres<axel.polleres@deri.org>
>>>> wrote:
>>>>>
>>>>> 27)
>>>>> "Using a new blank node in a delete template will lead to nothing
>>>>> being
>>>>> deleted, as the new blank node cannot match anything that already
>>>>> exists."
>>>>>
>>>>> this seems to contradict resolution
>>>>> http://www.w3.org/2009/sparql/meeting/2010-03-09#resolution_2
>>>>> I haven't seen any resolution overriding that, but I might have missed
>>>>> that. Even if we decided to override that resolution, it is not
>>>>> entirely
>>>>> clear to me what "new" blank node means exactly here.
>>>>
>>>> Here is a copy of the resolution that Alex mentions:
>>>>
>>>> "Blank nodes in DELETE templates act as "wild cards", effectively as
>>>> variables bound to all RDF terms; the same blank node cannot be used
>>>> in the WHERE clause and the template, or in multiple BGPs"
>>>>
>>>> Unfortunately, I was not at this meeting, and it's something that I
>>>> missed when the minutes came around. I find this to be an unfortunate
>>>> decision, as it effectively makes the template part of the WHERE
>>>> clause. To illustrate, the operation:
>>>>
>>>> DELETE { [] :p ?x }
>>>> WHERE { ?x :q :z }
>>>>
>>>> Is going to be effectively the same as:
>>>>
>>>> DELETE { ?a :p ?x }
>>>> WHERE { ?x :q :z . ?a ?p ?o }
>>>
>>> Right, this was the goal of the resolution. Can you explain your
>>> concern?
>>
>>
>> It brings some of the operation of the WHERE clause into the DELETE
>> clause. In general, the WHERE clause provides bindings by doing a
>> query on the data, while the DELETE clause is a template that
>> describes triples/quads based on those bindings. The above approach
>> allows the DELETE clause to participate in the query, which blurs the
>> operations between the two clauses.
>>
>> The syntax also seems misleading. I expect that users being introduced
>> to this would expect [] to bind only to blank nodes. I know that blank
>> nodes in WHERE clauses have always bound to anything, but until now
>> templates (ie. in CONSTRUCT queries) have always used [] to refer to
>> blank nodes. So this is another case where the DELETE template is
>> taking on some of the semantics of the WHERE clause.
>>
>>> From a practical perspective, this means that the parse/transformation
>> code needs to update the query portion of this operation based on the
>> template. I can usually keep them separate, and this is an exception
>> that doesn't seem to have any benefit.
>>
>> Given that it's easy to express a "wildcard" with a variable and an
>> update to WHERE, then I don't see any benefits to this semantics.
>> Instead I see it as an annoying exception.
>
> Hi Paul,
>
> I do think that the Working Group considered this issue pretty
> thoroughly when the decision was made. See, for example:
>
> *
> http://lists.w3.org/Archives/Public/public-rdf-dawg/2010JanMar/0428.html
> (email summarizing the possibilities; also see subsequent thread)
>
> * http://www.w3.org/2009/sparql/meeting/2010-03-09#Blank_Nodes_in_Delete
> (telecon discussion that led to the resolution)
>
> I'm not inclined to revisit this decision at this point in time. Please
> let me know if you see something significantly new and would like the
> working group to consider it.
>
> Lee
>
>>
>>>> (ignoring the existence of the ?p and ?o)
>>>>
>>>> I'm really uncomfortable with this. Is it set in stone?
>>>
>>> Like all decisions, we can revisit it if there is new information
>>> that was
>>> not originally considered, but the later we get in the process, the
>>> higher
>>> the bar for substantive new information to cause us to change a decision
>>> should probably be.
>>
>> It's not a large part of the Update document, and it's easy for me to
>> change either way. The document doesn't currently match the
>> resolution, so I'm supposed to update it right now. However, it's not
>> a change I like making for the above reasons, which is why I would
>> like the resolution revisited.
>>
>> Regards,
>> Paul Gearon
>>
>
Received on Tuesday, 15 February 2011 16:59:29 GMT

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