W3C home > Mailing lists > Public > public-cwm-talk@w3.org > January to March 2009

Re: n3 grammar : ambiguity for integer and decimal

From: luc peuvrier at home <lc.pvrr@orange.fr>
Date: Sat, 21 Feb 2009 17:56:14 +0100
Message-ID: <5BAE44DCC47544A996866A2DED0C7A86@LUCIO>
To: "Tim Berners-Lee" <timbl@w3.org>
Cc: <jos.deroo@agfa.com>, "cwm talk" <public-cwm-talk@w3.org>, "DIG group" <diggers@csail.mit.edu>, "Yosi Scharf" <syosi@mit.edu>, "++jean marc vanel" <jeanmarc.vanel@gmail.com>

Thank you to take care of my spot.

An other ambiguity I discovered writing n3 parser that I did not mentionned is about "is" "of" and "a" keyword.
There is no problems with "@is", "@of", and "@a" since the @ make able to distinguish to a qname, it is not the case with "is" "of" and "a" keyword because it also match qname non terminal.

I have this since I have the following rules not in n3 grammar:
  verb <- ( "is" | "@is" ) expression ( "of" | "@of" )

for the entry  " :jmv is :guru of :luc ."

it match at the same time

      subject propertylist
      |       |
      |       verb object objecttail propertylisttail
      |       |    |      |          |
      |       |    |      void       void
    :jmv      is   :guru


      subject propertylist 
      |       |
      |       verb                  object objecttail propertylisttail
      |       |                     |      |          |
      |       "is" expression "of"  |      |          |
      |       |    |          |     |      |          |
    :jmv      is   :guru      of    :luc   void       void

so there is a shift/reduce conflict between
verb <- expression
verb <- is expression of

this can be solve saying qname can not have the value "is" "of"

Best regards
Luc Peuvrier

----- Original Message ----- 
  From: Tim Berners-Lee 
  To: luc peuvrier at home 
  Cc: cwm talk ; DIG group ; Yosi Scharf 
  Sent: Saturday, February 21, 2009 12:40 AM
  Subject: Re: n3 grammar : ambiguity for integer and decimal

  Luc, thanks for spotting that.

  It seems to make sense.  I have checked it in as the new n3.n3


  On 2009-02 -12, at 18:26, luc peuvrier at home wrote:


    Looking for integer and decimal non terminal ( token ) definition on following n3 grammar specification:



    The ebnf definition for integer and decimal are:

      integer : [-+]?[0-9]+

      decimal : [-+]?[0-9]+(\.[0-9])?

    There is an ambiguity since "123" ( for example ) match integer and decimal

    I propose
      decimal : [-+]?[0-9]+\.[0-9]*

    Width the above definition "123" match only integer, "123." match decimal. This look like C and Java standard for numéric constants

    Best regards
    Luc Peuvrier
Received on Saturday, 21 February 2009 16:56:53 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Saturday, 21 February 2009 16:56:55 GMT