ietf
[Top] [All Lists]

Re: Impending publication: draft-iab-idn-nextsteps-05

2006-04-23 01:41:44
Dear Mark,
I thank you for this list of remarks. As engaged into the MDRS project of multilingual distributed registry system for our own information service to users communities and open use, I share many of these points. Let me add the comments/suggestions we have.

At 07:52 23/04/2006, Mark Davis wrote:
The UTC strongly supports many of the goals of the document, including especially improving the security of IDNs, and updating the version of Unicode used in NamePrep and StringPrep (since the old version of Unicode they require excludes or hampers many languages).

My user QA hat on: there is a need to have a list or a place to record the different available libraries and the Unicode version they support. The same for the langtags libraries. This should be a normal IDNA and RFC 3066 Bis "after sales" support.

There are, however, a number of areas of concern.
As a general issue, we'd urge closer cooperation between the IAB and the Unicode consortium on the document, so that the character encoding and software internationalization issues can be reviewed by experts in the field, and accurately represented in the document.

There are two layers. Characters and languages in constant confusion.

There is certainly advantage in having a better knowledge of IETF on both layers. For years the IETF is lobbied by Unicode Members in this area. The result is confusion, as the RFC 3066 Bis episode and aftermaths show it. I understand that the commercial nature of the Unicode is a problem for the IETF. But the result on the Unicode Member participating to the IETF is an exclusion natural reflex: they try to keep a coherent doctrine. This may create hurting behaviours and ethic problems. This is why I would strongly advocate an MoU on the characters related aspects between the IETF and Unicode. Such an MoU should clearly identify the ISO as a reference, Unicode as a non exclusive but leading source of expertise, and final leadership of the users in the usage areas.

This would permit to differentiate the internet architectural characters layer where Unicode is truly a reference, and the lingual layer where there is total confusion. Internationalization (extending the character set with non-ASCII characters) is by nature inapplicable to multilingualisation (parallel support of excluding terminologies to express the same concepts). The result is cacophony, like in IDNA.

As RFC 3066 Bis shows it the Unicode/IETF doctrine and tools (libraries and CLDR) is unable at this stage to address dialects, sociolects and idiolects. This is quite worrying since this may be an area of urgent standardisation effort and certainly strong demand prompted by the Internet possibilities. This is certainly a significant MDRS concern and we know we will actively use digital space names (not only Internet) to support them.

The chief area of concern is section 4.3.

4.3.  Combining Characters and Character Components

One thing that increases IDNA complexity and the need for
normalization is that combining characters are permitted.  Without
them, complexity might be reduced enough to permit more easy
transitions to new versions.  The community should consider whether
combining characters should be prohibited entirely from IDNs.  A
consequence of this, of course, is that each new language or script
would require that all of its characters have Unicode assignments to
specific, precomposed, code points, a model that the Unicode
Consortium has rejected for Roman-based scripts.  For non-Roman
scripts, it seems to be the Unicode trend to define such code points.
At some level, telling the users and proponents of scripts that, at
present, require composing characters to work the issues out with the
Unicode Consortium in a way that severely constrains the need for
those characters seems only appropriate.  The IAB and the IETF should
examine whether it is appropriate to press the Unicode Consortium to
revise these policies or otherwise to recommend actions that would
reduce the need for normalization and the related complexities.

The descriptions and recommendations in this section are simply not feasible. They do not recognize the fundamental importance of combining marks as an integral component of a great many scripts, nor do they recognize the fundamental need for compatibility that is required of the Unicode Standard. Asking for combining characters to be removed is akin to asking English vowels to be removed, and all possible syllables to be encoded instead. There are, as well, a number of purely factual errors. For example, "it seems to be the Unicode trend to define such code points" is simply incorrect. This section serves no purpose but to betray a basic lack of understanding of scripts; it needs to be removed entirely.

The worry I have here is the reference to Unicode as if having the capacity to do this. It simply denotes a lack of understanding of the addressed issue. The world does not go by Unicode but by ISO. Even if Unicode and ISO are considered as hand in glove such a text shows the need of the MoU I advocate, at least to underline that ISO is the common reference. At least if the IETF wants to be international. But even if the IETF wanted to limit itself to the Internationalised US Internet such a request would be a request for balkanization.

A second area of major concern is Section 2.2.3.

2.2.3.  Normalization and Character Mappings

Unicode contains several different models for representing
characters.  The Chinese (Han)-derived characters of the "CJK"
languages are "unified", i.e., characters with common derivation and
similar appearances are assigned to the same code point.  European
characters derived from a Greek-Roman base are separated into
separate code blocks for "Latin", Greek and Cyrillic even when
individual characters are identical in both form and semantics.
Separate code points based on font differences alone are generally
prohibited, but a large number of characters for "mathematical" use
have been assigned separate code points even though they differ from
base ASCII characters only by font attributes such as "script",
"bold", or "italic".  Some characters that often appear together are
treated as typographical digraphs with specific code points assigned
to the combination, others require that the two-character sequences
be used, and still others are available in both forms.  Some Roman-
based letters that were developed as decorated variations on the
basic Latin letter collection (e.g., by addition of diacritical
marks) are assigned code points as individual characters, others must
be built up as two (or more) character sequences using "composing
characters".

This section betrays a lack of understanding of the fundamental differences between Han characters and the scripts Latin, Greek, and Cyrillic.

Many of these differences result from the desire to maintain backward
compatibility while the standard evolved historically, and are hence
understandable.  However, the DNS requires precise knowledge of which
codes and code sequences represent the same character and which ones
do not.  Limiting the potential difficulties with confusable
characters (see Section 2.2.6) requires even more knowledge of which
characters might look alike in some fonts but not in others.  These
variations make it difficult or impossible to apply a single set of
rules to all of Unicode.  Instead, more or less complex mapping
tables, defined on a character by character basis, are required to
"normalize" different representations of the same character to a
single form so that matching is possible.

The Unicode consortium *does* supply a precise mechanism for determining when two strings represent the same underlying abstract characters. These do supply a single set of rules to all of Unicode, based on a set of data that is in the Unicode Character Database.

This paragraph also conflates the confusable issue with character equivalence. These are separate issues: there are great many instances where characters are confusable where they are not at all equivalent (such as zero and the letter O).

... The fact
that most or all scripts included in Unicode have been initially
incorporated by copying an existing standard more or less intact has
impact on the optimization of these algorithms and on forward
compatibility.  Even if the language is known and language-specific
rules can be defined, dependencies on the language do not disappear.
Any canonicalization operations that depend on more than short
sequences of text is not possible to do without context.  DNS lookups
and many other operations do not have a way to capture and utilize
the language or other information that would be needed to provide
that context.

First, it is neither "most" nor "all". Very few scripts, proportionately, have been incorporated by copying an existing standard. Second, "Any canonicalization operations that depend on more than short sequences of text is not possible to do without context...." is difficult to make sense of. One would have to explain the sense of "canonicalization" that is being discussed. It could be as trivial as "language-based canonicalization is impossible without language information", which is true, but above the document argues against using language-based equivalences on a global basis (and for very good reason!)

This is clearly the result of layer violation confusion by network architects between characters and languages issues. The solution is not in changing ISO but in preventing the problem to exist on the network side.

===

Other areas of concern:

(more properly "Roman", see below)
The common modern practice in the naming of the script is to use the term "Latin", not "Roman". Whether or not one thinks that should not have been the case, insisting on older terms is pointless, and not germane to the purpose of the document.

+1
they were bidi used in Latium before Rome was even born.
They are Etruscan.

When writing or typing the label (or word), a script must be selected
and a charset must be picked for use with that script.

This is confusing charset, keyboard and script. Saying "a script must be selected" is *neither* true from the user's perspective, nor does it at all match the implementation pipeline from keypress to storage of a label. What may have been confusing for the authors is that sometimes keyboards that are listed for selection are sorted by script; that does not, however, mean that a "script is selected".

