[liblouis-liblouisxml] SV: Re: SV: Back translation - starting with Italian and French

  • From: Bue Vester-Andersen <bue@xxxxxxxxxxxxxxxxxx>
  • To: <liblouis-liblouisxml@xxxxxxxxxxxxx>
  • Date: Mon, 10 Aug 2015 11:43:13 +0200

Hi Daniel,



You wrote:



I wasn't 100% sure about the litdigit vs digit question in the fr-fr-g1
table. It seems changing digit to litdigit fixed the errors with back
translation of numbers, but this is done in the digit6DotPlusDot6 file which
is > used by many tables, so I figure this is a bad move. Would it be
acceptable to create a new table exactly the same as digit6DotPlusDot6 but
with litdigit instead of digit and include this into fr-fr-g1?



Both digits6dots.uti and litdigits6dots.uti can be found in the tables
directory, so I don't quite understand the question. You can include both or
none of the tables in your table. The order might have consequences for
back-translation, but I am not sure how digit vs. litdigit is interpreted
during back-translation.



I was also playing around with getting punctuation to work in Italian because
it uses the same symbols as some accented characters (apparently). I will
investigate this more and get the exact rules. However, is this > where we
use the prepunc and postpunc commands? I recall I was getting some sort of
error about the symbol being undefined eg. prepunc symbol dots. Do I need to
define punctuation symbol dots somewhere to stop > this from happening? Is
there any practical difference between begword and prepunc (and postpunc and
endword)?



You need to define all characters that have some representation in your Braille
code. Otherwise, you will get the "undefined" error when you reference the
characters later in your table. I think you also need to have a definition for
all single cell dot patterns. What I do is the following:

1. Define all characters that are represented by a single Braille cell.

2. Include braille-patterns.cti to make sure that all braille cells have been
defined.

3. Define additional characters that use one or more Braille cells.



I don't know if this is the correct and aproved way of doing it, but it works.



Please, be aware that sometimes you need to send a different character to a
printer or a display to get the actual dot pattern that you want. Use the
display opcode in these cases.



Prepunc is about the punctuation that happens before an actual word. Begword is
about the word itself. You could, and may sometimes have to include
punctuations in a begword opcode, eg if a punctuation sign has to be written in
a special way before a certain contraction.



Finally, I found myself adding noback prior to some characters in the tables.
Is it acceptable to add noback rules for some characters so that all
"essential" characters can be translated and the conflicting less important >
characters can still work for forward translation, but ignored for back
translation? Or is this a bit of a hack and do I need to come up with
something better?



Perhaps it is a hack, but I don't know that there is something better to come
up with. The back-translator will normally use the first character definition
of a dot cell when it has to choose. However, you can make things clearer by
using the noback opcode for those definitions that should not be used for
back-translation, e.g. if you have several accented version of a letter
represented by the same Braille combination. The hard thing can be to decide
which version should be used for back-translation. Braille boards and councils
around the world are very good at defining how to write Braille, But they
rarely define how it should be read.



Best regards Bue





Fra: liblouis-liblouisxml-bounce@xxxxxxxxxxxxx
[mailto:liblouis-liblouisxml-bounce@xxxxxxxxxxxxx] På vegne af Daniel Dalton
Sendt: 8. august 2015 16:36
Til: liblouis-liblouisxml@xxxxxxxxxxxxx
Emne: [liblouis-liblouisxml] Re: SV: Back translation - starting with Italian
and French



Hello Bue,

Thanks for your reply. I've had a look through my list archive and read through
those recent back translation posts. I won't lie they do go over my head a
little bit as I'm not very familiar with liblouis and Braille translation.



I think I'm becoming more familiar with the way things are done as I read more
tables and documentation. I guess I just want to clarify some conventions, so
that whatever efforts I go to which get back translation working for my app can
also be included in the liblouis project for others to benefit from.



