Jump to content

Grants:Project/Putnik/Wikidata module

From Meta, a Wikimedia project coordination wiki
Wikidata module
summaryEasy to use, powerful Wikidata integration for all Wikimedia projects.
targetall Wikimedia projects
type of granttools and software
amount12000 USD
contact• mail@putnik.tech
created on20:32, 1 August 2016 (UTC)

Project idea[edit]

What is the problem you're trying to solve?[edit]

Easy to use, powerful Wikidata integration (primarily for infoboxes) for all Wikimedia projects that want to use it.

What is your solution?[edit]

I want to improve and partially rewrite Lua module that was originally created for the Russian Wikipedia, and now it is used in 17 more Wikipedias.

After this, module will be:

  • easy to install: even if some wiki has no resources to maintain this system, it should be enough to create only a few pages to make it work;
  • works "out of the box" with all common types, like strings, images, identifiers, quantities, etc;
  • easy to integrate into any infobox templates system without knowledge of Lua;
  • configurable: it will include simple configuration file for most common use cases (show all statements or only sourced, which sources should be preferred or ignored, different formatting settings, etc);
  • extendable: it will be possible to write a custom renderer for any property; if you want to show medals as bars, it will be possible as an extension, with no changes to the module code.
How it works now in Russian Wikipedia

Project goals[edit]

Explain what are you trying to accomplish with this project, or what do you expect will change as a result of this grant.

  1. To improve the current module to such an extent that sections that have been using it may wish to completely replace all the parameters of the templates with data from Wikidata.
  2. Make the module easy to install and use in any project. It includes:
    • translating all exists comments and documentation into English;
    • removing or rewriting the code, related to Russian Wikipedia;
    • creating optional configuration page for most common cases;
    • adding documentation for main module and most popular extensions;
    • moving all codebase to MediaWiki.org and create a bot to synchronize it.
  3. Deploy the module to the largest possible number of projects:
    • integrate the module with existing modules in large projects;
    • help small projects to install and configure;
    • inform all communities about the possibility of integration through the notification, workshops, presentations, etc;
    • a good option is to move the main part of the module to the MediaWiki extension and deploy it to all Wikimedia projects, but this problem requires further analysis.

Also within this work, I plan to complete some related tasks based on work described, but it may give some practical results, or may not:

  • writing proposals how to improve default formatters in Wikibase Lua modules ;
  • trying to use parts of this Lua module for ArticlePlaceholder extension, and maybe improving it's default layout.

Project plan[edit]


The main activity will be programming, testing, correction of templates and writing documentation. Part of the time will also be spent communicating with the community. This work will be carried out 40 hours a week. Progress reports will be published on a daily basis.


Programmer: 6 months × 2000 USD = 12000 USD

Approximate timeline
Analysis of the functionality, dependencies, and compatibility of the existing modules. 1 week
Support for all basic types in the Russian Wikipedia module. 3 weeks
Removing language dependencies. 1 week
Creating a settings page, specify the default settings. 2 week
Rewriting of the most important module extensions from the Russian Wikipedia. 4 weeks
Creating deployment script with UI. 3 weeks
Adaptation of the modules of the largest projects (en, de, fr wikis) for compatibility. 4 weeks
Writing and translating documentation. 2 weeks
Deploying the new version of the module to all projects that are already using it. 3 weeks
Deploying the module to some new projects. 3 weeks
Total 26 weeks

Community engagement[edit]

This module was originally created more than two years ago. Now it is used by almost a million articles in Russian Wikipedia, and is likely to total about the same number of articles in other projects. This work requires constant interaction with the community, and it will be continued. Also, I hope to bring to the interaction of the community of all the projects that are already using the module, and those who would like to use it. This is the best way to understand the needs of users.


After the grant ends the module will be ready for use and will not require significant improvements. Due to the fact that the module will be actively used in many projects, and the development will be transferred to MediaWiki.org, it will be able to make a further contribution to all those who will use it.

Measures of success[edit]

  • Created an extendable module that can work on any Wikimedia project.
  • Created a tool with a visual interface to easily deploy the module to any Wikimedia project and configure it only by efforts of the participants of that project community.
  • Module deployed to one or more new projects.
  • Participants do not arise problems with changing of infoboxes to use this module.

