Re: [Fwd: Editorial comment on SPARQL Query Language Last Call]

Dave Beckett wrote:
> On Mon, 2005-08-01 at 12:07 -0500, Dan Connolly wrote:
> 
>>On Mon, 2005-08-01 at 15:03 +0100, Seaborne, Andy wrote:
>>
>>>In http://lists.w3.org/Archives/Public/public-rdf-dawg-comments/2005Jul/0053, 
>>>Ivan points out that the text in 2.8 about blank node syntactic forms does not 
>>>cover the cases of using [:p :v] as a subject or object not for (1 2 3).
>>>
>>>I have added (v1.449):
>>>file:///C:/home/afs/W3C/DataAccess/rq23/Overview.html#syntaxMisc
> 
> 
> http://www.w3.org/2001/sw/DataAccess/rq23/#syntaxMisc
> 
> although I'm reading $Revision: 1.450 $ of $Date: 2005/08/02 11:27:49 $
> which has an unrelated change
> 
> 
>>I've read too many descriptions of N3/turtle/sparql; I can't
>>tell if this text has any hidden gotchas. I'd like another pair
>>of eyeballs. Dave? Steve? Somebody else?
> 
> 
> The [ ... ] construct needs a bit more explaining.  It both acts as
> providing a triple subject for the *contained* forms, and as a
> subject/object of the *containing* form.  This isn't explicit in:
> 
>  [[ The [:p :v] construct can be used to form triple patterns taking the
> place with a blank node for subject. ]]
> 
> How about:
> 
> The [:p :v] construct can be used in triple patterns to create a blank
> node label which is used as the subject of all contained
> predicate-object pairs.  The form returns the created blank node so it
> can also be used in triple patterns in the subject and objects of
> triples.

Text used:

The [:p :v] construct can be used in triple patterns.  It creates a blank node 
label which is used as the subject of all contained predicate-object pairs.  The 
created blank node can also be used in further triple patterns in the subject 
and object positions.

> 
> (Aside: cannot be used as predicate?  We allow blank nodes there now,
> why not []?)

The grammar does not allow this but there is no particular reason why not.  I'm 
neutral; I'd just point out that any triples hanging off the blank node for the 
predciate are nothing to do with the triple but are the predicate (it's not 
related to reficiation!).

> 
> 
> 
>>>"""
>>>This allocated blank node label can be used as the subject or object of further 
>>>triple patterns. For example, as a subject:
>>>
>>>[ :p "v" ] :q "w" .
> 
> 
> add something like, "equivalent to the two triples:"

Done

> 
> 
>>>_:b57 :p "v" .
>>>_:b57 :q "w" .
>>>
>>>and as an object:
>>>
>>>:x :q [ :p "v" ] .
> 
> 
> ditto, add "equivalent to the two triples:"

Done

>  
> 
>>>:x  :q _:b57 .
>>>_:b57 :p "v" .
>>>"""
>>>
>>>and also in the section on RDF Collections:
>>>
>>>"""
>>>When used with collection elements, such as (1 ?x 3) then triple patterns and 
>>>blank nodes are allocated for the collection and the blank node at the head of 
>>>the collection can be used as a subject or object in other triple patterns.
>>>
>>>(1 ?x 3) :p "w" .
>>>
>>>is a short form for:
>>>
>>>   _:b0  :p  "w" .
>>>   _:b0  rdf:first  1 .
>>>   _:b0  rdf:rest   _:b1 .
>>>   _:b1  rdf:first  ?x .
>>>   _:b1  rdf:rest   _:b2 .
>>>   _:b2  rdf:first  3 .
>>>   _:b2  rdf:rest   rdf:nil .
>>>"""
> 
> 
> Yeah, this is trick to say.  I guess I'd have expected a collection to
> be an object of a triple more commonly, but maybe not.
> 
> Maybe also explain what :a :b () gives?  At least that bit me when I did
> Turtle.

That is covered at the beginning of the section "RDF Collections".

> 
> Dave

 Thanks
 Andy

Received on Wednesday, 10 August 2005 15:46:03 UTC