simon:<div><br></div><div>from RFC5894</div><div><br></div><div><div>3.1.2.2. Rules and Their Application</div><div><br></div><div> Rules have descriptions such as "Must follow a character from Script</div><div> XYZ", "Must occur only if the entire label is in Script ABC", or</div>
<div> "Must occur only if the previous and subsequent characters have the</div><div> DFG property". The actual rules may be DEFINED or NULL. If present,</div><div> they may have values of "True" (character may be used in any position</div>
<div> in any label), "False" (character may not be used in any label), or</div><div> may be a set of procedural rules that specify the context in which</div><div> the character is permitted.</div><div><br>
</div><div> Because it is easier to identify these characters than to know that</div><div> they are actually needed in IDNs or how to establish exactly the</div><div> right rules for each one, a rule may have a null value in a given</div>
<div> version of the tables. Characters associated with null rules are not</div><div> permitted to appear in putative labels for either registration or</div><div> lookup. Of course, a later version of the tables might contain a</div>
<div> non-null rule.</div><div><br></div><div> The actual rules and their descriptions are in Sections 2 and 3 of</div><div> the Tables document [RFC5892]. That document also specifies the</div><div> creation of a registry for future rules.</div>
<div><br></div><div><br></div><br><div class="gmail_quote">On Sun, Jan 9, 2011 at 5:30 AM, Simon Josefsson <span dir="ltr"><<a href="mailto:simon@josefsson.org">simon@josefsson.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">Vint Cerf <<a href="mailto:vint@google.com">vint@google.com</a>> writes:<br>
<br>
> simon:<br>
><br>
> Suppose you are (well, your software is) examining a string to determine<br>
> whether to look it up in the DNS and, on examination, you discover a<br>
> character in an apparent U-label that is labeled "CONTEXTJ". CONTEXTJ is one<br>
> of the several special handling rules in IDNA2008. Upon examination, you<br>
> discover that the character does NOT conform to the rule associated with<br>
> CONTEXTJ. At this point you should cease further examination and reject the<br>
> string as not being acceptable even for lookup in the DNS. If the character<br>
> satisfies the associated CONTEXTJ rule, you may continue to examine the<br>
> string prior to looking it up.<br>
><br>
> Your interpretation (2) is the correct one. The idea is to allow the use of<br>
> "joiner" characters only under specific conditions.<br>
<br>
</div>Thank you, this is clear to me now.<br>
<div class="im"><br>
> A "null" rule is a condition that has no specific actions associated with<br>
> it. It's like defining a class of characters (perhaps by their Unicode<br>
> properties) for purposes of singling them out for special treatment, and<br>
> then not saying what should be done about them. If there is no rule, and if<br>
> a character in a string under examination meets the condition, the string<br>
> must be rejected if the condition does not have a defined rule (action)<br>
> associated with it. The lack of a rule means there is no test to perform and<br>
> it is interpreted in IDNA2008 as having failed implicitly. "null rule" means<br>
> a rule that is "empty" "has no content" "missing" "awol"<br>
<br>
</div>When would this situation occur?<br>
<font color="#888888"><br>
/Simon<br>
</font><div><div></div><div class="h5"><br>
><br>
> v<br>
><br>
><br>
><br>
><br>
> On Sat, Jan 8, 2011 at 5:07 AM, Simon Josefsson <<a href="mailto:simon@josefsson.org">simon@josefsson.org</a>> wrote:<br>
><br>
>> Hi,<br>
>><br>
>> I need help with interpretation regarding section 5.4 which says:<br>
>><br>
>> Putative U-labels with any of the following characteristics MUST be<br>
>> rejected prior to DNS lookup:<br>
>> ...<br>
>> o Labels containing code points that are identified in the Tables<br>
>> document as "CONTEXTJ", i.e., requiring exceptional contextual<br>
>> rule processing on lookup, but that do not conform to those rules.<br>
>><br>
>> I have trouble understand the bullet text. To me, it seems as if the<br>
>> first part of the sentence, namely:<br>
>><br>
>> Labels containing code points that are identified in the Tables<br>
>> document as "CONTEXTJ"<br>
>><br>
>> says one thing but the rest of the sentence, namely:<br>
>><br>
>> requiring exceptional contextual rule processing on lookup, but<br>
>> that do not conform to those rules.<br>
>><br>
>> says a different thing.<br>
>><br>
>> What is not clear to me is whether the test on a particular label is<br>
>> intended to fail if and only if:<br>
>><br>
>> 1) the label has any code point with the CONTEXTJ property.<br>
>><br>
>> 2) the label has any code point with the CONTEXTJ property AND the rule<br>
>> fails.<br>
>><br>
>> Interpretation 2) makes the most sense to me, but the normative part of<br>
>> the sentence suggests otherwise so I am looking for clarification.<br>
>><br>
>> The text goes on and says:<br>
>><br>
>> Note that this implies that a rule must be defined, not null: a<br>
>> character that requires a contextual rule but for which the rule<br>
>> is null is treated in this step as having failed to conform to the<br>
>> rule.<br>
>><br>
>> What is a "null rule"? I cannot find any definition.<br>
>><br>
>> /Simon<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" target="_blank">http://www.alvestrand.no/mailman/listinfo/idna-update</a><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" target="_blank">http://www.alvestrand.no/mailman/listinfo/idna-update</a><br>
</div></div></blockquote></div><br></div>