[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Ltru] Re: RFC 4646 production "grandfathered" considered harmful



A validating parser is *not* limited to all of the possible strings in the ABNF. That is already true in 4646 -- duplicate singleton extension tags are forbidden although that cannot be expressed in the ABNF.

Saying that grandfathered tags are limited to i-anything is certainly an improvement on the current situation, which is:
 grandfathered = 1*3ALPHA 1*2("-" (2*8alphanum))
Although Frank has a point, I think my preferred approach would be to simply define but immediately deprecate subtags like lobjan -- that removes them from the grandfathered list. For the ABNF, we are then only left with the items that are syntactically ill-formed, which we could express with:
grandfathered = "i-" irregularI
/ "sgn-" irregularSgn
/ irregularOther
irregularI = "ami" / "bnn" / "default" / "enochian" / "hak" / "klingon" / "lux" / "mingo" / "navajo" / "pwn" / "tao" / "tay" / "tsu"
irregularSgn= "BE-fr" / "BE-nl" / "CH-de"
irregularOther = "en-GB-oed"

We then have the smallest ABNF that (with the exception of duplicate singletons), describes the well-formed cases without letting anything else in.

Mark

On 9/18/06, John Cowan <cowan at ccil.org> wrote:
Frank Ellermann scripsit:

> Right, now I also see it.  An enumeration is useful if
> it could be mistaken as well-formed "regular" tag.  For
> a parser it's important to match some "irregular" tags
> _before_ it starts to match the "regular" tags.

A non-validating parser doesn't have to distinguish between
semantically decomposable tags and indecomposable ones with
special meanings.  All it has to do is have an ABNF that
specifies what tags do and don't match, to which it also
must add the rule against repeated singletons.

For that purpose, only the irregular-syntax tags need
to appear in the ABNF; the ones with regular syntax but
irregular semantics do not.

>  From that POV x-anything and i-anything are harmless,

i-anything is *not* harmless; it means that i-foobar is
well-formed even though it is neither composed of valid
subtags nor itself a valid grandfathered tag.  i-foobar
should be ill-formed.

Validating parsers can use a different set of productions
if it suits them better, though I don't see why it would:
the simplest approach is to check for well-formedness,
then check the registry to see if the tag is grandfathered,
and if not, decompose them.

--
John Cowan     http://ccil.org/~cowan    cowan at ccil.org
Monday we watch-a Firefly's house, but he no come out.  He wasn't home.
Tuesday we go to the ball game, but he fool us.  He no show up.  Wednesday he
go to the ball game, and we fool him.  We no show up.  Thursday was a
double-header.  Nobody show up.  Friday it rained all day.  There was no ball
game, so we stayed home and we listened to it on-a the radio.  --Chicolini

_______________________________________________
Ltru mailing list
Ltru at ietf.org
https://www1.ietf.org/mailman/listinfo/ltru

_______________________________________________
Ltru mailing list
Ltru at ietf.org
https://www1.ietf.org/mailman/listinfo/ltru

Note Well: Messages sent to this mailing list are the opinions of the senders and do not imply endorsement by the IETF.