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

From Apertium
Jump to navigation Jump to search
 
(430 intermediate revisions by 36 users not shown)
Line 1: Line 1:

{{TOCD}}
{{TOCD}}
This is the task ideas page for [http://www.google-melange.com/gci/homepage/google/gci2014 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.
This is the task ideas page for [https://developers.google.com/open-source/gci/ 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:
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:


# '''this does not include time taken to [[Minimal installation from SVN|install]] / set up apertium'''.
<!--# '''this does not include time taken to [[Minimal installation from SVN|install]] / set up apertium (and relevant tools)'''.-->
# 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.
# 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.


Line 14: Line 15:
* {{sc|research}}: Tasks related to community management, outreach/marketting, or studying problems and recommending solutions
* {{sc|research}}: Tasks related to community management, outreach/marketting, or studying problems and recommending solutions
* {{sc|quality}}: Tasks related to testing and ensuring code is of high quality.
* {{sc|quality}}: Tasks related to testing and ensuring code is of high quality.
* {{sc|interface}}: Tasks related to user experience research or user interface design and interaction
* {{sc|design}}: Tasks related to user experience research or user interface design and interaction


'''Clarification of "multiple task" types'''
You can find descriptions of some of the mentors here: [[List_of_Apertium_mentors]].
* multi = number of students who can do a given task (GCI's "max instances")
* dup = number of times a student can do the same task


You can find descriptions of some of the mentors [[List_of_Apertium_mentors | here]].
==Task list==


== Task ideas ==
BULK IMPORT COMPLETE.


'''The current task ideas here are for 2019.''' See [[Talk:Task ideas for Google Code-in]] for task ideas from previous years.
Any edits you make to the below tables will not have any impact on the contents of the task tracker. Please edit tasks there.


<table class="sortable wikitable" style="display: none">
=== Misc tools ===
<tr><th>type</th><th>title</th><th>description</th><th>tags</th><th>mentors</th><th>bgnr?</th><th>multi?</th><th>duplicates</th></tr>
{|class="wikitable sortable"
! Category !! Title !! Description !! Mentors
|-
| {{sc|code}} || Unigram tagging mode for <code>apertium-tagger</code> || Edit the <code>apertium-tagger</code> code to allow for lexicalised unigram tagging. This would basically choose the most frequent analysis for each surface form of a word. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015'''|| [[User:Francis Tyers|Francis&nbsp;Tyers]] [[User:Wei2912|Wei En]]
|-
| {{sc|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 <code>.prob</code> format. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Francis Tyers|Francis&nbsp;Tyers]] [[User:Wei2912|Wei En]]
|-
| {{sc|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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Francis Tyers|Francis&nbsp;Tyers]] [[User:Wei2912|Wei En]]
|-
| {{sc|code}} || Prototype unigram tagger. || Write a simple unigram tagger in a language of your choice. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Francis Tyers|Francis&nbsp;Tyers]] [[User:Wei2912|Wei En]]
|-
| {{sc|code}} || Training for unigram tagger || Write a program that trains a model suitable for use with the unigram tagger. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Francis Tyers|Francis&nbsp;Tyers]] [[User:Wei2912|Wei En]]
|-
| {{sc|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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Francis Tyers]] [[User:Firespeaker]]
|-
| {{sc|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$ <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Francis Tyers]] [[User:Firespeaker]]
|-
| {{sc|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 <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Francis Tyers]] [[User:Firespeaker]]
|-
| {{sc|documentation}} || document: setting up libreoffice voikko on Ubuntu/debian || document how to set up libreoffice voikko working with a language on Ubuntu and debian <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Francis Tyers]] [[User:Firespeaker]]
|-
| {{sc|documentation}} || document: setting up libreoffice voikko on Fedora || document how to set up libreoffice voikko working with a language on Fedora <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Francis Tyers]] [[User:Firespeaker]]
|-
| {{sc|documentation}} || document: setting up libreoffice voikko on Windows || document how to set up libreoffice voikko working with a language on Windows <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Francis Tyers]] [[User:Firespeaker]]
|-
| {{sc|documentation}} || document: setting up libreoffice voikko on OS X || document how to set up libreoffice voikko working with a language on OS X <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Francis Tyers]] [[User:Firespeaker]]
|-
| {{sc|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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Francis Tyers]] [[User:Firespeaker]]
|-
| {{sc|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 <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Francis Tyers]] [[user:Firespeaker]]
|-
| {{sc|code}} || geriaoueg hovering the right way || Fix the geriaoueg plugins so that the popup stays there until you hover off a word, just like normal hovering. This will involve a redesign of the way the hovering code works. The plugin also crashes sometimes when dealing with urls, but it seems to be related to this issue. It'd be good if it stops crashing in those cases.<br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Francis Tyers]] [[User:Firespeaker]]
|-
| {{sc|code}} || Translate page feature for geriaoueg firefox & chrome plugins || Add functionality to [[Geriaoueg]] plugins for chrome and firefox that lets them not just gloss words but translate an entire page with apertium, much like existing corporate browser plugins. Don't worry about language detection and other complicated problems for now.<br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Francis Tyers]] [[User:Firespeaker]]
|-
| {{sc|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) <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Firespeaker]]
|-
| {{sc|quality}}, {{sc|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 <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Firespeaker]] [[User:Sereni]]
|-
| {{sc|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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Firespeaker]]
|-
| {{sc|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 [https://svn.code.sf.net/p/apertium/svn/branches/transfer4 here]. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Francis Tyers]] [[User:Mlforcada]]
|-
| {{sc|code}} || make concordancer work with output of analyser || Allow [http://pastebin.com/raw.php?i=KG8ydLPZ 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 ^алдым/алд{{tag|n><px1sg}}{{tag|nom}}/ал{{tag|v><tv}}{{tag|ifi><p1}}{{tag|sg}}, so a search for "px1sg" should bring up this word. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Francis Tyers]] [[User:Firespeaker]]
|-
| {{sc|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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Firespeaker]] [[User:Flammie]]
|-
| {{sc|code}} || let apertium-init support giella pairs || [[Apertium-init]] is a tool to bootstrap a new language module or translation pair, with build rules and minimal data. It doesn't yet support pairs that depend on [http://wiki.apertium.org/w/index.php?title=Category:Giellatekno Giellatekno] language modules, we would like this. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Unhammer]] [[User:Francis Tyers]]
|-
| {{sc|code}} || create lt-compose tool to compose two transducers || This should do what [https://kitwiki.csc.fi/twiki/bin/view/KitWiki/HfstCompose hfst-compose] does, but for [[lttoolbox]] transducers. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Unhammer]]
|-
|}


{{Taskidea
=== Website and apy ===
|type=research, quality, documentation
{|class="wikitable sortable"
|title=Adopt a Wiki page
! Category !! Title !! Description !! Mentors
|description=Request an Apertium wiki account and adopt a wiki page by updating and fixing any issues with it. Examples of things to update might be documentation that still refers to our SVN repo (we're on GitHub now), documentation of new features, clarification of unclear things, indicating that a page no longer reflects how things are done, "archiving" a page that represents deprecated information, or updating documentation to reflect the current options and defaults of various tools.
|-
|tags=wiki
| {{sc|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 <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Francis Tyers]] [[User:Firespeaker]] [[User:Unhammer]], [[User:Sushain]]
|mentors=*
|-
|multi=150
| {{sc|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 [http://sourceforge.net/p/apertium/tickets/50/ ticket 50] for details and progress tracking. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Firespeaker]] [[User:Unhammer]], [[User:Sushain]]
|beginner=yes
|-
}}
| {{sc|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 [http://sourceforge.net/p/apertium/tickets/50/ ticket 50] for details and progress tracking. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel.'''up2015''' || [[User:Firespeaker]] [[User:Unhammer]], [[User:Sushain]]
|-
| {{sc|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 [http://sourceforge.net/p/apertium/tickets/42 ticket 42] for details and progress tracking. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Firespeaker]] [[User:Unhammer]], [[User:Sushain]]
|-
| {{sc|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 [http://sourceforge.net/p/apertium/tickets/42 ticket 42] for details and progress tracking. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Firespeaker]] [[User:Unhammer]], [[User:Sushain]]
|-
| {{sc|code}} || APY API keys || Add API key support to [[APY]] but don't overengineer it. See [http://sourceforge.net/p/apertium/tickets/31/ ticket 31] for details and progress tracking. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Firespeaker]] [[User:Unhammer]] [[User:Xavivars]], [[User:Sushain]]
|-
| {{sc|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 [http://sourceforge.net/p/apertium/tickets/29/ ticket 29] for details and progress tracking. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Firespeaker]] [[User:Unhammer]], [[User:Sushain]]
|-
| {{sc|code}} || Html-tools font issues || This task concerns a font issue in [[Html-tools]]. See [http://sourceforge.net/p/apertium/tickets/27/ ticket 27] for details and progress tracking. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel.'''up2015''' || [[User:Firespeaker]] [[User:Unhammer]], [[User:Sushain]]
|-
| {{sc|code}}, {{sc|interface}} || Auto-select target language || [http://sourceforge.net/p/apertium/tickets/25/ 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). <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Firespeaker]] [[User:Unhammer]] [[User:Francis Tyers]], [[User:Sushain]]
|-
| {{sc|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 [http://sourceforge.net/p/apertium/tickets/9/ ticket 9] for details and progress tracking. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Firespeaker]] [[User:Unhammer]], [[User:Sushain]]
|-
| {{sc|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 [http://sourceforge.net/p/apertium/tickets/7/ ticket 7] for details and progress tracking. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Firespeaker]] [[User:Unhammer]] [[User:Francis Tyers]], [[User:Sushain]]
|-
| {{sc|code}} || Improved file translation functionality for APY || [[APY]] needs logging and to be non-blocking for file translation. See [http://sourceforge.net/p/apertium/tickets/7/ ticket 7] for details and progress tracking. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Firespeaker]] [[User:Unhammer]] [[User:Francis Tyers]], [[User:Sushain]]
|-
| {{sc|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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Firespeaker]], [[User:Sushain]]
|-
| {{sc|interface}} || Html-tools spell-checker interface || Integrate the spell-checker interface that was designed for [[html-tools]]. It should be enablable in the [[html-tools]] config. See [http://sourceforge.net/p/apertium/tickets/6/ ticket 6] for details and progress tracking. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Firespeaker]], [[User:Sushain]]
|-
| {{sc|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 [https://sourceforge.net/p/apertium/svn/HEAD/tree/trunk/apertium-tools/apertium-html-tools/assets/js/translator.js#l42 not on every keystroke]). See [http://sourceforge.net/p/apertium/tickets/6/ ticket 6] for details and progress tracking. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Firespeaker]], [[User:Sushain]]
|-
| {{sc|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 [http://sourceforge.net/p/apertium/tickets/6/ ticket 6] for details and progress tracking. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Firespeaker]] [[User:Unhammer]], [[User:Sushain]]
|-
| {{sc|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 [http://sourceforge.net/p/apertium/tickets/4/ ticket 4] for details and progress tracking. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Firespeaker]], [[User:Sushain]]
|-
| {{sc|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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Firespeaker]] [[User:Unhammer]]
|-
| {{sc|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 [http://sourceforge.net/p/apertium/tickets/1/ ticket 1] for details and progress tracking. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Firespeaker]] [[User:Unhammer]] [[User:Francis Tyers]], [[User:Sushain]]
|-
| {{sc|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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Francis Tyers]]
|-
| {{sc|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. [[/Apy pipedebug|Read more...]] <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Xavivars]] [[User:Unhammer]] [[User:Firespeaker]]
|-
| {{sc|interface}} || Grammar checker interface || Create a grammar checker / proofing html interface. It should send the user input through a given pipeline, and parse the [[Constraint Grammar]] output, turning this back into readable output with underlined words. <!-- next task: clickable words, suggestions --> <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Unhammer]]
|-
| {{sc|code}} || Suggest a word to html-tools || The apertium web-translator should have clickable links for different problems in translation pipeline (marked by #*@) that could lead to a simple form to collect new word suggestions from peoples <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:TommiPirinen]], more mentors plz
|-
| {{sc|code}} || Abumatran paradigm guesser integration to html-tools|| The apertium web-translator could link unknown words to some web based word-classification tool that can add them to dixes<br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:TommiPirinen]], more mentors plz
|-
| {{sc|code}} || User management for paradigm guesser || The abumatran paradigm guesser currently has only admin-driven user management, for lot of people to be able to contribute with proper attributions but not too much vandalism an automated lightweight user registration system should be created <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:TommiPirinen]], more mentors plz
|}


{{Taskidea
=== Pair visualisations ===
|type=research, quality, documentation
{|class="wikitable sortable"
|title=Test instructions on Apertium wiki
! Category !! Title !! Description !! Mentors
|description=Find a page on the Apertium wiki that documents how to do something (hint: check the [http://wiki.apertium.org/wiki/Category:Documentation Documentation] category). Then try to follow the instructions. Check with your mentor when you get stuck. Modify the instructions as necessary. If the instructions are for something that is deprecated or no longer used by the community, either mark them as deprecated (category, banner at top of page, fix links to page) and/or modify them to match current practices.
|-
|tags=wiki
| {{sc|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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Firespeaker]]
|mentors=*
|-
|multi=150
| {{sc|code}}, {{sc|interface}} || 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 [http://leafletjs.com leaflet], [http://polymaps.org polymaps], or [http://openlayers.org openlayers] <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Firespeaker]]
|beginner=yes
|-
}}
| {{sc|code}} || coordinates for Mongolic languages || Using the map [https://en.wikipedia.org/wiki/File:Linguistic_map_of_the_Mongolic_languages.png Linguistic map of the Mongolic languages.png], write a file in [https://en.wikipedia.org/wiki/GeoJSON 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). <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel.'''up2015''' || [[User:Firespeaker]] [[User:Sereni]]
|-
| {{sc|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 [http://leafletjs.com/examples/choropleth.html 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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Firespeaker]]
|-
| {{sc|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 [https://en.wikipedia.org/wiki/GeoJSON GeoJSON] (or similar) format for use by pairmapper's languages-as-areas plugin. Try to be fairly accurate and detailed. Maps to consult include [https://commons.wikimedia.org/wiki/File:Tatarbashkirs1989ru.PNG Tatarsbashkirs1989ru], [https://commons.wikimedia.org/wiki/File:NarodaCCCP.jpg NarodaCCCP] <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Firespeaker]] [[User:Sereni]]
|-
| {{sc|code}} || georeference language areas for North Caucasus Turkic languages || Using the map [https://commons.wikimedia.org/wiki/File:Caucasus-ethnic_en.svg Caucasus-ethnic_en.svg], write a file in [https://en.wikipedia.org/wiki/GeoJSON 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). <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Firespeaker]] [[User:Sereni]]
|-
| {{sc|code}} || georeference language areas for IE and Mongolic Caucasus-area languages || Using the map [https://commons.wikimedia.org/wiki/File:Caucasus-ethnic_en.svg Caucasus-ethnic_en.svg], write a file in [https://en.wikipedia.org/wiki/GeoJSON 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). <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Firespeaker]] [[User:Sereni]]
|-
| {{sc|code}} || georeference language areas for North Caucasus languages || Using the map [https://commons.wikimedia.org/wiki/File:Caucasus-ethnic_en.svg Caucasus-ethnic_en.svg], write a file in [https://en.wikipedia.org/wiki/GeoJSON 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). <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel.'''up2015''' || [[User:Firespeaker]] [[User:Sereni]]
|-
| {{sc|code}} || georeference language areas for Central Asian languages: Uzbek and Uyghur || Using the map [https://commons.wikimedia.org/wiki/File:Central_Asia_Ethnic_en.svg Central_Asia_Ethnic_en.svg], write a file in [https://en.wikipedia.org/wiki/GeoJSON 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). <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Firespeaker]] [[User:Sereni]]
|-
| {{sc|quality}}, {{sc|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). <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015'''|| [[User:Firespeaker]] [[User:Francis Tyers]] [[User:Unhammer]]
|-
| {{sc|quality}}, {{sc|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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Firespeaker]] [[User:Francis Tyers]]
|-
| {{sc|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: [http://svn.code.sf.net/p/apertium/svn/trunk/apertium-tools/wiki-tools/dixTable.py queries svn], [http://svn.code.sf.net/p/apertium/svn/trunk/apertium-tools/family-visualizations/overtime.rb queries svn revisions], [http://wiki.apertium.org/wiki/The_Right_Way_to_count_dix_stems counting bidix stems]. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Firespeaker]]
|-
| {{sc|code}} || Extend visualisation of pairs involving a language in language family visualisation tool || The [http://svn.code.sf.net/p/apertium/svn/trunk/apertium-tools/family-visualizations/ 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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Firespeaker]]
|}


{{Taskidea
=== Begiak ===
|type=research, code
{|class="wikitable sortable"
|title=expand coverage of Kyrgyz to English structural transfer
! Category !! Title !! Description !! Mentors
|description=Find a sentence in Kyrgyz that once the lexical items are added to the bilingual dictionary is not fully (or correctly) parsed by the <tt>kir-eng-transfer</tt> Apertium mode. Determine what rule(s) need(s) to be added (or fixed) to cover this structure, and update <tt>apertium-eng-kir.kir-eng.rtx</tt> accordingly. You will first want to clone and compile [https://github.com/apertium/apertium-eng-kir apertium-eng-kir].
|-
|tags=Kyrgyz, English, recursive transfer, pairs
| {{sc|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 [https://github.com/jonorthwash/phenny the bot on github] and send a pull request when you're done. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Firespeaker]]
|mentors=JNW, popcorndude
|-
|multi=150
| {{sc|quality}} ||fix .randquote || The .randquote function currently fails with "'module' object has no attribute 'Grab'". Fix it. For this task, you should fork [https://github.com/jonorthwash/phenny the bot on github] and send a pull request when you're done. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Firespeaker]]
|dup=10
|-
}}
| {{sc|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 [https://github.com/jonorthwash/phenny the bot on github] and send a pull request when you're done. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Firespeaker]]

|-
{{Taskidea
| {{sc|code}} || make begiak use pm's when doing "follow" || The .follow function currently uses notify, which makes everyone have to see the translations. Make it use PM's (/msg) instead; but if several people follow the same person in the same direction, begiak should not make duplicate translation requests. For this task, you should fork [https://github.com/jonorthwash/phenny the bot on github] and send a pull request when you're done. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Unhammer]]
|type=code
|-
|title=Add recursive transfer support to a language pair that doesn't support it
| {{sc|code}} || make begiak use ISO 639-3 codes for "follow" || The .follow function currently uses doesn't understand "swe-dan" for language pairs that use ISO-639-1 codes like "sv-da". Make it understand the 639-3 code. For this task, you should fork [https://github.com/jonorthwash/phenny the bot on github] and send a pull request when you're done. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[[User:Unhammer]]
|description=Make a branch of an Apertium language pair that doesn't support recursive transfer and call it "recursive transfer". Add vanilla <tt>.rtx</tt> files for both directions, and modify <tt>Makefile.am</tt> and <tt>modes.xml</tt> so that the branch compiles and runs. See [http://wiki.apertium.org/wiki/Apertium-recursive#Incorporating_Into_a_Pair this page] for instructions on how to do this.
|-
|tags=recursive transfer, pairs
| {{sc|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 [https://github.com/jonorthwash/phenny the bot on github] and send a pull request when you're done. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Firespeaker]]
|mentors=JNW, popcorndude
|-
|multi=150
| {{sc|code}}, {{sc|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 [https://github.com/jonorthwash/phenny the bot on github] and send a pull request when you're done. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Firespeaker]]
|dup=10
|-
|beginner=yes
| {{sc|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 [http://wiki.apertium.org/wiki/Begiak Begiak wiki page] and in the code. This will require you to fork [https://github.com/jonorthwash/phenny the bot on github] and send a pull request when you're done. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Firespeaker]]
}}
|-
| {{sc|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 [https://github.com/jonorthwash/phenny the bot on github] and send a pull request when you're done. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Firespeaker]]
|-
| {{sc|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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Firespeaker]]
|-
| {{sc|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 [https://github.com/jonorthwash/phenny the bot on github] and send a pull request when you're done. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Firespeaker]]
|-
| {{sc|code}} || improve phenny/begiak timezone math || Currently [[begiak]] (our IRC bot) is able to scrape and use data on timezone names, but it can't do math, e.g. CEST-5, GMT+3, etc. Make it support this stuff For this task, you should fork [https://github.com/jonorthwash/phenny the bot on github] and send a pull request when you're done. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Firespeaker]]
|-
| {{sc|code}} || make timezone conversion for phenny/begiak support city names too || Add city name support for timezone conversion in the time plugin for [[begiak]] (our IRC bot). It currently accepts a time in one timezone and a destination timezone, and converts the time, e.g. ".tz 335EST in CET" returns "835CET". But it can't do ".tz 335Indianapolis in CET". You should have it rely on the city support code that's already there. For this task, you should fork [https://github.com/jonorthwash/phenny the bot on github] and send a pull request when you're done. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Firespeaker]]
|-
| {{sc|code}} || make city name support phenny/begiak timezone plugin work better || 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). The current timezone plugin works, but doesn't support a lot of cities—make it support a lot. For this task, you should fork [https://github.com/jonorthwash/phenny the bot on github] and send a pull request when you're done. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Firespeaker]]
|-
| {{sc|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 [https://github.com/jonorthwash/phenny the bot on github] and send a pull request when you're done. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Firespeaker]]
|-
| {{sc|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 [https://github.com/jonorthwash/phenny the bot on github] to work on this task and send a pull request when you're done. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Firespeaker]]
|-
| {{sc|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 [https://github.com/jonorthwash/phenny the bot on github] and send a pull request when you're done. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Firespeaker]]
|-
| {{sc|quality}} || Sync begiak with origin and submit PRs back for our changes || For this task, sync [[begiak]] with origin, and send them pull requests for our local changes of relevance. The synching will probably get a little messy, and the pull requests should ideally be one PR per feature (if possible). [http://mispdev.blogspot.com/2013/02/github-cherry-picking-commits-from-pull.html This document] may be of use.<br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Firespeaker]], [[User:Unhammer]]
|}


{{Taskidea
=== Apertium linguistic data ===
|type=code
{|class="wikitable sortable"
|title=Add 2 recursive transfer rules to a language pair
! Category !! Title !! Description !! Mentors
|description=Add two recursive transfer rules to an Apertium language pair. These rules consist of, at minimum, a syntactic pattern to match, a phrase to combine them into, and an output pattern ([http://wiki.apertium.org/wiki/Apertium-recursive#Further_Documentation more documentation here]). If the language pair does not support recursive transfer, make sure [http://wiki.apertium.org/wiki/Apertium-recursive#Incorporating_Into_a_Pair to set it up] first. Submit your work as a pull request to a new branch ("recursive", "rtx", or similar) of the repository on GitHub.
|tags=recursive transfer, pairs
|mentors=JNW, popcorndude
|multi=150
|dup=20
}}

{{Taskidea
|type=code
|mentors=JNW, wei2912, padth4i, popcorndude
|title=Use apertium-init to bootstrap a new language pair
|description=Use the [[Apertium-init]] script to bootstrap a new translation pair between two languages which have monolingual modules already in Apertium. To see if a translation pair has already been made, search our repositories on [https://github.com/apertium/ github], and especially ask on IRC. Add 100 common stems to the dictionary. Your submission should be in the form of a repository on github that we can fork to the Apertium organisation.
|tags=languages, bootstrap, dictionaries, translators
|beginner=yes
|multi=25
}}

{{Taskidea
|type=code
|mentors=JNW, wei2912, padth4i, popcorndude
|title=Use apertium-init to bootstrap a new language module
|description=Use the [[Apertium-init]] script to bootstrap a new language module that doesn't currently exist in Apertium. To see if a language is available, search our repositories on [https://github.com/apertium/ github], and especially ask on IRC. Add enough stems and morphology to the module so that it analyses and generates at least 100 correct forms. Your submission should be in the form of a repository on github that we can fork to the Apertium organisation. [[Task ideas for Google Code-in/Add words from frequency list|Read more about adding stems...]]
|tags=languages, bootstrap, dictionaries
|beginner=yes
|multi=25
}}

{{Taskidea
|type=code
|mentors=JNW, sevilay, Unhammer, marcriera, padth4i, Oguz, popcorndude
|title=Write 10 lexical selection for an existing translation pair
|description=Add 10 lexical selection rules to an existing translation pair. Submit your work as a github pull request to that pair. [[Task ideas for Google Code-in/Add lexical-select rules|Read more...]]
|tags=languages, bootstrap, lexical selection, translators
|multi=25
|dup=5
}}

{{Taskidea
|type=code
|mentors=JNW, Unhammer, padth4i, Oguz, popcorndude
|title=Write 10 constraint grammar rules for an existing language module
|description=Add 10 constraint grammar rules to an existing language module for a language that you know. Submit your work as a github pull request to that pair. [[Task ideas for Google Code-in/Add constraint-grammar rules|Read more...]]
|tags=languages, bootstrap, constraint grammar
|multi=25
|dup=5
}}

{{Taskidea
|type=research
|mentors=anakuz, fotonzade
|title=Syntactic annotation of text
|description=Pick a text of about 200 words and make a syntactic annotation for it according to the Universal Dependencies treebank. UD Annotatrix can be used for visualisation. Consult with your mentor about the language.
|tags=UD, trees, annotation
}}

{{Taskidea
|type=research
|mentors=JNW,ftyers, fotonzade, anakuz, Oguz
|title=Create a UD-Apertium morphology mapping
|description=Choose a language that has a Universal Dependencies treebank and tabulate a potential set of Apertium morph labels based on the (universal) UD morph labels. See Apertium's [[list of symbols]] and [http://universaldependencies.org/ UD]'s POS and feature tags for the labels.
|tags=morphology, ud, dependencies
|beginner=
|multi=5
}}

{{Taskidea
|type=research
|mentors=JNW, ftyers, fotonzade, anakuz
|title=Create an Apertium-UD morphology mapping
|description=Choose a language that has an Apertium morphological analyser and adapt it to convert the morphology to UD morphology
|tags=morphology, ud, dependencies
|beginner=
|multi=5
}}

{{Taskidea
|type=quality
|title=Install Apertium and verify that it works
|description=See [[Installation]] for instructions and if you encounter any issues along the way, document them and/or improve the wiki instructions!
|tags=bash
|mentors=ftyers, JNW, Unhammer, anakuz, Josh, fotonzade, sevilay, eirien, wei2912, padth4i, jjjppp
|multi=150
|beginner=yes
}}

{{Taskidea
|type=research
|title=Write a contrastive grammar
|description=Document 6 differences between two (preferably related) languages and where they would need to be addressed in the [[Apertium pipeline]] (morph analysis, transfer, etc). Use a grammar book/resource for inspiration. Each difference should have no fewer than 3 examples. Put your work on the Apertium 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.
|mentors=mlforcada, JNW, Josh, xavivars, fotonzade, sevilay, khannatanmai, dolphingarlic, padth4i
|tags=wiki, languages
|beginner=yes
|multi=40
}}

{{Taskidea
|type=quality
|mentors=mlforcada, anakuz, xavivars, fotonzade, sevilay, Unhammer, eirien, dolphingarlic, wei2912, marcriera, padth4i, Oguz, JNW, jjjppp
|tags=xml, dictionaries
|title=Identify and add 100 new entries to the bilingual dictionary for the %AAA%-%BBB% language pair
|description=Our translation systems require large lexicons so as to provide production-quality coverage of any input data. This task requires the student to add 100 new words to a bidirectional dictionary. With the help of your mentor, identify some text in either %AAA% or %BBB% and run it through Apertium's %AAA%-%BBB% translator to identify 50 unknown forms. Add the stems of these forms to the analyser in an appropriate way so that these words are analysed correctly. Your submission should be in the form of a pull request to each of the appropriate repositories on GitHub. [http://wiki.apertium.org/wiki/Task_ideas_for_Google_Code-in/Grow_bilingual More instructions for this task here]...
|multi=40
|beginner=yes
}}

{{Taskidea
|type=quality
|mentors=mlforcada, anakuz, xavivars, fotonzade, ftyers, sevilay, eirien, dolphingarlic, wei2912, marcriera, padth4i, Oguz, JNW
|tags=xml, dictionaries
|title=Identify and add 250 new entries to the bilingual dictionary for the %AAA%-%BBB% language pair
|description=Our translation systems require large lexicons so as to provide production-quality coverage of any input data. This task requires the student to add 250 new words to a bidirectional dictionary. With the help of your mentor, identify some text in either %AAA% or %BBB% and run it through Apertium's %AAA%-%BBB% translator to identify 50 unknown forms. Add the stems of these forms to the analyser in an appropriate way so that these words are analysed correctly. Your submission should be in the form of a pull request to each of the appropriate repositories on GitHub. [http://wiki.apertium.org/wiki/Task_ideas_for_Google_Code-in/Grow_bilingual More instructions for this task here]...
|dup=20
|beginner=no
}}

{{Taskidea
|type=quality
|mentors=fotonzade, JNW, ftyers, anakuz, xavivars, mlforcada, shardulc, sevilay, Unhammer, dolphingarlic, wei2912, marcriera
|tags=xml, dictionaries
|title=Post-edit 500 sentences of any public domain text from %AAA% to %BBB%
|description=Many of our systems benefit from statistical methods used with (ideally public domain) bilingual data. For this task, you need to translate a public domain text from %AAA% to %BBB% using any available machine translation system and clean up the translations yourself manually. Commit the post-edited texts (in plain text format) to an existing (via pull request) or if needed new github repository for the language pair in dev/ or texts/ folder. The texts are subject to mentor approval.
|multi=10
|beginner=yes
}}

{{Taskidea
|type=quality
|mentors=mlforcada, anakuz, xavivars, fotonzade, sevilay, dolphingarlic, wei2912, marcriera, padth4i
|tags=disambiguation
|title=Disambiguate 500 tokens of text in %AAA%
|description=Run some text through a morphological analyser and disambiguate the output. Discuss with the mentor beforehand to approve the choice of language and text. [http://wiki.apertium.org/wiki/Task_ideas_for_Google_Code-in/Manually_disambiguate_text Read more]...
|multi=yes
}}

{{Taskidea
|type=research
|mentors=eirien, anakuz, marcriera, padth4i
|tags=dictionaries
|title=Categorise 100 words from frequency list in %AAA%
|description=Categorise words by frequency into one of the major part-of-speech categories. You will receive a frequency list. Work from top to bottom. At the beginning of each line you should put a letter which categorises the word form by its part-of-speech. For example n for noun, v for verb, etc. [http://wiki.apertium.org/wiki/Task_ideas_for_Google_Code-in/Categorise_words_from_frequency_list Read more]... <!-- Wouldn't it be better for them to to add directly to the analyser? Easier for us, and more educational for them! -JNW -->
|multi=yes
|beginner=yes
}}

{{Taskidea
|type=research
|mentors=eirien, anakuz, sevilay, marcriera
|tags=dictionaries
|title=Categorise 500 words from frequency list in %AAA%
|description=Categorise words by frequency into one of the major part-of-speech categories. You will receive a frequency list. Work from top to bottom. At the beginning of each line you should put a letter which categorises the word form by its part-of-speech. For example n for noun, v for verb, etc. [http://wiki.apertium.org/wiki/Task_ideas_for_Google_Code-in/Categorise_words_from_frequency_list Read more]... <!-- Wouldn't it be better for them to to add directly to the analyser? Easier for us, and more educational for them! -JNW -->
|multi=yes
}}

{{Taskidea
|type=research
|mentors=khannatanmai, sevilay, padth4i
|tags=evaluation
|title=Evaluate an existing apertium pair %AAA% to %BBB% on a text
|description= Pick an existing apertium pair and get a parallel text for that language pair. Translate %AAA% to %BBB% and evaluate the translation using an automatic evaluation metric like BLEU or/and evaluate it manually. [http://wiki.apertium.org/wiki/Task_ideas_for_Google_Code-in/Evaluation_of_translation_of_an_existing_pair Read more]...
}}

{{Taskidea
|type=code, research
|title=Add apertium-anaphora support to a new language pair
|description=Make a branch of an Apertium language pair that doesn't use apertium-anaphora yet, and call it "anaphora". Manually add the correct antecedent to side ref of the anaphors in the output of biltrans, and modify t1x to change the anaphor based on its antecedent. Verify that it runs and gives the correct anaphor. See the [http://wiki.apertium.org/wiki/Anaphora_Resolution_Module documentation] of the apertium-anaphora module for help.
|tags=apertium-anaphora, transfer
|mentors=khannatanmai
}}

{{Taskidea
|type=code, research
|title=Add one markable to the arx file for a language pair
|description=The arx file is where we tell the anaphora resolution algorithm which patterns to detect and score, when we want to find the antecedent of an anaphor. Add one rule in this file which can help the algorithm find out the antecedent of an anaphor - specify the pattern to detect and the positive or negative score you want to give to the noun in this pattern. See the [http://wiki.apertium.org/wiki/Anaphora_Resolution_Module documentation] of the apertium-anaphora module for help.
|tags=apertium-anaphora, anaphora resolution
|mentors=khannatanmai, popcorndude
}}

{{Taskidea
|type=code
|title=Write a TextMate grammar for CG-3 syntax highlighting
|description=We want CG-3 files to be syntax highlighted in Github. They use TextMate-compatible grammars. See [https://github.com/TinoDidriksen/cg3/issues/48 issue 48] in the CG-3 repo.
|tags=cg, editors, tools
|mentors=Unhammer
}}

{{Taskidea
|type=code
|title=Make Apertium IRC bot's messaging system case-insensitive
|description=[[Begiak]] is Apertium's IRC bot. It has a messaging system, where you can say e.g. "begiak, tell randomuser thanks for the tip!" or "begiak: ask randomuser where they filed that issue", and the bot will deliver the message next time it sees randomuser say something. There's been [https://github.com/apertium/phenny/issues/488 a request] for begiak to recognise case-insensitive commands. Your job is to create a fix for this and submit a pull request to the repository with the fix.
|tags=python, irc
|beginner=yes
|mentors=JNW, popcorndude
}}

{{Taskidea
|type=code
|title=Make Apertium's IRC bot's updating of Apertium's wiki format numbers better
|description=[[Begiak]] is Apertium's IRC bot. It has a module that allows users on IRC to trigger a script that updates the Apertium wiki with statistics about Apertium modules. There have been [https://github.com/apertium/phenny/issues/485 complaints about the formatting of the numbers it writes]. Your job is to create a fix for this and submit a pull request to the repository with the fix.
|tags=python, irc, wiki
|beginner=yes
|mentors=JNW, popcorndude
}}

{{Taskidea
|type=code
|title=Create a new init script for Apertium's IRC bot
|description=[[Begiak]] is Apertium IRC bot. It runs on a low-power server that runs Debian. Sometimes that server is reset, and we have to manually restart begiak. The init script that used to control begiak no longer seems to work. Your task is to create a new init script that supports the normal sort of actions that init scripts do, and also the following options for begiak: the specific path to run it from, the user to run it as, miscellaneous arguments, and a log file to log its output. This init script should live in the repository in a reasonable place. There is a [https://github.com/apertium/phenny/issues/484 github issue describing this task].
|tags=python, debian, init, irc
|mentors=JNW
}}

{{Taskidea
|type=documentation
|mentors=JNW, flammie, popcorndude
|title=Add comments to a dictionary defining the symbols used in it
|description=Add comments to a monolingual or bilingual dictionary file (.lexc/.dix, .dix) in the symbol definitions area that clarify what each symbol stands for. Also direct the comment reader to the Apertium wiki page on symbol definitions for more information.
|tags=dictionaries
|dup=10
}}

{{Taskidea
|type=documentation
|mentors=JNW, popcorndude
|title=find symbols that aren't on the list of symbols page
|description=Go through the symbol definitions in Apertium dictionaries on GitHub (.lexc and .dix format), and document any symbols you don't find on the [[List of symbols]] page. This task is fulfilled by adding at least one class of related symbols (e.g., xyz_*) or one major symbol (e.g., abc), along with notes about what it means.
|tags=wiki,dictionaries
}}

{{Taskidea
|type=documentation
|title=document usage of the apertium-separable module
|mentors=JNW, khannatanmai, popcorndude
|description=Document which language pairs have included the [[apertium-separable]] module in its package, which have beta-tested the lsx module, and which are good candidates for including support for lsx. Add to [[Lsx_module/supported_languages|this wiki page]]
|tags=lsx, dictionaries, wiki
}}

{{Taskidea
|type=quality
|title=Beta-test the apertium-separable module
|mentors=JNW, ftyers, wei2912, khannatanmai, dolphingarlic, popcorndude
|description= [[Lsx_module#Creating_the_lsx-dictionary|create an lsx dictionary]] in both directions for any relevant and existing language pair that doesn't yet support it (as a "separable" branch in its GitHub repository), adding 10-30 entries to it in one or both directions. Thoroughly test to make sure the output is as expected. Report bugs/non-supported features and add them to [[Lsx_module#Future_work| future work]]. Document your tested language pair by listing it under [[Lsx_module#Beta_testing]] and in [[Lsx_module/supported_languages|this wiki page]]
|tags=lsx, dictionaries
|multi=yes
|dup=20
}}

{{Taskidea
|type=code, quality
|title=script to test coverage of analyser over corresponding wikipedia corpus
|mentors=JNW, wei2912
|description=Write a script (in python or ruby) that tests coverage of an Apertium analyser over the latest Wikipedia corpus in that language. One mode of this script should check out a specified language module to a given directory, compile it (or updates it if already existant), and then get the most recently Wikipedia nightly archive for that language and run coverage over it (as much in RAM if possible). In another mode, it should compile the language pair in a docker instance that it then disposes of after successfully running coverage. Scripts exist in Apertium already for finding where a Wikipedia is, extracting a Wikipedia archive into a text file, and running coverage. Ask a mentor for help finding these scripts.
|tags=python, ruby, wikipedia
}}

{{Taskidea
|type=code, design
|title=Make source browser headings sticky at bottom of window
|description=Make headings that are out of view (either below when at the top, or above when scrolled down) sticky on [https://apertium.github.io/apertium-on-github/source-browser.html Apertium source browser], so that it's clear what other headings exist. There is a [https://github.com/apertium/apertium-on-github/issues/22 github issue for this].
|tags=css, javascript, html, web
|mentors=sushain, JNW, xavivars
|multi=
|beginner=no
}}

{{Taskidea
|type=code, design
|mentors=JNW, jjjppp, sushain, dolphingarlic
|tags=d3, javascript
|title=Integrate globe viewer into language family visualiser interface
|description=The [https://github.com/apertium/family-visualizations family visualiser interface] has four info boxes when a language is clicked on, and one of those boxes is empty. The [https://github.com/jonorthwash/Apertium-Global-PairViewer globe viewer] provides a globe visualisation of languages that we can translate a given language to and from. This task is to integrate the globe viewer for a specific language into the fourth box in the family visualiser. There is an [https://github.com/jonorthwash/Apertium-Global-PairViewer/issues/32 associated GitHub issue].
|multi=no
|beginner=no
}}

{{Taskidea
|type=code
|mentors=JNW, jjjppp, dolphingarlic
|tags=d3, javascript
|title=Change hard-coded values to dynamic in the globe viewer's code
|description=The [https://github.com/jonorthwash/Apertium-Global-PairViewer globe viewer] provides a globe visualisation of languages that we can translate a given language to and from. This task is to clean up its source code by changing hard-coded values (e.g. scales and object sizes) to dynamic values so that the code will be easier to maintain in the future. There is an [https://github.com/jonorthwash/Apertium-Global-PairViewer/issues/24 associated GitHub issue].
|multi=no
|beginner=no
}}

{{Taskidea
|type=code
|mentors=JNW, jjjppp, dolphingarlic
|tags=d3, javascript
|title=Fix fading for flyers in globe viewer
|description=The [https://github.com/jonorthwash/Apertium-Global-PairViewer globe viewer] provides a globe visualisation of languages that we can translate a given language to and from. Currently, the flyers, which are the 3D colored connections, fade as either end of the connection goes out of the current scope of the globe. However, this causes flyers that connect two far away languages to be invisible (see issue for example). This task is to change the current fading function to account for far away connections and allow them to stay visible. There is an [https://github.com/jonorthwash/Apertium-Global-PairViewer/issues/22 associated GitHub issue].
|multi=no
|beginner=yes
}}

{{Taskidea
|type=design
|mentors=JNW, ftyers
|tags=UD, design, svg
|title=Design a logo for UD Annotatrix
|description=UD Annotatrix needs a better logo, or set of logos. Have a look at the [https://github.com/jonorthwash/ud-annotatrix/tree/master/server/public current logos] and [https://jonorthwash.github.io/ud-annotatrix/ see them in use]. Design a potential replacement logo that meets the following requirements: somehow incorporates what UD Annotatrix is / is for, is not "cluttered" (like the current cat logo), and can be used at different sizes.
|multi=yes
|beginner=no
}}


{{Taskidea
|type=quality, documentation, design
|mentors=*
|tags=video, tutorial
|title=Video tutorial: installing Apertium, adding to dictionary, and submitting a PR
|description=Post a video online that (1) demonstrates how to install Apertium on an operating system of your choice, (2) demonstrates how to clone and compile an Apertium translation pair of your choice, (3) shows how to add a new word to the dictionary (categorised correctly), and (4) shows how to submit the updated dictionary as a pull request to Apertium's git repository. Add a link to the video on the [http://wiki.apertium.org/wiki/Installation#Installation_Videos installation videos page] of the Apertium wiki.<br/>The title of the video should make it easy to find, and so should probably be similar to the title of this task. We recommend a screencast with voice-over posted to YouTube, but the format and venue are up to you as long as it is publicly accessible for long term. Here are [https://www.youtube.com/playlist?list=PLHldb9r6QkVFsuxlAoVS-OL32aurUOZLC some example videos] that are relevant but that could probably be improved upon.<br/>The video **does not have to be in English**; we can evaluate it in any of the following languages: %ZZZ%. Please let us know when you claim the task what language you plan to create the video in, so that we know which mentor(s) should primarily work to evaluate your task.
|multi=200
|beginner=yes
}}

{{Taskidea
|type=quality
|mentors=mlforcada, anakuz, xavivars, fotonzade, sevilay, Unhammer, eirien, dolphingarlic, wei2912, marcriera, padth4i, Oguz, JNW, jjjppp
|tags=xml, dictionaries
|title=Identify and add 100 new entries to a bilingual dictionary
|description=Our translation systems require large lexicons so as to provide production-quality coverage of any input data. This task requires the student to add 100 new words to a bidirectional dictionary. Choose one of the language pairs listed below, and with the help of your mentor, identify some text in one of the two languages, and run the text through Apertium's translator for that language pair to identify 100 unknown forms. As needed, add the stems of these forms to the individual languages' analysers in an appropriate way so that these words are analysed correctly. Your submission should be in the form of a pull request to each of the appropriate repositories on GitHub.<br/>The language pairs we can mentor for this task are the following: %ALLPAIRS%.<br/> [http://wiki.apertium.org/wiki/Task_ideas_for_Google_Code-in/Grow_bilingual More instructions for this task here]...
|multi=40
|dup=10
|beginner=yes
}}

{{Taskidea
|type=quality
|mentors=mlforcada, anakuz, xavivars, fotonzade, ftyers, sevilay, eirien, dolphingarlic, wei2912, marcriera, padth4i, Oguz, JNW
|tags=xml, dictionaries
|title=Identify and add 250 new entries to a bilingual dictionary
|description=Our translation systems require large lexicons so as to provide production-quality coverage of any input data. This task requires the student to add 250 new words to a bidirectional dictionary. Choose one of the language pairs listed below, and with the help of your mentor, identify some text in one of the two languages, and run the text through Apertium's translator for that language pair to identify 250 unknown forms. As needed, add the stems of these forms to the individual languages' analysers in an appropriate way so that these words are analysed correctly. Your submission should be in the form of a pull request to each of the appropriate repositories on GitHub.<br/>The language pairs we can mentor for this task are the following: %ALLPAIRS%.<br/> [http://wiki.apertium.org/wiki/Task_ideas_for_Google_Code-in/Grow_bilingual More instructions for this task here]...
|multi=40
|dup=10
|beginner=no
}}

{{Taskidea
|type=quality
|mentors=fotonzade, JNW, ftyers, anakuz, xavivars, mlforcada, shardulc, sevilay, Unhammer, dolphingarlic, wei2912, marcriera
|tags=xml, dictionaries
|title=Post-edit 500 sentences of a public domain text
|description=Many of our systems benefit from statistical methods used with (ideally public domain) bilingual data. For this task, you need to translate a public domain text using an available machine translation system (Apertium preferred) and clean up the translation yourself manually. Commit the source text and post-edited translation (in plain text format) to an existing (via pull request) or if needed new github repository for the language pair in dev/ or texts/ folder. The texts are subject to mentor approval.<br/>The language pairs we can hypothetically mentor for this task (pending their existence) are the following: %ALLPAIRS%.
|multi=40
|dup=10
|beginner=yes
}}

{{Taskidea
|type=research
|mentors=khannatanmai, sevilay, padth4i
|tags=evaluation
|title=Evaluate an existing Apertium translation pair on a text
|description= Pick an existing Apertium language pair and get a parallel text for that language pair. Translate the text using the Apertium translation pair and evaluate the translation using an automatic evaluation metric like BLEU and/or evaluate it manually.<br/>The language pairs we can mentor for this task (pending their existence) are the following: %ALLPAIRS%.<br/>[http://wiki.apertium.org/wiki/Task_ideas_for_Google_Code-in/Evaluation_of_translation_of_an_existing_pair Read more]...
|multi=40
|dup=10
}}

<!-- {{Taskidea
|type=quality
|mentors=*
|tags=localisation
|title=Complete website localisation in a language not fully localised
|description=
|multi=
}} -->

<!-- NEW TASKS BELOW -->



</table>

==Mentors==

These are languages that can be substituted for AAA and/or BBB for tasks each mentor is listed to mentor above.

If you do not see your language here, ask. We may be able to mentor or find you a mentor.

{|class=wikitable
! Mentor !! Languages
|-
|-
| ftyers || eng, spa, cat, fra, nor, rus, por, swe, tur, gag, aze
| {{sc|code}}, {{sc|quality}} || {{sc|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 dictionary. Add words to the bilingual dictionary and test that the new vocabulary works. Check [http://opus.lingfil.uu.se The OPUS bilingual corpus repository] for sentence-aligned corpora such as Tatoeba. [[/Grow bilingual|Read more]]... <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015'''(some) || [[User:Mlforcada]] [[User:Raveesh]] [[User:Vin-ivar]] [[User:Aida]] [[User:Putti]]
|-
|-
| JNW || eng, spa, fra, rus, tur, gag, aze, kaz, kir, kaa, tat, bak, kum, nog, kaa, uzb, uig, crh, khk, yid
| {{sc|code}}, {{sc|quality}} || {{sc|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. Check [http://opus.lingfil.uu.se The OPUS bilingual corpus repository] for sentence-aligned corpora such as Tatoeba. [[/Add words|Read more]]... <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015'''(some) || [[User:Mlforcada]] [[User:ilnar.salimzyan]] [[User:Xavivars]] [[User:Bech]] [[User:Jimregan|Jimregan]] [[User:Unhammer]] [[User:Nikant]] [[User:Fulup|Fulup]] [[User:tunedal]] [[User:Juanpabl]][[User:Youssefsan|Youssefsan]] [[User:Firespeaker]] [[User:Raveesh]] [[User:vin-ivar]] [[User:Aida]] [[User:Putti]]
|-
|-
| anakuz || grn, spa, por, rus
| {{sc|code}}, {{sc|quality}} || {{sc|multi}}=2 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. '''up2015''' [[/Fix using LanguageTool|Read more]]... || [[User:Xavivars]]
|-
|-
| fotonzade || eng, tur, aze, uig, tat, crh, kmr, ckb, fas
| {{sc|code}}, {{sc|quality}} || {{sc|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. [[/Add transfer rule|Read more]]... <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015'''[some] || [[User:Mlforcada]] [[User:ilnar.salimzyan]] [[User:Unhammer]] [[User:Nikant]] [[User:Fulup|Fulup]] [[User:Juanpabl]] [[User:Raveesh]] [[User:vin-ivar]] [[User:Aida]]
|-
|-
| xavivars || cat, spa, eng, fra
| {{sc|code}}, {{sc|quality}} || {{sc|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. [[/Add lexical-select rules|Read more]]... <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' (a few: need to add more LPs) || [[User:Mlforcada]], [[User:Francis Tyers]] [[User:ilnar.salimzyan]] [[User:Unhammer]] [[User:Nikant]] [[User:Firespeaker]] [[User:Putti]] [[User:Raveesh]] [[User:vin-ivar]] [[User:Aida]] (more mentors welcome)
|-
|-
| Unhammer || nno, nob, swe, dan, fao, sme, ovd
| {{sc|code}} || {{sc|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. [[/Setup and add lexical selection|Read more]]... <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Mlforcada]], [[User:Francis Tyers]] [[User:Unhammer]] [[User:Fulup|Fulup]] [[User:pankajksharma]] [[User:Aida]] (more mentors welcome)
|-
|-
| shardulc || eng, fra, mar, hin, urd, kan
| {{sc|code}}, {{sc|quality}} || {{sc|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. [[/Add constraint-grammar rules|Read more]]... <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' (some) || [[User:Mlforcada]], [[User:Francis Tyers]] [[User:ilnar.salimzyan]] [[User:Unhammer]] [[User:Fulup|Fulup]] [[User:Aida]] (more mentors welcome)
|-
|-
| m-alpha || eng, fra, byv
| {{sc|code}} || {{sc|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. [[/Setup constraint grammar for a pair|Read more]]... <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' (some) || [[User:Mlforcada]], [[User:Francis Tyers]] [[User:Unhammer]] [[User:Aida]]
|-
|-
| popcorndude || eng, spa, cym, heb
| {{sc|quality}} || {{sc|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 [http://www.lucysoftware.com/english/machine-translation/lucy-lt-kwik-translator-/ Lucy], [http://www.reverso.net/text_translation.aspx?lang=EN Reverso], [http://www.systransoft.com/free-online-translation Systran] or [http://www.freetranslation.com/ 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 [https://en.wikipedia.org/wiki/Segmentation_Rules_eXchange 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.<br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Mlforcada]] [[User:Jimregan|Jimregan]] [[User:Aida]] (alternative mentors welcome)
|-
|-
| sevilay || eng, ara, tur, kaz, aze, tat, gag, uig, uzb, crh, kum
| {{sc|documentation}} || {{sc|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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Mlforcada]] [[User:Jimregan|Jimregan]] [[User:Youssefsan|Youssefsan]] [[User:Aida]] (alternative mentors welcome)
|-
|-
| eirien || sah, rus, eng
| {{sc|research}} || {{sc|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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Francis Tyers]] [[User:Firespeaker]] [[User:Sereni]] [[User:Aida]]
|-
|-
| khannatanmai || eng, hin
| {{sc|research}} || {{sc|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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Francis Tyers]]
|-
|-
| flammie || fin, krl, olo, hun, nio, kpv, mdf, tlh, fra, swe, eng, est, ekk, vro
| {{sc|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 <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Mlforcada]]
|-
|-
| dolphingarlic || afr, deu, eng
| {{sc|research}} || {{sc|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++. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Francis Tyers]]
|-
|-
| wei2912 || eng, zho
| {{sc|code}} || Write a program to extract Bulgarian inflections || Write a program to extract Bulgarian inflection information for nouns from Wiktionary, see [https://en.wiktionary.org/wiki/Category:Bulgarian_nouns Category:Bulgarian nouns] <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Francis Tyers]]
|-
|-
| marcriera|| cat, spa, eng, ron
| {{sc|quality}} || {{sc|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 <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Francis Tyers]] [[User:Mlforcada]] [[User:Unhammer]] [[User:Aida]]
|-
|-
| padth4i|| eng, mal, hin
| {{sc|code}} || {{sc|multi}} {{sc|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 (<b pos="..."/>) are output and are in the same order as in the source file. This may involve introducing new simple blanks (<b/>) 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) <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Mlforcada]] (alternative mentors welcome)
|-
| {{sc|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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Mlforcada]] (alternative mentors welcome)
|-
|-
| Oguz|| eng, tur, uig, aze, crh
| {{sc|code}} || {{sc|multi}} {{sc|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 (<b pos="..."/>) are output and are in the same order as in the source file. This may involve introducing new simple blanks (<b/>) 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) <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Mlforcada]] (alternative mentors welcome)
|-
|-
| mlforcada || eng, cat, eus, fra, por, glg, spa, gle, bre
| {{sc|code}} || {{sc|multi}} Start a language pair involving Interlingua || Start a new language pair involving [https://en.wikipedia.org/wiki/Interlingua Interlingua] using the [http://wiki.apertium.org/wiki/Apertium_New_Language_Pair_HOWTO 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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015'''|| [[User:Mlforcada]] [[User:Youssefsan|Youssefsan]] (will reach out also to the interlingua community)
|-
|-
| ayushjain || eng, hin
| {{sc|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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Firespeaker]] [[User:Francis Tyers]] [[User:Raveesh]] [[User:Aida]] [[User:Unhammer]]
|-
|-
| jjjppp || eng, lat
| {{sc|research}} || Gujarati Parallel Corpus and Alignment || Collect some parallel corpus for guj-hin, run GIZA++ and verify the alignments. || [[User:Raveesh]]
|-
| {{sc|research}} || Urdu-Sindhi Bilingual Dictionary || Add words to bilingual dictionary for Urdu-Sindhi || [[User:Raveesh]]
|-
| {{sc|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]]
|-
| {{sc|research}} || Hindi-Gujarati Bilingual Dictionary || create a small bilingual dictionary for Hindi-Gujarati || [[User:Raveesh]]
|-
| {{sc|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. '''up2015''' || [[User:Raveesh]] [[User:Vin-ivar]]
|-
| {{sc|research}} || Marathi evaluation || Manually tag 500 random Marathi words (based on the monodix) for evaluation '''up2015''' || [[User:Vin-ivar]]
|-
| {{sc|research}} || Swedish tagging evaluation || Run a 500 word Wikipedia page through the Swedish tagger (languages/apertium-swe), and correct the mistakes it makes '''up2015''' || [[User:Unhammer]]
|-
| {{sc|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++. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Francis Tyers]] [[User:Sereni]]
|-
| {{sc|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++. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Francis Tyers]] [[User:Sereni]]
|-
| {{sc|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++. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Francis Tyers]] [[User:Sereni]]
|-
| {{sc|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++. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Francis Tyers]] [[User:Sereni]]
|-
| {{sc|research}} || Tag and align Danish--Norwegian corpus || Take a Danish--Norwegian corpus, for example OpenSubtitles (da-nb only), tag it using the [[apertium-dan-nor]] pair, and word-align it using GIZA++. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Unhammer]]
|-
| {{sc|research}} || Tag and align Swedish--Norwegian corpus || Take a Swedish--Norwegian corpus, for example OpenSubtitles (sv-nb only), tag it using the [[apertium-swe-nor]] pair, and word-align it using GIZA++. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Unhammer]]
|-
| {{sc|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++. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Francis Tyers]] [[User:Sereni]]
|-
| {{sc|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++. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Francis Tyers]] [[User:Sereni]]
|-
| {{sc|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++. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Francis Tyers]] [[User:Sereni]]
|-
| {{sc|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++. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Francis Tyers]] [[User:Sereni]]
|-
| {{sc|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++. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015'''|| [[User:Francis Tyers]] [[User:Sereni]]
|-
| {{sc|code}} || Write a program to extract Greek noun inflections || Write a program to extract Greek inflection information for nouns from Wiktionary, see [https://en.wiktionary.org/wiki/Category:Greek_nouns Category:Greek nouns] <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Francis Tyers]]
|-
| {{sc|code}} || Write a program to extract Greek verb inflections || Write a program to extract Greek inflection information for verbs from Wiktionary, see [https://en.wiktionary.org/wiki/Category:Greek_verbs Category:Greek verbs] <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Francis Tyers]]
|-
| {{sc|code}} || Write a program to extract Greek adjective inflections || Write a program to extract Greek inflection information for adjectives from Wiktionary, see [https://en.wiktionary.org/wiki/Category:Greek_adjectives Category:Greek adjectives] <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Francis Tyers]]
|-
| {{sc|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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Francis Tyers]] [[User:Trondtr]]
|-
| {{sc|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 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 https://svn.code.sf.net/p/apertium/svn/incubator/apertium-aze]. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Firespeaker]] [[User:Francis Tyers]]
|-
| {{sc|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 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 https://svn.code.sf.net/p/apertium/svn/incubator/apertium-aze]. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Firespeaker]] [[User:Francis Tyers]]
|-
| {{sc|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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015'''|| [[User:mlforcada]] [[User:Sereni]] [[User:Firespeaker]] [[User:Aida]]
|-
| {{sc|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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:mlforcada]] [[User:Sereni]] [[User:Firespeaker]] [[User:Aida]]
|-
| {{sc|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 [http://svn.code.sf.net/p/apertium/svn/trunk/apertium-tools/wiki-tools/ 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]]
|-
| {{sc|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 [http://svn.code.sf.net/p/apertium/svn/trunk/apertium-tools/wiki-tools/ wiki-tools] scripts. || [[User:Firespeaker]]
|-
| {{sc|documentation}} || Manually spell-check running text in an apertium language of your choice || Take 500 words from a public source of user contributed content (such as a forum or a comments section of a website) in a language supported by Apertium (other than English) and <em>manually</em> correct all orthographical and typographical errors. Allow for some variation in terms of what is proper spelling, such as regional differences, etc. (e.g., in English, both "color" and "colour" are correct, but "colur" isn't). If you've found fewer than 20 errors, do this for another 500 words (and so on) until you've identified at least 20 errors. Submit a link to the source(s) you used, and a list of only the words you've corrected (one entry per line like "computre,computer" in a text file).<br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Firespeaker]] [[User:Francis Tyers]] [[User:Ksnmi]]
|-
| {{sc|quality}} || Check the performance of an Apertium spell checker in an apertium language of your choice || Take 500 words from a public source of user contributed content (such as a forum or a comments section of a website) in a language supported by Apertium that you know (other than English) and put it through one of our spell checkers (libreoffice, MS Word, firefox, command line voikko, or the website if that task has been done already). Then make a list of all the words it marked wrong, and for each word indicate whether it is (1) a word that is misspelled (provide the correctly spelled form), (2) a word that is spelled correctly, (3) a form from another language that is never used in the language you are checking. Allow for some variation in terms of what is proper spelling, such as regional differences, etc. (e.g., in English, both "color" and "colour" are correct, but "colur" isn't). If you've found fewer than 20 words that fit the first two categories, do this for another 500 words (and so on) until you've identified at least 20 words of types (1) and (2). Submit a link to the source(s) you used, and a list of only the words the spell checker corrected (one entry per line like (1) "computre,computer", (2) "Computer,CORRECT" (3) "計算機,FOREIGN", in a text file).<br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Firespeaker]] [[User:Francis Tyers]] [[User:Ksnmi]]
|-
| {{sc|research}}, {{sc|documentation}} || Categorise 5 twol rules || Choose 5 rules from a twol file for a well-developed hfst pair. For each rule, state what kind of process it is (insertion, deletion, symbol change), and whether it's phonologically conditioned or morphologically conditioned. If it's a phonologically conditioned symbol change, write whether one character is changing to another, or whether the rule is part of a one-to-many or many-to-one correspondence. Write your findings on the apertium wiki at [[Examples_of_twol_rules/Language]] (replacing "Language" with the name of the language).<br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Firespeaker]]
|}
|}


=== Data mangling ===
== Counts ==
{|class="wikitable sortable"
! Category !! Title !! Description !! Mentors
|-
| {{sc|code}} || {{sc|multi}} Dictionary conversion || Write a conversion module for an existing dictionary for apertium-dixtools. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Firespeaker]]
|-
| {{sc|code}} || {{sc|multi}} Dictionary conversion in python || Write a conversion module for an existing free bilingual dictionary to [[lttoolbox]] format using Python. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Firespeaker]]
|-
| {{sc|code}} || Write a program to extract Faroese noun inflections || Write a program to extract Faroese inflection information for nouns from Wiktionary, see [https://en.wiktionary.org/wiki/Category:Faroese_nouns Category:Faroese nouns] <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Francis Tyers]] [[User:vin-ivar]]
|-
| {{sc|code}} || Write a program to extract Faroese verb inflections || Write a program to extract Faroese inflection information for verbs from Wiktionary, see [https://en.wiktionary.org/wiki/Category:Faroese_verbs Category:Faroese verbs] <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Francis Tyers]] [[User:vin-ivar]]
|-
| {{sc|code}} || Write a program to extract Faroese adjective inflections || Write a program to extract Faroese inflection information for adjectives from Wiktionary, see [https://en.wiktionary.org/wiki/Category:Faroese_adjectives Category:Faroese adjectives] <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Francis Tyers]] [[User:vin-ivar]]
|-
| {{sc|code}} || Bilingual dictionary from word alignments script || Write a script which takes [[GIZA++]] alignments and outputs a <code>.dix</code> 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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Francis Tyers]] [[User:Ksnmi]]
|-
| {{sc|code}} || {{sc|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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Firespeaker]] [[User:Ksnmi]]
|-
| {{sc|research}} || {{sc|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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Firespeaker]] [[User:Francis Tyers]] [[User:Ksnmi]]
|-
| {{sc|code}} || script to generate dictionary from IDS data || Write a script that takes two lg_id codes, scrapes those dictionaries at [http://lingweb.eva.mpg.de/ids/ IDS], matches entries, and outputs a dictionary in [[bidix]] format <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Francis Tyers]] [[User:Firespeaker]] [[User:Ksnmi]]
|-
| {{sc|code}} || Script to convert rapidwords dictionary to apertium bidix || Write a script (preferably in python3) that converts an arbitrary dictionary from [http://rapidwords.net/reports 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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Firespeaker]]
|-
| {{sc|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 <code>perro.n.m:dog.n</code> to generate lttoolbox-style entries of the form <code><e><l>perro<s n="n"/><s n="m"/></l><r>dog<s n="n"/></r></e></code>. You may start from [https://github.com/jimregan/internostrum-to-lttoolbox] if you wish. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:mlforcada]] [[User:Raveesh]]
|-
| {{sc|code}} || {{sc|multi}} Convert one part-of-speech from SALDO to Apertium .dix format|| Take the [http://spraakbanken.gu.se/resurs/saldo SALDO] lexicon of Swedish and convert one of the classes of parts-of-speech to Apertium's [[lttoolbox]] format. (Nouns and verbs already done, see [https://svn.code.sf.net/p/apertium/svn/languages/apertium-swe/dev/saldo swe/dev].) <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015'''|| [[User:Francis Tyers|Francis Tyers]], [[User:Unhammer|Unhammer]], [[User:Putti]]
|}


Last updated by [[User:Firespeaker|Firespeaker]] ([[User talk:Firespeaker|talk]]) 07:30, 28 October 2019 (CET).
=== Misc ===

{|class="wikitable sortable"
{| class="sortable wikitable"
! Category !! Title !! Description !! Mentors
|-
| {{sc|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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Mlforcada]] [[User:Firespeaker]] [[User:Wei2912|Wei En]] (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. '''up2015'''|| [[User:Mlforcada]] [[User:Bech]] [[User:Youssefsan|Youssefsan]] [[User:Wei2912|Wei En]] (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. '''up2015'''|| [[User:Mlforcada]] [[User:Firespeaker]] [[User:Wei2912|Wei En]] (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]] [[User:Wei2912|Wei En]] (alternative mentors welcome)
|-
| {{sc|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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Mlforcada]] [[User:Bech]] [[User:Firespeaker]]
|-
| {{sc|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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Mlforcada]]
|-
| {{sc|code}} || Apertium develoment on Windows || The [[Apertium on Windows]] guide is severely out-dated, developers tend to use a [[Virtualbox]] (users have a nice [[Apertium Simpleton UI|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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Francis Tyers]]
|-
| {{sc|code}} || Light Apertium bootable ISO for small machines || Using [https://en.wikipedia.org/wiki/Damn_Small_Linux Damn Small Linux] or [https://en.wikipedia.org/wiki/SliTaz_GNU/Linux 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.<br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Mlforcada]] [[User:Firespeaker]] [[User:Wei2912|Wei En]] (alternative mentors welcome)
|-
| {{sc|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 [https://en.wikipedia.org/wiki/XLIFF 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. <br />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)
|-
| {{sc|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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Mlforcada]] (alternative mentors welcome)
|-
| {{sc|code}} || Write a transliteration plugin for mediawiki || Write a mediawiki plugin similar in functionality (and perhaps implementation) to the way the [http://kk.wikipedia.org Kazakh-language wikipedia]'s orthography changing system works ([http://wiki.apertium.org/wiki/User:Stan88#How_to_enable_multiple_Kazakh_language-variants_on_a_mediawiki_instance_.3F documented last year here]. 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.<br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Firespeaker]]
|-
| {{sc|research}} || {{sc|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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. '''up2015''' || [[User:Firespeaker]], [[User:Unhammer]]
|-
| {{sc|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 gesture typing (swipe typing). Document your findings on the apertium wiki. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Firespeaker]]
|-
| {{sc|research}} || research gesture typing back end for Android || Research and document on [http://wiki.apertium.org/ apertium's wiki] how recent versions of Android's built-in keyboard interface to a spelling dictionary to guess words with gesture typing. You should state in some combination of broad and specific terms what steps would be needed needed to connect this to a custom back end, e.g. how it could call some other program that looked up words for a given language (e.g., a keyboard layout which currently does not have an Android-supported gesture keyboard).<br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Firespeaker]]
|-
| {{sc|research}} || {{sc|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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Francis Tyers]] [[User:Inariksit]]
|-
|-
! scope="col" | Category
| {{sc|research}} || {{sc|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. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Francis Tyers]] [[User:Beboppinbobby]] [[User:Sereni]]
! scope="col" | Count
|-
|-
|{{sc|code}}
| {{sc|research}}, {{sc|quality}} || improvements to 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, but it has some issues: (1) comments on LEXICON lines are not highlighted as comments, (2) editing lines with comments (or similar) can be really slow, (3) the lexicon a form points at is not highlighted distinctly from the form (e.g., in the line «асқабақ:асқабақ N1 ; ! "pumpkin"», N1 should be highlighted somehow). Modify or rewrite the plugin to fix these issues. <br />For further information and guidance on this task, you are encouraged to come to our [[IRC]] channel. || [[User:Firespeaker]] [[User:vin-ivar]] [[User:TommiPirinen]]
|align="right"|16
|-
|-
|{{sc|documentation}}
| {{sc|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. '''up2015''' || [[User:Unhammer]]
|align="right"|4
|-
|-
|{{sc|research}}
| {{sc|code}} || test and clean up the wx-utf8 script || The script converts stuff written in [https://en.wikipedia.org/wiki/WX_notation WX notation] to produce Devanagari. It ''should'' be bug free, but someone needs to test it with strange words and fix bugs if any. '''up2015''' || [[User:vin-ivar]]
|align="right"|11
|-
|-
|{{sc|quality}}
| {{sc|code}} || make improvements to the wx-utf8 script || Add support for other encoding standards and other Indic scripts to the Python script to make it a generic multi-way X-Y transliterator. '''up2015''' || [[User:vin-ivar]]
|align="right"|8
|-
|-
|{{sc|design}}
| {{sc|quality}}, {{sc|code}} || {{sc|multi}} fix any open ticket || Fix any open ticket in any of our issues trackers: [https://sourceforge.net/p/apertium/tickets/ main], [https://github.com/goavki/apertium-html-tools/issues html-tools], [https://github.com/goavki/phenny/issues begiak]. When you claim this task, let your mentor know which issue you plan to work on. || [[User:Firespeaker]] [[User:Unhammer]] [[User:Sushain]]
|align="right"|2
|- class="sortbottom"
!Total
|align="right"|33
|}
|}



Latest revision as of 06:23, 5 December 2019

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 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.
  • design: Tasks related to user experience research or user interface design and interaction

Clarification of "multiple task" types

  • multi = number of students who can do a given task (GCI's "max instances")
  • dup = number of times a student can do the same task

You can find descriptions of some of the mentors here.

Task ideas[edit]

The current task ideas here are for 2019. See Talk:Task ideas for Google Code-in for task ideas from previous years.

Mentors[edit]

These are languages that can be substituted for AAA and/or BBB for tasks each mentor is listed to mentor above.

If you do not see your language here, ask. We may be able to mentor or find you a mentor.

Mentor Languages
ftyers eng, spa, cat, fra, nor, rus, por, swe, tur, gag, aze
JNW eng, spa, fra, rus, tur, gag, aze, kaz, kir, kaa, tat, bak, kum, nog, kaa, uzb, uig, crh, khk, yid
anakuz grn, spa, por, rus
fotonzade eng, tur, aze, uig, tat, crh, kmr, ckb, fas
xavivars cat, spa, eng, fra
Unhammer nno, nob, swe, dan, fao, sme, ovd
shardulc eng, fra, mar, hin, urd, kan
m-alpha eng, fra, byv
popcorndude eng, spa, cym, heb
sevilay eng, ara, tur, kaz, aze, tat, gag, uig, uzb, crh, kum
eirien sah, rus, eng
khannatanmai eng, hin
flammie fin, krl, olo, hun, nio, kpv, mdf, tlh, fra, swe, eng, est, ekk, vro
dolphingarlic afr, deu, eng
wei2912 eng, zho
marcriera cat, spa, eng, ron
padth4i eng, mal, hin
Oguz eng, tur, uig, aze, crh
mlforcada eng, cat, eus, fra, por, glg, spa, gle, bre
ayushjain eng, hin
jjjppp eng, lat

Counts[edit]

Last updated by Firespeaker (talk) 07:30, 28 October 2019 (CET).

Category Count
code 16
documentation 4
research 11
quality 8
design 2
Total 33