UMCL: Providing Braille Transcription for Mathematical Applications
CC Attribution 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Archambault, Dominique
Over the past decade many applications have been developed to aid visually impaired people doing maths. Unfortunately, most of these applications work with only one Braille code, the one in use in the developer’s country. For example, the support centre of my university recently asked me if I knew of a piece of software allowing transcription of LaTeX mathematical documents to Braille. Indeed I do: Labradoor, developed by the University of Linz, does exactly that but produces Marburg code, which is of no use to French students!
 Good morning. So I'm going to talk about, OK, we just found some networks. I'm going to talk about UMCL. If I can find my mouse, can use it. OK, UMCL is a library that provides brand transcription for mathematical applications. So, my presentation today, well, I will start very, very shortly just to say that access to mathematics has always been particularly difficult for visual impaired persons. Everybody here is convinced, I guess, and that assistive technology may provide useful support for these visual impaired people. The problem is, if you look at many applications that have been developed in the last 10 or 20 years and that support braids, they are stick to one particular break code. So, the idea of UMCL was to provide some programming library that allows assistive technology developers to include in their application the support of value break codes. But before starting, I just want to make a free ad, because it was not planned when we had the summary of this. It was not planned yet. Something different, but in the same field. We also developed a plugin of OpenOffice that allows to make, to export, DT-book XML. And very recently, this exporter has got an award from the OpenOffice Community Innovation Program. So, if you're interested in that, it allows to make an accessible document. You don't need to have this version of work and this version of an exporter. Just take the last version of each. So, this is not a topic today, so I can talk about it later. So, now about brain, mathematical brain. Well, we know that rebrain was a musician, so there is musical brain that is used in most countries. But it was really not intended in mathematics. So, after that, 150 years, or maybe 200 years later, we have, I counted recently, about 12 or 15 different break codes. In France, we still have to deal with three revisions, because people have learned it in 1970 by for instance. You don't necessarily want to learn the 2001 version, etc. In Germany, there are maybe as many break codes that land us. It's a bit exaggerated, but we do it a bit, wouldn't we? British people and American people, of course, don't use the same break code. It would be too easy. There is break code in Italy, in Japan. There is a Spanish which is quite used in South America, too. There's a Chinese one, etc. So, let's see now the state of the art of very quickly, of fact, assistive technology to support math. There are three main cases of products. Products that convert to produce brain documents. You have applications that help to read or understand math, like for instance, the math player. And more recently, we made several experimental applications to help manipulating, calculating, solving, doing mathematics, not only accessing mathematics. So, now if we have a quick look to this application, for instance, I have recently, couple of years ago, somebody in my university has given me, you know about math on visually impaired brain, so do you know a good converter from late-day to brain? I said, this was coming from the support center for visually impaired students in my university in Paris. So I said, yes, I know a very good product. It's called Bramannette, sorry, Labrador. Labrador was made in Austria and it produces marble from late-day. But no student in my university, no marble code. So, useless. Four French students. Very useful for German and Bosnian students, but useless in French. Of course, we have something going from mathematics to French writing. There is also a mathematical death rate, mathematical nemat exists somewhere, and we have different tools that produce this rate, but each in a specific language. In the state of the art, there is also a very good product, which is a infity that allows to make both the air, recognize mathematical formula from paper or from images, and it produces mathematical, polysbrite and light-tech, etc. So, quickly, in the reading and understanding, we made with my group some work on a reader for math. So, we've seen that the math player already supports a lot of speech synthesis, a lot of different languages, and the next version, we support some brain, too. Also, the math genie from Karchmer provides some large graphical formula, which is the one I've put in the mix, speech synthesis, and I've put in the mix. So, if you look at the last category I said, doing math, there was the lambda project. The lambda project is a bit different because it has its own code, but will be described later today. And with the university online and my group in Paris, we made some experimental software on my rent, and it will be described too later. My rent is based on using UNCL to do some output in brain. So, now let's see what UNCL is. So, it's thought that it's to build a generic framework that allows different applications to use different brain codes. Without having to know when to develop the application, with which brain code it will be used. The architecture of this system is very simple. You have a main module, and this main module speaks with the application. And on the other side, the user can install, or have installed on his computer, values output, output modules that will allow the conversion he or she needs, actually. But the system is, the modules are completely independent from the application. They are only linked to the application by the main modules. But when the application is started, it will automatically detect what modules are present in the system. So, you can install an application that supports UNCL, and later on, install a new module, it will be recognized, and then you need to change the application. So, the main features was, to start, the point of this was to ensure the interpreter will be of all converters, and it can be used in any application. What is the problem here is that we developed a model on the brain translator that allows to support advanced features in manipulating, in the doing math case. First, if you just need to convert, you have a math ML input, or a related input, and you want to do some braiding, it's one way, it's quite simple. But if you're working in an application which needs, well, you need to be able to navigate, to close a branch of the math expression, to make a shorter view of the math expression, then you need some additional features, and then, I mean, you need to, also, if you want to be able to synchronize, then if you want to allow the user to point on the brain display a term of the expression, say X, and you want that on the screen, the teacher sees this X on the graphical formula, appears in a different background, then, the two versions of the formula need to be linked in a way. So, the UNCL supports, as a model, we support this. So, it's based on a sample language, this is something that makes it also easier. This sample language is a smaller version of math, it is math, it is very math, in which several structures are, how do you say, forced to be in one only way. So, we call it canonical math. The good thing with a canonical math is that, then, for each grade, you need to have only one converter. You don't need to have one converter from IK to Italian grade, one from math to Italian grade, one from Arbor to Italian grade. You just go through this sample language. So, from the application developer's point of view, the application only needs to access to the main module. It's better to have output modules installed on the computer to test it, of course, but theoretically, you don't even need it. And it's usable in most programming languages. First, it was written in C, the most portable, the most tolerable C possible, and in XSLT. The C library can be used in many languages. Natively, it can be used in C and C++, but then you can develop wrappers for other languages, which is quite easy nowadays. And we all really in the package provide wrappers for Python, Java, and soon for PHP. The output modules can also, depending on the need of the programmer, use directly the XSLT stat sheets in the case of a translator based on an XSLT stat sheet. Then, as I said, the main module will automatically detect the existing modules, and you can have, for instance, in your application, a setting box where the list of existing modules will be automatically read from the system. So, you install a new one, you restart your application, and you get the new module in your list. From the user's point of view, if you use a UNCEL-enabled application, you just need to install the module you need. And then, well, this can be, of course, provided with the application, because modules are also big, but afterwards, the good thing is that afterwards, you can still install new modules. Then, from the module developer point of view, you can have some people outside of, independently of UNCEL application who develop some modules, just have to follow the interface, and it's independent from the development of the main module. So, it can be any people in any country can build a new module. So, let's talk about the license now. It's open source, so it will be available. Technically, I opened the source source project recently, but it's not yet on the source, yet on this side, but it will be soon. Ah, soon as I clean it. And then, it is free to use. It is free to modify, and it is free to redistribute. It's according to the new less-generated public license. It can be used as well in a commercial software or in a free software. So, if you develop even a commercial software, you know, we don't use this. There are some specific license for free software that forbid, we decided not to use it. So, we finished the existing modules for the input module, where essentially mathemes can input mathemes. We can input mathemes, that's the minimum we need to start. We are currently working on a latex mathemes, and we are using an external library for that. So, it's on development. It works on some platforms, not yet on a platform, but it will be soon available on our site. The results saw some first version of the module to mathemes. It was developed in the University of Leeds, and these are not yet available, but it's still working. And some also previous version of IML, two kind of equal mathemes, developed in Japan. IML is one format of infili. The output modules now, we have one, it's a big output module for French that has three different release. So, we have parameters, it's the same module, but you tell what release you want. 1977, 1971, 2001, 2007. There is a Mathemet to Italian. This is working pretty well. Mathemet to Marble. This one is not complete up to Gymnasium, but it's still already complete for younger students. We have Canonical Mathematical NEMET. This one is full now. And we have Canonical Mathematical British Grays, which is at the last phase of development. It works, but you need to tune the results. So this is mostly what I wanted to say about UNCL. So the only way, the best way to help would be like I said Neil just before. If you're working with an application that does not support breakouts, or only supports one breakout, you need another one. The best thing is to tell the vendors that this exists and they can use it. Thank you. So the last version of this, we have an online demonstration where you can pass some Mathemet and see the grade. You can see the grade on the grade display, or you can see the grade on graphics on the screen. Depends on it. This will be very soon in the next month put online. And if you're interested in this, you can look on my website for Shedon.net. I put here all the information about UNCL. Thank you very much.
 Good morning.  So I'm going to talk about, OK, we just found some networks.  I'm going to talk about UMCL.  If I can find my mouse, can use it.  OK, UMCL is a library that provides brand transcription for mathematical applications.  So, my presentation today, well, I will start very, very shortly just to say that  access to mathematics has always been particularly difficult for visual impaired persons.  Everybody here is convinced, I guess, and that assistive technology may provide useful support for these visual impaired people.  The problem is, if you look at many applications that have been developed in the last 10 or 20 years  and that support braids, they are stick to one particular break code.  So, the idea of UMCL was to provide some programming library that allows assistive technology developers  to include in their application the support of value break codes.  But before starting, I just want to make a free ad, because it was not planned when we had the summary of this.  It was not planned yet.  Something different, but in the same field.  We also developed a plugin of OpenOffice that allows to make, to export, DT-book XML.  And very recently, this exporter has got an award from the OpenOffice Community Innovation Program.  So, if you're interested in that, it allows to make an accessible document.  You don't need to have this version of work and this version of an exporter.  Just take the last version of each.  So, this is not a topic today, so I can talk about it later.  So, now about brain, mathematical brain.  Well, we know that rebrain was a musician, so there is musical brain that is used in most countries.  But it was really not intended in mathematics.  So, after that, 150 years, or maybe 200 years later, we have, I counted recently, about 12 or 15 different break codes.  In France, we still have to deal with three revisions, because people have learned it in 1970 by for instance.  You don't necessarily want to learn the 2001 version, etc.  In Germany, there are maybe as many break codes that land us.  It's a bit exaggerated, but we do it a bit, wouldn't we?  British people and American people, of course, don't use the same break code.  It would be too easy.  There is break code in Italy, in Japan.  There is a Spanish which is quite used in South America, too.  There's a Chinese one, etc.  So, let's see now the state of the art of very quickly, of fact, assistive technology to support math.  There are three main cases of products.  Products that convert to produce brain documents.  You have applications that help to read or understand math, like for instance, the math player.  And more recently, we made several experimental applications to help manipulating, calculating, solving, doing mathematics, not only accessing mathematics.  So, now if we have a quick look to this application, for instance, I have recently, couple of years ago,  somebody in my university has given me, you know about math on visually impaired brain,  so do you know a good converter from late-day to brain?  I said, this was coming from the support center for visually impaired students in my university in Paris.  So I said, yes, I know a very good product.  It's called Bramannette, sorry, Labrador.  Labrador was made in Austria and it produces marble from late-day.  But no student in my university, no marble code.  So, useless.  Four French students.  Very useful for German and Bosnian students, but useless in French.  Of course, we have something going from mathematics to French writing.  There is also a mathematical death rate, mathematical nemat exists somewhere,  and we have different tools that produce this rate, but each in a specific language.  In the state of the art, there is also a very good product, which is a infity that allows to make both the air,  recognize mathematical formula from paper or from images,  and it produces mathematical, polysbrite and light-tech, etc.  So, quickly, in the reading and understanding, we made with my group some work on a reader for math.  So, we've seen that the math player already supports a lot of speech synthesis,  a lot of different languages, and the next version, we support some brain, too.  Also, the math genie from Karchmer provides some large graphical formula,  which is the one I've put in the mix, speech synthesis, and I've put in the mix.  So, if you look at the last category I said, doing math, there was the lambda project.  The lambda project is a bit different because it has its own code,  but will be described later today.  And with the university online and my group in Paris, we made some experimental software on my rent,  and it will be described too later.  My rent is based on using UNCL to do some output in brain.  So, now let's see what UNCL is.  So, it's thought that it's to build a generic framework that allows different applications to use different brain codes.  Without having to know when to develop the application, with which brain code it will be used.  The architecture of this system is very simple. You have a main module,  and this main module speaks with the application.  And on the other side, the user can install, or have installed on his computer,  values output, output modules that will allow the conversion he or she needs, actually.  But the system is, the modules are completely independent from the application.  They are only linked to the application by the main modules.  But when the application is started, it will automatically detect what modules are present in the system.  So, you can install an application that supports UNCL,  and later on, install a new module, it will be recognized, and then you need to change the application.  So, the main features was, to start, the point of this was to ensure the interpreter will be of all converters,  and it can be used in any application.  What is the problem here is that we developed a model on the brain translator  that allows to support advanced features in manipulating, in the doing math case.  First, if you just need to convert, you have a math ML input, or a related input,  and you want to do some braiding, it's one way, it's quite simple.  But if you're working in an application which needs, well, you need to be able to navigate,  to close a branch of the math expression, to make a shorter view of the math expression,  then you need some additional features, and then, I mean, you need to,  also, if you want to be able to synchronize, then if you want to allow the user to point on the brain display  a term of the expression, say X, and you want that on the screen,  the teacher sees this X on the graphical formula, appears in a different background,  then, the two versions of the formula need to be linked in a way.  So, the UNCL supports, as a model, we support this.  So, it's based on a sample language, this is something that makes it also easier.  This sample language is a smaller version of math, it is math, it is very math,  in which several structures are, how do you say, forced to be in one only way.  So, we call it canonical math.  The good thing with a canonical math is that, then, for each grade, you need to have only one converter.  You don't need to have one converter from IK to Italian grade,  one from math to Italian grade, one from Arbor to Italian grade.  You just go through this sample language.  So, from the application developer's point of view,  the application only needs to access to the main module.  It's better to have output modules installed on the computer to test it, of course,  but theoretically, you don't even need it.  And it's usable in most programming languages.  First, it was written in C, the most portable, the most tolerable C possible,  and in XSLT.  The C library can be used in many languages.  Natively, it can be used in C and C++, but then you can develop wrappers for other languages,  which is quite easy nowadays.  And we all really in the package provide wrappers for Python, Java, and soon for PHP.  The output modules can also, depending on the need of the programmer,  use directly the XSLT stat sheets in the case of a translator based on an XSLT stat sheet.  Then, as I said, the main module will automatically detect the existing modules,  and you can have, for instance, in your application, a setting box where the list of existing modules  will be automatically read from the system.  So, you install a new one, you restart your application, and you get the new module in your list.  From the user's point of view, if you use a UNCEL-enabled application,  you just need to install the module you need.  And then, well, this can be, of course, provided with the application, because modules are also big,  but afterwards, the good thing is that afterwards, you can still install new modules.  Then, from the module developer point of view, you can have some people outside of,  independently of UNCEL application who develop some modules,  just have to follow the interface, and it's independent from the development of the main module.  So, it can be any people in any country can build a new module.  So, let's talk about the license now.  It's open source, so it will be available. Technically, I opened the source source project recently,  but it's not yet on the source, yet on this side, but it will be soon.  Ah, soon as I clean it.  And then, it is free to use. It is free to modify, and it is free to redistribute.  It's according to the new less-generated public license.  It can be used as well in a commercial software or in a free software.  So, if you develop even a commercial software, you know, we don't use this.  There are some specific license for free software that forbid, we decided not to use it.  So, we finished the existing modules for the input module,  where essentially mathemes can input mathemes.  We can input mathemes, that's the minimum we need to start.  We are currently working on a latex mathemes, and we are using an external library for that.  So, it's on development. It works on some platforms, not yet on a platform, but it will be soon available on our site.  The results saw some first version of the module to mathemes.  It was developed in the University of Leeds, and these are not yet available, but it's still working.  And some also previous version of IML, two kind of equal mathemes, developed in Japan.  IML is one format of infili.  The output modules now, we have one, it's a big output module for French that has three different release.  So, we have parameters, it's the same module, but you tell what release you want.  1977, 1971, 2001, 2007.  There is a Mathemet to Italian. This is working pretty well.  Mathemet to Marble.  This one is not complete up to Gymnasium, but it's still already complete for younger students.  We have Canonical Mathematical NEMET. This one is full now.  And we have Canonical Mathematical British Grays, which is at the last phase of development.  It works, but you need to tune the results.  So this is mostly what I wanted to say about UNCL.  So the only way, the best way to help would be like I said Neil just before.  If you're working with an application that does not support breakouts, or only supports one breakout, you need another one.  The best thing is to tell the vendors that this exists and they can use it.  Thank you.  So the last version of this, we have an online demonstration where you can pass some Mathemet and see the grade.  You can see the grade on the grade display, or you can see the grade on graphics on the screen.  Depends on it.  This will be very soon in the next month put online.  And if you're interested in this, you can look on my website for Shedon.net.  I put here all the information about UNCL.  Thank you very much.
