Difference between revisions of "Task ideas for Google Code-in"

From Apertium
Jump to navigation Jump to search
Line 385: Line 385:
 
| {{sc|documentation}} || Installing Apertium in lightweight GNU/Linux distributions || Give instructions on how to install Apertium in one of the small or lightweight GNU/Linux distributions such as [https://en.wikipedia.org/wiki/Damn_Small_Linux Damn Small Linux] in the style of the description for [[Apertium on SliTaz]], so that may be used in older machines. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Mlforcada]] [[User:Bech]] [[User:Youssefsan|Youssefsan]] (alternative mentors welcome)
 
| {{sc|documentation}} || Installing Apertium in lightweight GNU/Linux distributions || Give instructions on how to install Apertium in one of the small or lightweight GNU/Linux distributions such as [https://en.wikipedia.org/wiki/Damn_Small_Linux Damn Small Linux] in the style of the description for [[Apertium on SliTaz]], so that may be used in older machines. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Mlforcada]] [[User:Bech]] [[User:Youssefsan|Youssefsan]] (alternative mentors welcome)
 
|-
 
|-
| {{sc|documentation}} || Video guide to installation || Prepare a screencast or video about installing Apertium; make sure it uses a format that may be viewed with Free software. When approved by your mentor, upload it to Youtube, making sure that you use the HTML5 format which may be viewed by modern browsers without having to use proprietary plugins such as Adobe Flash. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Mlforcada]] [[User:Firespeaker]] (alternative mentors welcome)
+
| {{sc|documentation}} || Video guide to installation || Prepare a screencast or video about installing Apertium; make sure it uses a format that may be viewed with Free software. When approved by your mentor, upload it to Youtube, making sure that you use the HTML5 format which may be viewed by modern browsers without having to use proprietary plugins such as Adobe Flash. An example may be found [https://www.youtube.com/watch?v=h7SjWvPSvp4 here].<br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Mlforcada]] [[User:Firespeaker]] (alternative mentors welcome)
 
|-
 
|-
 
| {{sc|documentation}} || Apertium in 5 slides || Write a 5-slide HTML presentation (only needing a modern browser to be viewed and ready to be effectively "karaoked" by some else in 5 minutes or less: you can prove this with a screencast) in the language in which you write more fluently, which describes Apertium, how it works, and what makes it different from other machine translation systems. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Mlforcada]] [[User:Firespeaker]] (alternative mentors welcome)
 
| {{sc|documentation}} || Apertium in 5 slides || Write a 5-slide HTML presentation (only needing a modern browser to be viewed and ready to be effectively "karaoked" by some else in 5 minutes or less: you can prove this with a screencast) in the language in which you write more fluently, which describes Apertium, how it works, and what makes it different from other machine translation systems. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Mlforcada]] [[User:Firespeaker]] (alternative mentors welcome)

Revision as of 17:23, 6 November 2015

This is the task ideas page for Google Code-in, here you can find ideas on interesting tasks that will improve your knowledge of Apertium and help you get into the world of open-source development.

The people column lists people who you should get in contact with to request further information. All tasks are 2 hours maximum estimated amount of time that would be spent on the task by an experienced developer, however:

  1. this does not include time taken to install / set up apertium.
  2. this is the time expected to take by an experienced developer, you may find that you spend more time on the task because of the learning curve.

Categories:

  • code: Tasks related to writing or refactoring code
  • documentation: Tasks related to creating/editing documents and helping others learn more
  • research: Tasks related to community management, outreach/marketting, or studying problems and recommending solutions
  • quality: Tasks related to testing and ensuring code is of high quality.
  • interface: Tasks related to user experience research or user interface design and interaction

You can find descriptions of some of the mentors here: List_of_Apertium_mentors.

Task list

Misc tools

Category Title Description Mentors
code Unigram tagging mode for apertium-tagger Edit the apertium-tagger code to allow for lexicalised unigram tagging. This would basically choose the most frequent analysis for each surface form of a word.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
Francis Tyers
code Data format for the unigram tagger Come up with a binary storage format for the data used for the unigram tagger. It could be based on the existing .prob format.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
Francis Tyers
code Add tag combination back-off to unigram tagger. Modify the unigram tagger to allow for back-off to tag sequence in the case that a given form is not found.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
Francis Tyers
code Prototype unigram tagger. Write a simple unigram tagger in a language of your choice.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
Francis Tyers
code Training for unigram tagger Write a program that trains a model suitable for use with the unigram tagger.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
Francis Tyers
code make voikkospell understand apertium stream format input Make voikkospell understand apertium stream format input, e.g. ^word/analysis1/analysis2$, voikkospell should only interpret the 'word' part to be spellchecked.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Firespeaker
code make voikkospell return output in apertium stream format make voikkospell return output suggestions in apertium stream format, e.g. ^correctword$ or ^incorrectword/correct1/correct2$
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Firespeaker
code libvoikko support for OS X Make a spell server for OS X's system-wide spell checker to use arbitrary languages through libvoikko. See https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/SpellCheck/Tasks/CreatingSpellServer.html#//apple_ref/doc/uid/20000770-BAJFBAAH for more information
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Firespeaker
documentation document: setting up libreoffice voikko on Ubuntu/debian document how to set up libreoffice voikko working with a language on Ubuntu and debian
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Firespeaker
documentation document: setting up libreoffice voikko on Fedora document how to set up libreoffice voikko working with a language on Fedora
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Firespeaker
documentation document: setting up libreoffice voikko on Windows document how to set up libreoffice voikko working with a language on Windows
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Firespeaker
documentation document: setting up libreoffice voikko on OS X document how to set up libreoffice voikko working with a language on OS X
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Firespeaker
documentation document how to set up libenchant to work with libvoikko Libenchant is a spellchecking wrapper. Set it up to work with libvoikko, a spellchecking backend, and document how you did it. You may want to use a spellchecking module available in apertium for testing.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Firespeaker
code, interface geriaoueg hover functionality firefox/iceweasel plugin which, when enabled, allows one to hover over a word and get a pop-up; interface only. Should be something like [1] or [2].
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Firespeaker
code, interface geriaoueg hover functionality chrome/chromium plugin which, when enabled, allows one to hover over a word and get a pop-up; interface only. Should be something like [3] or [4] .
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Firespeaker
code geriaoueg language/pair selection firefox/iceweasel plugin which queries apertium API for available languages and allows the user to set the language pair in preferences
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Firespeaker
code geriaoueg language/pair selection chrome/chromium plugin which queries apertium API for available languages and allows the user to set the language pair in preferences
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Firespeaker
code geriaoueg lookup code firefox/iceweasel plugin which queries apertium API for a word by sending a context (±n words) and the position of the word in the context and gets translation for language pair xxx-yyy
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers user:Firespeaker
code geriaoueg lookup code chrome/chromium plugin which queries apertium API for a word by sending a context (±n words) and the position of the word in the context and gets translation for language pair xxx-yyy
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers user:Firespeaker
quality make apertium-quality work with python3.3 on all platforms migrate apertium-quality away from distribute to newer setup-tools so it installs correctly in more recent versions of python (known incompatible: python3.3 OS X, known compatible: MacPorts python3.2)
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
quality, code Get bible aligner working (or rewrite it) trunk/apertium-tools/bible_aligner.py - Should take two bible translations and output a tmx file with one verse per entry. There is a standard-ish plain-text bible translation format that we have bible translations in, and we have files that contain the names of verses of various languages mapped to English verse names
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Sereni
research tesseract interface for apertium languages Find out what it would take to integrate apertium or voikkospell into tesseract. Document thoroughly available options on the wiki.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code Syntax tree visualisation using GNU bison Write a program which reads a grammar using bison, parses a sentence and outputs the syntax tree as text, or graphViz or something. Some example bison code can be found here.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Mlforcada
code make concordancer work with output of analyser Allow spectie's concordancer to accept an optional apertium mode and directory (implement via argparse). When it has these, it should run the corpus through that apertium mode and search against the resulting tags and lemmas as well as the surface forms. E.g., the form алдым might have the analysis via an apertium mode of ^алдым/алд<n><px1sg><nom>/ал<v><tv><ifi><p1><sg>, so a search for "px1sg" should bring up this word.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Firespeaker
code convert a current transducer for a language using lexc+twol to a guesser Figure out how to generate a guesser for a language module that uses lexc for morphotactics and twol for morphophonology (e.g., apertium-kaz). One approach to investigate would be to generate all the possible archiphoneme representations of a given form and run the lexc guesser on that.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Flammie
code Make Apertium's scraper framework write the tree to disk every n seconds instead of every article Currently Apertium's scraper framework writes the entire xml tree to the output file every time it adds an additional page's worth of content to the tree. This makes it pretty slow. However, writing the entire tree to disk at the end of reading all pages is a bad strategy too, since a properly configured scraper can take days(!) to run, and if something happens to interrupt the script (poor handling of bad html, internet connection loss, etc.), you'll lose all the content you've scraped up to that point. The best strategy is probably to have the scraper write the tree to disk repeatedly at intervals of a predefined number of seconds (e.g., 60), so you at most lose that much time's worth of scraping. Modify the current scraper to do this (with the number of seconds settable by an optional switch, and defaulting to something sane, like 60). You should make sure there are no issues involving race conditions, and that you don't break any aspects of the scraper as it's currently written.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker

