- From: Andy Seaborne <andy@apache.org>
- Date: Mon, 18 Nov 2013 10:24:15 +0000
- To: public-rdf-comments@w3.org
Richard,
Thank you for your comment. I've recorded this as RDF WG Issue 173.
https://www.w3.org/2011/rdf-wg/track/issues/173
We'll get back to you as we can.
Andy
On 17/11/13 17:49, Richard Smith wrote:
>
> The following is not a valid Turtle document, per the candidate
> recommendation:
>
> ( :foo :bar ) .
>
> This is because a collection can only appear as the subject of a
> statement in Turtle.
>
> The same document is a valid TriG document as it matches the triples2
> production in the grammar.
>
> It seems desirable that both TriG and Turtle should do the same thing
> here, and in general that any valid TriG document that does not use the
> { ... } construct should be a valid Turtle document.
>
> SPARQL 1.0 allows bare collections that are not the subject of a
> statement, and that is now a stable recommendation. It therefore seems
> best to conform to that by allowing bare collections in both TriG and
> Turtle.
>
>
> In TriG, if it the collection is placed inside a wrapped graph in TriG,
> it is no longer valid:
>
> GRAPH { ( :foo :bar ) }
>
> This is directly incompatible with SPARQL 1.0, and for that reason
> should be fixed. It also introduces a surprising difference between
> implicit and explicit use of the default graph.
>
>
> Bare collections are potentially useful as they do generate RDF
> statements. So I think the right solution is to allow bare collections
> in both languages, inside and outside of wrapped graphs. The simplest
> way of fixing this seems to me to be to redefine the following grammar
> productions:
>
> Currently in Turtle:
>
> [6] triples ::= subject predicateObjectList
> | blankNodePropertyList predicateObjectList?
> [10] subject ::= iri | BlankNode | colection
>
>
> Proposed in Turtle:
>
> [6] triples ::= subject predicateObjectList
> | triplesNode predicateObjectList?
> [10] subject ::= iri | BlankNode
> [NN] triplesNode ::= blankNodePropertyList | collection
>
> The name 'triplesNode' is chosen because the corresponding grammar
> production in SPARQL is called TriplesNode.
>
> The same change to the same grammar productions will fix TriG. However
> it may be desirable at the same time to:
>
> 1) change [4g] triples2 to reference the new triplesNode
> production;
>
> 2) delete production [7g] labelOrSubject and replace its
> use with subject, as the two are now identical; and
>
> 3) delete production [14] blank and expand its sole use
> in [12] object because (i) it has a misleading name,
> (ii) it causes the definition of object to differ
> (albeit cosmetically) between TriG and Turtle, and
> (iii) it is misnumbered (it should have a 'g' suffix)
> and throws out the correspondence between production
> numbers in Turtle and TriG.
>
>
> Richard
>
Received on Monday, 18 November 2013 10:24:45 UTC