This is an interesting question.

It seems the task of parsing a text into sequences depends on the purpose. Not all sequences of interest are named and, in the general case, not all attempts at parsing may be unique. In this case, it looks like the named sequences would correspond to a specific (ligated) glyph that matches a user-perceived unit of the writing system.

Such a parsing task is akin to scanning, for example, strings using the Latin script for ligatures - while trying to emulate the rules that were in effect during days of hot metal typesetting for certain languages. For example, it wasn't enough to know that a certain cluster of letters might have a ligature glyph, one would also have to know whether the cluster straddled a (compound) word boundary or not. Just knowing the specification of ligated sequences alone would not be enough to identify a correct parse.

Such rules, however, are usually not part of the Unicode standard.

The situation here is similar; the standard simply specifies that a certain sequence of code points has a collective name. In case of ambiguities, you'll have to turn to external sources to resolve them.

Now, if this isthe only such ambiguity (or one of a very small number) and if identification of the correct sequence is essential for selecting the correct rendering, I don't see why the script description for Sinhala couldn't be augmented to discuss that issue.

In which case, the way to proceed is to assemble the full set of facts and submit them to the UTC using the reporting form on the website.


On 10/14/2016 10:07 AM, Martin Jansche wrote:
For Sinhala, the following named sequences are defined (for good reasons):


I'll abbreviate these as Yansaya, Rakaransaya, and Repaya, and I'll write Ya for 0DBA and Ra for 0DBB.

Note that these give rise to two potentially ambiguous codepoint strings, namely

  0DBB 0DCA 200D 0DBA
  0DBB 0DCA 200D 0DBB

I'll concentrate on the first, as all arguments apply to the second one analogously.

At a first glance, the sequence 0DBB 0DCA 200D 0DBA has two possible parses:

  0DBB + 0DCA 200D 0DBA, i.e. Ra + Yansaya
  0DBB 0DCA 200D + 0DBA, i.e. Repaya + Ya

First question: Does the standard give any guidance as to which one is the intended parse? The section on Sinhala in the Unicode Standard is silent about this. Is there a general principle I'm missing?

Sri Lanka Standard SLS 1134 (2004 draft) states that Ra+Yansaya is not used and is considered incorrect, suggesting that the second parse (Repaya+Ya) should be the default interpretation of this sequence. However, SLS 1134 does not address the potential ambiguity of this sequence explicitly and the description there could be read as informative, not normative.

Second question: Given that one parse of this sequence should be the default, how does one represent the non-default parse?

In most cases one can guess what the intended meaning is, but I suspect this is somewhat of a gray area. In practice, trying to render these problematic sequences and their neighbors in HarfBuzz with a variety of fonts results in a variety of outcomes (including occasionally unexpected glyph choices). If the meaning of these sequences is not well defined, that would partly explain the variation across fonts.

Am I missing something fundamental? If not, it seems this issue should be called out explicit in some part of the standard.

-- martin

Reply via email to