I think Patrik's message has engendered a very useful discussion. I have no objection to discussing the notion of levels, since looking at the issue from different perspectives helps to pinpoint areas where we may have different views that need to be reconciled. For example, this was useful to help to emphasize that a profile of stringprep doesn't need to be a subset, and that we are not just discussing sets of code points, but restrictions on strings.
<br><br>Here&#39;s a quick recast of Patrik&#39;s levels.<br><br><div><span class="gmail_quote">On 1/10/07, <b class="gmail_sendername">Kenneth Whistler</b> &lt;<a href="mailto:kenw@sybase.com">kenw@sybase.com</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;">Patrik said:<br><br>&gt; My view, that was sort of invented during a talk with Cary the other
<br>&gt; week, is that we can see it like this:<br>&gt;<br>&gt;&nbsp;&nbsp; 1 We have a set of theoretical codepoints. 0x0000 and up.</blockquote><div><br>The Unicode architecture provides a set of abstract code points from U+0000 to U+10FFFF, which is fixed across all Unicode versions. 
<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">&gt;&nbsp;&nbsp; 2 Unicode Character Set include for each version a subset of those<br>&gt; codepoints.
</blockquote><div><br>In each version of Unicode, some subset of those codepoints are assigned to characters (whereby each version only adds assigned characters, never removes or moves them). These characters have a number of properties; the Unicode consortium can add new properties where necessary, and can stabilize certain properties where necessary.
<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">&gt;&nbsp;&nbsp; 3 Stringprep allow a subset of the Unicode Character Set.</blockquote><div>
<br>Stringprep allows a subset of those assigned characters in output strings. It may also have string-based limitations, ones that restrict certain combinations of characters (such as the BIDI restrictions or the proposed ZWJ/NJ conditions)
<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">&gt;&nbsp;&nbsp; 4 A profile of stringprep (like Nameprep) is a subset of stringprep<br>
&gt; allowed &quot;stuff&quot;.</blockquote><div><br>Nameprep allows a subset of the output strings from StringPrep (But as Erik says, this is not true of any profile, since a profile can add or remove. So while NamePrep may use a proper subset of the output strings allowed in StringPrep, it is not a requirement on all profiles.)
<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">&gt;&nbsp;&nbsp; 5 Registry policy talk about a subset of Nameprep.</blockquote><div><br>
A Registry policy may further restrict the output strings allowed by NamePrep, either as a subset of characters or as string-based limitations.<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
&gt;&nbsp;&nbsp; 6 Registrar policy talk about a subset of the registry policy.</blockquote><div><br>A Registrar policy may further restrict the output strings allowed by the Registry, either as a subset of characters or as string-based
limitations.<br>
</div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">&gt;&nbsp;&nbsp; 7 User interface issues is a subset of the registrar policy (might<br>&gt; at least create a subset).
</blockquote><div><br>A user-agent may signal information about URLs to users.<br>[I don&#39;t think we want to actually recommend that the UI restrict output strings; what we would recommend is that the UI signal information about the URLs, such as displaying URLs with their PunyCode forms where it would be useful to caution the user, eg when they use scripts outside of what the user&#39;s settings allow. A UI may also perform certain processing on input, such as transforming input of isolated Jamo characters into Hangul syllables; that would be outside of the scope of IDNAbis.]
<br></div><br>I do think that it is valuable to keep this entire picture in mind. While we are really focused on #3 and #4, certainly the context of #1-2 (a growing repertoire of Unicode characters), and the context of #5-7 (the abilities of registries to further refine limitiations, and for user-agents to provide more information about URLs) is important to keep in mind as we go forward.
<br><br>Mark<br></div>