Subject: [idn] some comments about draft-ietf-idn-idna-08.txt

From: "Codogno Maurizio (Rozzano)" <[email-masked]>
Date: Mon, 10 Jun 2002 15:39:33 +0200

Hi all, 
I read the drafts about IDNA, nameprep and Punycode, and I have some doubt 
about the first one, from the point of view of a dumb reader. Ok, you 
may say that I am dumb, but nevertheless I think that some of those 
doubts may affect other people too. Could you please look at them?

Sect 3, req. 2). "An equivalent domain name". It is a *unique* equivalent
domain name, right? 

Sect. 4.1., para 4. I think that ToASCII may for example fail if I have
a sequence of code points like "ascii? yes", which contains "?" and " ".
In that case, I think that an explicit failure condition should be added
at the various steps of the algorithm (3, 5, 8)

Sect. 6.1, para 2. I am wondering if we SHOULD present both forms, if the 
ACE label is presented. It could be useful for developers, who may see 
at a glance what it's happening. Moreover, if some character may not be
displayed, you have a visual hint that the string you see is not the 
whole of the story.

Sect. 8. Why EDNS has not been included in the specifications?

As a side issue, I'd like to be pointed at some heuristic data about 
Punycode. I may imagine that its algorithms are geared towards efficient
handling of non-ideographic languages, like Devanagari, and single 
"intrusive" characters, but I would like to know more.

Ciao, .mau.

---

From: "Adam M. Costello" <[email-masked]>
Date: Mon, 10 Jun 2002 22:15:19 +0000

"Codogno Maurizio (Rozzano)" <[email-masked]> wrote:

> Sect. 4.1., para 4.  I think that an explicit failure condition should
> be added at the various steps of the algorithm (3, 5, 8)

Oh dear, we lost some crucial text between drafts 7 and 8.  Draft 7
said:

    ToASCII fails if any step of it fails.  If any step fails, the
    original sequence MUST NOT be used as a label in an IDN.

In draft 8, this was changed to:

    It is important to note that the ToASCII operation can fail. If the
    ToASCII operation fails on any label in a domain name, that domain
    name MUST NOT be used as an internationalized domain name. The
    application needs to have some method of dealing with this failure.

Paul, we need to restore the original statement.  We can also retain the
new advice (the last sentence of the draft-8 version).  The result would
be:

    ToASCII fails if any step of it fails.  If any step fails, the
    original sequence MUST NOT be used as a label in an IDN.  The
    application needs to have some method of dealing with this failure.

(Another instance of the draft-8 version still appears in section 1.1,
so we don't lose anything by doing this.)

> Sect 3, req. 2). "An equivalent domain name".  It is a *unique*
> equivalent domain name, right?

Not necessarily.  Punycode and ToASCII don't say whether uppercase
or lowercase ASCII letters will be used in ACE labels.  For example,
xx--4m4a and XX--5M4A are both possible outputs of ToASCII, and both are
equally valid.  Among a number of equivalent labels, it doesn't matter
which one you use, so we don't require any particular one of them.  It's
the implementor's choice.

By the way, an editing error in this paragraph was fixed between idna-08
and idna-09.

> Sect. 6.1, para 2. I am wondering if we SHOULD present both forms, if
> the ACE label is presented.

That sounds like a good option for an application to provide, but
I don't think the IDNA spec ought to get into the details of user
interface design; I'd rather leave it up to the application developers.
We make one general recommendation regarding user interfaces: try not to
show ACE to users unless they ask for it.  I don't think it's our place
to get into the specifics of how the user asks or how the ACE is shown.

> Sect. 8. Why EDNS has not been included in the specifications?

The whole point of IDNA is that it doesn't depend on any changes to
the infrastructure, neither the DNS infrastructure nor any other
infrastructure (like mail relays and web caches).  The STD-13 DNS
service is entirely sufficient for IDNA; EDNS is not needed.

> Punycode.

I compared Punycode (back when it was called AMC-ACE-Z) against some
other algorithms:

http://www.cs.berkeley.edu/~amc/idn/ace-eval.gz

I didn't have a large set of test data to work with, but Punycode
appears to do well for a wide variety of inputs, including ideographic,
non-Latin alphabetic, Latin-based, and mixtures of those.  It's very
adaptive to the distribution of the input code points.

I think Soobok Lee <[email-masked]> has more data (or at least, he did
at one time).

> Ok, you may say that I am dumb

Not at all!  Thank you for reviewing the drafts.

AMC

---

From: Paul Hoffman / IMC <[email-masked]>
Date: Mon, 10 Jun 2002 15:48:20 -0700

>so we don't lose anything by doing this.)

Adam: my first request is that you clear this kind of thing with your 
co-authors before you post them to the mailing list. We made that 
change after a lot of discussion with lots of parties, and it looks 
bad if one of the authors says "we need to change this" without all 
of us having thought about it.

My second request is that you explain to me how your proposed text 
would work in the real world. If any step fails for one label, your 
text says that the original sequence must not be used, but it does 
not say what should be used. I think the text in -08 is clearer than 
what you have. Why do you want the change?

--Paul Hoffman, Director
--Internet Mail Consortium

---

From: "Adam M. Costello" <[email-masked]>
Date: Tue, 11 Jun 2002 02:33:33 +0000

Paul Hoffman / IMC <[email-masked]> wrote:

> it looks bad if one of the authors says "we need to change this"
> without all of us having thought about it.

You're right, sorry.  Feel free to override the Reply-To field on this
message.

> Why do you want the change?

The big problem is that this sentence got lost between drafts 7 and 8:

    ToASCII fails if any step of it fails.

The new text doesn't say anything like that, but it's a crucial part of
the definition of ToASCII.  That's why the commentor was confused about
what happens if step 3, 5, or 8 fails.

A much much less important issue is the choice between these:

    If any step fails, the original sequence MUST NOT be used as a label
    in an IDN.

    If the ToASCII operation fails on any label in a domain name, that
    domain name MUST NOT be used as an internationalized domain name.

I think they both amount to the same thing.  Neither one suggests an
alternative, and they both imply that the name you're working on is
no good.  I prefer the former wording because ToASCII operates on an
individual label, oblivious of the other labels in the same name, so
it's nice if the text in the ToASCII section likewise makes no mention
of the other labels in the same name.  The latter wording still appears
in section 1.1.

If you're not convinced about this sentence, it's no big deal, but the
other sentence is important.

AMC