It would be possible to do a Tables section for mappings, that went through the same kind of process that we did for Tables, of fine tuning the mapping. That is, we could go through all of the mappings and figure out which ones we need, and which ones we don&#39;t.<br>
<br>Frankly, I don&#39;t think we need to go through the effort. The only problem I see is where a disallowed character X looks most like one PVALID character P1, but maps to a different PVALID character P2, and P1 is not confusable with P2 already. I don&#39;t know of any cases like that.<br>
<br>BTW, my earlier figures were including the &quot;Remove Default Ignorables&quot; from my earlier mail. Here are the figures with that broken out:<br><br>NFKC-CF-RDI,    Remapped:    5290<br>NFKC-LC-RDI,    Remapped:    5224<br>
NFKC-CF,    Remapped:    4896<br>NFKC-LC,    Remapped:    4830<br>NFC-CF-RDI,    Remapped:    2485<br>NFC-LC-RDI,    Remapped:    2394<br>NFC-CF,    Remapped:    2091<br>NFC-LC,    Remapped:    2000<br><br>CF = Unicode toCaseFold<br>
LC = Unicode toLowercase<br>RDI = Remove default ignorables<br><br>And of course, the mappings would be restricted to only mapping characters that were not PVALID in any event, so the above figures would vary depending on what we end up with there.<br>
<br clear="all">Mark<br>
<br><br><div class="gmail_quote">On Thu, Apr 2, 2009 at 09:53, Erik van der Poel <span dir="ltr">&lt;<a href="mailto:erikv@google.com">erikv@google.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Please, let&#39;s not let size and complexity issues derail this IDNAbis<br>
effort. Haste makes waste. IDNA2003 was a good first cut, that took<br>
advantage of several Unicode tables, adopting them wholesale. IDNA2008<br>
is a much more careful effort, with detailed dissection, as you can<br>
see in the Table draft. We should apply similar care to the &quot;mapping&quot;<br>
table.<br>
<br>
I suggest that we come up with principles, that we then apply to the<br>
question of mapping. For example, the reason for lower-casing<br>
non-ASCII letters is to compensate for the lack of matching on the<br>
server side. The reason for mapping full-width Latin to normal is<br>
because it is easy to type those characters in East Asian input<br>
methods. (Of course, we need to see if there is consensus, for each of<br>
these &quot;reasons&quot;.)<br>
<br>
I also suggest that we automate the process of finding problematic<br>
characters. For example, we have already seen that 3-way relationships<br>
are problematic. One example of this is Final/Normal/Capital Sigma. We<br>
can automatically find these in Unicode&#39;s CaseFold tables. We can also<br>
look for cases where one character becomes two when upper- or<br>
lower-cased (e.g. Eszett -&gt; SS).<br>
<br>
We should definitely not let the current size of Unicode-related<br>
libraries like ICU affect the decision-making process in IETF. Thin<br>
clients can always let big servers do the heavy lifting.<br>
<font color="#888888"><br>
Erik<br>
</font><div><div></div><div class="h5"><br>
On Thu, Apr 2, 2009 at 8:22 AM, Mark Davis &lt;<a href="mailto:mark@macchiato.com">mark@macchiato.com</a>&gt; wrote:<br>
&gt; Mark<br>
&gt;<br>
&gt; On Wed, Apr 1, 2009 at 12:51, John C Klensin &lt;<a href="mailto:klensin@jck.com">klensin@jck.com</a>&gt; wrote:<br>
&gt;<br>
&gt;&gt; We are, of course, there already.  While<br>
&gt;&gt; NFKC(CaseFold(NFKC(string))) is a good predictor of the<br>
&gt;&gt; Stringprep mappings, it is not an exact one, and IDNA2003<br>
&gt;&gt; implementations already need separate tables for NFKC and IDNA.<br>
&gt;<br>
&gt; True that they are not exact; but the differences are few, and<br>
&gt; extremely rare (not even measurable in practice, since there frequency<br>
&gt; is  on a par with random data). Moreover, some implementations already<br>
&gt; use the latest version of NFKC instead of having special old versions,<br>
&gt; because the differences are so small. So given the choice of a major<br>
&gt; breakage or an insignificant breakage, I&#39;d go for the insignificant<br>
&gt; one.<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt; That is where arguments about complexity get complicated.<br>
&gt;&gt; IDNA2008, even with contextual rules, is arguably less complex<br>
&gt;&gt; than IDNA2003 precisely because, other than that handful of<br>
&gt;&gt; characters, the tables are smaller and the interpretation of an<br>
&gt;&gt; entry in those tables is &quot;valid&quot; or &quot;not&quot;.  By contrast,<br>
&gt;&gt; IDNA2003 requires a table that is nearly the size of Unicode<br>
&gt;&gt; with mapping actions for many characters.<br>
&gt;<br>
&gt; I have just no idea whatever where you are getting your figures, but<br>
&gt; they are very misleading. I&#39;ll assume that was not the intent.<br>
&gt;<br>
&gt; Here are the figures I get.<br>
&gt;<br>
&gt; PValid or Context: 90262<br>
&gt; NFKC-Folded,    Remapped:       5290<br>
&gt; NFKC-Lower,     Remapped:       5224<br>
&gt; NFC-Folded,     Remapped:       2485<br>
&gt; NFC-Lower,      Remapped:       2394<br>
&gt;<br>
&gt; A &quot;table that is nearly the size of Unicode&quot;. If you mean possible<br>
&gt; Unicode characters, that&#39;s over a million. Even if you mean graphic<br>
&gt; characters, that&#39;s somewhat over 100,000<br>
&gt; (<a href="http://unicode.org/cldr/utility/list-unicodeset.jsp?a=%5B" target="_blank">http://unicode.org/cldr/utility/list-unicodeset.jsp?a=[</a>^[:c:]]).<br>
&gt;<br>
&gt; NFKC-Folded affects 5,290 characters in Unicode 5.2. That&#39;s about 5%<br>
&gt; of graphic characters: in my book at least, 5% doesn&#39;t mean &quot;nearly<br>
&gt; all&quot;. Or maybe you meant something odd like &quot;the size of the table in<br>
&gt; bytes is nearly as large as the number of Unicode assigned graphic<br>
&gt; characters&quot;.<br>
&gt;<br>
&gt; Let&#39;s step back a bit. We need to remember that IDNA2008 already<br>
&gt; requires the data in Tables and NFC (for sizing on that, see<br>
&gt; <a href="http://www.macchiato.com/unicode/nfc-faq" target="_blank">http://www.macchiato.com/unicode/nfc-faq</a>). The additional table size<br>
&gt; for NFKC and Folding is not that big an increase. As a matter of fact,<br>
&gt; if an implementation is tight on space, then having them available<br>
&gt; allows it to substantially cut down on the Table size by<br>
&gt; algorithmically computing<br>
&gt; <a href="http://tools.ietf.org/html/draft-ietf-idnabis-tables-05#section-2.2" target="_blank">http://tools.ietf.org/html/draft-ietf-idnabis-tables-05#section-2.2</a>.<br>
&gt;<br>
&gt; If you have different figures, it would be useful to put them out.<br>
&gt;<br>
&gt;&gt; And, of course, a<br>
&gt;&gt; transition strategy that preserves full functionality for all<br>
&gt;&gt; labels that were valid under IDNA2003 means that one has to<br>
&gt;&gt; support both, which is the most complex option possible.<br>
&gt;<br>
&gt; I agree that it has the most overhead, since you have to keep a copy<br>
&gt; of IDNA2003 around. That&#39;s why I favor a cleaner approach.<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt;    john<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; Idna-update mailing list<br>
&gt;&gt; <a href="mailto:Idna-update@alvestrand.no">Idna-update@alvestrand.no</a><br>
&gt;&gt; <a href="http://www.alvestrand.no/mailman/listinfo/idna-update" target="_blank">http://www.alvestrand.no/mailman/listinfo/idna-update</a><br>
&gt;&gt;<br>
&gt;<br>
</div></div></blockquote></div><br>