I wasn't 100% sure about the litdigit vs digit question in the fr-fr-g1 table.
It seems changing digit to litdigit fixed the errors with back translation of
numbers, but this is done in the digit6DotPlusDot6 file which is used by many
tables, so I figure this is a bad move. Would it be acceptable to create a new
table exactly the same as digit6DotPlusDot6 but with litdigit instead of digit
and include this into fr-fr-g1?



I was also playing around with getting punctuation to work in Italian because
it uses the same symbols as some accented characters (apparently). I will
investigate this more and get the exact rules. However, is this where we use
the prepunc and postpunc commands? I recall I was getting some sort of error
about the symbol being undefined eg. prepunc symbol dots. Do I need to define
punctuation symbol dots somewhere to stop this from happening? Is there any
practical difference between begword and prepunc (and postpunc and endword)?



Finally, I found myself adding noback prior to some characters in the tables.
Is it acceptable to add noback rules for some characters so that all
"essential" characters can be translated and the conflicting less important
characters can still work for forward translation, but ignored for back
translation? Or is this a bit of a hack and do I need to come up with something
better?



Again this is a fairly challenging project for me given I'm not very familiar
with liblouis and relying on my users for the details on the Braille codes and
having to do all the technical work myself.



Thanks,

Daniel







On Sat, Aug 8, 2015 at 12:07 AM, Bue Vester-Andersen <bue@xxxxxxxxxxxxxxxxxx>
wrote:

Hi Daniel,



I don't know if you have been following the list lately, but there has recently
been quite a lot of discussion on the list, both about back-translation in
general, and about specific points. If this mailing list has an archive, I
suggest you start there. Otherwise, I could probably find something to forward
to you off list.



I am myself planning to start working on back-translation for other tables,
once I have finished the current expansion and restructuring of the Danish
Tables.



I will be happy to help you along the way, but you would probably do well to
also find somebody who is fluent in Braille in the languages for which you want
to do back-translation.



HTH Bue





Fra: liblouis-liblouisxml-bounce@xxxxxxxxxxxxx
[mailto:liblouis-liblouisxml-bounce@xxxxxxxxxxxxx] På vegne af Daniel Dalton
Sendt: 7. august 2015 15:45
Til: liblouis-liblouisxml@xxxxxxxxxxxxx
Emne: [liblouis-liblouisxml] Back translation - starting with Italian and French



Hello,

I'm working on a project that allows a blind person to enter Braille using a
touch screen on a mobile device. I'm looking to add back translation
capabilities to many of the liblouis tables that currently seem to only be good
for forward translation. Given I have users using French and Italian I am
starting with those.



To be honest I really don't know where to start. I've done a bit of reading of
some of the tables as well as the documentation of liblouis. I'm thinking that
I should just need to add more restrictions to the tables eg. by using the
before and after operators. Is this correct or is it not this easy?



The other issue I'm having is that there seems to be limited documentation on
these tables especially around context. I only speak English, so it also makes
it hard that I'm not familiar with the codes.



A couple of specific questions:

1. I notice that back translation of numbers does not work in fr-fr-g1. I
presume number 1 should be #*. If I change digits6dotsPlusDot6.uti to have
lines with litdigit rather than "digit" eg. "digit 1 16" to "litdigit 1 16"
things seem to work correctly. This seems to effect a lot of tables though. Is
it wise to edit this file or should I just make a new
litdigits6DotsPlusDot6.uti file and define the dots here? Or am I just doing
this all wrong?
2. In Italian Braille there seem to be circumstances where certain dot
combinations represent either an accented character or some punctuation. Not
sure exactly the rules governing this and online docs seem vague. Is anyone
familiar with Italian Braille able to offer some help with this? Is this again
a case of using before and after rules to make this more restrictive?
3. I have also been told that there are some characters in Italian that
are mapped to the same dot combinations irrelevant of context. Is this true and
if so how should I go about handling this in the Italian table?





I'm really keen to try and get a few of the more popular languages working in
liblouis and I'm sure this would help with many other projects like nvda. If
anyone can assist with any of this or would like to help with this process I
would be very grateful.



Thanks for any help.



Kind regards,

Daniel Dalton





Other related posts: