- From: Nathan <nathan@webr3.org>
- Date: Mon, 28 Feb 2011 10:12:13 +0000
- To: Yves Raimond <Yves.Raimond@bbc.co.uk>
- CC: public-rdf-wg@w3.org
Hi Yves,
Integer in your example, given that the EBNF should match the statement
first thus removing the .
statement ::= directive '.' | triples '.' | ws+
and in this example:
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix : <http://localhost#>.
:Person
:age 18.;
rdf:type :Person.
it'd match decimal
decimal ::= ('-' | '+')? ( [0-9]+ '.' [0-9]* | '.' ([0-9])+ | ([0-9])+ )
afaict,
cheers nathan
Yves Raimond wrote:
> Hello!
>
> I just noticed a potentially ambiguous point in the Tutle grammar at [1].
>
> Considering the following document:
>
> @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
> @prefix : <http://localhost#>.
>
> :Person
> rdf:type :Person;
> :age 18.
>
> seems to be allowed by the grammar (resource resource integer.) But there's a potential ambiguity there (is the value of 'age' supposed to be parsed as a float or as an integer?)
>
> Some Turtle parsers seems to reject this document (e.g. SWI-Prolog), rapper makes a best guess (parsing 18 as an xsd:decimal), but throws a syntax error, and the SemWeb.NET library [2] parses it as an xsd:integer without any errors or warnings.
>
> Best,
> y
>
> [1] http://www.w3.org/TeamSubmission/turtle/#sec-grammar
> [2] http://www.rdfabout.com/demo/validator/
>
>
>
Received on Monday, 28 February 2011 10:13:58 UTC