Website and apy

Category Title Description Mentors
code apertium-apy mode for geriaoueg (biltrans in context) apertium-apy function that accepts a context (e.g., ±n ~words around word) and a position in the context of a word, gets biltrans output on entire context, and returns translation for the word
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Firespeaker User:Unhammer, User:Sushain
code Website translation in Html-tools Html-tools should detect when the user wants to translate a website (similar to how Google Translate does it) and switch to an interface (See "Website translation in Html-tools (interface)" task) and perform the translation. It should also make it so that new pages that the user navigates to are translated. See ticket 50 for details and progress tracking.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Unhammer, User:Sushain
interface Website translation in Html-tools Add an interface to Html-tools that shows a webpage in an <iframe> with translation options and a back button to return to text/document translation. See ticket 50 for details and progress tracking.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Unhammer, User:Sushain
code Fix Html-tools crashing on iPads when copying text Fix Html-tools so that the Apertium site does not crash on iPads when copying text on any of the modes while maintaining semantic HTML. This task requires having access to an iPad. See ticket 42 for details and progress tracking.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Unhammer, User:Sushain
code Fix Html-tools copying text on Windows Phone IE Fix Html-tools so that the Apertium site allows copying text on WP while maintaining semantic HTML. This task requires having access to an Windows Phone. See ticket 42 for details and progress tracking.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Unhammer, User:Sushain
code APY API keys Add API key support to APY but don't overengineer it. See ticket 31 for details and progress tracking.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Unhammer User:Xavivars, User:Sushain
code Localisation of tag attributes on Html-tools In Html-tools, the meta description tag isn't localized as of now since the text is an attribute. Search engines often display this as their snippet. A possible way to achieve this is using data-text="@content@description". See ticket 29 for details and progress tracking.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Unhammer, User:Sushain
code Html-tools font issues This task concerns a font issue in Html-tools. See ticket 27 for details and progress tracking.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Unhammer, User:Sushain
code Auto-select target language ticket 25 made apertium-html-tools show the available target languages first, but preferably, one of them would be auto-selected as well (maybe with a single visual "blink" to show that something happened there).
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Unhammer User:Francis Tyers, User:Sushain
code Maintaining order of user interactions on Html-tools In Html-tools, if a user clicks a new language choice while translation or detection is proceeding (AJAX callback has not yet returned), the original action will not be cancelled. Make it so that the first action is canceled and overridden by the second. See ticket 9 for details and progress tracking.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Unhammer, User:Sushain
code More file formats for APY APY does not support DOC, XLS, PPT file translation that require the file being converted to the newer XML based formats through LibreOffice or equivalent and then back. See ticket 7 for details and progress tracking.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Unhammer User:Francis Tyers, User:Sushain
code Improved file translation functionality for APY APY needs logging and to be non-blocking for file translation. See ticket 7 for details and progress tracking.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Unhammer User:Francis Tyers, User:Sushain
interface Abstract the formatting for the Html-tools interface. The html-tools interface should be easily customisable so that people can make it look how they want. The task is to abstract the formatting and make one or more new stylesheets to change the appearance. This is basically making a way of "skinning" the interface.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker, User:Sushain
interface Html-tools spell-checker interface Add an enableable spell-checker module to the html-tools interface. Get fancy with jquery/etc. so that e.g., misspelled words are underlined in red and recommendations for each word are given in some sort of drop-down menu. Feel free to implement a dummy function for testing spelling to test the interface until the "Html-tools spell-checker code" task is complete. There is a half-done version available from last year that may just need to be cleaned up and integrated into the current html-tools code. See ticket 6 for details and progress tracking.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker, User:Sushain
code Html-tools spell-checker code Add code to the html-tools interface that allows spell checking to be performed. Should send entire string, and be able to match each returned result to its appropriate input word. Should also update as new words are typed (but not on every keystroke). See ticket 6 for details and progress tracking.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker, User:Sushain
code libvoikko support for APY Write a function for APY that checks the spelling of an input string via libvoikko and for each word returns whether the word is correct, and if unknown returns suggestions. Whether segmentation is done by the client or by apertium-apy will have to be figured out. You will also need to add scanning for spelling modes to the initialisation section. Try to find a sensible way to structure the requests and returned data with JSON. Add a switch to allow someone to turn off support for this (use argparse set_false). See ticket 6 for details and progress tracking.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Unhammer, User:Sushain
code Html-tools expanding textareas The input textarea in the html-tools translation interface does not expand depending on the user's input even when there is significant whitespace remaining on the page. Improvements include varying the length of the textareas to fill up the viewport or expanding depending on input. Both the input and output textareas would have to maintain the same length for interface consistency. Different behavior may be desired on mobile. See ticket 4 for details and progress tracking.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker, User:Sushain
code Performance tracking in APY Add a way for APY to keep track of number of words in input and time between sending input to a pipeline and receiving output, for the last n (e.g., 100) requests, and write a function to return the average words per second over something<n (e.g., 10) requests.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Unhammer
code Language variant picker in Html-tools In html-tools,displaying language variants as distinct languages in the translator language selector is awkward and repetitive. Allowing users to first select a language and then display radio buttons for choosing a variant below the relevant translation box, if relevant, provides a better user interface. See ticket 1 for details and progress tracking.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Unhammer User:Francis Tyers, User:Sushain
research Investigate how to implement HTML-translation that can deal with broken HTML The old Apertium website had a 'surf-and-translate' feature, but it frequently broke on badly-behaved HTML. Investigate how similar web sites deal with broken HTML when rewriting the internal content of a (possible automatically generated) HTML page.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers
code Add pipeline debug action to APY Add a /pipedebug action to APY so given a text and a language pair it does not return only the translation, but the whole flow (like Apertium-viewer does). That would help indentifying where exactly the errors that are APY-only (or null-flush-only) happen, and could be useful for debugging in general. Read more...
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Xavivars User:Unhammer User:Firespeaker
code Make apertium-viewer.html using APY Make a simple html+js file that uses plain JS (no libs) to send text from an input box to the /pipedebug APY endpoint on localhost and show output in one box per pipeline step, similar to Apertium-viewer. See /Apy pipedebug for some test json you can use since /pipedebug is not implemented yet.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Unhammer User:Firespeaker, User:Sushain