The proper word, if more substantial changes are not made to the wording, would be "a keyboard must be selected". (Even that is a quite odd, since it implies that that is done each time a user types a label.)

This is what happens in IDNs. Only so called "IDN.IDN" can be typed with a single keyboard.

If that charset, or the local charset being used by the relevant
operating system or application software, is not Unicode, a further
conversion must be performed to produce Unicode.  How often this is
an issue depends on estimates of how widely Unicode is deployed as
the native character set for hardware, operating systems, and
applications.  Those estimates differ widely, with some Unicode
advocates claiming that it is used in the vast majority of systems
and applications today.  Others are more skeptical, pointing out
that:

o  ISO 8859 versions [ISO.8859.1992] and even national variations of
   ISO 646 [ISO.646.1991] are still widely used in parts of Europe;
o  code-table switching methods, typically based on the techniques of
   ISO 2022 [ISO.2022.1986] are still in general use in many parts of
   the world, especially in Japan with Shift-JIS and its variations;
o  that computing, systems, and communications in China tend to use
   one or more of the national "GB" standards rather than native
   Unicode;
o  and so on.

Not all charsets define their characters in the same way and not all
pre-existing coding systems were incorporated into Unicode without
changes.  Sometimes local distinctions were made that Unicode does
not make or vice versa.  Consequently, conversion from other systems
to Unicode may potentially lose information.

Most of this section is unnecessary and the thrust of it is misleading. The only issue is "local distinctions" are lost when converting to Unicode; that doesn't happen when converting from any of the examples listed. This passage implies that there are significant problems in mapping to Unicode in doing IDN, and there simply aren't.

This can only be documented by a complete registry documenting all the actually existing/used charsets. We cannot go by "Most", we must go by "Every".

... Worse, one needs to be reasonably
familiar with a script and how it is used to understand how much
characters can reasonably vary as the result of artistic fonts and
typography.  For example, there are a few fonts for Latin characters
that are sufficiently highly ornamented that an observer might easily
confuse some of the characters with characters in Thai script.

The confusion of Latin with Thai is a red herring. It would take an exceedingly contrived scenario for it to present a problem. There are plenty of realistic scenarios involving confusables across, say, Latin and Cyrillic.

... IDNA
prohibits these mixed-directional (or bidirectional) strings in IDN
labels, but the prohibition causes other problems such as the
rejection of some otherwise linguistically and culturally sensible
strings.  As Unicode and conventions for handling so-called
bidirectional ("BIDI") strings evolve, the prohibition in IDNA should
be reviewed and reevaluated.

Deviating from the practices already built into IRI would be a mistake. As the document recognizes above, it cannot be a goal to represent all possible "linguistically and culturally sensible strings" in IDNs. The restrictions on BIDI are ones that have achieved broad consensus as the minimal ones to help avoid some fairly serious security issues.

This is character/language layer violation. Mark presents a sound character layer solution. This does not address all of the language issue. If this is a real problem at language issue, that issue should be specified separately. This is the only way to have an operational service and further on may be to improve it. DNS does not support upper cases. IDNA restricts on BIDI. May be solution found for the mailnames will help finding a solution.

4.1.2.  Elimination of word-separation punctuation
... We might even
consider banning use of the hyphen itself in non-ASCII strings or,
less restrictively, strings that contained non-Roman characters.

This section is not well motivated. The authors need to justify why such characters represent a problem (and one of such a serious nature that hyphens should be disallowed).

Hyphen removal would remove the possibility to include langtags in a domain name to support multilingual versions of a site. Better to scrap RFC 3066 Bis then.

-----

* Section 2.2.3: "characters that are essentially identical will not match"
What is meant by "essentially identical"? Does this mean identical in appearance, identical in internal representation, identical in semantics, canonically equivalent (same NFC forms), or compatible equivalent (same NFKC forms)? The intent needs to be clarified, otherwise the statement is subject to misinterpretation.

+1

* Section 2.2.3: "This Unicode normalization process [does not account for] equivalences that are language or script dependent" Which what is meant by "script-dependent equivalences"? Can you provide an example?

