Underspecification of prefixed names in Turtle

The Turtle grammar defines prefixed names as follows [sect 
6.5]:

   [136s]  PrefixedName  ::=  PNAME_LN | PNAME_NS
   [139s]  PNAME_NS      ::=  PN_PREFIX? ':'
   [140s]  PNAME_LN      ::=  PNAME_NS PN_LOCAL

This suggests that foo: is a syntactically valid prefixed 
name.  In SPARQL this is explicitly stated [SPARQL 1.0, sect 
4.1.1]:

   A prefixed name is a prefix label and a local part,
   separated by a colon ":".  A prefixed name is mapped to an
   IRI by concatenating the IRI associated with the prefix
   and the local part.  The prefix label or the local part
   may be empty.

The correponding section in Turtle [sect 2.4] is identical 
except that it replaces "mapped to" with "turned into", and 
omits the last sentence that either part may be empty.

Also there is a note in Turtle [sect 2.4] giving the 
differences between XML QNames and Turtle prefixed names. 
It does not mention that either part may be empty.  There 
are plenty of examples where the prefix is empty, but 
(unless I'm missing one) none with an empty local part.

It seems to me that the simplest resolution would be either 
to add "The prefix label or the local part may be empty." to 
the fourth paragraph of 2.4, or, if a non-normative addition 
is preferred, to append "or may be empty" to the note box in 
section 2.4.

Richard

Received on Sunday, 17 November 2013 15:55:56 UTC