UMCL__Providing_Braille_Transcription_for_Mathematical_Applications_0_851.png UMCL__Providing_Braille_Transcription_for_Mathematical_Applications_852_1331.png UMCL__Providing_Braille_Transcription_for_Mathematical_Applications_1332_1535.png UMCL__Providing_Braille_Transcription_for_Mathematical_Applications_1536_1883.png UMCL__Providing_Braille_Transcription_for_Mathematical_Applications_1884_2435.png UMCL__Providing_Braille_Transcription_for_Mathematical_Applications_2436_3155.png UMCL__Providing_Braille_Transcription_for_Mathematical_Applications_3156_3755.png UMCL__Providing_Braille_Transcription_for_Mathematical_Applications_3756_4151.png UMCL__Providing_Braille_Transcription_for_Mathematical_Applications_4152_5459.png UMCL__Providing_Braille_Transcription_for_Mathematical_Applications_5460_6635.png UMCL__Providing_Braille_Transcription_for_Mathematical_Applications_6636_9131.png UMCL__Providing_Braille_Transcription_for_Mathematical_Applications_9132_10235.png UMCL__Providing_Braille_Transcription_for_Mathematical_Applications_10236_11183.png UMCL__Providing_Braille_Transcription_for_Mathematical_Applications_11184_12731.png UMCL__Providing_Braille_Transcription_for_Mathematical_Applications_12732_13427.png UMCL__Providing_Braille_Transcription_for_Mathematical_Applications_13428_17099.png UMCL__Providing_Braille_Transcription_for_Mathematical_Applications_17100_19559.png UMCL__Providing_Braille_Transcription_for_Mathematical_Applications_19560_20855.png UMCL__Providing_Braille_Transcription_for_Mathematical_Applications_20856_22127.png UMCL__Providing_Braille_Transcription_for_Mathematical_Applications_22128_25907.png UMCL__Providing_Braille_Transcription_for_Mathematical_Applications_25908_26774.png