W3C home > Mailing lists > Public > public-rdf-wg@w3.org > June 2013

TriG -- trailing DOT in {} blocks.

From: Andy Seaborne <andy@apache.org>
Date: Sat, 15 Jun 2013 20:54:04 +0100
Message-ID: <51BCC65C.1060304@apache.org>
To: RDF-WG <public-rdf-wg@w3.org>
The TriG showed up one issue with the TriG grammar.

In "traditional" TriG, and in SPARQL and N3, the final DOT in a {...} is 
optional making this legal:

{ :s :p :o }

It is illegal by the current TriG grammar which requires a trailing DOT

Two bad syntax tests show this:

** trig-syntax-bad-struct-08
----
# No DOT
{<http://example/s> <http://example/p> <http://example/o>}
----

** trig-syntax-bad-struct-11
----
# Trailing ;
{<http://example/s> <http://example/p> <http://example/o> ;}
----
because in Turtle

   <s> <p> <o>; .

is legal turtle (it's quite useful for repeated lines to always 
terminate with ";" and not have to worry about the last line being 
special -- the Turtle test manifest uses this).


The grammar rule affected is TriG [3g]

Currently:
[3g] 	graph 	  ::= 	 graphIri? '{' (triples '.')* '}'

A change would be:

[3g] 	graph 	  ::= 	 graphIri? '{' triplesBlock? '}'
[] triplesBlock   ::=    triples ('.' triplesBlock?)?

which is recursive; it is at least contained to a single rule  -- it's 
how SPARQL 1.0 writes it so it should be reasonable for everyone.

	Andy

PS This not not new - see also, from Gregg:

http://lists.w3.org/Archives/Public/public-rdf-comments/2011Dec/0012.html

there, [6] allows multiple adjacent DOTs:

[6] triples ::=
  subject predicateObjectList ( "." ( subject predicateObjectList)? )*

matches

:s :p :o1 .... :s :p :o2 ..
Received on Saturday, 15 June 2013 19:54:33 UTC

This archive was generated by hypermail 2.3.1 : Saturday, 15 June 2013 19:54:33 UTC