Subject: RE: [Ltru] Re: Reference lists; AND ABNF GRAMMARS

From: "Addison Phillips" <[email-masked]>
Date: Thu, 21 Jul 2005 08:24:57 -0700

There was a substantive flaw as noted. I fixed it without otherwise modifying the ABNF. I don't intend to modify the ABNF further without working group consensus.

I *will* update the matching ABNF with some of the suggestions, since some of the ABNF is quite obscure, but the matching draft isn't in last call.

Addison

Addison P. Phillips
Globalization Architect, Quest Software
Chair, W3C Internationalization Core Working Group

Internationalization is not a feature.
It is an architecture. 
> -----Original Message-----
> From: [email-masked] [mailto:[email-masked]] On
> Behalf Of Mark Davis
> Sent: Thursday, July 21, 2005 8:11 AM
> To: Doug Ewell; LTRU Working Group
> Subject: Re: [Ltru] Re: Reference lists; AND ABNF GRAMMARS
> 
> ABNF is tricky, and it is not trivial to 'pretty it up' while maintaining
> precisely the same meaning. At this stage, we should only be focusing on
> substantive issues, not whether the ABNF is pretty or not.
> 
> So if the current ABNF has a substantive flaw, we should fix it. Otherwise
> leave it alone.
> 
> ‎Mark
> 
> ----- Original Message -----
> From: "Doug Ewell" <[email-masked]>
> To: "LTRU Working Group" <[email-masked]>
> Sent: Thursday, July 21, 2005 07:42
> Subject: [Ltru] Re: Reference lists; AND ABNF GRAMMARS
> 
> 
> > Addison Phillips <addison dot phillips at quest dot com> wrote:
> >
> > > 1. 2*4ALPHA / 4*8ALPHA isn't really wrong, but the repetition of the
> > > number 4 is confusing. It should be 2*4ALPHA/5*8ALPHA. (I'm aware that
> > > the original draft-09 grammar has this mistake in it: it is on my
> > > correction list for the next edit)
> >
> > Actually, I think 2*4ALPHA / 4*8ALPHA really is wrong, not just a matter
> > of confusion.  If 4-letter primary language subtags are supposed to be
> > reserved for some future standard, then it shouldn't also be possible to
> > register them.  Otherwise we are setting ourselves up to register a
> > 4-letter subtag that later turns out to belong to the standard as well,
> > and Chaos Shall Reign.
> >
> > I've been going by the assumption all this time that registered primary
> > language subtags were 5 to 8 letters long, and was surprised to see that
> > the ABNF states otherwise.
> >
> > --
> > Doug Ewell
> > Fullerton, California
> > http://users.adelphia.net/~dewell/
> >
> >
> >
> > _______________________________________________
> > Ltru mailing list
> > [email-masked]
> > https://www1.ietf.org/mailman/listinfo/ltru
> >
> >
> 
> 
> 
> _______________________________________________
> Ltru mailing list
> [email-masked]
> https://www1.ietf.org/mailman/listinfo/ltru

_______________________________________________
Ltru mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/ltru

---

From: "Kent Karlsson" <[email-masked]>
Date: Fri, 22 Jul 2005 00:46:25 +0200 (CEST)

> There was a substantive flaw as noted. I fixed it without
> otherwise modifying the ABNF. I don't intend to modify the
> ABNF further without working group consensus.
>
> I *will* update the matching ABNF with some of the
> suggestions, since some of the ABNF is quite obscure, but the
> matching draft isn't in last call.
>
> Addison

I think it is very important that the -registry and the -matching
grammars are as similar as ever possible. Otherwise there will be
needless confusion. I'm a bit surprised that they are not at present
in "synch".

I've looked at the comments from Addison and Doug, and the
"as parallel as I can get them" grammars for -registry and -matching
are given below. This without doing spurious name changes. However,
I've added some nonterminals for clarity. I hope I have chosen names
for the (new) nonterminals in such a way that they are at least not
misleading.

This means changing also the -registry grammar.

=========================================================
%% For -registry

Language-Tag    = langtag
                / privateuse         ; private use tag
                / grandfathered      ; grandfathered registrations

langtag         = (lang
                   ["-" script]
                   ["-" region]
                   *("-" variant)
                   *("-" extension)
                   ["-" privateuse])

lang            = stdlang
                / stdlangext
                / reglang

stdlang         = 2*4ALPHA           ; shortest ISO 639 code

stdlangext      = stdlang
                  1*3("-" extlang)
                                     ; reserved for future use

