Re: SPARQL update with blank nodes

From: Alex Hall <alexhall@revelytix.com>
Subject: Re: SPARQL update with blank nodes
Date: Wed, 20 Apr 2011 13:18:55 -0500

> [cc'ing one of the document editors]
> 
> On Wed, Apr 20, 2011 at 1:55 PM, Peter Frederick Patel-Schneider <
> pfps@research.bell-labs.com> wrote:
> 
>> 
> From: Alex Hall <alexhall@revelytix.com>
>> 
> Subject: Re: SPARQL update with blank nodes
>> Date: Wed, 20 Apr 2011 12:48:24 -0500
>> 
> 
>> > On Wed, Apr 20, 2011 at 1:36 PM, Peter Frederick Patel-Schneider <
>> > pfps@research.bell-labs.com> wrote:
>> >
>> >> So now I don't understand SPARQL 1.1 Update, which states
>> >>
>> >> Deleting triples that are not present, or from a graph that is not
>> >> present will have no effect and will result in success. *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.*
>> >> [emphasis added]
>> >
>> > A better way of phrasing that might be, "a blank node label in a delete
>> > template may not be reliably assumed to denote any particular resource
>> > in the
>> > graph."
>> 
>> 
> Well, this is different, but, because it is different, I wouldn't call
>> it a better phrasing, but instead ... "different".   The document uses
>> "matching", and the only "matching" around for blank nodes in triples is
>> RDF instance matching.
>> 
> 
>> 
> 
> OK, "A more accurate phrasing of what I think the authors were intending to
> convey..."
>  
> 
>> 
> 
>> >> because blank nodes *do* match, as per SPARQL 1.1 query.
>> >
>> > Blank nodes in the WHERE pattern act as local variables that match
>> > anything,
>> > but are projected out of the result set.
>> >
>> > A better comparison is probably to blank nodes in a CONSTRUCT template,
>> > described here:
>> >
>> > http://www.w3.org/2009/sparql/docs/query-1.1/rq25.xml#tempatesWithBNodes

>> >
>> > [[
>> > A template can create an RDF graph containing blank nodes. The blank
>> > node
>> > labels are scoped to the template for each solution. If the same label
>> > occurs
>> > twice in a template, then there will be one blank node created for each
>> > query
>> > solution, but there will be different blank nodes for triples generated
>> > by
>> > different query solutions.
>> > ]]
>> 
>> 
> I don't see where this bit has anything in common with matching.
> 
> It doesn't.  I always thought matching applied to the graph pattern specified
> in the WHERE, not the CONSTRUCT/INSERT/DELETE template.
> 
> I see the following text in the wiki version of the SPARQL Update document (
> http://www.w3.org/TR/2010/WD-sparql11-update-20101014/#t413):
> 
> [[
> Note:
> Needs further clarification on blank nodes, as well as on what happens if WITH
> is not present.
> ]]
> 
> If you feel the usage of the term "match" in the context you cited is
> problematic, then I'm sure the editors would like to hear about it as that
> document goes to last call in 2 weeks.
> 
> -Alex

This seems very agressive given the note you mention above.

I'll send in my concerns over the usual channels.

peter

Received on Wednesday, 20 April 2011 19:03:48 UTC