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

Re: Combined grammar (work in progress)

From: Andy Seaborne <andy.seaborne@talis.com>
Date: Tue, 23 Mar 2010 10:13:21 +0000
Message-ID: <4BA89441.3070706@talis.com>
To: SPARQL Working Group <public-rdf-dawg@w3.org>
I've updated the grammar to cover aggregates.  It still needs tidying to 
make it more regular.

1/ datasets in update

Lee - I haven't included anything for datasets in update yet.

I don't understand the relationship of WITH and FROM/FROM NAMED 
(probably not a syntax issue per se but if I'm unclear I'm probably not 
going to get the syntax style right).

"FROM" makes sense as a work for query and DELETE as information or 
triples is taken from the data but with INSERT, FROM seems odd.

For now, I've not added anything and will do so when the design is 
fleshed out.

2/ DELETE template not like CONSTRUCT templates

We decided:

[[
RESOLVED: 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, SteveH, dcharbon2, LeeF abstaining
]]

and the update doc says
[[
It should be noted that labeled blank nodes cannot be used in the 
shortened form, as this would lead to an equivalent long-form expression 
where a blank node in the deletion template is reused in the 
GroupGraphPattern of the WHERE clause.
]]

The phrase "same blank node" is the confusion.

DELETE WHERE { :x :p _:b ; ?y :q _:b  }

One way of thinking about this is that this is the same as:

DELETE { :x :p _:b ; ?y :q _:b  } WHERE { :x :p _:b ; ?y :q _:b  }

another is

DELETE { :x :p _:c ; ?y :q _:c  } WHERE { :x :p _:b ; ?y :q _:b  }

relabelling the bnode reference in the template.

But CONSTRUCT allows (the "no repeat" rule applies to queries pattern 
across BGPs not to the template):

CONSTRUCT { :x :p _:b ; ?y :q _:b  } WHERE { :x :p _:b ; ?y :q _:b  }

and a new bnode must be generated each time the template is generated 
anyway.

To me, it makes more sense to make DELETE similar to CONSTRUCT in this 
respect.

 From a grammar point-of-view, this restriction would take a deep chnage 
because there is one blank node rule:

  	BlankNode  	  ::=    	BLANK_NODE_LABEL  | ANON

for all templates and BGPs and it's embedded deep in the Turtle-ish 
triple patterns abbreviations.

It also means we now have yet another template form.

	Andy
Received on Tuesday, 23 March 2010 10:14:20 GMT

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