Multilingual Software Library
Input state machine for
data entry
The data entry module
used in the IITM software generates codes for syllables by combining the
keystrokes. Successive keystrokes are monitored and the syllable typed
in upto the last keystroke is returned. The syllable ends when a vowel
is entered after a consonant. The module takes care of the entry of special
characters, numerals and other symbols properly. In all cases, the input
state machine produces a single 16 bit code for each syllable entered.
The syllable could be any one of the defined syllables defined by the superset
of aksharas. Please refer to the coding scheme for details on the set of
permissible syllables.
The state machine
approach is different from the one taken by Unicode where each keystroke
generates an independent code value and it is the responsibility of the
application to identify a syllable.. The IITM approach is easier to deal
with since the application is not required to do so because each code dealt
with by the application is already a syllable. Hence the application can
use a language and font independent text API to output text and so dynamic
selection of the script used for display is automatically supported.
As discussed in the
section on the Encoding Scheme, syllable formation is restricted to a limited
set of syllables which may have at the most three consonants. The state
machine will stop syllable formation after the third consonant and start
a new syllable. The figure below illustrates the implementation of the
state machine. It should be remembered that the actual code written for
the state machine may differ somewhat.
In the above
diagram, each keystroke will result in some action specified by the smaller
circles. When data entry starts, the system will be in a state to
form a new syllable. once a consonant is entered, it will move to the partially
formed syllable state and remain there till the syllable is completed.
Please note that the state machine can be language dependent to permit
only those vowels, consonants and conjuncts to be entered which are defined
for the language.
Enhancing
the state machine to handle more syllables.
It is possible to
retain the basic logic of the state machine module to accommodate more
syllables, specifically those which may have four or more consonants. The
Open Source effort has actually done this by increasing the number of bits
for the conjunct part from 5 to 6 thus allowing each base consonant to
have upto 63 Samyuktakshars.