Wikidata annotation tool/updates
Week 1 ( May 19 - May 26 ) Edit Setup the environment at Wikimedia Foundation Labs Tools
Created a selector for Pundit using a wrapper for Wikibase API
Week 2 ( May 27 - June 3 ) Edit Parsed Wikidata dump of properties into a correct format and made a vocabulary for Pundit to fetch predicates from Wikidata
Making a wrapper of OAuth API for Wikimedia
Test site is hosted
here This has become considerably slower due massive amount of predicates
Working on removing some of them as of now.
Week 3 ( June 4 - June 11 ) Edit Changes the predicates loader from Wikidata dump to selector, now even properties are being loaded through a selector!
Made the OAuth API wrapper working.
Started making changes to CSS of the tool. Need to discuss this on #wikimedia-designers
Week 4 ( June 12 - June 19 ) Edit Tried to integrate WikiMedia OAuth Login with Pundit's OpenID login system, but failed to do so. Discussion regarding this can be found
here. Discussed some new approaches with mentors and finally came to a conclusion to provide a Push to Wikidata button in the interface, which will sync user's Pundit Notebook's annotation with Wikidata through a bot and will use OAuth to recognize the user.
Week 5 ( June 20 - June 26 ) Edit Made changes to frontend Pundit code and backend Login API code to fulfill the demands of Push to Wikidata Button.
This will work fully when bot will come into play
Week 6 ( June 27 - July 4 ) Edit Started working on the bot
After discussing much and researching on PyWikipediaBot, we came to a conclusion that we don't need a bot for our this process we need some kind of autolist much like that of Magnus's
autolists This week was too much productive, I started developing autolist based on magnus tool and using Magnus' tool WiDaR for Wikidata API query via OAuth
I am able to receive now annotations from Pundit server's public API and transform them to Wikidata format.
Now only job left is feed this data retrieved and formatted to Wikidata
Week 7 ( July 5 - July 12 ) Edit I completed the autolist mainly in this week and made it fully functional.
Autolists contain the functionality to interact with Mediawiki through OAuth just like WiDaR except that it has more options
I completed most of fetching and pushing to Wikidata part in this week
Now I fixed up Bajo to fetch annotations from Pundit open server APi and show them in a pretty way and give user an option to select which annotations to be pushed
Week 8 ( July 13 - July 21 ) Edit I hosted the app on Tools lab and put a mail on Wikidata List for testing but didn't got much response
Added all the comments to code and made some documentations
Cleaned up all the code, Bajo and added more functionality to WAF
Now plugin is adding references also to the annotation for an item it creates
References are the source url and the time the annoations was created
Week 9 ( July 22 - July 29 ) Edit This week I wrote mainly tests for Bajo in QUnit.
Week 10 ( July 30 - August 5 ) Edit Completed the tests through this week
Fixed some bugs and required improved as asked by testers and mentors
Started to work on packaging the whole project into bookmarklet.
Week 11 ( August 6 - August 13 ) Edit Had troubles with packaging the predefined script wasn't working.
Learnt shellscript and rewrote the script again
Loading issues with bookmarklet, it was loading the original Pundit
Week 12 ( August 14 - August 16 ) Edit Finally packaged the product with help of mentor and hosted it on Github pages
Hosted via Github CDN the bookmarklet is available at
this link May take some time to load due to big size.
Project wrap up report soon
Goals for first half of internship Edit Make a wrapper of already existing Wikimedia API to get user logged in with plugin, this is hosted
Attach this wrapper to Pundit and replace the old OpenID login system, by creating a new fork of Pundit. Create a selector for Pundit to help it load objects(items) from Wikidata
Create a vocabulary of Wikidata predicates in required Pundit format and load it in Pundit
This will be done by taking properties dump from Wikidata and converting it to required format Write Simple HTML tests for all of the work done.
Communication Plan Edit My primary means of communication with mentors is a dedicated
mailing list which is open for anyone to join, here various people ponder over a single discussion to sort out the best way to do this.
I will mail Wikitech-l in case I need advice from more people Usually I ask my small questions around IRC and I am available on most of the general channels related to Mediawiki.
Another means of frequent communications is Google Hangout, which is fast and reliable to get quick advice.
Lessons learned since April 21st Edit
Things are not always as easy as they seem, usually they don't go right according to your way.
Patience is everything.
Discussion is important, but taking correct decisions is up to you, because in the end you are responsible.
It's good to use technologies you already know, get your hands into mud is not always the best option. Main code is hosted
here Python bot's code will be hosted
here API wrapper's code will be hosted here on github and at tools