Pair visualisations

Category Title Description Mentors
quality fix pairviewer's 2- and 3-letter code conflation problems pairviewer doesn't always conflate languages that have two codes. E.g. sv/swe, nb/nob, de/deu, da/dan, uk/ukr, et/est, nl/nld, he/heb, ar/ara, eus/eu are each two separate nodes, but should instead each be collapsed into one node. Figure out why this isn't happening and fix it. Also, implement an algorithm to generate 2-to-3-letter mappings for available languages based on having the identical language name in languages.json instead of loading the huge list from codes.json; try to make this as processor- and memory-efficient as possible.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code map support for pairviewer ("pairmapper") Write a version of pairviewer that instead of connecting floating nodes, connects nodes on a map. I.e., it should plot the nodes to an interactive world map (only for languages whose coordinates are provided, in e.g. GeoJSON format), and then connect them with straight-lines (as opposed to the current curved lines). Use an open map framework, like leaflet, polymaps, or openlayers
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code coordinates for Mongolic languages Using the map Linguistic map of the Mongolic languages.png, write a file in GeoJSON (or similar) format that can be loaded by pairmapper (or, e.g., converted to kml and loaded in google maps). The file should contain points that are a geographic "center" (locus) for where each Mongolic language on that map is spoken. Use the term "Khalkha" (iso 639-3 khk) for "Mongolisch", and find a better map for Buryat. You can use a capital city for bigger, national languages if you'd like (think Paris as a locus for French).
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Sereni
code draw languages as areas for pairmapper Make a map interface that loads data (in e.g. GeoJSON or KML format) specifying areas where languages are spoken, as well as a single-point locus for the language, and displays the areas on the map (something like the way the states are displayed here) with a node with language code (like for pairviewer) at the locus. This should be able to be integrated into pairmapper, the planned map version of pairviewer.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code georeference language areas for Tatar, Bashqort, and Chuvash Using the maps listed here, try to define rough areas for where Tatar, Bashqort, and Chuvash are spoken. These areas should be specified in a file in GeoJSON (or similar) format for use by pairmapper's languages-as-areas plugin. Try to be fairly accurate and detailed. Maps to consult include Tatarsbashkirs1989ru, NarodaCCCP
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Sereni
code georeference language areas for North Caucasus Turkic languages Using the map Caucasus-ethnic_en.svg, write a file in GeoJSON (or similar) format for use by pairmapper's languages-as-areas plugin. The file should contain specifications for the area(s) the following languages are spoken in: Kumyk, Nogay, Karachay, Balkar. There should be a certain level of detail (e.g., don't just make a shape matching Kazakhstan for Kazakh) and accuracy (i.e., don't just put a square over Kazakhstan and call it the area for Kazakh).
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Sereni
code georeference language areas for IE and Mongolic Caucasus-area languages Using the map Caucasus-ethnic_en.svg, write a file in GeoJSON (or similar) format for use by pairmapper's languages-as-areas plugin. The file should contain specifications for the area(s) the following languages are spoken in: Ossetian, Armenian, Kalmyk. There should be a certain level of detail (e.g., don't just make a shape matching Kazakhstan for Kazakh) and accuracy (i.e., don't just put a square over Kazakhstan and call it the area for Kazakh).
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Sereni
code georeference language areas for North Caucasus languages Using the map Caucasus-ethnic_en.svg, write a file in GeoJSON (or similar) format for use by pairmapper's languages-as-areas plugin. The file should contain specifications for the area(s) the following languages are spoken in: Avar, Chechen, Abkhaz, Georgian. There should be a certain level of detail (e.g., don't just make a shape matching Kazakhstan for Kazakh) and accuracy (i.e., don't just put a square over Kazakhstan and call it the area for Kazakh).
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Sereni
code georeference language areas for Central Asian languages: Kazakh Using the map Central_Asia_Ethnic_en.svg, write a file in GeoJSON (or similar) format for use by pairmapper's languages-as-areas plugin. The file should contain specifications for the areas Kazakh is spoken in, with a certain level of detail (e.g., don't just make a shape matching Kazakhstan for Kazakh) and accuracy (i.e., don't just put a square over Kazakhstan and call it the area for Kazakh).
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Sereni
code georeference language areas for Central Asian languages: Uzbek and Uyghur Using the map Central_Asia_Ethnic_en.svg, write a file in GeoJSON (or similar) format for use by pairmapper's languages-as-areas plugin. The file should contain specifications for the areas Uzbek and Uyghur are spoken in, with a certain level of detail (e.g., don't just make a shape matching Kazakhstan for Kazakh) and accuracy (i.e., don't just put a square over Kazakhstan and call it the area for Kazakh).
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Sereni
code georeference areas Russian is spoken Assume areas in Central Asia with any sort of measurable Russian population speak Russian. Use the following maps to create a file in GeoJSON (or similar) format for use by pairmapper's languages-as-areas plugin: Kazakhstan_European_2012_Rus, Ethnicrussians1989ru, Lenguas_eslavas_orientales, NarodaCCCP. Try to cover all the areas where Russian is spoken at least as a major language.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Sereni
quality, code split nor into nob and nno in pairviewer Currently in pairviewer, nor is displayed as a language separately from nob and nno. However, the nor pair actually consists of both an nob and an nno component. Figure out a way for pairviewer (or pairsOut.py / get_all_lang_pairs.py) to detect this split. So instead of having swe-nor, there would be swe-nob and swe-nno displayed (connected seemlessly with other nob-* and nno-* pairs), though the paths between the nodes would each still give information about the swe-nor pair. Implement a solution, trying to make sure it's future-proof (i.e., will work with similar sorts of things in the future).
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Francis Tyers User:Unhammer
quality, code add support to pairviewer for regional and alternate orthograpic modes Currently in pairviewer, there is no way to detect or display modes like zh_TW. Add suppor to pairsOut.py / get_all_lang_pairs.py to detect pairs containing abbreviations like this, as well as alternate orthographic modes in pairs (e.g. uzb_Latn and uzb_Cyrl). Also, figure out a way to display these nicely in the pairviewer's front-end. Get creative. I can imagine something like zh_CN and zh_TW nodes that are in some fixed relation to zho (think Mickey Mouse configuration?). Run some ideas by your mentor and implement what's decided on.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Francis Tyers
code Visualisation of monolingual dictionary development for language family visualisation tool Add a visualisation to the language family visualisation tool that shows the development of a language's dictionary over time (i.e., how many stems starting when it was created up to the present). There is a script that generates the data for this and some sample data. This graph should go in the bottom-left pane of the visualisation; if another graph is already there when you work on this task, make a switch to toggle between the two visualisations.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code Visualisation of bilingual dictionary development for language family visualisation tool Add a visualisation to the language family visualisation tool that shows the development of all bilingual dictionaries involving the language over time (i.e., how many stems in each dictionary starting from when it was created up to the present). Sample data will be provided by the mentor. This graph should go in the bottom-left pane of the visualisation; if another graph is already there when you work on this task, make a switch to toggle between the two visualisations.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code Function that counts stems at all revisions of each bidix involving a specific language Write a function in python or ruby that takes a language code as input, queries svn to find all language pairs that involve that language (note that there are both two- and three-letter abbreviations in use), count the number of stems in the bilingual dictionary for revision in its history, and output all of this data in a simple json variable. There are scripts that do different pieces of all of this already: queries svn, queries svn revisions, counting bidix stems.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code Extend visualisation of pairs involving a language in language family visualisation tool The language family visualisation tool currently has a visualisation of all pairs involving the language. Extend this to include pairs that involve those languages, and so on, until there are no more pairs. This should result in a graph of quite a few languages, with the current language in the middle. Note that if language x is the center, and there are x-y and x-z pairs, but also a y-z pair, this should display the y-z pair with a link, not with an extra z and y node each, connected to the original y and z nodes, respectively. The best way to do this may involve some sort of filtering of the data.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker

Begiak

Category Title Description Mentors
quality Generalise phenny/begiak git plugin Rename the begiak module to git (instead of github), and test it to make sure it's general enough for at least three common git services (there should already be that many supported, but make sure they all work). For this task, you should fork the bot on github and send a pull request when you're done.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code phenny/begiak git plugin commit info function Add a function to the begiak github module to get the status of a commit by reponame and name (similar to what the svn module does), and then find out why commit 6a54157b89aee88511a260a849f104ae546e3a65 in turkiccorpora resulted in the following output, and fix it: Something went wrong: dict_keys(['commits', 'user', 'canon_url', 'repository', 'truncated']). For this task, you should fork the bot on github and send a pull request when you're done.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code phenny/begiak git plugin recent function Find out why begiak's "recent" function (begiak: recent) returns "ValueError: No JSON object could be decoded (file "/usr/lib/python3.2/json/decoder.py", line 371, in raw_decode)" for one of the repos (no permission) and find a way to fix it so it returns the status instead. For this task, you should fork the bot on github and send a pull request when you're done.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code phenny/begiak git plugin status Add a function to begiak (our IRC bot) that lets anyone (not just admin) get the status of the git event server. For this task, you should fork the bot on github and send a pull request when you're done.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
documentation Document phenny/begiak git plugin Document begiak's git module: how to use it with each service it supports, and the various ways the module can be interacted with (by administrators and anyone). For this task, you should fork the bot on github and send a pull request when you're done. Document both in the code and on the wiki page.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code, quality phenny/begiak svn plugin info function Find out why begiak's info function ("begiak info [repo] [rev]") doesn't work and fix it. For this task, you should fork the bot on github and send a pull request when you're done.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
documentation document any phenny/begiak command that does not have information Find a command that our IRC bot (begiak) uses that is not documented, and document how it works both on the Begiak wiki page and in the code. This will require you to fork the bot on github and send a pull request when you're done.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code phenny/begiak awikstats to count rlx sizes Make the awikstats module of our IRC bot (begiak) count the number of rules in rlx files and output that to the relevant statistics page. This will require you to fork the bot on github and send a pull request when you're done.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code phenny/begiak awikstats to count t*x sizes Make the awikstats module of our IRC bot (begiak) count the number of rules in all .t*x files (for language pairs) and output the sum to the relevant statistics page. This will require you to fork the bot on github and send a pull request when you're done.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code phenny/begiak awikstats to report the revision of each monolingual file Make the awikstats module of our IRC bot (begiak) report each file's svn revision for pairs with their own monodices, e.g. Apertium-en-es/stats. This will require you to fork the bot on github and send a pull request when you're done.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code phenny/begiak tell/ask queue to support nick aliases Make the tell/ask queue function of our IRC bot (begiak) support alises for nicks, so that e.g. spectre/spectie/spectei can get tell messages regardless of which nick they were sent to. This will require you to fork the bot on github and send a pull request when you're done.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code phenny/begiak tell/ask queue support deleting items from queue Allow a user who added something to the tell/ask queue of our IRC bot (begiak) to display a list of the messages s/he has queued and delete one of them. This will require you to fork the bot on github and send a pull request when you're done.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code phenny/begiak tell/ask queue split long messages Make our IRC bot (begiak)'s tell/ask function split overly long messages into multiple ones for display so as to not exceed the max IRC message length. This will require you to fork the bot on github and send a pull request when you're done.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code phenny/begiak blacklist for url interceptor Modify our IRC bot (begiak)'s url interceptor module so that an optional blacklist (list of url regexes?) can be provided in the config file. The point is to make it not display titles for site urls we might copy/paste a lot and/or that are known not to provide useful information. An example might be ^http(s?)://svn.code.sf.net/ . For this task, you should fork the bot on github and send a pull request when you're done.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code phenny/begiak relevant wiki module handle urls for wikis Make our IRC bot (begiak)'s url interceptor check whether a url is a link to a known mediawiki site (wikipedia, wiktionary, apertium wiki) and redirect to the appropriate module. For this task, you should fork the bot on github and send a pull request when you're done.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code phenny/begiak apertium wiki module search capability Have our IRC bot (begiak)'s awik plugin search the apertium wiki and return top hit if a page isn't found (like the wikipedia plugin). For this task, you should fork the bot on github and send a pull request when you're done.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code phenny/begiak wiki modules tell result Make a function for our IRC bot (begiak) that allows someone to point another user to a wiki page (apertium wiki or wikipedia), and have it give them the results (e.g. for mentors to point students to resources). It could be an extra function on the .wik and .awik modules. Make sure it allows for all wiki modes in those modules (e.g., .wik.ru) and is intuitive to use. For this task, you should fork the bot on github and send a pull request when you're done.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
quality find content that phenny/begiak wiki modules don't do a good job with Identify at least 10 pages or sections on Wikipedia or the apertium wiki that the respective begiak module doesn't return good output for. These may include content where there's immediately a subsection, content where the first thing is a table or infobox, or content where the first . doesn't end the sentence. Document generalisable scenarios about what the preferred behaviour would be.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code write a mailing list reporter for phenny/begiak Write a module for our IRC bot (begiak) that either polls mailing list archives or is triggered by email being sent to a local account. The idea is to have begiak report a short IRC-message-length summary when someone posts to one of our publicly-visible mailing lists, like apertium-stuff or apertium-turkic lists. For this task, you should fork the bot on github and send a pull request when you're done.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code make phenny/begiak git and svn modules display urls When a user asks to display revision information, have begiak (our IRC bot) include a link to information on the revision. For example, when displaying information for apertium repo revision r57171, include the url http://sourceforge.net/p/apertium/svn/57171/ , maybe even a shortened version. For this task, you should fork the bot on github and send a pull request when you're done.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code fix phenny/begiak seen function When begiak is restart, the .seen command forgets when it's seen everyone. Have the module save the relevant information as needed to a database (using standard phenny methods) that gets reloaded when the module is loaded on a restart of the bot. For this task, you should fork the bot on github and send a pull request when you're done.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code improve phenny/begiak timezone data Find a source of standard timezone abbreviations and have the time module for begiak (our IRC bot) scrape and use that data. You might want to model the scraper and storage after the .iso639 db scraper. For this task, you should fork the bot on github and send a pull request when you're done.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code add support for timezone conversion to phenny/begiak Add timezone conversion to the time plugin for begiak (our IRC bot). It should accept a time in one timezone and a destination timezone, and convert the time, e.g. ".tz 335EST in CET" should return "835CET". For this task, you should fork the bot on github and send a pull request when you're done.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code add city name support phenny/begiak timezone plugin Find a source that maps city names to timezone abbreviations and have the .tz command for begiak (our IRC bot) scrape and use that data (e.g., ".time Barcelona" should give the current time in CET). You might want to model the scraper and storage after the .iso639 db scraper. For this task, you should fork the bot on github and send a pull request when you're done.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code add analysis and generation modes to apertium translation begiak module Add the ability for the apertium translation module that's part begiak (our IRC bot) to query morphological analysis and generation modes. For this task, you should fork the bot on github and send a pull request when you're done.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code make begiak's version control monitoring channel specific Our IRC bot (begiak) currently monitors a series of git and svn repositories. When a commit is made to a repository, the bot displays the commit in all channels. For this task, you should modify both of these modules (svn and git) so that repositories being monitored (listed in the config file) can be specified in a channel-specific way. However, it should default to the current behaviour—channel-specific settings should just override the global monitoring pattern. You should fork the bot on github to work on this task and send a pull request when you're done.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code implement a pester plugin for begiak Write a "pester" plugin for begiak (our IRC bot). The function should be usable as something like ".pester username to commit his code". Begiak should then pester the pesteree once per day and/or when around (or some other sensible period of time) until the pesterer says problem is solved (something like ".stoppestering username to commit his code"). When pestered, the pesteree can postpone (".postponepester from pestereruser") or dismiss ("..dismisspester from pestereruser") the pester. Make sure the code can deal with multiple pesters from the same pesterer to the same pesteree in a sensible way. For this task, you should fork the bot on github and send a pull request when you're done.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code, quality fix how begiak's ethnologue plugin determines number of speakers Currently, the ethnologue plugin for begiak (our IRC bot) reports the number of speakers for some languages incorrectly. For example, it reports the number of speakers of Turkish as 350K and the number of speakers of Spanish as 7.5M (both of which are way off). In both cases, this is the number of second-language learners; instead, we should be reporting the total number of speakers in all countries. For this task, you should fork the bot on github and send a pull request when you're done.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code, quality make begiak's .queue display function work Figure out what's wrong with the display command in the queue module (i.e., ".queue display") in begiak (our IRC bot) and fix it. For this task, you should fork the bot on github and send a pull request when you're done.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code allow begiak's .queue display and .queue list functions to access other users' queues as well Modify the queue module for begiak (our IRC bot) to let the display and list functions access other users' queues as well (not just the user issuing the command). For listing, you probably want a new command, like "listall". Make sure you document the use of the new functionality both in the code and on the wiki. For this task, you should fork the bot on github and send a pull request when you're done.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
research, code figure out how to deal with begiak queues longer than irc message length Discuss ideas with the apertium community (at least your mentor) for how best to deal with queues in the queue module of begiak (our IRC bot), and then implement what was decided. For this task, you should fork the bot on github and send a pull request when you're done.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code implement better error messages for begiak's queue module For the queue module in begiak (our IRC bot), you should have begiak return better error messages. For example, when a queue doesn't exist (".queue hargle add bargle") it should return something better than "that's not a command". For this task, you should fork the bot on github and send a pull request when you're done.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code allow admins to modify and delete other people's queues in begiak Modify the queue module for begiak (our IRC bot) to let admins (as defined by begiak's config file—there should be a function that'll just check if the person issuing a command is an admin) modify and delete queues for other users. For this task, you should fork the bot on github and send a pull request when you're done.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
research code Figure out why begiak's url catcher still has some encoding issues and fix Begiak (our IRC bot) gives the title of pages when a message in the channel contains a url. However, it sometimes has problems with certain encodings. Figure out why pages like Êàçàõñêèé ÿçûê. Ãðàììàòèêà. Äàâíî ïðîøåäøåå âðåìÿ (î÷åâèäíîå), Êàçàõñêèé ÿçûê. Ãðàììàòèêà. Ïîñëîâèöû - Ó÷åíèå, çíàíèå, Ãîñóäàðñòâåííîå ó÷ðåæäåíèå "Ðåäàêöèÿ ãàçåòû "ÊÀÐÀ×ÀÉ", and Türk Dili Konuşan Ülkeler İşbirliği Konseyi aren't being displayed properly, and fix begiak so that they are. Make sure other page titles keep being displayed properly. For this task, you should fork the bot on github and send a pull request when you're done.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker

Apertium linguistic data

Category Title Description Mentors
code, quality multi Improve the bilingual dictionary of a language pair XX-YY in the incubator by adding 50 word correspondences to it Languages XX and YY may have rather large dictionaries but a small bilingual dictioanry. Add words to the bilingual dictionary and test that the new vocabulary works. Read more...
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Mlforcada User:Raveesh User:Vin-ivar
code, quality multi Improve the quality of a language pair XX-YY by adding 50 words to its vocabulary Add words to language pair XX-YY and test that the new vocabulary works. Read more...
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Mlforcada User:ilnar.salimzyan User:Xavivars User:Bech Jimregan User:Unhammer User:Nikant Fulup User:tunedal User:Juanpabl Youssefsan User:Firespeaker User:Raveesh User:vin-ivar
code, quality multi Find translation bugs by using LanguageTool, and correct them The LanguageTool grammar/style checker has great rule sets for Catalan and French. Run it on output from Apertium translation into Catalan/French and fix 5 mistakes. Read more... User:Xavivars
code, quality multi Add/correct one structural transfer rule to an existing language pair Add or correct a structural transfer rule to an existing language pair and test that it works. Read more...
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Mlforcada User:ilnar.salimzyan User:Unhammer User:Nikant Fulup User:Juanpabl User:Raveesh User:vin-ivar
code, quality multi Write 10 lexical selection rules for a language pair already set up with lexical selection Add 10 lexical selection rules to improve the lexical selection quality of a pair and test them to ensure that they work. Read more...
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Mlforcada, User:Francis Tyers User:ilnar.salimzyan User:Unhammer User:Nikant User:Firespeaker User:Raveesh User:vin-ivar (more mentors welcome)
code multi Set up a language pair to use lexical selection and write 5 rules First set up a language pair to use the new lexical selection module (this will involve changing configure scripts, makefile and modes file). Then write 5 lexical selection rules. Read more...
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Mlforcada, User:Francis Tyers User:Unhammer Fulup User:pankajksharma (more mentors welcome)
code, quality multi Write 10 constraint grammar rules to repair part-of-speech tagging errors Find some tagging errors and write 10 constraint grammar rules to fix the errors. Read more...
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Mlforcada, User:Francis Tyers User:ilnar.salimzyan User:Unhammer Fulup (more mentors welcome)
code multi Set up a language pair such that it uses constraint grammar for part-of-speech tagging Find a language pair that does not yet use constraint grammar, and set it up to use constraint grammar. After doing this, find some tagging errors and write five rules for resolving them. Read more...
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Mlforcada, User:Francis Tyers User:Unhammer
quality multi Compare Apertium with another MT system and improve it This tasks aims at improving an Apertium language pair when a web-accessible system exists for it in the 'net. Particularly good if the system is (approximately) rule-based such as Lucy, Reverso, Systran or SDL Free Translation: (1) Install the Apertium language pair, ideally such that the source language is a language you know (L₂) and the target language a language you use every day (L₁). (2) Collect a corpus of text (newspaper, wikipedia) Segment it in sentences (using e.g., libsegment-java or a similar processor and a SRX segmentation rule file borrowed from e.g. OmegaT) and put each sentence in a line. Run the corpus through Apertium and through the other system Select those sentences where both outputs are very similar (e.g, 90% coincident). Decide which one is better. If the other language is better than Apertium, think of what modification could be done for Apertium to produce the same output, and make 3 such modifications.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Mlforcada Jimregan (alternative mentors welcome)
documentation multi What's difficult about this language pair? For a language pair that is not in trunk or staging such that you know well the two languages involved, write a document describing the main problems that Apertium developers would encounter when developing that language pair (for that, you need to know very well how Apertium works). Note that there may be two such documents, one for A→B and the other for B→A Prepare it in your user space in the Apertium wiki.It may be uploaded to the main wiki when approved.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Mlforcada Jimregan Youssefsan (alternative mentors welcome)
research multi Write a contrastive grammar Using a grammar book/resource document 10 ways in which the grammar of two languages differ, with no fewer than 3 examples of each difference. Put it on the wiki under Language1_and_Language2/Contrastive_grammar. See Farsi_and_English/Pending_tests for an example of a contrastive grammar that a previous GCI student made.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Firespeaker User:Sereni
research multi Hand annotate 250 words of running text. Use apertium annotatrix to hand-annotate 250 words of running text from Wikipedia for a language of your choice.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers
research The most frequent Romance-to-Romance transfer rules Study the .t1x transfer rule files of Romance language pairs and distill 5-10 common rules that are common to all of them, perhaps by rewriting them into some equivalent form
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Mlforcada
research multi Tag and align Macedonian--Bulgarian corpus Take a Macedonian--Bulgarian corpus, for example SETimes, tag it using the apertium-mk-bg pair, and word-align it using GIZA++.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers
code Write a program to extract Bulgarian inflections Write a program to extract Bulgarian inflection information for nouns from Wiktionary, see Category:Bulgarian nouns
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers
quality multi Improve the quality of a language pair by allowing for alternative translations Improve the quality of a language pair by (a) detecting 5 cases where the (only) translation provided by the bilingual dictionary is not adequate in a given context, (b) adding the lexical selection module to the language, and (c) writing effective lexical selection rules to exploit that context to select a better translation
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Mlforcada User:Unhammer
code multi depend Make sure an Apertium language pair does not mess up (X)HTML formatting (Depends on someone having performed the task 'Examples of files where an Apertium language pair messes up (X)HTML formatting' above). The task: (1) run the file through Apertium try to identify where the tags are broken or lost: this is most likely to happen in a structural transfer step; try to identify the rule where the label is broken or lost (2) repair the rule: a conservative strategy is to make sure that all superblanks () are output and are in the same order as in the source file. This may involve introducing new simple blanks () and advancing the output of the superblanks coming from the source. (3) test again (4) Submit a patch to your mentor (or commit it if you have already gained developer access)
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Mlforcada (alternative mentors welcome)
quality Examples of minimum files where an Apertium language pair messes up wordprocessor (ODT, RTF) formatting Sometimes, an Apertium language pair takes a valid ODT or RTF source file but delivers an invalid ODT or RTF target file, regardless of translation quality. This can usually be blamed on incorrect handling of superblanks in structural transfer rules. The task: (1) select a language pair (2) Install Apertium locally from the Subversion repository; install the language pair; make sure that it works (3) download a series of ODT or RTF files for testing purposes. Make sure they are opened using LibreOffice/OpenOffice.org (4) translate the valid files with the language pair (5) check if the translated files are also valid ODT or RTF files; select those that aren't (6) find the first source of non-validity and study it, and strip the source file until you just have a small (valid!) source file with some text around the minimum possible example of problematic tags; save each such file and describe the error.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Mlforcada (alternative mentors welcome)
code multi depend Make sure an Apertium language pair does not mess up wordprocessor (ODT, RTF) formatting (Depends on someone having performed the task 'Examples of files where an Apertium language pair messes up wordprocessor formatting' above). The task: (1) run the file through Apertium try to identify where the tags are broken or lost: this is most likely to happen in a structural transfer step; try to identify the rule where the label is broken or lost (2) repair the rule: a conservative strategy is to make sure that all superblanks () are output and are in the same order as in the source file. This may involve introducing new simple blanks () and advancing the output of the superblanks coming from the source. (3) test again (4) Submit a patch to your mentor (or commit it if you have already gained developer access)
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Mlforcada (alternative mentors welcome)
code multi Start a language pair involving Interlingua Start a new language pair involving Interlingua using the Apertium new language HOWTO. Interlingua is the second most used "artificial" language, after Esperanto). As Interlingua is basically a Romance language, you can use a Romance language as the other language, and Romance-language dictionaries rules may be easily adapted. Include at least 50 very frequent words (including some grammatical words) and at least one noun--phrase transfer rule in the ia→X direction.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Mlforcada Youssefsan (will reach out also to the interlingua community)
research Document materials for a language not yet on our wiki Document materials for a language not yet on our wiki. This should look something like the page on Aromanian—i.e., all available dictionaries, grammars, corpora, machine translators, etc., print or digital, where available, whether Free, etc., as well as some scholarly articles regarding the language, especially if about computational resources.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Francis Tyers User:Raveesh
research Gujarati Parallel Corpus and Alignment Collect some parallel corpus for guj-hin, run GIZA++ and verify the alignments. User:Raveesh
research Urdu-Sindhi Bilingual Dictionary Add words to bilingual dictionary for Urdu-Sindhi User:Raveesh
research Hindi-Sindhi Bilingual Dictionary create a bilingual dictionary for Hindi-Sindhi [with atleast 20 words in each lexical category, such as nouns, verbs, adjectives, adverbs, conjunctions, etc) User:Raveesh
research Hindi-Gujarati Bilingual Dictionary create a small bilingual dictionary for Hindi-Gujarati User:Raveesh
research Gujarati morphology Define some Morphological paradigms of Gujarati Nouns or Verbs (or any other categories) and provide some Gujarati words (around 50) belonging to those paradigms. User:Raveesh User:Vin-ivar
research Marathi evaluation Manually tag 500 random Marathi words (based on the monodix) for evaluation User:Vin-ivar
research Tag and align Albanian--Macedonian corpus Take a Albanian--Macedonian corpus, for example SETimes, tag it using the apertium-sq-mk pair, and word-align it using GIZA++.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Sereni
research Tag and align Albanian--Serbo-Croatian corpus Take a Albanian--Serbo-Croatian corpus, for example SETimes, tag it using the apertium-sq-sh pair, and word-align it using GIZA++.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Sereni
research Tag and align Albanian--Bulgarian corpus Take a Albanian--Bulgarian corpus, for example SETimes, tag it using the apertium-sq-bg pair, and word-align it using GIZA++.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Sereni
research Tag and align Albanian--English corpus Take a Albanian--English corpus, for example SETimes, tag it using the apertium-sq-en pair, and word-align it using GIZA++.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Sereni
research Tag and align Macedonian--Serbo-Croatian corpus Take a Macedonian--Serbo-Croatian corpus, for example SETimes, tag it using the apertium-mk-sh pair, and word-align it using GIZA++.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Sereni
research Tag and align Macedonian--English corpus Take a Macedonian--English corpus, for example SETimes, tag it using the apertium-mk-en pair, and word-align it using GIZA++.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Sereni
research Tag and align Serbo-Croatian--Bulgarian corpus Take a Serbo-Croatian--Bulgarian corpus, for example SETimes, tag it using the apertium-sh-bg pair, and word-align it using GIZA++.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Sereni
research Tag and align Serbo-Croatian--English corpus Take a Serbo-Croatian--English corpus, for example SETimes, tag it using the apertium-sh-en pair, and word-align it using GIZA++.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Sereni
research Tag and align Bulgarian--English corpus Take a Bulgarian--English corpus, for example SETimes, tag it using the apertium-bg-en pair, and word-align it using GIZA++.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Sereni
code Write a program to extract Greek noun inflections Write a program to extract Greek inflection information for nouns from Wiktionary, see Category:Greek nouns
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers
code Write a program to extract Greek verb inflections Write a program to extract Greek inflection information for verbs from Wiktionary, see Category:Greek verbs
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers
code Write a program to extract Greek adjective inflections Write a program to extract Greek inflection information for adjectives from Wiktionary, see Category:Greek adjectives
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers
code Write a program to convert the Giellatekno Faroese CG to Apertium tags Write a program which converts the tagset of the Giellatekno Faroese constraint grammar.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Trondtr
quality Import nouns from azmorph into apertium-aze Take the nouns (excluding proper nouns) from https://svn.code.sf.net/p/apertium/svn/branches/azmorph and put them into lexc format in https://svn.code.sf.net/p/apertium/svn/incubator/apertium-aze.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Francis Tyers
quality Import adjectives from azmorph into apertium-aze Take the adjectives from https://svn.code.sf.net/p/apertium/svn/branches/azmorph and put them into lexc format in https://svn.code.sf.net/p/apertium/svn/incubator/apertium-aze.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Francis Tyers
quality Import adverbs from azmorph into apertium-aze Take the adverbs from https://svn.code.sf.net/p/apertium/svn/branches/azmorph and put them into lexc format in https://svn.code.sf.net/p/apertium/svn/incubator/apertium-aze.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Francis Tyers
quality Import verbs from azmorph into apertium-aze Take the verbs from https://svn.code.sf.net/p/apertium/svn/branches/azmorph and put them into lexc format in https://svn.code.sf.net/p/apertium/svn/incubator/apertium-aze.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Francis Tyers
quality Import misc categories from azmorph into apertium-aze Take the categories that aren't nouns, proper nouns, adjectives, adverbs, and verbs from https://svn.code.sf.net/p/apertium/svn/branches/azmorph and put them into lexc format in https://svn.code.sf.net/p/apertium/svn/incubator/apertium-aze.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Francis Tyers
research Build a clean Kazakh--English sentence-aligned bilingual corpus for testing purposes using official information from Kazakh websites (minimum 50 bilingual sentences). Download and align the Kazakh and English version of the same page, divide them in sentences, and build two plain text files (eng.FILENAME.txt) and (kaz.FILENAME.txt) with one sentence per line so that they correspond to each other.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:mlforcada User:Sereni User:Firespeaker
research Build a clean Kazakh--Russian sentence-aligned bilingual corpus for testing purposes using official information from Kazakh websites (minimum 50 bilingual sentences). Download and align the Kazakh and Russian version of the same page, divide them in sentences, and build two plain files (eng.FILENAME.txt) and (rus.FILENAME.txt) with one sentence per line so that they correspond to each other.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:mlforcada User:Sereni User:Firespeaker
code Make the script that generates "dixtables" on the wiki also create all the missing stats pages Currently bot.py and dixtable.py can be used to create a table on our wiki of language pairs that we've created for a given language family. For an example, see Uralic languages#Existing language pairs. Each filled cell not only links to a status page, but incorporates data from a statistics page. Your job for this task is to modify the scripts so that all status and stats pages for a filled cell are generated when the script runs. This may involve making one or both scripts more abstract.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code Make a script to generate a table on the wiki of all transducers for a language family Make a script to go with the other wiki-tools scripts that finds all the apertium single-language transducers for each language in a given family and writes a table describing them to the wiki. The table should be in roughly the same format as that on the Turkic languages or Celtic languages pages, and the script can be based off some of the other scripts. User:Firespeaker
code Combine available wiki-tools scripts into a script that writes a complete language family page Write a script that generates mostly complete language family pages given dixtable, langtable, and udhrtable, etc. You'll need to combine, and perhaps make more abstract, the existing wiki-tools scripts. User:Firespeaker