What are language equivalences for the DNS. USA.com and United-States-of-America.com are language equivalent DNs. Is registering one forbidding to register the other?

* Section 2.2.3: "U+00F8 [...] and U+00F6 [...] are considered to match in Swedish" "Match" needs some clarification. In accordance with Swedish standards, when collating with Swedish locale, all major implementations match these characters at the first and second level, but not at a lower level. Thus they are not exact matches: this might be better phrased in terms of equivalence.

* Section 2.2.3: "Even if the language is known and language-specific rules can be defined, dependencies on the language do not disappear"
It is unclear what this means. Could you give an example?

+1

* Section 2.2.1: "Those characters are not treated as equivalent according to the Unicode consortium while...". This is somewhat ad hominem. It should rather be "...according to the Unicode Standard while..."

ISO 10646 is the only reference which should be used. The word "Unicode" should not be used. This is like quoting WGs in an RFC.

* Section 2.2.1: "..confusion in Germany, where the U+00F8 character is never used in the language". That is not true, there are entries with that character in the Duden dictionary.

* Section 2.2.4: "This is because [...] some glyphs [...] have been assigned different code points in Unicode".
This is incorrect: glyphs are not assigned to code points; characters are.

* Section 2.2.6: "Is the answer the same for words two [sic] different languages that translate into each other?". This is completely orthogonal to IDNs (cf "Is 'cat' the same as 'gato' or the same as 'katze'?").

+1

* Section 2.2.7: "the IESG statement [...] that a registry should have a policy about the scripts, languages, code points and text directions". This appears to not be an accurate paraphrase of (http://www.ietf.org/IESG/STATEMENTS/IDNstatement.txt). That document rather says a registry "MIGHT want to prevent particular characters", "MIGHT want to automatically generate a list of (...) strings and suggest that they also be registered" and lastly "it is suggested that a registry act conservatively". There is no such thing as "SHOULD" wording and, for instance, text direction is not mentioned.

Such a policy has no real interest anyway as IDNA does not impose that policy on further DN levels.

* Section 2.2.8: "This maybe [...] because many other applications are internally sensitive only to the appearance of characters and not to their representation". This is reversed. The vast majority of application are internally sensitive only to the representation, not to the appearance. Exceptions would be OCR, for example.

+1

* Section 2.2.8: "A change in a code point assignment (...) may be extremely disruptive". This suggests that the consortium capriciously changes code points. After the merger with ISO 10646 there was only one point at which the Unicode consortium changed code points: Unicode 2.0.0 (July, 1996): The characters in the Korean Hangul block were moved to be part of a new, larger block with all 11,152 Hangul syllables.

As a result of the disruption that this caused, the Unicode Consortium and ISO/IEC SC2 resolved never to change code points in the future, and no changes have ever been done since.

* Section 3.1.1: "...such as code points assigned to font variations...".
Which characters are these referring to? Is it to just characters that are resolved by an NFKC normalization, or does it refer to others?

* Section 4.5: "the whois protocol itself (...) is ASCII-only".
This appears to be inaccurate. The Whois protocol (http://www.ietf.org/rfc/rfc3912.txt?number=3912) has no mechanisms to indicate which character encoding is being used, but the protocol is 8-bit clean and it is indeed used so by many (for instance, DENIC has a UTF-8 implementation up and running).

+1
To be noted: ML Domain Names are to be much closer to the people. And therefore to their local laws. Privacy regulations are better respected in banning current Whois service.


As an addition to these remarks, I think that the solution to the discussed problems is a character/implementers/language debate to define a globally supported digital naming acceptable ISO10646 restriction. The purpose of which not being to support any name (what IDNA does not do anyway) but to provide a secure (anti phishing) threehexadecimal network name coding system.

jfc







_______________________________________________
Ietf mailing list
Ietf(_at_)ietf(_dot_)org
https://www1.ietf.org/mailman/listinfo/ietf

<Prev in Thread] Current Thread [Next in Thread>