PROBLEM STATEMENT
Description:
This will be a webpage for English to Hindi Transliteration along with Predictive typing. Prediction will be based upon the frequency of words, that is - more the number of times a word is used more will be its frequency. Frequencies will be stored in database.
Input:
User will type in english. For searching in database, program will wait till atleast 3 letters have been typed so that too many words in database do not satisfy search criteria. Then it will send the query to database.
Sample Input: Computer Science and Engineering
Output:
As the user starts typing letters, transliterated letters (in Hindi) will appear and also a list will appear with possible completions of word. User can select desired word from list.
Sample Output: कंप्यूटर साइंस एंड इंजीनियरिंग
Goals (Guaranteed):
It will atleast do english to hindi transliteration and also show the list of possible auto-completion words as user types.
Goals (Not Guaranteed):
- I Will try to provide a login, so that user can personalize the dictionary by adding his own words to it. This will require MySQL to store the words and AJAX to asynchronously fetch data from database.
- Mouse based input, i.e. on screen keyboard for Hindi Language
SOLUTION DESIGN
Files:
First page to open will be home. It will show the interface for user. It will depend on a css file for formatting and a javascript file for its operation.
Modules (for client side only implementation):
As user will type the letters, a javascript function will be called whenever a key is released. Here a CONVERT MODULE will be used to convert english letter to hindi using unicode. Then a PREDICT MODULE will be responsible for searching the database for words starting with the letter which user has typed. From hereon AUTO-COMPLETE MODULE will be used to auto-complete i.e. when user selects a particular word from prediction list, it will display the completed word.
Modules (for client-server implementation):
The only difference between former and this one would be the use of one extra FETCH MODULE which will use AJAX to fetch the possible words, asynchronously, from MySQL.
Coding:
In already available codes: jquery is a javascript library for showing effects like slideUp, slideDown (as used in this page). Rest of the coding will be mine.
IMPLEMENTATION PLAN
Technology:
HTML, CSS, JavaScript, MySQL&dagger, AJAX&Dagger, PHP.
Tools:
- HTML: GEdit.
- CSS: CSSed
- PHP: Eclipse PDT
- Server: Apache(for local testing)
- Database: MySQL&dagger
Estimated Lines of code:
1kloc
Estimated amount of time:
10 days (3-5 hours a day)
Estimated Time Needed:
Actual dates cannot be written (or followed) because of unpredictability of other assignments.
- Designing initial Interface: 1 day
- English to Hindi Transliteraion: 3 days
- Implementing Prediction/Auto Completion: 3 days
- Testing and Debugging: 2 days
- Final Touching of Interface Design: 1 day
After this, if time permits, around 2-3 days for wish list.
&dagger I will try to use javascript only. If I am unable to do that, I will use Database. Prof. Siva suggested this.
&Dagger Only if MySQL is used
TESTING/EVALUATION PLAN
This is an abstract view of how correctness and performance will be measured.
Test for Correctness:
Transliteration and Prediction will be compared manually with already existing systems like Google Transliterate.
Test for Performance:
MiniProject (or for that matter, any web based project we do!) is most likely to be tested only in Local Network. Thus performance will be usually good. To check actual performance in Internet, the webpage will be deployed on free servers like x10hosting, izfree etc... and run from there.
CONTEXT
Justification:
One of the factors for choosing this was that I was inspired by CFILT and this seemed to be a fine choice for getting acquainted (although very superficially) with representation of Hindi Language.
Extensions:
It can be connected with "Wordnet for Hindi" (developed by CFILT) to enhance its database.