Data mangling

Category Title Description Mentors
code multi Dictionary conversion Write a conversion module for an existing dictionary for apertium-dixtools.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code multi Dictionary conversion in python Write a conversion module for an existing free bilingual dictionary to lttoolbox format using Python.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code Write a program to extract Faroese noun inflections Write a program to extract Faroese inflection information for nouns from Wiktionary, see Category:Faroese nouns
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:vin-ivar
code Write a program to extract Faroese verb inflections Write a program to extract Faroese inflection information for verbs from Wiktionary, see Category:Faroese verbs
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:vin-ivar
code Write a program to extract Faroese adjective inflections Write a program to extract Faroese inflection information for adjectives from Wiktionary, see Category:Faroese adjectives
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:vin-ivar
code scraper for all wiktionary pages in a category a script that returns urls of all pages in a wiktionary category recursively (e.g., http://en.wiktionary.org/wiki/Category:Bashkir_nouns should also include pages from http://en.wiktionary.org/wiki/Category:Bashkir_proper_nouns )
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Francis Tyers User:Ksnmi
code Bilingual dictionary from word alignments script Write a script which takes GIZA++ alignments and outputs a .dix file. The script should be able to reduce the number of tags, and also have some heuristics to test if a word is too-frequently aligned.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Ksnmi
code multi Scraper for free forum content Write a script to scrape/capture all freely available content for a forum or forum category and dump it to an xml corpus file or text file.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Ksnmi
research multi scrape a freely available dictionary using tesseract Use tesseract to scrape a freely available dictionary that exists in some image format (pdf, djvu, etc.). Be sure to scrape grammatical information if available, as well stems (e.g., some dictionaries might provide entries like АЗНА·Х, where the stem is азна), and all possible translations. Ideally it should dump into something resembling bidix format, but if there's no grammatical information and no way to guess at it, some flat machine-readable format is fine.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:Francis Tyers User:Ksnmi
code script to generate dictionary from IDS data Write a script that takes two lg_id codes, scrapes those dictionaries at IDS, matches entries, and outputs a dictionary in bidix format
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Firespeaker User:Ksnmi
code Script to convert rapidwords dictionary to apertium bidix Write a script (preferably in python3) that converts an arbitrary dictionary from rapidwords.net to apertium bidix format. Keep in mind that rapidwords dictionaries may contain more than two languages, while apertium dictionaries may only contain two languages, so the script should take an argument allowing the user to specify which languages to extract. Ideally, there should also be an argument that lists the languages available.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code Script to convert simple bilingual dictionary entries to lttoolbox-style entries Write a simple converter for lists of bilingual dictionary entries (one per line) so that one can use the shorthand notation perro.n.m:dog.n to generate lttoolbox-style entries of the form <e><l>perro</l><r>dog</r></e>. You may start from [5] if you wish.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:mlforcada User:Raveesh
code multi Convert one part-of-speech from SALDO to Apertium .dix format Take the SALDO lexicon of Swedish and convert one of the classes of parts-of-speech to Apertium's lttoolbox format.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
Francis Tyers

Misc

Category Title Description Mentors
documentation Installation instructions for missing GNU/Linux distributions or versions Adapt installation instructions for a particular GNU/Linux or Unix-like distribution if the existing instructions in the Apertium wiki do not work or have bugs of some kind. Prepare it in your user space in the Apertium wiki. It may be uploaded to the main wiki when approved.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Mlforcada User:Firespeaker (alternative mentors welcome)
documentation Installing Apertium in lightweight GNU/Linux distributions Give instructions on how to install Apertium in one of the small or lightweight GNU/Linux distributions such as Damn Small Linux in the style of the description for Apertium on SliTaz, so that may be used in older machines.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Mlforcada User:Bech Youssefsan (alternative mentors welcome)
documentation Video guide to installation Prepare a screencast or video about installing Apertium; make sure it uses a format that may be viewed with Free software. When approved by your mentor, upload it to Youtube, making sure that you use the HTML5 format which may be viewed by modern browsers without having to use proprietary plugins such as Adobe Flash. An example may be found here.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Mlforcada User:Firespeaker (alternative mentors welcome)
documentation Apertium in 5 slides Write a 5-slide HTML presentation (only needing a modern browser to be viewed and ready to be effectively "karaoked" by some else in 5 minutes or less: you can prove this with a screencast) in the language in which you write more fluently, which describes Apertium, how it works, and what makes it different from other machine translation systems.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Mlforcada User:Firespeaker (alternative mentors welcome)
documentation Improved "Become a language-pair developer" document Read the document Become_a_language_pair_developer_for_Apertium and think of ways to improve it (don't do this if you have not done any of the language pair tasks). Send comments to your mentor and/or prepare it in your user space in the Apertium wiki. There will be a chance to change the document later in the Apertium Wiki.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Mlforcada User:Bech User:Firespeaker
documentation An entry test for Apertium Write 20 multiple-choice questions about Apertium. Each question will give 3 options of which only one is true, so that we can build an "Apertium exam" for future GSoC/GCI/developers. Optionally, add an explanation for the correct answer.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Mlforcada
code Apertium develoment on Windows The Apertium on Windows guide is severely out-dated, developers tend to use a Virtualbox (users have a nice GUI). But some developers might want to use their Windows tools and environment. Go through the guide to install Apertium on Windows, updating the guide where things have changed.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers
code Light Apertium bootable ISO for small machines Using Damn Small Linux or SliTaz or a similar lightweight GNU/Linux, produce the minimum-possible bootable live ISO or live USB image that contains the OS, minimum editing facilities, Apertium, and a language pair of your choice. Make sure no package that is not strictly necessary for Apertium to run is included.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Mlforcada User:Firespeaker (alternative mentors welcome)
code Apertium in XLIFF workflows Write a shell script and (if possible, using the filter definition files found in the documentation) a filter that takes an XLIFF file such as the ones representing a computer-aided translation job and populates with translations of all segments that are not translated, marking them clearly as machine-translated.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Mlforcada User:Espla User:Fsanchez (alternative mentors welcome)
quality Examples of minimum files where an Apertium language pair messes up (X)HTML formatting Sometimes, an Apertium language pair takes a valid HTML/XHTML source file but delivers an invalid HTML/XHTML target file, regardless of translation quality. This can usually be blamed on incorrect handling of superblanks in structural transfer rules. The task: (1) select a language pair (2) Install Apertium locally from the Subversion repository; install the language pair; make sure that it works (3) download a series of HTML/XHTML files for testing purposes. Make sure they are valid using an HTML/XHTML validator (4) translate the valid files with the language pair (5) check if the translated files are also valid HTML/XHTML files; select those that aren't (6) find the first source of non-validity and study it, and strip the source file until you just have a small (valid!) source file with some text around the minimum possible example of problematic tags; save each such file and describe the error.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Mlforcada (alternative mentors welcome)
research Investigate how orthographic modes on kk.wikipedia.org are implemented The Kazakh-language wikipedia has a menu at the top for selecting alphabet (Кирил, Latın, توتە - for Cyrillic-, Latin-, and Arabic-script modes). This appears to be some sort of plugin that transliterates the text on the fly. Find out what it is and how it works, and then document it somewhere on the wiki. If this has already been documented elsewhere, point a link to that, but you still should summarise in your own words what exactly it is.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
code Write a transliteration plugin for mediawiki Write a mediawiki plugin similar in functionality (and perhaps implementation) to the way the Kazakh-language wikipedia's orthography changing system works. It should be able to be directed to use any arbitrary mode from an apertium mode file installed in a pre-specified path on a server.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
research multi train tesseract on a language with no available tesseract data Train tesseract (the OCR software) on a language that it hasn't previously been trained on. We're especially interested in languages with some coverage in apertium. We can provide images of text to train on.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
research using language transducers for predictive text on Android Investigate what it would take to add some sort of plugin to existing Android predictive text / keyboard framework(s?) that would allow the use of lttoolbox (or hfst? or libvoikko stuff?) transducers to be used to predict text and/or guess swipes (in "swype" or similar). Document your findings on the apertium wiki.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
research custom predictive text keyboards for Android Research and document on apertium's wiki the steps needed to design an application for Android that could load arbitrarily defined / pre-specified keyboard layouts (e.g., say I want to make custom keyboard layouts for Kumyk and Guaraní, and load either one into the same program) as well as either an lttoolbox-format transducer or a file easily generated from one that could be paired with a keyboard layout and used to predict text in that language.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
research multi identify 75 substitutions for conversion from colloquial Finnish to book Finnish Colloquial Finnish can be written and pronounced differently to book Finnish (e.g. "ei oo" = "ei ole"; "mä oon" = "minä olen"). The objective of this task is to come up with 75 examples of differences between colloquial Finnish and book Finnish.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Inariksit
documentation multi document the correspondences between the tagset used in the RNC tagged corpus and the Apertium tagset for Russian The Apertium tagset for Russian and the RNC tagset are different, if we were able to make correspondences between them then we could compare our output against theirs.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Beboppinbobby User:Sereni
research multi Disambiguate 500 words of Russian text. The objective of this task is to disambiguate by hand 500 words of text in Russian. You can find a Wikipedia article you are interested in, or you can be assigned one, you will be given the output of a morphological analyser for Russian, and your task is to select the most adequate analysis in context.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Beboppinbobby User:Sereni
research multi Convert 500 words of Finnish text in colloquial Finnish to literary Finnish Colloquial Finnish can be written and pronounced differently to book Finnish (e.g. "ei oo" = "ei ole"; "mä oon" = "minä olen"). The objective of this task is to convert 500 words of text from colloquial Finnish to literary Finnish.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Francis Tyers User:Inariksit
research, documentation Come up with a potential migration strategy for apertium to move from svn to git For this task, you should propose a hypothetical migration strategy for apertium to move from our current svn repository to a git repository and document the proposal on the apertium wiki. The proposal should address the logistics and timing issues of anything that might come up in a migration of the entire codebase, including preserving commit histories and tags/releases, separating repositories for each module, replacing all the links to svn on our wiki with links to git, rewriting documentation for users, and anything else you can think of. Each point should address how to approach each problem and where on the timeline to take care of the issue. You do not need to worry about specific solutions to the various problems.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker
research, code figure out how to make folding work in the lexc plugin for vim A vim syntax definition file for lexc is presented on the following wiki page: Apertium-specific conventions for lexc#Syntax highlighting in vim. This plugin works in that it highlights syntax nicely, but it doesn't seem to allow folding (i.e., collapsing of sections). Modify or rewrite the plugin so that it supports folding of Multichar_Symbols and LEXICON blocks.
For further information and guidance on this task, you are encouraged to come to our IRC channel.
User:Firespeaker User:vin-ivar
code make reproducible builds for core tools Normally, when you compile software on different machines, the byte-for-byte output will differ, making it hard to verify that the code hasn't been tampered with. With a reproducible build, the output is byte-for-byte equal even though built on different machines. Using https://gitian.org, create reproducible builds of the latest releases of lttoolbox / apertium / apertium-lex-tools / vislcg3. User:Unhammer
code make improvements to the wx-utf8 script The script converts stuff written in WX notation to produce Devanagari. It should be bug free, but someone needs to test it with strange words and fix bugs if any. Also, make the script work the other way, and add support for other encoding standards to make it a generic X-Y transliterator. User:vin-ivar