GSoC 2014 : Final Report

SILPA Android SDK :

The project aims at the development of Android SDK for Silpa modules which can aid developers in developing their Indic applications.
The main tasks involved porting all existing modules (approx 18) from Python to Java for native usage of modules, building android specific custom views for each module, using harfbuzz to render Indic script for consistency in rendering across all phones.

All the modules are now pushed as AAR (Android Archive) to Maven central to facilitate easy usage of modules especially while building applications using Gradle or Maven. Only the required modules need to be added. Applying modules to project using Gradle can be achieved by adding the module to dependencies section, for example, Version 1.0.0 release.

dependencies {
compile 'org.silpa:sdk-common:1.0.0@aar'
compile 'org.silpa:sdk-render:1.0.0@aar'
compile 'org.silpa:sdk-characterdetails:1.0.0@aar'
compile 'org.silpa:sdk-fortune:1.0.0@aar'
compile 'org.silpa:sdk-guesslanguage:1.0.0@aar'
compile 'org.silpa:sdk-hyphenation:1.0.0@aar'
compile 'org.silpa:sdk-inexact-search:1.0.0@aar'
compile 'org.silpa:sdk-katapayadi:1.0.0@aar'
compile 'org.silpa:sdk-ngram:1.0.0@aar'
compile 'org.silpa:sdk-payyans:1.0.0@aar'
compile 'org.silpa:sdk-render:1.0.0@aar'
compile 'org.silpa:sdk-shingling:1.0.0@aar'
compile 'org.silpa:sdk-soundex:1.0.0@aar'
compile 'org.silpa:sdk-spellchecker:1.0.0@aar'
compile 'org.silpa:sdk-stemmer:1.0.0@aar'
compile 'org.silpa:sdk-syllabifier:1.0.0@aar'
compile 'org.silpa:sdk-text-similarity:1.0.0@aar'
compile 'org.silpa:sdk-transliteration:1.0.0@aar'
compile 'org.silpa:sdk-ucasort:1.0.0@aar'

Instruction for referencing these modules in Maven, as project in Android Studio or Eclipse is available in the build docs for each module.

Sample usages for each module is also available in the docs. For example, please check this.

Tests for each module are available in src/test or src/androidTest folder of each module. For example, please check this.

Demo app for the project is available here.


GSoC week update #9, #10

All the modules have now been ported and integrated into the SILPA SDK. The remaining tasks are :

i) Update demo app with all recently added modules (almost done)

ii) Improve documentation.

iii) Reviewing and fine tuning all modules.

iv) Push all modules to Maven Central and also export them as JAR file for release.


GSoC week update #8

Over the last week I have been working on porting and developing android views for modules Ngram, Shingling, UCA sort, Text Similarity,  and Inexactsearch. Pull requests have been sent for all and are yet to be reviewed by mentors. Also finished porting Guess-language module and the remaining modules Hyphenation and Spell Checker are yet to be ported. I have also been working on few performance improvements to the other modules by moving rules and other reference data to sqlite databases and preparing scripts for building and pushing new modules to maven central repository. Looking forward to complete porting remaining modules by this weekend before college reopens after summer holidays. Planning to start fine tuning, documentation and preparing demo application by next week.


#NAMA: The Digital Future of Indic Languages, July 24th, Bangalore

Conference on ‘The Digital Future of Indic Languages’ was held on July 24th, 2014 at The Oberoi Hotel, Bangalore. The conference was hosted by
MediaNama and was sponsored by Google. Nikhil Pahwa, the founder of MediaNama presided over the meeting.

The information regarding the conference was passed to me by my mentor Jishnu Mohan. I had registered for the event, representing Swathanthra Malayalam Computing. However registration was done quite late and was not sure if I would get the invite. Fortunately I received the invite just the night before and was super excited about the conference.

I arrived at the venue at about 4 : 15 pm with the event scheduled to start at 4 : 30 pm. The conference hall was very well setup up. Nikhil Pahwa broke the ice by giving a quick introduction about the aim and purpose of the conference after which discussion began. A lot of issues were addressed and discussed regarding Business models, ROI in Indic languages, tools for Indic language generation (OCR, transliteration, translation tools etc), need for more developers to work on Indic languages, diversity in languages, steps to be taken by government for promoting Indic languages and verified statistics in growth of Indic languages. Discussions continued till we ran out of time after which executive mentioned their wishlists and what they love to see from government. The conference concluded at about 7 pm. It was followed by an informal session where we talk and mingle with people there. Employees working at Google, Facebook, Malayalam Manorama, Robosoft, Reverie Technologies etc were present. I had a great time talking to googlers, facebookers, and other delegates. A sumptuous dinner was served later after which I left home.

At the end of the day, attending the conference was a great experience as it was very informative and got an opportunity to meet awesome people. It was great honour to represent SMC and work on an Indic Language project SILPA. Really looking forward to participate in events like this.


IMAG0625 IMAG0626


GSoC week update #6, #7

Over the last two weeks I have been porting remaining modules to Java. I have finished porting of Transliteration, UCA sort, Text Similarity, Ngram, Shingling and Inexactsearch modules. Android specific views for Transliteration module is also done that would transliterate text automatically as text is entered. Developing android views for other modules and pushing them to repos are yet to be done. I have also been working on few performance enhancements for character details and fortune modules. Looking forward to complete developing views for the remaining modules and also port hyphenator and spell checker modules by the end of next week and also updating them in the demo application.


GSoC week update #5

Last week I have been working on pushing current modules to maven central repository and implementing render module. All the current modules are now updated in maven central repository using Sonatype Nexus. The advantage of doing so is that developers who wants to use the modules and builds using maven or gradle can now easily add dependency on the project without having to import project or add jar or other binaries. For eg. to add dependency in gradle following code would do: compile ‘org.silpa:sdk-characterdetails:0.1.4@aar’ . I have also started working on render module which renders constantly on all devices but still there are few bugs which are to rectified and will fix them soon. For eg. sample rendering on 2.3 emulator can be seen here and here. Demo app as of now is available here. Planning to fix issues and start working on other modules this week.


GSoC week update #4

Last week I have been working on custom Android views for each of the modules. I have been able to develop custom Android edittext and textviews which can be used from XML or Java and specifications for each can also be set from them.  Docs for the same have also been updated. All the changes have been made in a separate branch by name ‘android_develop’. I have also sent new pull requests which is yet to be reviewed by mentors.

Main objective for this coming week is to fine tune all views and consider changes suggested by mentors and also try to push the project to maven central repository marking its first release.