Thanks, Patrik, nice work.<br><br>Could you put the scripts in a determinate order (eg sorted either by code -- such as Latn -- or by long name)? That would make comparison easier.<br><br>This direction is very promising, and close to what Unicode is recommending, which is:
<br><ul><li>Character Restrictions</li><ul><li>characters must have general categories of: letter, mark, number (Nd), but<br></li><li>no uppercase/titlecase characters<br></li><li>no characters that aren't NFKC</li><li>plus ZWJ/ZWNJ, but in very limited contexts*
<br></li></ul><li>Whole Field Restrictions</li><ul><li>field must be NFC</li><li>no field starts with a mark</li><li>nameprep bidi restrictions (loosened to allow marks at end of field)<br></li></ul></ul>The Unicode identifiers (
<a href="http://unicode.org/reports/tr31/">http://unicode.org/reports/tr31/</a>) differ somewhat in that they add connector punctuation, like &quot;_&quot;, and disallow numbers at the start of identifiers (since the target is programming languages). They also provide for stability extensions, so that once a character counts as an identifier, it will in all future versions of Unicode. See 
<a href="http://www.unicode.org/reports/tr31/#Backward_Compatibility">http://www.unicode.org/reports/tr31/#Backward_Compatibility</a><br><br>* The ZWJ/NJ is still in draft stage. The UTC is issuing&nbsp;<span style="font-family: monospace;">
</span> a PRI regarding use of ZWJ/ZWNJ in identifiers based on L2/06-353 (<a href="http://www.unicode.org/L2/L2006/06353-zwj-issues.html">http://www.unicode.org/L2/L2006/06353-zwj-issues.html</a>)<br><br>* See also <a href="http://www.unicode.org/reports/tr31/#Specific_Character_Adjustments">
http://www.unicode.org/reports/tr31/#Specific_Character_Adjustments</a>, including Table 3. <span style="font-weight: 400;">Characters for 
        Natural Language Identifiers</span><br><br>Mark<span style="font-weight: 400;"></span><br><br><div><span class="gmail_quote">On 11/22/06, <b class="gmail_sendername">Patrik Fältström</b> &lt;<a href="mailto:patrik@frobbit.se">
patrik@frobbit.se</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Version that accept classes Ll, Lo and Mn can be found as
<br><br><a href="http://stupid.domain.name/idnabis/table-lllomn.html">http://stupid.domain.name/idnabis/table-lllomn.html</a><br><br>What about class Nd?<br><br>&nbsp;&nbsp;&nbsp;&nbsp;Patrik<br><br>On 22 nov 2006, at 14.07, Harald Alvestrand wrote:
<br><br>&gt; Class Mn contains the HEBREW POINT QAMATS that the -bidi draft is<br>&gt; busy defending. Can't eliminate that.<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Harald<br>&gt;<br>&gt; --On 22. november 2006 13:52 +0100 Patrik Fältström
<br>&gt; &lt;<a href="mailto:patrik@frobbit.se">patrik@frobbit.se</a>&gt; wrote:<br>&gt;<br>&gt;&gt; I have recreated the tables using a new algorithm (based on inputfrom<br>&gt;&gt; Kenneth mostly).<br>&gt;&gt;<br>&gt;&gt; (1) Use the 
scripts.txt file for the script definitions, do not<br>&gt;&gt; usethe<br>&gt;&gt; blocks definitions<br>&gt;&gt;<br>&gt;&gt; (2) Remove codepoints where cp != NFKC(cp)<br>&gt;&gt;<br>&gt;&gt; (3) Remove codepoints where cp != lowercase(cp)
<br>&gt;&gt;<br>&gt;&gt; (4) Remove codepoints where class(cp) != &quot;Ll&quot;<br>&gt;&gt;<br>&gt;&gt; (5) Include codepoints that are part of US-ASCII (0-9, A-Z and a-z)<br>&gt;&gt;<br>&gt;&gt; The result of doing this for U+0000 - U+FFFF can be found as
<br>&gt;&gt;<br>&gt;&gt; <a href="http://stupid.domain.name/idnabis/table-ll.html">http://stupid.domain.name/idnabis/table-ll.html</a><br>&gt;&gt;<br>&gt;&gt; If I instead instep 4 accept things of class both Ll and Lo, then
<br>&gt;&gt; theresult can be found as<br>&gt;&gt;<br>&gt;&gt; <a href="http://stupid.domain.name/idnabis/table-lllo.html">http://stupid.domain.name/idnabis/table-lllo.html</a><br>&gt;&gt;<br>&gt;&gt; Please let me know what you think.
<br>&gt;&gt;<br>&gt;&gt; I have this comment regarding one entry from class Lm:<br>&gt;&gt;<br>&gt;&gt;&gt;&gt;&nbsp;&nbsp;| Exclude&nbsp;&nbsp;| U+02BB | U+02BB | Lm&nbsp;&nbsp;&nbsp;&nbsp;| MODIFIER LETTER TURNED<br>&gt;&gt;&gt;&gt; COMMA |<br>&gt;&gt;&gt;&gt;&nbsp;&nbsp;| Exclude&nbsp;&nbsp;| U+02BC | U+02BC | Lm&nbsp;&nbsp;&nbsp;&nbsp;| MODIFIER LETTER
<br>&gt;&gt;&gt;&gt; APOSTROPHE&nbsp;&nbsp; |<br>&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; As ASCII isn't directly encodable using Punycode, one of these is<br>&gt;&gt;&gt; going<br>&gt;&gt;&gt; to be needed to be allowed for Pacific languages, which use the
<br>&gt;&gt;&gt; apostrophe. eg, Hawaiʻi. It is often ignored, but in languages like<br>&gt;&gt;&gt; Tongan it can make a difference.<br>&gt;&gt;<br>&gt;&gt; I have not taken this into account when creating these tables.<br>
&gt;&gt;<br>&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Regards, Patrik<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">http://www.alvestrand.no/mailman/listinfo/idna-update</a><br>&gt;&gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt;<br><br>_______________________________________________
<br>Idna-update mailing list<br><a href="mailto:Idna-update@alvestrand.no">Idna-update@alvestrand.no</a><br><a href="http://www.alvestrand.no/mailman/listinfo/idna-update">http://www.alvestrand.no/mailman/listinfo/idna-update
</a><br></blockquote></div><br><br clear="all"><br>-- <br>Mark