Technology

Languages and Toolkits

The local language library (IMLI library) is a set of C callable functions which constitute the API for working with multilingual text that implements the syllable based encoding. The Editor uses the IMLI library as a shared object in Linux, and as a DLL in Windows. The library is written in C, and handles the script, language and syllable coding. The GUI is written in C++ and uses Qt4.

Coding Scheme

Language written using Roman Script, Cyrillic Script represent syllables using only the basic consonants and vowels and so the written text consists of only the small set of letters of the alphabet. Computers identify only the basic letters of the Roman alphabet through the codes assigned for them (ASCII consists of codes for the English alphabet). In contrast, Indian scripts employ thousands of shapes and the coding schemes employed for the western scripts cannot be used as such.

In the IMLI approach, a set of syllables have been assigned an individual code that reflects the composition of the syllable in terms of the consonants and vowel forming the syllable. A 16 bit fixed length code is used as the syllable code. With this scheme that uses a unique fixed length code value for every syllable, text processing is made easier, compared to variable length schemes. All string processing methods based on fixed size eight bit codes can be easily adapted to work with the new codes. By coding at the syllable level, transliteration across scripts is straightforward and clean. This also allows us to use ISO-8859 TTF files to store the glyphs for Indian languages, and makes it easier to provide output to other software that expect ISO-8859 text.

For details on the internals of the scheme see the How-It-Works page.

Application Development

The basis of application development is the IMLI library. The basic functions in the library deal with the syllable level codes. Hence a text processing application can be written in the C language if a suitable compiler is available on the system. Text processing applications do not require any graphics or font loader support as they will work with the syllable codes unlike display and editing applications. In MVC terms, IMLI provides the Model, and enables building powerful Controllers.