Wikidata annotation tool/project completion report


After working on Wikidata Web Annotator for almost 3 months, it is ready and is just more than a minimum viable product. Wikidata Web Annotator is thought as one of those projects that can open up a whole new world of links between the semantic web if used properly. This project report will cover up what main problems were faced during development and how they were overcome, current status and future of the project.

Minimum Description[edit]

In minimum words, Wikidata Web Annotator can be explained by test example, as scripted below. Consider you find an important piece of information on Barack Obama while surfing on the internet and you don't want to lose it. Now here Web Annotator comes into play:

Important Data -> Highlight it -> Annotate it with Pundit -> Save it -> Push to Wikidata Item 'Barack Obama' a property:value pair with reference as the website.

Hence this project will link the info from all over the world


Minimum viable product is ready to be used here. Just drag the bookmarklet to your bookmark bar and it is ready to be used anywhere on just a click of button.

Major Problems faced and their status[edit]

  • Loading speed - Due to high amount of JS loaded it takes time to load the plugin. This has been mostly solved by compressing everything but yet not a complete solution. We need a faster server to load plugin from, currently it is hosted at Github CDN and thus is available to all
  • Login system - OAuth was implemented with many problems during this project, maybe due to lack of documentation and code examples, I had to code all the OAuth system again on the lines of Magnus's OAuth.php. But now its working and its source is available for further use by developer as an interaction module with Wikidata named WAL. Code and info here. Hence another developer can directly use this app for getting OAuth access for their clients via MediaWiki and then do changes in their name
  • Autolist: First we thought that we would need a bot to regularly push annotations to Wikidata, but we were wrong the thing we needed is called Autolist and this lets you push in name of OAuth approved person. Source is here
  • Packaging: Shell scripts for Pundit were not working for packaging it as bookmarklet hence I fixed them and make it work. This uses dojo-utils to pack the whole project into one single file. Source is here
  • Little Bugs: Some little bugs are left in the project and are yet to be fixed.


Since this project is important in its existence and value, I will continue to work upon it and maintain for the years to come. It was nice experience developing it with MediaWiki


I would like to thanks my mentor Christian Morbidini, Simone Fonda, Cristian Consonni, Andrea Zanni and Luca Martinelli. This post won't complete without mentioning David (Micru) and Magnus for their extreme support.