User:Nalin.x.Linux/Six key approach of braille to produce text with XKB and contraction plugins for Gtk and Qt
Personal Information
Name : Nalin.x.Linux Address : Kasaragod/Kerala/India Email Address: Nalin.x.Linux@gmail.com Telephone: +91-8281029215 Freenode IRC Nick: Nalin-x-Linux University and current education: BSc Computer Science, Kannur University. at Sa-A-Diya Arts & Science College, Koliyadukkam, P.O. Kalanad, Kasargod.
Why i want to work with the Swathanthra Malayalam Computing
To make a good contribution to open source which would make typing in indian languages as well as English and other European languages in fast and efficient using reduced number of keys(6)
Do you have any past involvement with the Swathanthra Malayalam Computing or another open source project as a contributor ?
with swathanthra malayalam computing i used to share ideas and attended meetings, i have produced opensource software for visually impaired on opensource platform(it is mentioned at the end of this proposal).
Did you participate with the past GSoC programs, if so which years, which organizations?
Yes in 2013 with Tux4kids, This is my second time.
Do you have other obligations between these months ? Please note that we expect the Summer of Code to be a full time, 40 hour a week commitment ?
No , I don't have any other commitment. I am willing to put the required hours during GSoC period.
Will you continue contributing/ supporting the Swathanthra Malayalam Computing after the GSoC 2013 program, if yes, which area(s), you are interested in?
Yes i will continue maintain this gsoc project along with my all other open-source applications.
Why should we choose you over other applicants ?
I've been working for open source for more than three years. and i want to remain all of my applications as open source. from the below mentioned facts I prove myself to be the apt candidate to take up the proposed project.
Proposal Description
I express my gratitude to swathanthra malayalam computing for accepting my idea of six key approch for producing text. I here by express a brief overview of my project.
Braille is a writing and reading system using six raised dots. As a night writing method of writing developed by Charles barbier, it has been perfected by louis braille. The most relevant feature of braille system is that the world community became successful in creating a unified code for all the languages based on its phonetics.
Bharati braille is a largely unified braille script for writing the languages of India. which use a 6-dot cell with values based largely on English Braille. It consists of 11 scripts including malayalam. Letters are assigned as consistently as possible across the various regional scripts of India as they are transliterated in the Latin script, so that Hindi, Urdu, Bengali, and English are rendered largely the same in braille. also bharati braille retains all the basic conventions relating to the representation of numerals, punctuation and special symbols just as in standard English Braille. Like english indian languages also have contractions and special abbreviations which make text writing faster than normal, for example hear is the Grade-3 contraction list for English.
It is in consideration of this fact, lot of apps has braille output along with the screen readers(BRLTTY with orca)and braille translators (Dots,Liblouis). At the same time there is no input method using the six key approach of the braille to produce text.
Application's which are currently available in Linux Repositories. BRLTTY : is a background daemon which provides access to the linux console for a blind person using a refreshable braille display -
Dots : - Dots is braille typesetting program for Linux, it can translate XML and MS DOC files and displays it both ASCII and braille dot notation.
liblouis : - provides Braille translation and formatting for a large number of languages and Braille codes.
Orca : a screen reader which support Braille refreshable display's
Sharada-Braille-Writer : one of my projects, it is a simple text editor which use six key approach of brailler to input text. But it has a big limitation that is it cannot be used for other application as a layout works.
Tuxtype : A interactive game which help to learn Braille with six key layout.
Since there is no existing braille input mechanisam, My plan is to make a common library which can be used with X11,Wayland,Gtk and QT by creating adapters.
Relevance of six_key_layout as an input.
1. it is very simple, uses only six keys of the keyboard.
2. It is specially important for indic languages which use more than fifty alphabets.
3. Having the same code for all the languages of india unified, known as bharathi braille there is no need for learning different layouts.
4. braille is a highly efficient system for it can use contractions and abbreviations and it can enhance the text production speed to a great extend.
5. braille is a world standard and a braille input method will make it accessible and user friendly for persons with limited hand movements and visually impaired
6. It can lead to designing small keybords that can be used with tablets.
Any relevant experience you have
I have already developed the applications in this direction named Sharada-Braille-Writer. It is a text editor using six key approach to produce print in different Indian languages along with english. And also i have developed braille extension for Tuxtype.
How i intend to implement my proposal
Brailler is an equipment for producing braille(6 dots) materials in a fast and efficient manner, so i selected f, d, s, j, k and l representing 1, 2, 3, 4, 5, and 6 dots of the braille system.
f j 1 4 d k 2 5 s l 3 6
Develop braille module for XKB witch would not include contraction and abbreviations It is nice to see that Wayland and Mir also using XKB like X Window System. see hear for wayland , see hear for MIR
This will use the mapping files of key(to be pressed simultaneously) -> letter. Eg:
f a fd b fj c fsjl x fdsjk q ....
In order to produce 'a' one has to press 'f' and for 'b' 'f' and 'd' together to be press, and for 'c' f and j like, 'h' will be used for letter deletion and 'g' and 'h' together for word deletion.
There will be two main lists for each languages. They are beginning list and middle list. The beginning list will be loaded, When user type something the middle list will be loaded and when use press a space or enter beginning list will be loaded again. Also there will be a special key to switch between the beginning and middle list manually.
The beginning list will be as follows
f അ sjk ആ dj ഇ sk ഈ fsl ഉ fdkl ഊ dl എ fk ഏ sj ഐ fsjl ഒ fsk ഓ djl ഔ
see hear for complete Malayalam Beginning list
And middle list will be as follows
sjk ാ dj ി sk ീ fsl ു fdkl ൂ dl െ fk േ sj ൈ fsjl ൊ fsk ോ djl ൗ
see hear for complete Malayalam Middle list
Add map file for Indian languages.
Add punctuation and numerals as separate map.
Develop plugins for Qt and Gtk which can be used with Qt and Gtk apps. These are only for supporting braille layout to enable contractions and abbreviations. these plugin will check current layout and if it is braille it will enable contractions and abbreviations with respect to current braille language.
abbreviation key will be 'a'. Pressing 'a' after typing a abbreviation will replace current word(abbreviation) with it's full word. abbreviation list will be as follows
ab about abv above ac according acc account ack acknowledge ackment acknowledgement acr across af after ag again agr agree
add contraction and abbreviation maps for English,Malayalam and Hindi.
Create Gui(Gtk) for managing language,adding,editing, removing map files, and editing abbreviation list.
Integrate [ https://live.gnome.org/Orca Orca screen reader ](via making orca script) along with this so that there exists no accessibility issue.
A rough timeline for your progress with phases
April 22 - May 22 : Create main library. May 23 - 31 : Create Gui for adding,editing and removing map using C with Gtk. June 1 - 10 : Create adapter for X11 and Wayland. June 10 - 11 : Add english map June 12 - 20 : Create adapter for QT and Gtk June 21 - 22 : Add english contractions and abbreviations. June 23 - 30 : Make a primary test with the support of mentor. July 1 - 5 : Fix all existing bugs. July 6 - 10 : Add Hindi and malayalam maps,abbreviations and contractions. July 11 - 16 : Add punctuation and numerals as separate map. July 16 - 20 : Secondary test in malayalam,hindi and english with native people who know's braille. July 21 - 25 : Add other maps for tamil,kannada and all other languages excluding Urdu and Sinhala. July 25 - 31 : Fix accessibility related problems. Sept 1 - 5 : Try to include contractions and abbreviations for all other languages. Sept 5 - 18 : Review code and database. also fix bugs and get ready for final evaluation.
Tell us about something you have created.
Lios - Gui for scanning and ocr using opensource ocr engines tesseract and cuneiform.Source
Sharada-Braille-Writer - Six key approach to producing print materials for languages Malayalam,Hindi,Tamil,English, and Spanish. Source
TuxType/Tuxmath accessibility and Tuxtype Braille extension - one of my idea and project which i done as a part of GSOC 2013. Source
Angela-open-talking-typer - it is a simple eye's free key-board practicing application.Source
Have you communicated with a potential mentor? If so, who?
Yes, I've communicated with Anilkumar K V (anilkumar on irc.freenode.net)