Arabic joining rules (again!)

From: Amit Parghi (
Date: Tue Sep 14 1999 - 12:17:55 EDT

Hi, all,

My apologies if this is a re-run ... in which case I'll gladly accept a
pointer to a definitive answer.

In the mailing list archives, I found an answer Asmus Freytag sent in June
regarding the Arabic joining rules in the Unicode 2.0 Standard, where he
provided corrections for the usage of "join-causing" (instead of
"left-join-causing" and "right-join-causing") in the book (pp. 6-24--6-26).

However, as far as I can see, the actual definitions for those two
supersets in the book are incorrect (or Asmus Freytag's insertions were in
the wrong order): as I understand it, the superset rules *should* be:
  right-join-causing = { dual-joining, left-joining, or join-causing }
  left-join-causing = { dual-joining, right-joining, or join-causing }

For example, take R4 (my favourite), from the book, with Asmus Freytag's
  A dual-joining character X that has a [right-]join-causing character
  on the right and a [left-]join-causing character on the left will
  adopt the form Xm.

Now, take a substring in the following visual order: W X Y

Let X be dual-joining.

Apply R4 to X: Examine character Y, to the (visual) right of character X,
to determine whether Y is right-join-causing (i.e. will cause X to join to
the right). This means we need to see if Y joins to the *left* (!), which
it could do by being LEFT-joining, dual-joining, or join-causing.

Similarly, to apply the second half of R4 to X, W must be left-join-causing
(i.e. causing X to join to the left), meaning that W would have to join to
the right, by being RIGHT-joining, dual-joining, or join-causing.

Am I correct in this interpretation?

[I assume this has been clarified and/or fixed in 3.0... and I know it's
too late anyway :-)]


      amit parghi              technical leader           ten duke street            production r&d             montreal, qc
    +1.514.393.1616                discreet               h3c 2l7  canada

This archive was generated by hypermail 2.1.2 : Tue Jul 10 2001 - 17:20:51 EDT