Difference between revisions of "User:Nalin.x.Linux/Six key approach of braille to produce text with XKB and contraction plugins for Gtk and Qt"

From SMC Wiki
(Reverting to last revision not containing links to *.net)
Line 1: Line 1:
 
Personal Information
 
Personal Information
  Name :            Nalin.x.Linux
+
  Name :            Nalin Sathyan (Nalin.x.Linux)
 
  Address :          Kasaragod/Kerala/India
 
  Address :          Kasaragod/Kerala/India
 
  Email Address:    Nalin.x.Linux@gmail.com
 
  Email Address:    Nalin.x.Linux@gmail.com
Line 6: Line 6:
 
  Freenode IRC Nick: Nalin-x-Linux
 
  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.
 
  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 ==
 
== 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)
+
To make a good contribution to open source which would typing in indian languages fast and efficient using reduced number of keys and for helping native malayali and other indian visually impaired persons.
  
  
Line 32: Line 33:
 
== Why should we choose you over other applicants ? ==
 
== 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.
 
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 ==
 
== 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.
+
I express my gratitude to swathanthra malayalam computing for accepting my idea of six approch of br for XKB,Gtk and QT. 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.'''
+
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.
  
[http://en.wikipedia.org/wiki/Bharati_Braille 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 [http://www.dotlessbraille.org/braillecontractions.htm contractions] and special abbreviations which make text writing faster than normal, for example hear is the [http://www.fridaynightlinguistics.org/brl/grade3only.pdf Grade-3] contraction list for English.
+
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.'''
+
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.
+
Application's which are currently available in Linux Repositories.[edit]
[http://mielke.cc/brltty/ BRLTTY] : is a background daemon which provides access to the linux console for a blind person using a refreshable braille display -
+
BRLTTY  : is a background daemon which provides access to the linux console for a blind person using a refreshable braille display -
  
[http://playingwithsid.blogspot.in/2010/03/dots-braille-editor-for-linux.html 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.
+
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.
  
[https://code.google.com/p/liblouis/ liblouis] : - provides Braille translation and formatting for a large number of languages and Braille codes.
+
liblouis : - provides Braille translation and formatting for a large number of languages and Braille codes.
  
[https://live.gnome.org/Orca/Braille Orca] : a screen reader which support Braille refreshable display's
+
Orca : a screen reader which support Braille refreshable display's
  
[http://sourceforge.net/projects/sbrw/ 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.
+
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.
  
[https://github.com/Nalin-x-Linux/tuxtype Tuxtype] : A interactive game which help to learn Braille with six key layout.
+
Since there is no existing braille layout, My plan is to make a Braille Keyboard layouts extension for XKB.  
  
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.==
+
== Relevance of braille as an input.==
 
 
 
1. it is very simple, uses only six keys of the keyboard.
 
1. it is very simple, uses only six keys of the keyboard.
  
Line 70: Line 70:
 
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.
 
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
+
5. braille is a world standard and a braille input method will make it accessible and user friendly for visually impaired, persons with limited hand movement, dysluxic
  
 
6. It can lead to designing small keybords that can be used with tablets.
 
6. It can lead to designing small keybords that can be used with tablets.
 +
 +
  
  
 
== Any relevant experience you have ==
 
== 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.
+
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.
 
  
  
Line 85: Line 86:
 
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.
 
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
+
f j    1 4
d k    2 5
+
d k    2 5
s l    3 6
+
s l    3 6
  
This will use the mapping files of key(to be pressed '''simultaneously''') -> letter.
+
Create a Braille module and framework for XKB. for  which use the mapping files of key(to be pressed simultaneously) -> letter. Eg:
Eg:
 
  
 
  f      a
 
  f      a
Line 99: Line 99:
 
  ....
 
  ....
  
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.
+
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.
 
+
create braille -> letter map files for this XKB module.
There will be two main lists for each languages. They are beginning list and middle list.
 
The beginning list will contain consonants and vowels middle list will contain vowel signs.
 
The beginning list will be as follows
 
f    അ
 
sjk  ആ
 
dj  ഇ
 
sk  ഈ
 
fsl  ഉ
 
fdkl ഊ
 
dl  എ
 
fk  ഏ
 
sj  ഐ
 
fsjl ഒ
 
fsk  ഓ
 
djl  ഔ
 
[https://github.com/Nalin-x-Linux/sbw-3/blob/master/share/pyshared/sbw2/data/malayalam/beginning.txt >> View complete Malayalam Beginning list ]
 
 
 
And middle list will be as follows
 
sjk  ാ
 
dj  ി
 
sk  ീ
 
fsl  ു
 
fdkl ൂ
 
dl  െ
 
fk  േ
 
sj  ൈ
 
fsjl ൊ
 
fsk  ോ
 
djl  ൗ
 
[https://github.com/Nalin-x-Linux/sbw-3/blob/master/share/pyshared/sbw2/data/malayalam/middle.txt >> View complete Malayalam Middle list ]
 
 
 
abbreviation key will be 'a'. Pressing 'a' after typing a abbreviation will replace current word(abbreviation) with it's expanded form.
 
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
 
[https://github.com/Nalin-x-Linux/sbw-3/blob/master/share/pyshared/sbw2/data/english/abbreviations.txt >> View complete english abbreviation list ]
 
 
 
Contractions list will be saved in different maps named with respect to there dots used. Unlike Braille we have to press contraction key before typing the letter to get the word.
 
 
 
[https://github.com/Nalin-x-Linux/sbw-3/blob/master/share/pyshared/sbw2/data/english/jkl.txt >> View English Dot 4-5-6 contraction list]
 
 
 
'''It is nice to see that [http://wayland.freedesktop.org/ Wayland] and [http://en.wikipedia.org/wiki/Mir_(software) Mir] also using [http://en.wikipedia.org/wiki/X_keyboard_extension XKB] like X Window System.
 
[http://wayland.freedesktop.org/building.html see hear ] for wayland, [http://www.phoronix.com/scan.php?page=news_item&px=MTM1Mzc see hear] for MIR'''
 
 
 
=== Approach - 1 ===
 
1 - Develop Gtk/Qt modules that will automatically and change the editable to braille mode. Hear we use key-release event from editable to implement this. The beginning list will be loaded at first. When user type something the middle list will be loaded and will continue in middle list till user press a space or enter. In this way the users don't have to switch manually from vowel to vowel sign and vice versa. Also there will be a special key to manually switch between the beginning and middle list. This is really what i have implemented on Sharada-braille-writer.
 
 
 
2 - Develop braille module for XKB witch would not include contraction and abbreviations
 
this will be active automatically when we are in none QT/Gtk application. Hear we can't implement a list jumping mechanism which is against the concept of modular approach. So we use an extra key(may be semicolon) to simultaneously pressed with vowels sign to get vowels.
 
 
 
Pros :
 
Easy to implement
 
User not to be concern about vowels and vowel signs during typing which make typing simple and fast.
 
Follows Perkins brailler approach in Gtk/Qt apps.
 
Each layers are independent.
 
Cons :
 
User has to switch between layouts while using Gtk/Qt app or others.
 
Duplication exist.
 
 
 
=== Approach - 2 ===
 
  
1 - Develop braille module for XKB as mentioned above.
 
  
2 - Develop plugins for Qt and Gtk which can be used with Qt and Gtk apps.
+
Create plugable braille extention for GTK and QT. This will be
These are only for supporting braille layout(from XKB) 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.
+
 
 +
Integrate third grade contractions for english and malayalam.
  
Contractions list will be in the same layer. It will override XKB layer. Unlike Braille we have to press contraction key before typing the letter.
+
Add punctuation and numerals as separate map for these two extentions.
if any contraction map with that combination is available the Gtk/Qt plugin will load corresponding word for next user typed letter.  if not it will simply give letter for that combination.
 
  
Pros :
+
Integrate Orca screen reader(via making orca script) along with this XKB layout so that there exists no accessibility issue.
Same layout in everywhere.
 
There  exist no duplication in any of layers.
 
 
Cons :
 
Implementation is not easy
 
User have to use extra key to get vowels.
 
Not following Perkins brailler
 
  
''' The gtk and qt part will be done by creating respective im modules. in this way user can switch to braille mode by setting environmental variable (export QT_IM_MODULE=braille). for more details [http://radekp.github.io/qtmoko/api/tut-createim-compose.html see hear for QT] and [http://www.murrayc.com/permalink/2006/12/22/creating-gtk-input-methods/ see hear for Gtk ]. '''
 
  
=== Additional ===
 
  
'''Add map file for other indian languages.'''
+
A rough timeline for your progress with phases[edit]
 +
Jun 10 - 15 : collect more data of standard contractions and abbreviations of indian languages which is currently not available in internet.
 +
Jun 16 - 27 : create the main framework with options to add,edit,remove map.
 +
Jun 28 - 30 : add english map for primary test.
 +
July 1 - 5  : add english contractions and abbreviations.
 +
July 6 - 16 : Create sample extension for m17n.
 +
July 17 - 20: make a primary test with the support of mentor.
 +
July 21 - 31: add Hindi and malayalam maps,abbreviations and contractions.
 +
Aug 1 - 2  : Add punctuation and numerals as separate map.
 +
Aug 3 - 10  : add other maps for tamil,kannada and all other languages excluding Urdu and Sinhala.
 +
Aug 11 - 18 : fix accessibility problems
 +
Aug 19 - 23 : secondary test in malayalam,hindi and english with native people who know's braille.
 +
Aug 24 - 30 : Try to include contractions and abbreviations for all other languages.
 +
Sept 1 - 5  : Review code and database. also fix bugs and get ready for final evaluation.
  
'''Add punctuation and numerals as separate map.'''
 
  
'''Add contraction and abbreviation maps for English,Malayalam and Hindi.'''
 
  
'''Create Gui(Gtk) for managing languages,adding,editing, removing map files, and editing abbreviation/contraction 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 ==
 
 
''' This will change with respect to selected approach'''
 
 
April 22 - May 12  : Develop braille module for XKB
 
May  13 - 18      : Add map file for Indian languages.
 
May  19 - 21      : Add punctuation and numerals as separate map.
 
May  21 - June 10 : Develop plugins for Qt and Gtk
 
June  11 - 13      : Add english contractions and abbreviations.
 
June  14 - 20      : Make a primary test with the support of mentor.
 
June  20 - 25      : Fix all existing bugs.
 
June  26 - July 10 : Create Gui(Gtk) for adding,editing and removing maps.
 
July  11 -  16    : Add Hindi and malayalam maps,abbreviations and contractions.
 
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.==
 
== Tell us about something you have created.==
  
[http://sourceforge.net/projects/lios/ Lios] - Gui for scanning and ocr using opensource ocr engines tesseract and cuneiform.[https://github.com/Nalin-x-Linux/lios-3 Source]
+
Lios - Gui for scanning and ocr using opensource ocr engines tesseract and cuneiform.
 
 
[http://sourceforge.net/projects/sbrw Sharada-Braille-Writer ] - Six key approach to producing print materials for languages Malayalam,Hindi,Tamil,English, and Spanish. [https://github.com/Nalin-x-Linux/sbw-3 Source]
 
  
[http://www.google-melange.com/gsoc/project/google/gsoc2013/nalin_x_linux/6604491470143488 TuxType/Tuxmath accessibility and Tuxtype Braille extension] - one of my idea and project which i done as a part of GSOC 2013. [https://github.com/Nalin-x-Linux/ Source]
+
Sharada-Braille-Writer - Six key approach to producing print materials for languages Malayalam,Hindi,Tamil,English, and Spanish.
  
Angela-open-talking-typer - it is a simple eye's free key-board practicing application.[https://github.com/Nalin-x-Linux/aott Source]
+
TuxType/Tuxmath accessibility,Tuxtype braille extension - one of my idea and project which i done as a part of GSOC 2013.  
  
== Have you communicated with a potential mentor? If so, who? ==
+
Angela-open-talking-typer - it is a simple eye's free key-board practicing application.
Yes, I've communicated with Anilkumar K V (anilkumar on irc.freenode.net)
 
== SMC Wiki link of your proposal ==
 
http://wiki.smc.org.in/User:Nalin.x.Linux/Six_key_approach_of_braille_to_produce_text_with_XKB_and_contraction_plugins_for_Gtk_and_Qt
 

Revision as of 05:25, 26 January 2017

Personal Information

Name :             Nalin Sathyan (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 typing in indian languages fast and efficient using reduced number of keys and for helping native malayali and other indian visually impaired persons.


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 approch of br for XKB,Gtk and QT. 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.[edit] 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.

Since there is no existing braille layout, My plan is to make a Braille Keyboard layouts extension for XKB.


Relevance of braille 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 visually impaired, persons with limited hand movement, dysluxic

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.


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

Create a Braille module and framework for XKB. for which 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. create braille -> letter map files for this XKB module.


Create plugable braille extention for GTK and QT. This will be

Integrate third grade contractions for english and malayalam.

Add punctuation and numerals as separate map for these two extentions.

Integrate Orca screen reader(via making orca script) along with this XKB layout so that there exists no accessibility issue.


A rough timeline for your progress with phases[edit] Jun 10 - 15 : collect more data of standard contractions and abbreviations of indian languages which is currently not available in internet. Jun 16 - 27 : create the main framework with options to add,edit,remove map. Jun 28 - 30 : add english map for primary test. July 1 - 5 : add english contractions and abbreviations. July 6 - 16 : Create sample extension for m17n. July 17 - 20: make a primary test with the support of mentor. July 21 - 31: add Hindi and malayalam maps,abbreviations and contractions. Aug 1 - 2 : Add punctuation and numerals as separate map. Aug 3 - 10 : add other maps for tamil,kannada and all other languages excluding Urdu and Sinhala. Aug 11 - 18 : fix accessibility problems Aug 19 - 23 : secondary test in malayalam,hindi and english with native people who know's braille. Aug 24 - 30 : Try to include contractions and abbreviations for all other languages. Sept 1 - 5 : 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.

Sharada-Braille-Writer - Six key approach to producing print materials for languages Malayalam,Hindi,Tamil,English, and Spanish.

TuxType/Tuxmath accessibility,Tuxtype braille extension - one of my idea and project which i done as a part of GSOC 2013.

Angela-open-talking-typer - it is a simple eye's free key-board practicing application.