- From: Eric Prud'hommeaux <eric@w3.org>
- Date: Fri, 17 May 2013 10:32:46 -0400
- To: Richard Cyganiak <richard@cyganiak.de>
- Cc: Andy Seaborne <andy.seaborne@epimorphics.com>, "public-rdf-comments@w3.org" <public-rdf-comments@w3.org>
* Richard Cyganiak <richard@cyganiak.de> [2013-05-16 13:55+0100] > On 16 May 2013, at 13:41, Andy Seaborne <andy.seaborne@epimorphics.com> wrote: > > On 16/05/13 10:24, Richard Cyganiak wrote: > > > >> For the record, I believe this limitation in the grammar is there > >> because the Turtle grammar was derived from the SPARQL grammar, and > >> SPARQL doesn't support such “naked lists” in triple patterns, because in > >> a query they really wouldn't make sense. > > > > (Another unofficial reply) > > > > SPARQL does allow just lists: > > > > ASK { ( 1 ?var 3 4 ) } > > > > but does not allow: > > > > ASK { ( ) } > > Ok, thanks Andy, I misremembered. It's a little odd that we allow [ :p :o ] . --> _:b1 :p :o . and not ( 1 ) . --> _:b1 rdf:first 1 ; rdf:rest rdf:nil . The former is enabled by blankNodePropertyList in: [6] triples ::= subject predicateObjectList | blankNodePropertyList predicateObjectList? We could enable the latter by changing that to: [6] triples ::= subject predicateObjectList | blankNodePropertyList predicateObjectList? | nonEmptyCollection predicateObjectList? , adding the referenced production: [15b] nonEmptyCollection ::= '(' object+ ')' , adding a Term Constructur below Collection <http://www.w3.org/TR/turtle/#handle-collection> ┌──────────────┬──────────────┬────────────────────────────────────────────┐ │ production │ type │ procedure │ │ "collection" │ "blank node" │ "A blank node is generated. Note the │ │ │ │ rules for collection in the next section." │ └──────────────┴──────────────┴────────────────────────────────────────────┘ , changing Triple Constructors to include nonEmptyCollection <http://www.w3.org/TR/turtle/#collection> adding some tests, and going through another LC. > Richard > > > > > > > To make this work (SPARQL 1.0), there is a certain amount of jumping through hoops. It makes the treatment of argument lists in function have to have special grammar rules for (). > > > > Andy > > > > Unofficial: > > http://www.sparql.org/query-validator.html > > > > (does W3C want to take this and support it c.f. http://www.w3.org/RDF/Validator/) > > > >> I don't see this limitation in Turtle as a big problem, because there > >> are workarounds such as spelling out the list in rdf:first and rdf:rest > >> triples. So just changing the example is fine with me. Adding a note > >> about it might be appropriate. > >> > >> Richard > >> > >> > >> > >>> How would you use that? > >>> > >>> -- Sandro > >>> > >>>> The production for triples in section 6.5 is: > >>>> > >>>> [6]triples::=subject predicateObjectList | blankNodePropertyList > >>>> predicateObjectList? > >>>> [7]predicateObjectList::=verb objectList (';' (verb objectList)?)* > >>>> [10]subject::=iri | BlankNode | collection > >>>> > >>>> According to these productions, the example is invalid. The subject > >>>> reduces to the collection and must be followed by a verb. Yet, the > >>>> example does not have a following predicate object list. > >>>> > >>>> If this is truly suppose to be valid, I think the productions need to be: > >>>> > >>>> triples::=subject predicateObjectList | > >>>> collection predicateObjectList? | > >>>> blankNodePropertyList predicateObjectList? > >>>> subject ::= iri | BlankNode > >>>> > >>>> BTW, it would be a wonderful editorial change to number the examples. > >>>> > >>>> [1] http://www.w3.org/TR/2013/CR-turtle-20130219/ > >>>> > >>>> -- > >>>> --Alex Milowski > >>>> "The excellence of grammar as a guide is proportional to the paucity > >>>> of the > >>>> inflexions, i.e. to the degree of analysis effected by the language > >>>> considered." > >>>> > >>>> Bertrand Russell in a footnote of Principles of Mathematics > >>> > > > -- -ericP
Received on Friday, 17 May 2013 14:33:21 UTC