[liblouis-liblouisxml] Adding rules to a translation table

  • From: "Susan Jolly" <easjolly@xxxxxxxxxxxxx>
  • To: <liblouis-liblouisxml@xxxxxxxxxxxxx>
  • Date: Sun, 27 Oct 2013 15:57:47 -0600

Yikes, indeed.

I think liblouis has run into what's sometimes called the law of leaky abstractions. Abstractions are essential to programming but it can sometimes be difficult if not impossible to cover all cases with a single abstraction.

The translation table abstraction or approach was developed for English braille in 1970 when the focus was on translating simple text consisting mainly of titlecase and lowercase ordinary words using a single typeform where the main concern was using contractions correctly. Braille indicators were typically only needed before a word or number.

However, once you have to translate complex items such as those that require inserted braille indicators, it can be very awkward (or impossible?) to specify a one-line rule. Some examples are mixed case words, number words like 5-star or 18-cell, other alphanumeric items, and items with multiple typeforms. And, of course, liblouis is trying to utilize an abstraction that works with multiple braille systems. (This is to some extent possible because many braille systems for languages other than English were designed using approaches derived from English braille.)

I've restricted my own efforts to EBAE as far as developing software to translate text and although I've tried a number of different approaches over the years, I've never come up with anything short and sweet that can produce accurate braille. I think that's because the problem itself isn't simple.

As for items that require inserted indicators, I can, of course, write code that uses one of several possible algorithms to determine which indicators are needed where and to insert them into their proper locations during the translation process. As far as deciding when this is necessary, my current solution is simply to build into the software logic that determines when to apply the standard translation table method and when to apply the insertion method or other special methods.

In light of my experience, I wouldn't even try to figure out how to put a rule that could handle number words into the translation table. I think the right solution is for braille software to use a hierachical approach that starts by determining which of several translation methods should be applied to the current item.

Susan

For a description of the software, to download it and links to
project pages go to http://www.abilitiessoft.com

Other related posts:

  • » [liblouis-liblouisxml] Adding rules to a translation table - Susan Jolly