reglang         = 5*8ALPHA           ; registered language subtag

extlang         = 3ALPHA

script          = 4ALPHA             ; ISO 15924 code

region          = stdregion
                / unregion

stdregion       = 2ALPHA             ; ISO 3166 code

unregion        = 3DIGIT             ; UN region number

variant         = regvariant
                / genvariant

regvariant      = 5*8alphanum        ; registered variant

genvariant      = (DIGIT 3alphanum)  ; generic variant

extension       = singleton 1*("-" (2*8alphanum))

singleton       = %x41-57 / %x59-5A / %x61-77 / %x79-7A / DIGIT
                ; "a"-"w" / "y"-"z" / "A"-"W" / "Y"-"Z" / "0"-"9"
                ; Single letters: x/X is reserved for private use

privateuse      = ("x"/"X") 1*("-" (1*8alphanum))

grandfathered   = 1*3ALPHA 1*2("-" (2*8alphanum))
                                    ; grandfathered registration
                                    ; Note: i is the only singleton
                                    ; that starts a grandfathered tag

alphanum        = (ALPHA / DIGIT)   ; letters and numbers

=========================================================

%% for -matching

Language-Range  = langrange
                / privateuse         ; private use tag
                / grandfathered      ; grandfathered registrations

langrange       = (lang
                   ["-"script]
                   ["-" region]
                   *("-" variant)
                   ["-" privateuse])

lang            = stdlang
                / stdlangext
                / reglang
                / "*"

stdlang         = 2*4ALPHA           ; shortest ISO 639 code

stdlangext      = stdlang
                  *2("-" extlang)
                  ("-"(extlang / "*"))
                                     ; reserved for future use

reglang         = 5*8ALPHA           ; registered language subtag

extlang         = 3ALPHA

script          = 4ALPHA             ; ISO 15924 code
                / "*"

region          = stdregion
                / unregion
                / "*"

stdregion       = 2ALPHA             ; ISO 3166 code

unregion        = 3DIGIT             ; UN region number

variant         = regvariant
                / genvariant
                / "*"

regvariant      = 5*8alphanum        ; registered variant

genvariant      = (DIGIT 3alphanum)  ; generic variant

privateuse      = ("x"/"X") 1*("-" (1*8alphanum))

grandfathered   = 1*3ALPHA 1*2("-" (2*8alphanum))
                                    ; grandfathered registration
                                    ; Note: i is the only singleton
                                    ; that starts a grandfathered tag

alphanum        = (ALPHA / DIGIT)   ; letters and numbers

=========================================================

		/kent k

---

From: Frank Ellermann <[email-masked]>
Date: Fri, 22 Jul 2005 02:34:48 +0200

Kent Karlsson wrote:

> I hope I have chosen names for the (new) nonterminals
> in such a way that they are at least not misleading.

Your <gen-variant> is an exception.  Otherwise I could
live with the -registry part.  I'm too lazy to check the
-matching part at this time, and the authors are clearly
not happy with last minute changes of the -registry part.

FWIW, Bill's validator says "okay" for your version, bye.

---

From: r&d afrac <[email-masked]>
Date: Fri, 22 Jul 2005 02:56:37 +0200

At 02:34 22/07/2005, Frank Ellermann wrote:
>and the authors are clearly not happy with last minute changes of the 
>-registry part.

I am not aware we are July 28th, 23:59. I feel we are a week before.
Either the proposed change is correct and we want it (the WG is the real 
author) or it is not and we do not want it.
I trust your judgment on Kent proposition: is it correct or not?
jfc

---

From: Frank Ellermann <[email-masked]>
Date: Fri, 22 Jul 2005 21:37:35 +0200

r&d afrac wrote:

> is it correct or not?

We (TINW) wouldn't want the name 'genvariant':

variant         = regvariant
                / genvariant

The original variant is better:

variant         =  5*8alphanum       ; registered variants
                / ( DIGIT 3alphanum )

Splitting region in <stdregion> / <unregion> is possible, but
the original region is good enough:

region          = 2ALPHA             ; ISO 3166 code
                / 3DIGIT             ; UN country number

The <stdlangext> idea in Kent's proposal is apparently better
than the original ABNF, because it clearly says that <extlang>
is only combined with <stdlang>, never with <reglang>.

In fact it could go further there:  Debbie's alpha-4 <stdlang>
is also never combined with <extlang>.  Maybe Kent could split
<stdlang> extracting Debbie's <reslang> (reserved for future
use by 3066ter or later).
                            Bye, Frank