Subject: Re: [Lager] Fwd: Re: Where I'm at with the -01 draft

From: Audric Schiltknecht <[email-masked]>
Date: Tue, 1 Sep 2015 14:55:08 -0400

Le 2015-08-27 16:36, Asmus Freytag a écrit :
> On 8/27/2015 7:15 AM, Audric Schiltknecht wrote:
>> Le 2015-08-26 21:04, Asmus Freytag a écrit :
>>> All,

>> While this is indeed connected to issue #11, my concern is that there is
>> no clear text which indicates that _both_ "char" and "range" may have
>> "when"/"not-when" attributes whereas we have very specific sections
>> regarding references, comments, etc. (at least to my feeling: I had to
>> go back and forth between several sections and examples of the draft to
>> be sure of what was intended).
> This should be addressed by the new language

Thanks!

> Here's the new section in its entirety:
> 
> 4.2. Conditional Contexts
> 
> A conditional context is specified by a rule that must be satisfied (or
> alternatively, must not be satisfied) for a code point in a given label,
> often at a particular location in a label.
> 
> To specify a conditional context a "when" or "not-when" attribute may be
> used. The value of each "when" or    "not-when" attributes is a whole
> label or parameterized context rule as described below in Section 5.3.
> The content condition is met when the rule specified in the "when"
> attribute is matched. Alternatively, a "not-when" attribute may be used
> for a rule that must not be matched. It is an error to reference a rule
> that is not actually defined in the "rules" element.
> 
> A parameterized context rule    (see Section 5.4) defines the context
> immediately surrounding a given code point; unlike a sequence, the
> context is not limited to a specific fixed code point, but for example
> may be a code point that is a member of a certain subset or has a
> certain Unicode property.
> 
> Given a suitable definition of a parameterized context rule named
> "follows-virama" this example specifies that a ZERO-WIDTH JOINER
> (U+200D) is restricted to immediately follow any of several code points
> classified as virama:
> 
>     <char cp="200D" when="follows-virama" />
> 
> For a complete example, see Appendix Appendix A.

Minor nit: remove one Appendix.

> 
> In contrast, a whole label rule (see Section 5.3) specifies a condition
> to be met by the entire label, for example that it must contain at least
> one code point from a given script anywhere in the label. In the
> following example no digit from either range must occur in a label that
> mixes digits from both ranges:
> 
>     <data>
>        <range first-cp="0660" last-cp="0669" not-when="mixed-digits"
>               tag="arabic-indic-digits" />
>        <range first-cp="06F0" last-cp="06F9" not-when="mixed-digits"
>               tag="extended-arabic-indic-digits" />
>     </data>
> 
> (See Section 5.3.9 for an example of the "mixed-digits" rule.)
> 
> The "when" or "not-when" attributes are mutually exclusive. They may be
> applied to both "char" and "range" elements in the "data" element, as
> well as to "var" elements (see Section 4.3.5).
> 
> If a contextual condition is not satisfied for any code point in a
> label, the label is invalid, see Section 6.5. For variants, the
> conditional context restricts the definition of the variant to the case
> where the condition is met. Outside the specified context, a variant is
> not defined .

Great, this works well for me!

Regards,
Audric