Approved license
I assert that this Outreachy internship project will released under either an OSI-approved open source license that is also identified by the FSF as a free software license, OR a Creative Commons license approved for free cultural works
- CC-BY-SA
No proprietary software:
I assert that this Outreachy internship project will forward the interests of free and open source software, not proprietary software.
- Yes
How long has your team been accepting publicly submitted contributions?
- More than 2 years
How many regular contributors does your team have?
- 1-2 people
Brief summary
Wikimedia Commons is a multilingual project that hosts over 60 million freely licensed multimedia files, which are available for use on Wikipedia and other websites. These files are mostly organised using categories, which often only include monolingual descriptions..
The current solution is https://commons.wikimedia.org/wiki/Template:Wikidata_Infobox . This is currently used to include a multilingual infobox in over 3 million Wikimedia Commons categories. The categories contain media related to a specific topic, while Wikidata holds structured data about the topic: the infobox brings them together to display summary information about the category contents, in around 300 different languages.
It is currently coded using MediaWiki ParserFunctions and calls to Lua modules, and it currently consumes a lot of server resources. The overall aim of this project is to rewrite it completely in Lua, so that it loads significantly more quickly and efficiently, and to make sure it is easy to expand it in the future.
This project is co-mentored by Mike Peel and RexxS. Knowledge of Lua is an advantage, although it can be learnt during the project. Knowing multiple human languages is useful to check the multilingual contents of the infobox, but is not required.
Minimum system requirements
Only an internet browser is required.
How can applicants make a contribution to your project?
To start with, you will make edits to the current version of the infobox, which mostly works by ParserFunctions, by adding new properties and fixing bugs in the sandbox version, to gain familiarity with how the infobox works, how it handles input data, and what other Wikimedia editors want from the infobox. You will then start migrating specific parts of the infobox to use Lua functions. Ultimately, you will convert the whole infobox into Lua, test its performance, and expand it with new features.
You will need to create an account on Wikipedia (if you don't already have one) via https://commons.wikimedia.org/w/index.php?title=Special:CreateAccount . Potential tasks are listed at https://commons.wikimedia.org/wiki/Template_talk:Wikidata_Infobox (best if you look at the tasks at the bottom of the page) - if you are interested in working on any of them then you should comment there and either I or RexxS (or another community member) will reply with guidance on the specific task, or if you have any questions then please ask through Outreachy or at https://commons.wikimedia.org/wiki/Template_talk:Wikidata_Infobox#Outreachy_project .
Repository
https://commons.wikimedia.org/wiki/Template:Wikidata_Infobox/core/sandbox
Issue tracker
https://commons.wikimedia.org/wiki/Template_talk:Wikidata_Infobox
Intern tasks
Potential tasks include:
- Improving documentation: reading through the current code and documenting how it works
- Adding support for additional properties in the infobox
- Tackling some of the technical issues raised on the talk page (https://commons.wikimedia.org/wiki/Template_talk:Wikidata_Infobox)
- Converting parts of the infobox to use Lua functions rather than ParserFunctions
- Installing the current version of the template on other wikis
Intern benefits
You will learn, or improve your knowledge of, Lua coding. You will gain familiarity with how structured data is maintained on Wikidata, and how it is used on Wikimedia Commons. You will see your work live in millions of categories on Commons.
Community benefits
Improved load times and improved display of Wikidata information in Commons categories. A cleaner code base, written entirely in Lua, to be able to better maintain and expand it in the future.