UAX 29 questions

Karl Williamson public at
Thu Jan 29 12:52:30 CST 2015

On 01/25/2015 05:14 AM, Philippe Verdy wrote:
> This is not a contradiction.

At the very least it is too sloppy for a standard.  Once there is a 
match in the list of rules, later rules shouldn't have to be looked at. 
  I'll submit a formal feedback form.

But there is another issue as well.  I do not see how the specified 
rules when applied to the sequence of code points:

     U+0041 U+200D U+0020

cause the ZWJ, an Extend, to not break with the "A", an ALetter.

Rule WB4 is

"Ignore Format and Extend characters, except when they appear at the 
beginning of a region of text.".

Not clearly stated, but it appears to me that the ZWJ must be considered 
here to be the beginning of a region of text, as we are looking at the 
boundary between it and the "A".  No rule specifically mentions ALetter 
followed by an Extend, so by the default rule, WB14

"Otherwise, break everywhere (including around ideographs)"

this should be a word break position.  But that is absurd, as the Extend 
is supposed to extend what precedes it.  If I add a rule

"Don't break before Extend or Format"
	 	× (Extend | Format)

my implementation passes all tests.  I added this rule before WB4.

> combine the two rules and they are equivalent to these two alternate rules:
> WB56 can be read as these two:
>   (WB56a) ALetter  ×  (MidLetter | MidNumLet | Single_Quote) (ALetter |
> Hebrew_Letter)
>   (WB56b) Hebrew_Letter  ×  (MidLetter | MidNumLet | Single_Quote)
> (ALetter | Hebrew_Letter)
> Then add :
>    (WB57) Hebrew_Letter ×  Single_Quote
> it just removes the condition of a letter following the quote  in WB56b.
> So that WB56b and WB57 can be read as equivalent to these two:
>   (WB56c) Hebrew_Letter  ×  (MidLetter | MidNumLet) (ALetter |
> Hebrew_Letter)
>   (WB57) Hebrew_Letter × Single_Quote
> But you cannot merge any of these two last rules in a single rule for WB56.
> 2015-01-25 7:26 GMT+01:00 Karl Williamson <public at
> <mailto:public at>>:
>     I vaguely recall asking something like this before, but if so, I
>     didn't save the answers, and a search of the archives didn't turn up
>     anything.
>     Some of the rules in UAX #29 don't make sense to me.
>     For example, rule WB7a
>        Hebrew_Letter         ×       Single_Quote
>     seems to say that a Hebrew_Letter followed by a Single Quote
>     shouldn't break.  (And Rule WB4 says that actually there can be
>     Extend and Format characters between the two and those should be
>     ignored).
>     But the earlier rule, WB6
>       (ALetter | Hebrew_Letter)      ×       (MidLetter | MidNumLet |
>     Single_Quote) (ALetter | Hebrew_Letter)
>     seems to me to say (among other things) that a Hebrew Letter
>     followed by a Single Quote shouldn't break if and only if the latter
>     is also followed by either an ALetter or another Hebrew Letter
>     (again modulo ignored Format and Extend letters)
>     This seems contradictory.  One rule says something unconditionally,
>     and the other rule adds conditions.
>     _________________________________________________
>     Unicode mailing list
>     Unicode at <mailto:Unicode at>
>     <>

More information about the Unicode mailing list