Introduction
While exchanging instant-messages, it is frequent to have to look up for a word definition or translation. However, this research is done routinely via a web page or another separated application.
For this reason, we propose to create a dictionary plugin for Jitsi. The solution is to create contacts able to give the definition or the translation of a given word.
Protocol’s presentation
General behavior
We retain the DICT protocol, which use a TCP transaction based query/response protocol that allows a client to access dictionary definitions from a set of natural language dictionary databases.
Sample queries :
- DEFINE : find the definition of a word
- MATCH : find the similar words through a strategy
- SHOW DB : dictionaries list
- SHOW STRAT : list of the available strategies
What is a strategy
Strategie is use to search similar words,if a translation was not found, thanks to different approaches. For example the Prefix strategies will search words which begin like the word you would translate.
The system use a three digits return code. The first one is for the success (from 1 to 3) or the failure (4 or 5), the second is for the response category, for example : 0 for the syntax, 1 for informations, 2 for connexion, 5 for the dictionaries, …
We have developed an exception class to handle errors messages and we added new codes to handle the java exception with the same class.
Implementation in Jitsi
We have created a new chat protocol in which a account is the DICT server and a contact check with a dictionary.
Contact wizard plugin
We have created two differents interfaces.
The first one is for novice user. We automatically create an account on dict.org and explain to user how to create more account.
The second one is if you want to create another account. In this one we suppose that the user is no more novice, so we ask him to give us a host. Afterthat, he was given to choice : choose a strategy if he wishes to or continue (in this case, we choose a strategy for him).
OperationSetDirectory
As we can see in the screenshot, adding a new dictionary isn’t user friendly. First we don’t know the dictionaries available on the server and the dictionay code isn’t very explicit.
Our idea was to use a list box in the add contact wizard filled with dictionaries names. This system may be used by other protocols like SIP (for example : search phone numbers through a LDAP database)
Diagram explaining how the new OperationSetDirectory is working
Conclusion and Evolution
Working on an open source project was a good experience for us. We manage to understand existing protocol and how to integrate wen protocol on a software.
We would like to thank all people who help us during this project.
Evolution:
- Finish implementation of OperationSetDirectory
- Handle Status of dictionnary (online,offline )
- Formatting the server response with html code
- Rename contact (ex : Collaborative Dictionnary of English for gcide)
List of all the dictionaries available on dict.org
- * “Search in all the dictionnaries”
- ! “Returns the first result of the search”
- gcide “The Collaborative International Dictionary of English v.0.48″
- wn “WordNet ® 2.0″
- moby-thes “Moby Thesaurus II by Grady Ward, 1.0″
- elements “Elements database 20001107″
- vera “Virtual Entity of Relevant Acronyms (Version 1.9, June 2002)”
- jargon “Jargon File (4.3.1, 29 Jun 2001)”
- foldoc “The Free On-line Dictionary of Computing (27 SEP 03)”
- easton “Easton’s 1897 Bible Dictionary”
- hitchcock “Hitchcock’s Bible Names Dictionary (late 1800′s)”
- bouvier “Bouvier’s Law Dictionary, Revised 6th Ed (1856)”
- devils “THE DEVIL’S DICTIONARY (©1911 Released April 15 1993)”
- world02 “CIA World Factbook 2002″
- gazetteer “U.S. Gazetteer (1990)”
- gaz-county “U.S. Gazetteer Counties (2000)”
- gaz-place “U.S. Gazetteer Places (2000)”
- gaz-zip “U.S. Gazetteer Zip Code Tabulation Areas (2000)”
- afr-deu “Africaan-German Freedict dictionary”
- afr-eng “Africaan-English Freedict Dictionary”
- ara-eng “English-Arabic Freedict Dictionary”
- cro-eng “Croatian-English Freedict Dictionary”
- cze-eng “Czech-English Freedict dictionary”
- dan-eng “Danish-English Freedict dictionary”
- deu-eng “German-English Freedict dictionary”
- deu-fra “German-French Freedict dictionary”
- deu-ita “German-Italian Freedict dictionary”
- deu-nld “German-Nederland Freedict dictionary”
- deu-por “German-Portugese Freedict dictionary”
- eng-afr “English-Africaan Freedict Dictionary”
- eng-ara “English-Arabic FreeDict Dictionary”
- eng-cro “English-Croatian Freedict Dictionary”
- eng-cze “English-Czech fdicts/FreeDict Dictionary”
- eng-deu “English-German Freedict dictionary”
- eng-fra “English-French Freedict Dictionary”
- eng-hin “English-Hindi Freedict Dictionary”
- eng-hun “English-Hungarian Freedict Dictionary”
- eng-iri “English-Irish Freedict dictionary”
- eng-ita “English-Italian Freedict dictionary”
- eng-lat “English-Latin Freedict dictionary”
- eng-nld “English-Netherlands Freedict dictionary”
- eng-por “English-Portugese Freedict dictionary”
- eng-rom “English-Romanian FreeDict dictionary”
- eng-rus “English-Russian Freedict dictionary”
- eng-spa “English-Spanish Freedict dictionary”
- eng-swa “English-Swahili xFried/FreeDict Dictionary”
- eng-swe “English-Swedish Freedict dictionary”
- eng-tur “English-Turkish FreeDict Dictionary”
- eng-wel “English-Welsh Freedict dictionary”
- fra-deu “French-German Freedict dictionary”
- fra-eng “French-English Freedict dictionary”
- fra-nld “French-Nederlands Freedict dictionary”
- hin-eng “English-Hindi Freedict Dictionary [reverse index]”
- hun-eng “Hungarian-English FreeDict Dictionary”
- iri-eng “Irish-English Freedict dictionary”
- ita-deu “Italian-German Freedict dictionary”
- jpn-deu “Japanese-German Freedict dictionary”
- kha-deu “Khasi-German FreeDict Dictionary”
- lat-deu “Latin-German Freedict dictionary”
- lat-eng “Latin-English Freedict dictionary”
- nld-deu “Nederlands-German Freedict dictionary”
- nld-eng “Nederlands-English Freedict dictionary”
- nld-fra “Nederlands-French Freedict dictionary”
- por-deu “Portugese-German Freedict dictionary”
- por-eng “Portugese-English Freedict dictionary”
- sco-deu “Scottish-German Freedict dictionary”
- scr-eng “Serbo-Croat-English Freedict dictionary”
- slo-eng “Slovenian-English Freedict dictionary”
- spa-eng “Spanish-English Freedict dictionary”
- swa-eng “Swahili-English xFried/FreeDict Dictionary”
- swe-eng “Swedish-English Freedict dictionary”
- tur-deu “Turkish-German Freedict dictionary”
- tur-eng “Turkish-English Freedict dictionary”
- english “English Monolingual Dictionaries”
- trans “Translating Dictionaries”
- all “All Dictionaries (English-Only and Translating)”
- web1913 “Webster’s Revised Unabridged Dictionary (1913)”
- world95 “The CIA World Factbook (1995)”
LITZELMANN C�dric & ROTH Damien