- From: Andy Seaborne <andy@apache.org>
- Date: Mon, 19 Jan 2015 16:54:39 +0000
- To: public-rdf-comments@w3.org
On 19/01/15 16:35, Stian Soiland-Reyes wrote: > so in general the non-terminals like RDFLiteral and > predicateObjectList allow any whitespace between its tokens, right? Yes - between the sub-rules and the terminals involved. > Yet Jena does not like the nasty Turtle.. :) It does, 'cos I just fixed it :) JENA-852 Andy > > On 19 January 2015 at 16:19, Andy Seaborne <andy@apache.org> wrote: >> On 19/01/15 16:05, Stian Soiland-Reyes wrote: >>> >>> Hi, I somehow have come over some "evil" Turtle that seems to be on the >>> form: >>> >>> <http://example.com/s2> <http://example.com/p> "false"^^ >>> <http://www.w3.org/2001/XMLSchema#boolean> . >>> >>> (One word: PHP) >>> >>> >>> Now, as bad style as this might look - I could not figure out from the >>> RDF Turtle 1.1 grammar why it shouldn't be valid. >>> >>> >>> http://www.w3.org/TR/turtle/#grammar-production-RDFLiteral >>> >>> [128s] RDFLiteral ::= String (LANGTAG | '^^' iri)? >>> >>> vs. >>> >>> [7] predicateObjectList ::= verb objectList (';' (verb objectList)?)* >>> >>> >>> We "all know" that whitespace is allowed around ; - and not around ^^ >>> - yet I can't see this reflected in these rules. Perhaps my grammar >>> understanding is a bit rusty. >>> >>> >>> http://www.w3.org/TR/turtle/#sec-grammar-ws says: >>> >>>> White space (production WS) is used to separate two terminals which would >>>> otherwise be (mis-)recognized as one terminal. Rule names below in capitals >>>> indicate where white space is significant; these form a possible choice of >>>> terminals for constructing a Turtle parser. >>> >>> >>>> White space is significant in the production String. >>> >>> >>> >>> Neither RDFLiteral or predicateObjectList are listed under Terminals. >>> >>> >>> So there's a special WS production - but that's only used between [ ] >>> - e.g. so you can do >> >> >> Partial answer: >> >> [162s] ANON ::= '[' WS* ']' >> >> WS must be mentioned here because ANON is a terminal. The whitespace rules >> apply to grammar rules (the block [1]-[137s]), not terminal/tokens. >> >> "Rule names below in capitals indicate where white space is significant" >> >> Andy >> >> >>> >>> [ a foaf:Person ] #someone >>> foaf:knows # Someone (else?) >>> [ a foaf:Person ] . >>> >>> >>> >>> String is >>> >>> >>> [17] String ::= STRING_LITERAL_QUOTE | STRING_LITERAL_SINGLE_QUOTE | >>> STRING_LITERAL_LONG_SINGLE_QUOTE | STRING_LITERAL_LONG_QUOTE >>> >>> >>> >>> Can anyone enlighten me? >> >> >> >> >>> >>> >>> >> >> > > >
Received on Monday, 19 January 2015 16:55:12 UTC