Re: Are spaces allowed between terms in N-Triples 1.1?

Whitespace is typically taken to zero or more characters of whitespace. Note in the Change Log [1]:

> White space rules defined outside of grammar, as in Turtle [2], although the N-Triples grammar restricts White space to tab or (tab U+0009 or space U+0020).

If N-Triples parsers are overly lenient in allowing multiple whitespace characters between terminals, then by that logic, so are Turtle parsers.

The restriction that terminals be separated by exactly a single whitespace is true for the Canonical form of N-Triples [3]. Tokenizers only require whitespace to distinguish two terminals that would otherwise be joined.

Furthermore, there is a minimal whitespace test [4] that verifies that this is the intention of the working group.

   <http://example/s><http://example/p><http://example/o>.
   <http://example/s><http://example/p>"Alice".
   <http://example/s><http://example/p>_:o.
   _:s<http://example/p><http://example/o>.
   _:s<http://example/p>"Alice".
   _:s<http://example/p>_:bnode1.

There is also the original N-Triples test [5] that contains many instances of terminals separated by mutliple whitespace characters [5], for example:

    # spaces and tabs throughout:
         <http://example.org/resource3>          <http://example.org/property>   <http://example.org/resource2>         .        

Gregg Kellogg
gregg@greggkellogg.net

[1] https://www.w3.org/TR/n-triples/#changes-between-last-call-working-draft-and-publication-as-note
[2] https://www.w3.org/TR/turtle/#grammar-production-WS
[3] https://www.w3.org/TR/n-triples/#canonical-ntriples
[4] http://w3c.github.io/rdf-tests/ntriples/lantag_with_subtag.nt

> On Jun 28, 2017, at 8:58 AM, Peter F. Patel-Schneider <pfpschneider@gmail.com> wrote:
> 
> This means that all existing N-Triples parsers are lenient in that they
> process documents that are not valid N-Triples documents.  This, however, does
> not make them too lenient as there is no requirement that an N-Triples
> processor reject inputs that are not N-Triples documents.
> 
> This does mean that Canonical N-Triples documents are not valid N-Triples
> documents.
> 
> peter
> 
> PS:  Of course what it really means is that the grammar section of the
> N-Triples document needs to be changed.
> 
> 
> On 06/28/2017 08:50 AM, Wouter Beek wrote:
>>> So it seems to me that spaces are not allowed anywhere in [1] in N-Triples, i.e.,
>>> 
>>> <x:y> <x:y> <x:y> .
>>> 
>>> is not a valid N-Triples triple.
>> 
>> I do follow your reasoning here, but this would mean that all existing
>> N-Triples parsers are too lenient.
>> 
> 

Received on Wednesday, 28 June 2017 23:48:57 UTC