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

From Apertium
Jump to navigation Jump to search
 
(210 intermediate revisions by 26 users not shown)
Line 1: Line 1:
  +
 
{{TOCD}}
 
{{TOCD}}
 
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.
 
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.
Line 4: Line 5:
 
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 (and relevant tools)'''.
+
<!--# '''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'''
 
'''Clarification of "multiple task" types'''
* multi = number of students who can do a given task
+
* 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
 
* 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]].
 
You can find descriptions of some of the mentors [[List_of_Apertium_mentors | here]].
   
==Task ideas==
+
== Task ideas ==
  +
  +
'''The current task ideas here are for 2019.''' See [[Talk:Task ideas for Google Code-in]] for task ideas from previous years.
  +
 
<table class="sortable wikitable" style="display: none">
 
<table class="sortable wikitable" style="display: none">
<!-- THE TASKS NEED TO BE HIDDEN FOR NOW,
 
but feel free to remove style="display: none" to preview changes to this page.
 
Just remember to put it back before saving
 
JNW 2017-10-30
 
-->
 
 
<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>
 
<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>
  +
 
{{Taskidea
 
{{Taskidea
|type=research
+
|type=research, quality, documentation
|title=Document resources for a language
+
|title=Adopt a Wiki page
  +
|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.
|description=Document resources for a language without resources already documented on the Apertium wiki. [[Task ideas for Google Code-in/Documentation of resources|read more...]]
 
|tags=wiki, languages
+
|tags=wiki
  +
|mentors=*
|mentors=Jonathan, Vin, Xavivars, Marc Riera
 
|multi=40
+
|multi=150
|beginner=yes
+
|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=Vin, Jonathan, Fran
 
|tags=wiki, languages
 
|beginner=yes
 
|multi=40
 
 
}}
 
}}
  +
{{Taskidea|type=interface|mentors=Fran, Masha, Jonathan
 
  +
{{Taskidea
|tags=annotation, annotatrix
 
  +
|type=research, quality, documentation
|title=Nicely laid out interface for ud-annotatrix
 
  +
|title=Test instructions on Apertium wiki
|description=Design an HTML layout for the annotatrix tool that makes best use of the space and functions nicely
 
  +
|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.
at different screen resolutions.
 
  +
|tags=wiki
  +
|mentors=*
  +
|multi=150
  +
|beginner=yes
 
}}
 
}}
  +
{{Taskidea|type=interface|mentors=Fran, Masha, Jonathan, Vin
 
  +
{{Taskidea
|tags=annotation, annotatrix, css
 
  +
|type=research, code
|title=Come up with a CSS style for annotatrix
 
  +
|title=expand coverage of Kyrgyz to English structural transfer
|description=
 
  +
|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
{{Taskidea|type=code|mentors=Fran, Masha, Jonathan, Vin
 
  +
|mentors=JNW, popcorndude
|tags=annotation, annotatrix, javascript, dependencies
 
  +
|multi=150
|title=SDparse to CoNLL-U converter in JavaScript
 
  +
|dup=10
|description=SDparse is a format for describing dependency trees, they look like relation(head, dependency). CoNLL-U is another
 
format for describing dependency trees. Make a converter between the two formats. You will probably need to learn more about the specifics of these formats. The GitHub issue is [https://github.com/jonorthwash/ud-annotatrix/issues/88 here].
 
}}
 
{{Taskidea|type=quality|mentors=Fran, Masha, Vin
 
|tags=annotation, annotatrix
 
|title=Write a test for the format converters in annotatrix
 
|description=
 
|multi=yes
 
}}
 
{{Taskidea|type=code|mentors=Fran, Masha, Jonathan
 
|tags=annotation, annotatrix, javascript
 
|title=Write a function to detect invalid trees in the UD annotatrix software and advise the user about it
 
|description=It is possible to detect invalid trees (such as those that have cycles). We would like to write a function to detect those kinds of trees and advise the user. The GitHub issue is [https://github.com/jonorthwash/ud-annotatrix/issues/96 here].
 
}}
 
{{Taskidea|type=documentation|mentors=Fran, Masha, Jonathan, Vin
 
|tags=annotation, annotatrix, dependencies
 
|title=Write a tutorial on how to use annotatrix to annotate a dependency tree
 
|description=Give step by step instructions to annotating a dependency tree with Annotatrix. Make sure you include all possibilities in the app, for example tokenisation options.
 
}}
 
{{Taskidea|type=documentation|mentors=Fran, Masha, Vin
 
|tags=annotation, annotatrix, video, dependencies
 
|title=Make a video tutorial on annotating a dependency tree using the [https://github.com/jonorthwash/ud-annotatrix/ UD annotatrix software].
 
|description=Give step by step instructions to annotating a dependency tree with Annotatrix. Make sure you include all possibilities available in the app, for example tokenisation options.
 
}}
 
{{Taskidea|type=quality|mentors=Masha|tags=xml, dictionaries, svn
 
|title=Merge two versions of the Polish morphological dictionary
 
|description=At some point in the past, someone deleted a lot of entries from the Polish morphological dictionary, and unfortunately we didn't notice at the time and have since added stuff to it. The objective of this task is to take the last
 
version before the mass deletion and the current version and merge them.
 
Getting list of the changes:
 
$ svn diff --old apertium-pol.pol.dix@73196 --new apertium-pol.pol.dix@73199 > changes.diff
 
}}
 
{{Taskidea|type=quality|mentors=fotonzade, Jonathan, Xavivars, Marc Riera
 
|tags=xml, dictionaries, svn
 
|title=Add 200 new entries to a bidix to language pair %AAA%-%BBB%
 
|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 200 new words to a bidirectional dictionary.
 
|multi=yes
 
|bgnr=yes
 
}}
 
{{Taskidea|type=quality|mentors=fotonzade, Jonathan, Xavivars, Marc Riera
 
|tags=xml, dictionaries, svn
 
|title=Add 500 new entries to a bidix to language pair %AAA%-%BBB%
 
|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 500 new words to a bidirectional dictionary.
 
|multi=yes
 
}}
 
{{Taskidea|type=quality|mentors=fotonzade, Xavivars, Marc Riera
 
|tags=disambiguation, svn
 
|title=Disambiguate 500 tokens of text in %AAA%
 
|description=Run some text through a morphological analyser and disambiguate the output. Contact the mentor beforehand to approve the choice of language and text.
 
|multi=yes
 
}}
 
{{Taskidea|type=code|mentors=Fran, Katya|tags=morphology, languages, finite-state, fst
 
|title=Use apertium-init to start a new morphological analyser for %AAA%
 
|description=Use apertium-init to start a new morphological analyser (for a language we don't already
 
have, e.g. %AAA%) and add 100 words.
 
|multi=yes
 
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
|type=documentation
+
|type=code
  +
|title=Add recursive transfer support to a language pair that doesn't support it
|mentors=Jonathan, Flammie
 
  +
|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.
|title=add comments to .dix file symbol definitions
 
  +
|tags=recursive transfer, pairs
|tags=dix
 
  +
|mentors=JNW, popcorndude
  +
|multi=150
  +
|dup=10
  +
|beginner=yes
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
|type=documentation
+
|type=code
  +
|title=Add 2 recursive transfer rules to a language pair
|mentors=Jonathan
 
  +
|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.
|title=find symbols that aren't on the list of symbols page
 
  +
|tags=recursive transfer, pairs
|description=Go through symbol definitions in Apertium dictionaries in svn (.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.
 
  +
|mentors=JNW, popcorndude
|tags=wiki,lexc,dix
 
  +
|multi=150
  +
|dup=20
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
 
|type=code
 
|type=code
  +
|mentors=JNW, wei2912, padth4i, popcorndude
|title=conllu parser and searching
 
  +
|title=Use apertium-init to bootstrap a new language pair
|description=Write a script (preferably in python3) that will parse files in conllu format, and perform basic searches, such as "find a node that has an nsubj relation to another node that has a noun POS" or "find all nodes with a cop label and a past feature"
 
  +
|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=python, dependencies
 
  +
|tags=languages, bootstrap, dictionaries, translators
|mentors=Jonathan, Fran, Wei En
 
  +
|beginner=yes
  +
|multi=25
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
 
|type=code
 
|type=code
  +
|mentors=JNW, wei2912, padth4i, popcorndude
|title=group and count possible lemmas output by guesser
 
  +
|title=Use apertium-init to bootstrap a new language module
|mentors=Jonathan, Fran, Wei En
 
  +
|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...]]
|description=Currently a "guesser" version of Apertium transducers can output a list of possible analyses for unknown forms. Develop a new pipleine, preferably with shell scripts or python, that uses a guesser on all unknown forms in a corpus, and takes the list of all possible analyses, and output a hit count of the most common combinations of lemma and POS tag.
 
|tags=guesser, transducers, shellscripts
+
|tags=languages, bootstrap, dictionaries
  +
|beginner=yes
  +
|multi=25
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
 
|type=code
 
|type=code
  +
|mentors=JNW, sevilay, Unhammer, marcriera, padth4i, Oguz, popcorndude
|title=vim mode/tools for annotating dependency corpora in CG3 format
 
  +
|title=Write 10 lexical selection for an existing translation pair
|mentors=Jonathan, Fran
 
  +
|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...]]
|description=includes formatting, syntax highlighting, navigation, adding/removing nodes, updating node numbers, etc.
 
  +
|tags=languages, bootstrap, lexical selection, translators
|tags=vim, dependencies, CG3
 
  +
|multi=25
  +
|dup=5
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
 
|type=code
 
|type=code
  +
|mentors=JNW, Unhammer, padth4i, Oguz, popcorndude
|title=vim mode/tools for annotating dependency corpora in CoNLL-U format
 
  +
|title=Write 10 constraint grammar rules for an existing language module
|mentors=Jonathan, Fran
 
  +
|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...]]
|description=includes formatting, syntax highlighting, navigation, adding/removing nodes, updating node numbers, etc.
 
|tags=vim, dependencies, conllu
+
|tags=languages, bootstrap, constraint grammar
}}{{Taskidea
 
|type=quality
 
|title=figure out one-to-many bug in the [[lsx module]]
 
|mentors=Jonathan, Fran, Wei En, Irene
 
|description=There is a bug in the [[lsx module]] referred to as the [http://wiki.apertium.org/wiki/Lsx_module#The_one-to-many_bug one-to-many bug] because lsx-proc will not convert one form to many given an appropriately compiled transducer. Your job is to figure out why this happens and fix it.
 
|tags=C++, transducers, lsx
 
}}{{Taskidea
 
|type=code
 
|title=add an option for reverse compiling to the [[lsx module]]
 
|mentors=Jonathan, Fran, Wei En, Irene, Xavivars
 
|description=this should be simple as it can just leverage the existing lttoolbox options for left-right / right-left compiling
 
|tags=C++, transducers, lsx
 
}}{{Taskidea
 
|type=quality, code
 
|title=clean up lsx-comp
 
|mentors=Jonathan, Fran, Wei En, Irene, Xavivars
 
|description=remove extraneous functions from lsx-comp and clean up the code
 
|tags=C++, transducers, lsx
 
}}{{Taskidea
 
|type=quality, code
 
|title=clean up lsx-proc
 
|mentors=Jonathan, Fran, Wei En, Irene, Xavivars
 
|description=remove extraneous functions from lsx-proc and clean up the code
 
|tags=C++, transducers, lsx
 
}}{{Taskidea
 
|type=documentation
 
|title=document usage of the lsx module
 
|mentors= Irene
 
|description= document which language pairs have included the lsx 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=C++, transducers, lsx
 
|beginner=yes
 
}}{{Taskidea
 
|type=quality
 
|title=beta testing the lsx-module
 
|mentors=Jonathan, Fran, Wei En, Irene
 
|description= [[Lsx_module#Creating_the_lsx-dictionary|create an lsx dictionary]]for any relevant and existing language pair that doesn't yet support it, adding 10-30 entries to it. 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=C++, transducers, lsx
 
|multi=yes
 
|dup=yes
 
}}{{Taskidea
 
|type=code
 
|title=fix an lsx bug / add an lsx feature
 
|mentors=Jonathan, Fran, Wei En, Irene
 
|description= if you've done the above task (beta testing the lsx-module) and discovered any bugs or unsupported features, fix them.
 
|tags=C++, transducers, lsx
 
|multi=yes
 
|dup=yes
 
}}{{Taskidea
 
|type=code
 
|title=script to test coverage over wikipedia corpus
 
|mentors=Jonathan, Wei En, Shardul
 
|description=Write a script (in python or ruby) that in one mode checks out a specified language module to a given directory, compiles it (or updates it if already existant), and then gets the most recently nightly wikipedia archive for that language and runs coverage over it (as much in RAM if possible). In another mode, it compiles 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.
 
|tags=python, ruby, wikipedia
 
}}{{Taskidea
 
|type=quality,code
 
|tag=issues
 
|title=fix any open ticket
 
|description=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.
 
|mentors=Jonathan, Wei En, Sushain, Shardul
 
 
|multi=25
 
|multi=25
|dup=10
+
|dup=5
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
|type=quality,code
+
|type=research
  +
|mentors=anakuz, fotonzade
|title=make html-tools do better on Chrome's audit
 
  +
|title=Syntactic annotation of text
|tags=javascript, html, css, web
 
  +
|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.
|description=Currently, apertium.org and generally any [https://github.com/goavki/apertium-html-tools html-tools] installation fails lots of Chrome audit tests. As many as possible should be fixed. Ones that require substantial work should be filed as tickets and measures should be taken to prevent problems from reappearing (e.g. a test or linter rule). More information is available in the issue tracker ([https://github.com/goavki/apertium-html-tools/issues/201 #201]) and asynchronous discussion should occur there.
 
  +
|tags=UD, trees, annotation
|mentors=Jonathan, Sushain, Shardul
 
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
|type=code,interface
+
|type=research
  +
|mentors=JNW,ftyers, fotonzade, anakuz, Oguz
|title=upgrade html-tools to Bootstrap 4
 
  +
|title=Create a UD-Apertium morphology mapping
|tags=javascript, html, css, web
 
  +
|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.
|description=Currently, [https://github.com/goavki/apertium-html-tools html-tools] uses Bootstrap 3.x. Bootstrap 4 beta is out and we can upgrade (hopefully)! If an upgrade is not possible, you should document why it's not and ensure that it's easy to upgrade when the blockers are removed. More information may be available in the issue tracker ([https://github.com/goavki/apertium-html-tools/issues/200 #200]) and asynchronous discussion should occur there.
 
  +
|tags=morphology, ud, dependencies
|mentors=Sushain, Shardul
 
  +
|beginner=
|bgnr=yes
 
  +
|multi=5
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
|type=code,interface
+
|type=research
  +
|mentors=JNW, ftyers, fotonzade, anakuz
|title=display API endpoint on sandbox
 
  +
|title=Create an Apertium-UD morphology mapping
|tags=javascript, html, css, web
 
  +
|description=Choose a language that has an Apertium morphological analyser and adapt it to convert the morphology to UD morphology
|description=Currently, [https://github.com/goavki/apertium-html-tools html-tools] has an "APy" mode where users can easily test out the API. However, it doesn't display the actual URL of the API endpoint and it would be nice to show that to the user. More information is available in the issue tracker ([https://github.com/goavki/apertium-html-tools/issues/147 #147]) and asynchronous discussion should occur there.
 
  +
|tags=morphology, ud, dependencies
|mentors=Sushain, Jonathan, Shardul
 
  +
|beginner=
|bgnr=yes
 
  +
|multi=5
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
|type=code,quality,research
+
|type=quality
|title=set up a testing framework for html-tools
+
|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=javascript, html, css, web
 
  +
|tags=bash
|description=Currently, [https://github.com/goavki/apertium-html-tools html-tools] has no tests (sad!). This task requires researching what solutions there are for testing jQuery based web applications and putting one into place with a couple tests as a proof of concept. More information is available in the issue tracker ([https://github.com/goavki/apertium-html-tools/issues/116 #116]) and asynchronous discussion should occur there.
 
  +
|mentors=ftyers, JNW, Unhammer, anakuz, Josh, fotonzade, sevilay, eirien, wei2912, padth4i, jjjppp
|mentors=Sushain, Shardul
 
  +
|multi=150
  +
|beginner=yes
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
|type=code,research
+
|type=research
  +
|title=Write a contrastive grammar
|title=make html-tools automatically download translated files in Safari, IE, etc.
 
  +
|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.
|tags=javascript, html, css, web
 
  +
|mentors=mlforcada, JNW, Josh, xavivars, fotonzade, sevilay, khannatanmai, dolphingarlic, padth4i
|description=Currently, [https://github.com/goavki/apertium-html-tools html-tools] is capable of translating files. However, this translation does not always result in the file immediately being download to the user on all browsers. It would be awesome if it did! This task requires researching what solutions there are, evaluating them against each other and it may result in a conclusion that it just isn't possible (yet). More information is available in the issue tracker ([https://github.com/goavki/apertium-html-tools/issues/97 #97]) and asynchronous discussion should occur there.
 
  +
|tags=wiki, languages
|mentors=Sushain, Jonathan, Unhammer, Shardul
 
  +
|beginner=yes
  +
|multi=40
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
|type=code,interface
+
|type=quality
  +
|mentors=mlforcada, anakuz, xavivars, fotonzade, sevilay, Unhammer, eirien, dolphingarlic, wei2912, marcriera, padth4i, Oguz, JNW, jjjppp
|title=make html-tools fail more gracefully when API is down
 
|tags=javascript, html, css, web
+
|tags=xml, dictionaries
  +
|title=Identify and add 100 new entries to the bilingual dictionary for the %AAA%-%BBB% language pair
|description=Currently, [https://github.com/goavki/apertium-html-tools html-tools] relies on an API endpoint to translate documents, files, etc. However, when this API is down the interface also breaks! This task requires fixing this breakage. More information is available in the issue tracker ([https://github.com/goavki/apertium-html-tools/issues/207 #207]) and asynchronous discussion should occur there.
 
  +
|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]...
|mentors=Sushain, Jonathan, Shardul
 
  +
|multi=40
|bgnr=yes
 
  +
|beginner=yes
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
|type=code,interface
+
|type=quality
  +
|mentors=mlforcada, anakuz, xavivars, fotonzade, ftyers, sevilay, eirien, dolphingarlic, wei2912, marcriera, padth4i, Oguz, JNW
|title=make html-tools properly align text in mixed RTL/LTR contexts
 
|tags=javascript, html, css, web
+
|tags=xml, dictionaries
  +
|title=Identify and add 250 new entries to the bilingual dictionary for the %AAA%-%BBB% language pair
|description=Currently, [https://github.com/goavki/apertium-html-tools html-tools] is capable of displaying results/allowing input for RTL languages in a LTR context (e.g. we're translating Arabic in an English website). However, this doesn't always look exactly how it should look, i.e. things are not aligned correctly. More information is available in the issue tracker ([https://github.com/goavki/apertium-html-tools/issues/49 #49]) and asynchronous discussion should occur there.
 
  +
|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]...
|mentors=Sushain, Jonathan, Shardul
 
  +
|dup=20
|bgnr=yes
 
  +
|beginner=no
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
|type=code,interface
+
|type=quality
  +
|mentors=fotonzade, JNW, ftyers, anakuz, xavivars, mlforcada, shardulc, sevilay, Unhammer, dolphingarlic, wei2912, marcriera
|title=de-conflict the 'make a suggestion' interface in html-tools
 
|tags=javascript, html, css, web
+
|tags=xml, dictionaries
  +
|title=Post-edit 500 sentences of any public domain text from %AAA% to %BBB%
|description=There has been much demand for [https://github.com/goavki/apertium-html-tools html-tools] to support an interface for users making suggestions regarding e.g. incorrect translations (c.f. Google translate). An interface was designed for this purpose. However, since it has been a while since anyone touched it, the code now conflicts with the current master branch. This task requires de-conflicting this [https://github.com/goavki/apertium-html-tools/pull/74 branch] with master and providing screenshot/video(s) of the interface to show that it functions. More information is available in the issue tracker ([https://github.com/goavki/apertium-html-tools/issues/74 #74]) and asynchronous discussion should occur there.
 
  +
|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.
|mentors=Sushain, Jonathan, Shardul
 
  +
|multi=10
  +
|beginner=yes
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
|type=code,quality
+
|type=quality
  +
|mentors=mlforcada, anakuz, xavivars, fotonzade, sevilay, dolphingarlic, wei2912, marcriera, padth4i
|title=make html-tools capable of translating itself
 
  +
|tags=disambiguation
|tags=javascript, html, css, web
 
  +
|title=Disambiguate 500 tokens of text in %AAA%
|description=Currently, [https://github.com/goavki/apertium-html-tools html-tools] supports website translation. However, if asked to translate itself, weird things happen and the interface does not properly load. This task requires figuring out the root problem and correcting the fault. More information is available in the issue tracker ([https://github.com/goavki/apertium-html-tools/issues/203 #203]) and asynchronous discussion should occur there.
 
  +
|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]...
|mentors=Sushain, Jonathan, Shardul
 
|bgnr=yes
+
|multi=yes
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
|type=interface
+
|type=research
  +
|mentors=eirien, anakuz, marcriera, padth4i
|title=create mock-ups for variant support in html-tools
 
  +
|tags=dictionaries
|tags=javascript, html, css, web
 
  +
|title=Categorise 100 words from frequency list in %AAA%
|description=Currently, [https://github.com/goavki/apertium-html-tools html-tools] supports translation using language variants. However, we do not have first-class style/interface support for it. This task requires speaking with mentors/reading existing discussion to understand the problem and then produce design mockups for a solution. More information is available in the issue tracker ([https://github.com/goavki/apertium-html-tools/issues/82 #82]) and asynchronous discussion should occur there.
 
  +
|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 -->
|mentors=Sushain, Jonathan, Fran, Shardul, Xavivars
 
  +
|multi=yes
  +
|beginner=yes
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
|type=code,interface
+
|type=research
  +
|mentors=eirien, anakuz, sevilay, marcriera
|title=refine the html-tools dictionary interface
 
  +
|tags=dictionaries
|tags=javascript, html, css, web
 
  +
|title=Categorise 500 words from frequency list in %AAA%
|description=Significant progress has been made towards providing a dictionary-style interface within [https://github.com/goavki/apertium-html-tools html-tools]. This task requires refining the existing [https://github.com/goavki/apertium-html-tools/pull/184 PR] by de-conflicting it with master and resolving the interface concerns discussed [https://github.com/goavki/apertium-html-tools/pull/184#issuecomment-323597780 here]. More information is available in the issue tracker ([https://github.com/goavki/apertium-html-tools/issues/105 #105]) and asynchronous discussion should occur there.
 
  +
|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 -->
|mentors=Sushain, Jonathan, Xavivars
 
  +
|multi=yes
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
|type=code,quality,interface
+
|type=research
  +
|mentors=khannatanmai, sevilay, padth4i
|title=eliminate inline styles from html-tools
 
|tags=html, css, web
+
|tags=evaluation
  +
|title=Evaluate an existing apertium pair %AAA% to %BBB% on a text
|description=Currently, [https://github.com/goavki/apertium-html-tools html-tools] has inline styles. These are not very maintainable and widely considered as bad style. This task requires surveying the uses, removing all of them in a clean manner, i.e. semantically, and re-enabling the linter rule that will prevent them going forward. More information is available in the issue tracker ([https://github.com/goavki/apertium-html-tools/issues/114 #114]) and asynchronous discussion should occur there.
 
  +
|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]...
|mentors=Sushain, Shardul, Xavivars
 
|bgnr=yes
 
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
|type=code,interface
+
|type=code, research
  +
|title=Add apertium-anaphora support to a new language pair
|title=refine the html-tools spell checking interface
 
  +
|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=html, css, web
 
  +
|tags=apertium-anaphora, transfer
|description=Spell checking is a feature that would greatly benefit [https://github.com/goavki/apertium-html-tools html-tools]. Significant effort has been put towards implementing an effective interface to provide spelling suggestions to users (this [https://github.com/goavki/apertium-html-tools/pull/176 PR] contains the current progress). This task requires solving the problems highlighted in the code review on the PR and fixing any other bugs uncovered in conversations with the mentors. More information is available in the issue tracker ([https://github.com/goavki/apertium-html-tools/issues/12 #12]) and asynchronous discussion should occur there.
 
|mentors=Sushain, Jonathan
+
|mentors=khannatanmai
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
|type=quality
+
|type=code, research
|title=find an apertium module not developed in svn and import it
+
|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.
|description=Find an Apertium module developed elsewhere (e.g., github) released under a compatible open license, and import it into [http://wiki.apertium.org/wiki/SVN Apertium's svn], being sure to attribute any authors (in an AUTHORS file) and keeping the original license. Once place to look for such modules might be among the [https://wikis.swarthmore.edu/ling073/Category:Sp17_FinalProjects final projects] in a recent Computational Linguistics course.
 
  +
|tags=apertium-anaphora, anaphora resolution
|mentors=Jonathan, Wei En
 
  +
|mentors=khannatanmai, popcorndude
|multi=10
 
|dup=2
 
}}{{Taskidea
 
|type=code
 
|title=add an incubator mode to the wikipedia scraper
 
|tags=wikipedia, python
 
|description=Add a mode to scrape a Wikipedia in incubator (e.g,. [https://incubator.wikimedia.org/wiki/Wp/inh/Main_page the Ingush incubator]) to the [http://svn.code.sf.net/p/apertium/svn/trunk/apertium-tools/WikiExtractor.py WikiExtractor] script
 
|mentors=Jonathan, Wei En
 
}}{{Taskidea
 
|type=code,interface
 
|title=add a translation mode interface to the geriaoueg plugin for firefox
 
|description=Fork the [https://github.com/vigneshv59/geriaoueg-firefox geriaoueg firefox plugin] and add an interface for translation mode. It doesn't have to translate at this point, but it should communicate with the server (as it currently does) to load available languages.
 
|tags=javascript
 
|mentors=Jonathan
 
}}{{Taskidea
 
|type=code, interface
 
|title=add a translation mode interface to the geriaoueg plugin for chrome
 
|description=Fork the [https://github.com/vigneshv59/geriaoueg-chrome geriaoueg chrome plugin] and add an interface for translation mode. It doesn't have to translate at this point, but it should communicate with the server (as it currently does) to load available languages.
 
|tags=javascript
 
|mentors=Jonathan
 
}}{{Taskidea
 
|type=quality
 
|title=update bidix included in apertium-init
 
|description=There are some issues with the bidix currently included in [https://github.com/goavki/bootstrap/ apertium-init]: the alphabet should be empty (or non-existant?) and the "sg" tags shouldn't be in the example entries. It would also be good to have entries in two different languages, especially ones with incompatible POS sub-categories (e.g. casa{{tag|n}}{{tag|f}}). There is [https://github.com/goavki/bootstrap/issues/24 a github issue for this task].
 
|tags=python, xml, dix
 
|beginner=yes
 
|mentors=Jonathan, Sushain
 
}}{{Taskidea
 
|type=code
 
|title=apertium-init support for more features in hfst modules
 
|description=Add optional support to hfst modules for enabling spelling modules, an extra twoc module for morphotactic constraints, and spellrelax. You'll want to figure out how to integrate this into the Makefile template. There is [https://github.com/goavki/bootstrap/issues/23 a github issue for this task].
 
|tags=python, xml, Makefile
 
|mentors=Jonathan
 
}}{{Taskidea
 
|type=code, quality
 
|title=make apertium-init README files show only relevant dictionary file
 
|description=Currently in [https://github.com/goavki/bootstrap/ apertium-init], the README files for HFST modules show the "dix" file in the list of files, and it's likely that lttoolbox modules show "hfst" files in their README too. Check this and make it so that READMEs for these two types of monolingual modules display only the right dictionary files. There is [https://github.com/goavki/bootstrap/issues/26 a github issue for this task].
 
|tags=python, xml, Makefile
 
|mentors=Jonathan, Sushain
 
}}{{Taskidea
 
|type=code, quality
 
|title=Write a script to add glosses to a monolingual dictionary from a bilingual dictionary
 
|description=Write a script that matches bilingual dictionary entries (in dix format) to monolingual dictionary entries in one of the languages (in [[Apertium-specific conventions for lexc|lexc]] format) and adds glosses from the other side of the bilingual dictionary if not already there. The script should combine glosses into one when there's more than one in the bilingual dictionary. Some level of user control might be justified, from simply defaulting to a dry run unless otherwise specified, to controls for adding to versus replacing versus leaving alone existing glosses, and the like. A [http://svn.code.sf.net/p/apertium/svn/trunk/apertium-tools/inject-words-from-bidix-to-lexc.py prototype of this script] is available in SVN, though it's buggy and doesn't fully work—so this task may just end up being to debug it and make it work as intended. A good test case might be the [http://svn.code.sf.net/p/apertium/svn/trunk/apertium-eng-kaz/apertium-eng-kaz.eng-kaz.dix English-Kazakh bilingual dictionary] and the [http://svn.code.sf.net/p/apertium/svn/languages/apertium-kaz/apertium-kaz.kaz.lexc Kazakh monolingual dictionary].
 
|tags=python, lexc, dix, xml
 
|mentors=Jonathan
 
}}{{Taskidea
 
|type=code
 
|title=Write a script to deduplicate and/or sort individual lexc lexica.
 
|description=The lexc format is a way to specify a monolingual dictionary that gets compiled into a transducer: see [[Apertium-specific conventions for lexc]] and [[Lttoolbox and lexc#lexc]]. A single lexc file may contain quite a few individual lexicons of stems, e.g. for nouns, verbs, prepositions, etc. Write a script (in python or ruby) that reads a specified lexicon, and based on which option the user specifies, identifies and removes duplicates from the lexicon, and/or sorts the entries in the lexicon. Be sure to make a dry-run (i.e., do not actually make the changes) the default, and add different levels debugging (such as displaying a number of duplicates versus printing each duplicate). Also consider allowing for different criteria for matching duplicates: e.g., whether or not the comment matches too. There are two scripts that parse lexc files already that would be a good point to start from: [http://svn.code.sf.net/p/apertium/svn/trunk/apertium-tools/lexccounter.py lexccounter.py] and [http://svn.code.sf.net/p/apertium/svn/trunk/apertium-tools/inject-words-from-bidix-to-lexc.py inject-words-from-bidix-to-lexc.py] (not fully functional).
 
|tags=python, ruby, lexc
 
|mentors=Jonathan
 
}}{{Taskidea
 
|type=quality, interface
 
|title=Interface improvement for Apertium Globe Viewer
 
|description=The [https://github.com/jonorthwash/Apertium-Global-PairViewer Apertium Globe Viewer] is a tool to visualise the translation pairs that Apertium currently offers, similar to the [http://svn.code.sf.net/p/apertium/svn/trunk/apertium-tools/pairviewer/apertium.html apertium pair viewer]. Choose any [https://wikis.swarthmore.edu/ling073/User:Cpillsb1/Final_project interface or usability issue] listed in the tool's documentation in consultation with your mentor, file an [https://github.com/jonorthwash/Apertium-Global-PairViewer/issues issue], and fix it.
 
|tags=javascript, maps
 
|multi=3
 
|dup=5
 
|mentors=Jonathan
 
}}{{Taskidea
 
|type=quality, code
 
|title=Separate geographic and module data for Apertium Globe Viewer
 
|description=The [https://github.com/jonorthwash/Apertium-Global-PairViewer Apertium Globe Viewer] is a tool to visualise the translation pairs that Apertium currently offers, similar to the [http://svn.code.sf.net/p/apertium/svn/trunk/apertium-tools/pairviewer/apertium.html apertium pair viewer]. Currently, geographic data for languages and pairs (latitude, longitude) is stored with the size of the dictionary, etc. Find a way to separate this data into distinct files (named sensibly), and at the same time make it possible to specify only the points for each language and not the endpoints for the arcs for language pairs (those should be trivial to generate dynamically).
 
|tags=javascript, json
 
|mentors=Jonathan
 
}}{{Taskidea
 
|type=quality, code
 
|title=Scraper of information needed for Apertium visualisers
 
|description=There are currently three prototype visualisers for the translation pairs Apertium offers: [https://github.com/jonorthwash/Apertium-Global-PairViewer Apertium Globe Viewer] and [http://svn.code.sf.net/p/apertium/svn/trunk/apertium-tools/pairviewer/apertium.html apertium pair viewer] and [http://svn.code.sf.net/p/apertium/svn/trunk/apertium-tools/family-visualizations/ language family visualisation tool]. They all rely on data about Apertium linguistic modules, and that data has to be scraped. There are some tools which do various parts of this already, but they are not unified: 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]. Evaluate how well the script works, and attempt to make it output data that will be compatible with all viewers (and/or modify the viewers to make sure it is compatible with the general output format).
 
|tags=python, json, scrapers
 
|mentors=Jonathan
 
}}{{Taskidea
 
|type=quality
 
|title=fix pairviewer's 2- and 3-letter code conflation problems
 
|description=[[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.
 
|tags=javascript
 
|mentors=Jonathan
 
}}{{Taskidea
 
|type=quality, code
 
|title=split nor into nob and nno in pairviewer
 
|description=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).
 
|mentors=Jonathan, Fran, Unhammer
 
|tags=javascript
 
}}{{Taskidea
 
|type=quality, code
 
|title=add support to pairviewer for regional and alternate orthograpic modes
 
|description=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.
 
|mentors=Jonathan, Fran
 
|tags=javascript
 
}}{{Taskidea
 
|type=code
 
|title=Extend visualisation of pairs involving a language in language family visualisation tool
 
|description=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.
 
|mentors=Jonathan
 
|tags=javascript
 
}}{{Taskidea
 
|type=code
 
|title=Scrape Crimean Tatar Quran translation from a website
 
|description=Bible and Quran translations often serve as a parallel corpus useful for solving NLP tasks because both texts are available in many languages. Your goal in this task is to write a program in the language of your choice which scrapes the Quran translation in the Crimean Tatar language available on the following website: http://crimean.org/islam/koran/dizen-qurtnezir/. You can adapt the scraper described on the [[Writing a scraper]] page or write your own from scratch. The output should be plain text in Tanzil format ('text with aya numbers'). You can see examples of that format on http://tanzil.net/trans/ page. When scraping, please be polite and request data at a reasonable rate.
 
|mentors=Ilnar, Jonathan, fotonzade
 
|tags=scraper
 
}}{{Taskidea
 
|type=code
 
|title=Scrape Quran translations from a website
 
|description=Bible and Quran translations often serve as a parallel corpus useful for solving NLP tasks because both texts are available in many languages. Your goal in this task is to write a program in the language of your choice which scrapes the Quran translations available on the following website: http://www.quran-ebook.com/. You can adapt the scraper described on the [[Writing a scraper]] page or write your own from scratch. The output should be plain text in Tanzil format ('text with aya numbers'). You can see examples of that format on http://tanzil.net/trans/ page. Before starting, check whether the translation is not already available on the Tanzil project's page (no need to re-scrape those, but you should use them to test the output of your program). Although the format of the translations seems to be the same and thus your program is expected to work for all of them, translations we are interested the most are the following: [http://www.quran-ebook.com/azerbaijan_version2/1.html Azerbaijani version 2], [http://www.quran-ebook.com/bashkir_version/index_ba.html Bashkir], [http://www.quran-ebook.com/chechen_version/index_cech.html Chechen], [http://www.quran-ebook.com/karachayevo_version/index_krc.html Karachay] and [http://www.quran-ebook.com/kyrgyzstan_version/index_kg.html Kyrgyz]. When scraping, please be polite and request data at a reasonable rate.
 
|mentors=Ilnar, Jonathan, fotonzade
 
|tags=scraper
 
}}{{Taskidea
 
|type=documentation
 
|title=Unified documentation on Apertium visualisers
 
|description=There are currently three prototype visualisers for the translation pairs Apertium offers: [https://github.com/jonorthwash/Apertium-Global-PairViewer Apertium Globe Viewer] and [http://svn.code.sf.net/p/apertium/svn/trunk/apertium-tools/pairviewer/apertium.html apertium pair viewer] and [http://svn.code.sf.net/p/apertium/svn/trunk/apertium-tools/family-visualizations/ language family visualisation tool]. Make a page on the Apertium wiki that showcases these three visualisers and links to further documentation on each. If documentation for any of them is available somewhere other than the Apertium wiki, then (assuming compatible licenses) integrate it into the Apertium wiki, with a link back to the original.
 
|mentors=Jonathan
 
|tags=wiki, visualisers
 
}}{{Taskidea|type=research|mentors=Jonathan
 
|title=Investigate FST backends for Swype-type input
 
|description=Investigate what options exist for implementing an FST (of the sort used in Apertium [[spell checking]]) for auto-correction into an existing open source Swype-type input method on Android. You don't need to do any coding, but you should determine what would need to be done to add an FST backend into the software. Write up your findings on the Apertium wiki.
 
|mentors=Jonathan
 
|tags=spelling,android
 
}}{{Taskidea|type=research|mentors=Jonathan
 
|title=tesseract interface for apertium languages
 
|description=Find out what it would take to integrate apertium or voikkospell into tesseract. Document thoroughly available options on the wiki.
 
|tags=spelling,ocr
 
}}{{Taskidea
 
|type=documentation
 
|mentors=Jonathan, Shardul
 
|title=Integrate documentation of the Apertium deformatter/reformatter into system architecture page
 
|description=Integrate documentation of the Apertium deformatter and reformatter into the wiki page on the [[Apertium system architecture]].
 
|tags=wiki, architecture
 
}}{{Taskidea
 
|type=documentation
 
|mentors=Jonathan, Shardul
 
|title=Document a full example through the Apertium pipeline
 
|description=Come up with an example sentence that could hypothetically rely on each stage of the [[Apertium pipeline]], and show the input and output of each stage under the [[Apertium_system_architecture#Example_translation_at_each_stage|Example translation at each stage]] section on the Apertium wiki.
 
|tags=wiki, architecture
 
}}{{Taskidea
 
|type=documentation
 
|mentors=Jonathan, Shardul
 
|title=Create a visual overview of structural transfer rules
 
|description=Based on an [https://wikis.swarthmore.edu/ling073/Structural_transfer existing overview of Apertium structural transfer rules], come up with a visual presentation of transfer rules that shows what parts of a set of rules correspond to which changes in input and output, and also which definitions are used where in the rules. Get creative—you can do this all in any format easily viewed across platforms, especially as a webpage using modern effects like those offered by d3 or similar.
 
|tags=wiki, architecture, visualisations, transfer
 
}}{{Taskidea
 
|type=documentation
 
|mentors=Jonathan
 
|title=Complete the Linguistic Data chart on Apertium system architecture wiki page
 
|description=With the assistance of the Apertium community (our [[IRC]] channel) and the resources available on the Apertium wiki, fill in the remaining cells of the table in the "Linguistic data" section of the [[Apertium system architecture]] wiki page.
 
|tags=wiki, architecture
 
|beginner=yes
 
}}{{Taskidea
 
|type=research
 
|mentors=Fran
 
|title=Do a literature review on anaphora resolution
 
|description=Anaphora resolution (see the [[anaphora resolution|wiki page]] is the task of determining for a pronoun or other item with reference what it refers to. Do a literature review and write up common methods with their success rates.
 
|tags=anaphora, rbmt, engine
 
|beginner=
 
}}{{Taskidea
 
|type=research
 
|mentors=Fran
 
|title=Write up grammatical tables for a grammar of a language that Apertium doesn't have an analyser for
 
|description=Many descriptive grammars have useful tables that can be used for building morphological analysers. Unfortunately they are in Google Books or in paper and not easily processable by machine. The objective is to find a grammar of a language for which Apertium doesn't have a morphological analyser and write up the tables on a Wiki page.
 
|tags=grammar, books, data-entry
 
|beginner=
 
}}{{Taskidea
 
|type=research
 
|mentors=Fran, Xavivars
 
|title=Phrasebooks and frequency
 
|description=Apertium is quite terrible in general with phrasebook style sentences in most languages. Try translating "what's up" from English to Spanish. The objective of this task is to look for phrasebook/filler type sentences/utterances in parallel corpora of film subtitles and on the internet and order them by frequency/generality. Frequency is the amount of times you see the utterance, generality is in how many different places you see it.
 
|tags=phrasebook, translation
 
|beginner=
 
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
|type=research
+
|type=code
  +
|title=Write a TextMate grammar for CG-3 syntax highlighting
|mentors=Flammie
 
  +
|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.
|title=Hungarian Open Source dictionaries
 
  +
|tags=cg, editors, tools
|description=There are currently 3+ open source Hungarian open source resources for morphological analysis/dictionaries, study and document on how to install these and get the words and their inflectional informations out, and e.g. tabulate some examples of similarities and differences of word classes/tags/stuff. See [[Hungarian]] for more info.
 
  +
|mentors=Unhammer
|tags=hungarian
 
|beginner=
 
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
|type=research
+
|type=code
  +
|title=Make Apertium IRC bot's messaging system case-insensitive
|mentors=Vin, Jonathan
 
  +
|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.
|title=Create a UD-Apertium morphology mapping
 
  +
|tags=python, irc
|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.
 
  +
|beginner=yes
|tags=morphology, ud, dependencies
 
  +
|mentors=JNW, popcorndude
|beginner=
 
|multi=5
 
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
|type=research
+
|type=code
  +
|title=Make Apertium's IRC bot's updating of Apertium's wiki format numbers better
|mentors=Vin, Jonathan
 
  +
|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.
|title=Create an Apertium-UD morphology mapping
 
  +
|tags=python, irc, wiki
|description=Choose a language that has an Apertium morphological analyser and adapt it to convert the morphology to UD morphology
 
  +
|beginner=yes
|tags=morphology, ud, dependencies
 
  +
|mentors=JNW, popcorndude
|beginner=
 
|multi=5
 
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
|type=research
+
|type=code
  +
|title=Create a new init script for Apertium's IRC bot
|mentors=Vin
 
  +
|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].
|title=Create a full verbal paradigm for an Indo-Aryan language
 
  +
|tags=python, debian, init, irc
|description=Choose a regular verb and create a paradigm with all possible tense/aspect/mood inflections for an Indo-Aryan language (except Hindi or Marathi). Use Masica's grammar as a reference.
 
  +
|mentors=JNW
|tags=morphology, indo-aryan
 
|beginner=
 
|multi=10
 
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
|type=code
+
|type=documentation
|mentors=Vin
+
|mentors=JNW, flammie, popcorndude
  +
|title=Add comments to a dictionary defining the symbols used in it
|title=Create a syntactic analogy corpus for a particular POS/language.
 
  +
|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.
|description=Refer to the syntactic section of [https://www.aclweb.org/anthology/N/N16/N16-2002.pdf this paper]. Try to create a data set with more than 2000 * 8 = 16000 entries for a particular POS with any language, using a large corpus for frequency.
 
|tags=morphology, embeddings
+
|tags=dictionaries
  +
|dup=10
|beginner=
 
|multi=5
 
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
|type=code
+
|type=documentation
|mentors=Vin
+
|mentors=JNW, popcorndude
  +
|title=find symbols that aren't on the list of symbols page
|title=Envision and create a quick utility for tasks like morphological lookup
 
  +
|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.
|description=Many tasks like morphological analysis are annoying to do by navigating to the right directory, typing out an entire pipeline etc. Write a bash script to simplify some of these procedures, taking into account the install paths and prefixes if necessary. eg. echo "hargle" \| ~/analysers/apertium-eng/eng.automorf.bin ==> morph "hargle" eng
 
|tags=bash, scripting
+
|tags=wiki,dictionaries
|beginner=yes
 
|multi=10
 
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
|type=research,code
+
|type=documentation
  +
|title=document usage of the apertium-separable module
|mentors=Vin
 
  +
|mentors=JNW, khannatanmai, popcorndude
|title=Use open-source OCR to convert open-source non-text news corpora to text. Evaluate an analyser's coverage on them.
 
  +
|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]]
|description=Many languages that have online newspapers do not use actual text to store the news but instead use images or GIFs :((( find a newspaper for a language that lacks news text online (eg. Marathi), check licenses, find an OCR tool and scrape a reasonably large corpus from the images if doing so would not violate CC/GPL. Evaluate the morphological analyser on it.
 
|tags=python,morphology
+
|tags=lsx, dictionaries, wiki
|beginner=
 
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
|type=research,quality
+
|type=quality
  +
|title=Beta-test the apertium-separable module
|mentors=Shardul, Jonathan
 
  +
|mentors=JNW, ftyers, wei2912, khannatanmai, dolphingarlic, popcorndude
|tags=issues, python
 
  +
|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]]
|title=Clean up open issues in [https://github.com/goavki/apertium-html-tools/issues html-tools], [https://github.com/goavki/phenny/issues begiak], or [https://github.com/goavki/apertium-apy/issues APy]
 
  +
|tags=lsx, dictionaries
|description=Go through issue threads for [https://github.com/goavki/apertium-html-tools/issues html-tools], [https://github.com/goavki/phenny/issues begiak], or [https://github.com/goavki/apertium-apy/issues APy], and find issues that have been solved in the code but are still open on GitHub. (The fact that they have been solved may not be evident from the comments thread alone.) Once you find such an issue, comment on the thread explaining what code/commit fixed it and how it behaves at the latest revision.
 
|multi=15
+
|multi=yes
  +
|dup=20
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
|type=code,quality
+
|type=code, quality
  +
|title=script to test coverage of analyser over corresponding wikipedia corpus
|mentors=Shardul, Jonathan
 
  +
|mentors=JNW, wei2912
|tags=tests, python, IRC
 
  +
|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.
|title=Get [https://github.com/goavki/phenny begiak] to build cleanly
 
  +
|tags=python, ruby, wikipedia
|description=Currently, [https://github.com/goavki/phenny begiak] does not build cleanly because of a number of failing tests. Find what is causing the tests to fail, and either fix the code or the tests if the code has changed its behavior. Document all your changes in the PR that you create.
 
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
|type=quality
+
|type=code, design
  +
|title=Make source browser headings sticky at bottom of window
|mentors=Jonathan, Ilnar
 
  +
|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].
|title=Find stems in the Kazakh treebank that are not in the Kazakh analyser
 
  +
|tags=css, javascript, html, web
|description=There are quite a few analyses in the [http://svn.code.sf.net/p/apertium/svn/languages/apertium-kaz/texts/puupankki/puupankki.kaz.conllu Kazakh treebank] that don't exist in the [[apertium-kaz|Kazakh analyser]]. Find as many examples of missing stems as you can. Feel free to write a script to automate this so it's as exhaustive (and non-exhausting:) as possible. You may either add what you find to the analyser yourself, commit a list of the missing stems to apertium-kaz/dev, or send a list to your mentor so that they may do one of these.
 
  +
|mentors=sushain, JNW, xavivars
|tags=treebank, Kazakh, analyses
 
  +
|multi=
|beginner=yes
 
  +
|beginner=no
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
|type=quality
+
|type=code, design
|mentors=Jonathan, Ilnar
+
|mentors=JNW, jjjppp, sushain, dolphingarlic
  +
|tags=d3, javascript
|title=Find missing analyses in the Kazakh treebank that are not in the Kazakh analyser
 
  +
|title=Integrate globe viewer into language family visualiser interface
|description=There are quite a few analyses in the [http://svn.code.sf.net/p/apertium/svn/languages/apertium-kaz/texts/puupankki/puupankki.kaz.conllu Kazakh treebank] that don't exist in the [[apertium-kaz|Kazakh analyser]]. Find as many examples of missing analyses (for existing stems) as you can. Feel free to write a script to automate this so it's as exhaustive (and non-exhausting:) as possible. You may commit a list of the missing stems to apertium-kaz/dev or send a list to your mentor so that they may do this.
 
  +
|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].
|tags=treebank, Kazakh, analyses
 
  +
|multi=no
|beginner=yes
 
  +
|beginner=no
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
|type=code
+
|type=code
|mentors=Jonathan
+
|mentors=JNW, jjjppp, dolphingarlic
  +
|tags=d3, javascript
|title=Use apertium-init to bootstrap a new language module
 
  +
|title=Change hard-coded values to dynamic in the globe viewer's code
|description=Use [[Apertium-init]] to bootstrap a new language module that doesn't currently exist in Apertium. To see if a language is available, check [[languages]] and [[incubator]], and especially ask on IRC. Add enough stems and morphology to the module so that it analyses and generates at least 100 correct forms. Check your code into Apertium's codebase. [[Task ideas for Google Code-in/Add words from frequency list|Read more about adding stems...]]
 
  +
|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].
|tags=languages, bootstrap, dictionaries
 
  +
|multi=no
|beginner=yes
 
  +
|beginner=no
|multi=25
 
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
|type=code
+
|type=code
|mentors=Jonathan
+
|mentors=JNW, jjjppp, dolphingarlic
  +
|tags=d3, javascript
|title=Use apertium-init to bootstrap a new language pair
 
  +
|title=Fix fading for flyers in globe viewer
|description=Use [[Apertium-init]] 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, check our [[SVN]] repository, and especially ask on IRC. Add 100 common stems to the dictionary. Check your work into Apertium's codebase.
 
  +
|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].
|tags=languages, bootstrap, dictionaries, translators
 
  +
|multi=no
|beginner=yes
 
  +
|beginner=yes
|multi=25
 
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
|type=code
+
|type=design
|mentors=Jonathan
+
|mentors=JNW, ftyers
  +
|tags=UD, design, svg
|title=Add a transfer rule to an existing translation pair
 
  +
|title=Design a logo for UD Annotatrix
|description=Add a transfer rule to an existing translation pair that fixes an error in translation. Document the rule on the [http://wiki.apertium.org/ Apertium wiki] by adding a [[regression testing|regression tests]] page similar to [[English_and_Portuguese/Regression_tests]] or [[Icelandic_and_English/Regression_tests]]. Check your code into Apertium's codebase. [[Task ideas for Google Code-in/Add transfer rule|Read more...]]
 
  +
|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.
|tags=languages, bootstrap, transfer
 
|multi=25
+
|multi=yes
  +
|beginner=no
|dup=5
 
 
}}
 
}}
  +
  +
 
{{Taskidea
 
{{Taskidea
  +
|type=quality, documentation, design
|type=code
 
|mentors=Jonathan
+
|mentors=*
  +
|tags=video, tutorial
|title=Add stems to an existing translation pair
 
  +
|title=Video tutorial: installing Apertium, adding to dictionary, and submitting a PR
|description=Add 1000 common stems to the dictionary of an existing translation pair. Check your work into Apertium's codebase. [[Task ideas for Google Code-in/Add words from frequency list|Read more about adding stems...]]
 
  +
|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.
|tags=languages, bootstrap, dictionaries, translators
 
|multi=25
+
|multi=200
  +
|beginner=yes
|dup=5
 
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
|type=code
+
|type=quality
  +
|mentors=mlforcada, anakuz, xavivars, fotonzade, sevilay, Unhammer, eirien, dolphingarlic, wei2912, marcriera, padth4i, Oguz, JNW, jjjppp
|mentors=Jonathan
 
  +
|tags=xml, dictionaries
|title=Write 10 lexical selection to an existing translation pair
 
  +
|title=Identify and add 100 new entries to a bilingual dictionary
|description=Add 10 lexical selection rules to an existing translation pair. Check your work into Apertium's codebase. [[Task ideas for Google Code-in/Add lexical-select rules|Read more...]]
 
  +
|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]...
|tags=languages, bootstrap, lexical selection, translators
 
|multi=25
+
|multi=40
|dup=5
+
|dup=10
  +
|beginner=yes
 
}}
 
}}
  +
 
{{Taskidea
 
{{Taskidea
|type=code
+
|type=quality
  +
|mentors=mlforcada, anakuz, xavivars, fotonzade, ftyers, sevilay, eirien, dolphingarlic, wei2912, marcriera, padth4i, Oguz, JNW
|mentors=Jonathan
 
  +
|tags=xml, dictionaries
|title=Write 10 constraint grammar rules for an existing language module
 
  +
|title=Identify and add 250 new entries to a bilingual dictionary
|description=Add 10 constraint grammar rules to an existing language that you know. Check your work into Apertium's codebase. [[Task ideas for Google Code-in/Add constraint-grammar rules|Read more...]]
 
  +
|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]...
|tags=languages, bootstrap, constraint grammar
 
|multi=25
+
|multi=40
|dup=5
+
|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>
 
</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
  +
|-
  +
| 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 ==
  +
  +
Last updated by [[User:Firespeaker|Firespeaker]] ([[User talk:Firespeaker|talk]]) 07:30, 28 October 2019 (CET).
  +
  +
{| class="sortable wikitable"
  +
|-
  +
! scope="col" | Category
  +
! scope="col" | Count
  +
|-
  +
|{{sc|code}}
  +
|align="right"|16
  +
|-
  +
|{{sc|documentation}}
  +
|align="right"|4
  +
|-
  +
|{{sc|research}}
  +
|align="right"|11
  +
|-
  +
|{{sc|quality}}
  +
|align="right"|8
  +
|-
  +
|{{sc|design}}
  +
|align="right"|2
  +
|- class="sortbottom"
  +
!Total
  +
|align="right"|33
  +
|}
   
 
[[Category:Google Code-in]]
 
[[Category:Google Code-in]]

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