Get involved[edit]


  • Sergey Leschina (putnik): Programmer with 7 years of professional experience. Wikipedia editor since 2006, admin in Russian Wikipedia, Russian Wikiquote and Wikimedia Commons, OTRS agent, member of Wikimedia Russia.

Community notification[edit]

Please paste links below to where relevant communities have been notified of your proposal, and to any other relevant community discussions. Need notification tips?


Do you think this project should be selected for an Individual Engagement Grant? Please add your name and rationale for endorsing this project below! (Other constructive feedback is welcome on the discussion page).

  • Because I believe it would be a very important improvement that could help a lot of WM projects Ле Лой (talk) 02:21, 2 August 2016 (UTC)
  • I’d rather see some money spent on good community tools than good community meetups. Saint Johann (ru) 02:35, 2 August 2016 (UTC)
  • very good idea ShinePhantom (talk) 06:08, 2 August 2016 (UTC)
  • User:Putnik spent good portion of past 2 years doing WD-integrations with various flavors of ru-wiki infoboxes. He learnt a lot of nuances and had to deal with (initially) very skeptical community. Current codebase is not perfect, but it is the most advanced and easy to use integration I've seen across major wikis. If he will be able to apply his experience at meta level, it will definetly boost WD usage in infoboxes --Ghuron (talk) 09:06, 2 August 2016 (UTC)
  • Currently integrating Wikidata seems hard enough that the integration doesn't happen in many cases. I think making that integration easier is very valuable, so I support this proposal. ChristianKl (talk) 08:53, 3 August 2016 (UTC)
  • We as the Wikidata development team have not put enough time into this so far and it has led to considerable hurdles in the adoption of Wikidata's data in the other Wikimedia projects. This project should help a lot with this especially given the experience already gathered on ruwp. --Lydia Pintscher (WMDE) (talk) 09:20, 3 August 2016 (UTC)
  • Good proposal. I think it's important that this works better to make it easier for Wikipedia to make use of Wikidata. I tried to convince Lydia to do this through WMDE, but all the better if someone wants to do it. Jura1 (talk) 09:53, 3 August 2016 (UTC)
  • Easier Infoboxes would help the adoption of Wikidata in Wikipedia a lot and help to move over knowledge to Wikidata. SpeciesATosm (talk) 10:31, 3 August 2016 (UTC)
  • This is going to be a game changer for many projects. Rahmanuddin (talk) 11:29, 3 August 2016 (UTC)
  • I have been hearing about Russian Wikipedia's Wikidata integration for some time. I would like to see it demo'd on English Wikipedia. Even if English Wikipedia decides to not adopt the format, I think it would advance conversation and thought only to see any proposal of integration between English wikipedia and Wikidata. If nothing is produced here except a demo that is later abandoned then still awarding this grant is a good idea. There are already probably 2000 people who have imagined this concept and noticed the absence of a practical demonstration of it. Showing one possibility on Wikipedia will save a lot of community time in discussion about this abstractly and finally give users a practical demonstration of a way that this could work. Blue Rasberry (talk) 14:17, 3 August 2016 (UTC)
  • A better Wikidata module would be nice. We are using one on the Danish Wikipedia and it works in most cases. I do not know if this is a derivation of the Russian module. — Finn Årup Nielsen (fnielsen) (talk) 15:03, 3 August 2016 (UTC)
    • @Fnielsen: Do you have an illustration of an infobox that is in Danish Wikipedia using this module? I'd love to see it, Finn. :-) -- Erika aka BrillLyle (talk) 17:02, 3 August 2016 (UTC)
      • For our parliamentary members w:da:Skabelon:Infoboks MF and for companies/organisations w:da:Skabelon:Infoboks virksomhed. Wikidata template w:da:Skabelon:Wikidata and the module w:da:Modul:Wikidata. This seems to be a copy of the Spanish module. — Finn Årup Nielsen (fnielsen) (talk) 17:57, 3 August 2016 (UTC)
      • Maybe I should note that the templates that I have changed a bit tends to do conditional inclusion from Wikidata, i.e., any template parameter value will have priority over the Wikidata. — Finn Årup Nielsen (fnielsen) (talk) 18:00, 3 August 2016 (UTC)
        • Thanks! This is great. So how does a Danish Wikipedia editor update this Infobox? Using the R button on the bottom right corner in the V D R area, or just edit the existing markup? I could see it for Svend Auken; do you have a company page I could view? Apologies, didn't realize it would be difficult to view in other languages. Found one: Bispebjerg Hospital Thanks! -- Erika aka BrillLyle (talk) 18:57, 3 August 2016 (UTC)
        • This issue is now moot however, as this proposal involves what to me is the dreaded depreciation of the template and moving it off the Wiki. Very non-ideal. I like this Danish solution much better. -- Erika aka BrillLyle (talk) 01:37, 4 August 2016 (UTC)
          • @BrillLyle: I do not see any difference between the way it is done for the end user in the Russian and Danish Wikipedias: you need to edit an infobox to add Wikidata support, you can set the local value for parameter inside Wikipedia, and if a local value is not specified, you will see a value from Wikidata. — putnik 10:09, 4 August 2016 (UTC)
            • @Putnik: Ugh. I did not realize it's a Franken-monster hybrid of old and new. Apologies. This Wikidata template-izing continues to be non-ideal. But if this is going to happen no matter what, I guess I give up raising objections. -- Erika aka BrillLyle (talk) 21:11, 4 August 2016 (UTC)
  •  Weak support -- But absolutely not on English Wikipedia.... Support Support Strong oppose as well as  Weak support I will start a Discussion page thread as to concerns -- Erika aka BrillLyle (talk) 16:58, 3 August 2016 (UTC)
  • It would be great to have easier to use modules available to the local Wikipedia communities to use. Currently, Lua and the other methods to access Wikidata can seem daunting, and having an easier interface and well-documented module might considerably support a tighter integration of the projects. --denny (talk) 17:15, 3 August 2016 (UTC)
  • Great! Scott_ WorldUnivAndSch (talk) 22:02, 3 August 2016 (UTC)
  • This would help integration and use of wikidata in wikipedia --Mauricio V. Genta (talk) 01:45, 4 August 2016 (UTC)
  • This will mean a lot for the use of Wikidata. Ainali (talk) 10:43, 4 August 2016 (UTC)
  • Having the ability to increase Wikidata integration is important for all sizes of Wikimedia project, especially once external data sources are regularly imported into Wikidata. John Cummings (talk) 16:16, 4 August 2016 (UTC)
  • This page? w:ru:Модуль:Wikidata, it needs a lot of refactoring if not a complete rework. — Jeblad 17:02, 4 August 2016 (UTC)
    • @Jeblad: May you write a more detailed comment on the talk page? — putnik 21:30, 4 August 2016 (UTC)
  • Strong support for trying to write portable implementation which could be used in multiple wikis. --Zache (talk) 08:19, 5 August 2016 (UTC)
  • Strong support. I believe User:Putnik is the right person for this project. If there is any time left in the schedule I think it could be spent on writing very good documentation and working on getting some Lua functions into a global namespace (where all other projects can call the functions, without having to rewrite or copy and paste them). --Tobias1984 (talk) 18:28, 5 August 2016 (UTC)
  • Strong support. MaxBioHazard (talk) 23:40, 5 August 2016 (UTC)
  • Support Support. This project is a big help to small language sections of Wikipedia. —Рөстәм Нурыев (talk) 03:56, 17 August 2016 (UTC)
  • Support Support--Alexmar983 (talk) 17:41, 7 October 2016 (UTC)
  • Wikidata may become a very convenient place to store most of the content usually presented in infoboxes, as well as some other factual data for articles; however, the access to this data from a Wikipedia article is quite cumbersome. A common easy-to-use interface would provide a significant boost both to Wikidata and to Wikipedia. DmitTrix (talk) 13:24, 8 October 2016 (UTC)
  • Support Support-- Slovenian Wikipedians were one of the first users of the Russian system for working with Wikidata in infoboxes. Since then system went through many improvements and it was hard just to follow them. But I've get a lot of support from them, so we managed to get it work in Slovenian Wikipedia. The most difficult part was their language in modules (category naming, comments, dating system was in russian, and some other stuff also). Maintaing and upgrading is difficult, especially if something essential happens in Wikidata (that happened in referencing system) and you noticed an error too late. So, I am looking forward for more systematic approach and easier system maintenance. --Pinky sl (talk) 08:32, 11 October 2016 (UTC)
  • Support Support Stryn (talk) 20:46, 16 December 2016 (UTC)
  • Support Support Wesalius (talk) 11:30, 13 October 2016 (UTC)