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

From Apertium
Jump to navigation Jump to search
Line 45: Line 45:
 
|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].
 
|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
 
|tags=Kyrgyz, English, recursive transfer, pairs
|mentors=JNW
+
|mentors=JNW, popcorndude
 
|multi=150
 
|multi=150
 
|dup=10
 
|dup=10
Line 55: Line 55:
 
|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.
 
|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
 
|tags=recursive transfer, pairs
|mentors=JNW
+
|mentors=JNW, popcorndude
 
|multi=150
 
|multi=150
 
|dup=10
 
|dup=10
Line 66: Line 66:
 
|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.
 
|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.
 
|tags=recursive transfer, pairs
 
|tags=recursive transfer, pairs
|mentors=JNW
+
|mentors=JNW, popcorndude
 
|multi=150
 
|multi=150
 
|dup=20
 
|dup=20

Revision as of 18:55, 17 October 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
  • dup = number of times a student can do the same task

You can find descriptions of some of the mentors here.

Task ideas

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

typetitledescriptiontagsmentorsbgnr?multi?duplicates
research, quality, documentation Adopt a Wiki page 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, or updating documentation to reflect the current options and defaults of various tools. wiki * yes 150
research, code expand coverage of Kyrgyz to English structural transfer Find a sentence in Kyrgyz that once the lexical items are added to the bilingual dictionary is not fully (or correctly) parsed by the kir-eng-transfer Apertium mode. Determine what rule(s) need(s) to be added (or fixed) to cover this structure, and update apertium-eng-kir.kir-eng.rtx accordingly. You will first want to clone and compile apertium-eng-kir. Kyrgyz, English, recursive transfer, pairs JNW, popcorndude 150 10
code Add recursive transfer support to a language pair that doesn't support it Make a branch of an Apertium language pair that doesn't support recursive transfer and call it "recursive transfer". Add vanilla .rtx files for both directions, and modify Makefile.am and modes.xml so that the branch compiles and runs. See this page for instructions on how to do this. recursive transfer, pairs JNW, popcorndude yes 150 10
code Add 2 recursive transfer rules to a language pair 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 (more documentation here). If the language pair does not support recursive transfer, make sure to set it up first. recursive transfer, pairs JNW, popcorndude 150 20
code Use apertium-init to bootstrap a new language pair 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 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. languages, bootstrap, dictionaries, translators JNW yes 25
code Use apertium-init to bootstrap a new language module 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 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. Read more about adding stems... languages, bootstrap, dictionaries JNW yes 25
code Write 10 lexical selection for an existing translation pair Add 10 lexical selection rules to an existing translation pair. Submit your work as a github pull request to that pair. Read more... languages, bootstrap, lexical selection, translators JNW 25 5
code Write 10 constraint grammar rules for an existing language module 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. Read more... languages, bootstrap, constraint grammar JNW 25 5
Research Syntactic annotation of text 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. UD, trees, annotation anakuz, fotonzade
research Create a UD-Apertium morphology mapping 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 UD's POS and feature tags for the labels. morphology, ud, dependencies JNW,ftyers, fotonzade 5
research Create an Apertium-UD morphology mapping Choose a language that has an Apertium morphological analyser and adapt it to convert the morphology to UD morphology morphology, ud, dependencies JNW, ftyers, fotonzade 5
quality Install Apertium and verify that it works See Installation for instructions and if you encounter any issues along the way, document them and/or improve the wiki instructions! bash ftyers, JNW, Unhammer, anakuz, Josh, fotonzade yes 150

Mentors

Mentor Languages
ftyers eng, spa, cat, fra, nor, rus, por, swe, tur, gag, aze
JNW eng, spa, fra, rus, tur, gag, aze, kaz, kir, 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

Counts

Last updated by Sushain (talk) 19:22, 15 September 2018 (CEST).

Category Count
code 35
documentation 5
research 10
quality 10
design 5
Total 53