- From: Seaborne, Andy <andy.seaborne@hp.com>
- Date: Wed, 10 Aug 2005 16:45:32 +0100
- To: Dave Beckett <dave.beckett@bristol.ac.uk>
- CC: Dan Connolly <connolly@w3.org>, RDF Data Access Working Group <public-rdf-dawg@w3.org>
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