Page MenuHomePhabricator

Outreachy 2023(May - August) Proposal: Write a Ruby gem for analyzing Wikidata edits
Closed, DeclinedPublic

Description

Profile Information

Name: Sharon Odhiambo
IRC nickname on libera.chat IRC (optional): SharonOdhiambo
Web Profile: sharon-odhiambo
Resume (optional): Resume
Location (country or state): Kenya
Typical working hours (include your timezone): 1.00PM - 1.00AM (UTC + 3)

Synopsis

Wikidata is a collaborative knowledge base that provides a free and open source collection of structured data. It is an essential resource for research, education, and various applications that require structured data. However, there is no effective tool for analyzing Wikidata edits to extract statistics and insights from changes made to Wikidata items. The goal of this project is to develop a Ruby gem for parsing the differences between Wikidata revisions and extracting detailed statistics about what changed. The proposed gem will include unique features and innovative approaches to analyzing Wikidata edits.

  • Possible Mentor(s):

Sage Ross

  • Have you contacted your mentors already? :

Yes

Deliverables

Timeline

May 29 - June 12

Research the Wikidata API and its features
Explore Wikidata to understand the data structure and find a diverse set of example edits representing different kinds of changes
Discuss the data found with mentor and incorporate additional feedback given
Plan the implementation of the library based on the research

June 13 - June 28

Write code to fetch JSON representations of an item at two revisions and isolate the differences
Create a method to extract statistics from the JSON differences, such as the number of qualifiers and references added.

June 29 - July 5

Write tests to demonstrate that the library processes example edits correctly
Use the feedback from the tests to improve efficiency and test the library with bigger batches

July 6 - July 14 (Midterm evaluation deadline)

Feedback round from mentor(s) based on the built phase
Conduct manual tests to evaluate the gem
Incorporate the feedback given into the library

July 15 - July 21

Write clear and concise documentation for the gem, including installation instructions, usage examples, and API reference.
Coordinate with mentor(s) to publish the gem on RubyGems.org

July 29 - August 11

Understand the integration requirements of Wiki Education Dashboard
Write code to integrate the gem with Wiki Education Dashboard to improve the quality of Wikidata statistics.
Develop a feature that can recommend edits based on the analysis of the quality of previous edits.
Test the integration and ensure that the statistics displayed are accurate
Provide detailed documentation on how to use the gem for the Wiki Education Dashboard and Programs & Events Dashboard.

August 12 - August 25

Finalize any pending issues or improvements
Write a comprehensive user guide for the library
Prepare for the final project review and submission

Conclusion

This project will create a Ruby library (gem) that parses the differences between Wikidata revisions and extracts statistics about what changed. The library will help improve Wikidata statistics on Wiki Education Dashboard and Programs & Events Dashboard, and can have other use cases as well. By providing a comprehensive analysis of Wikidata edits, this gem can enhance the utility and reliability of Wikidata for research, education, and various applications.

Participation

I'm currently in the Wiki Edu Dashboard slack where I've been communicating during the application and intend to use during the internship.
For specific code updates, I'm available on my github where I will communicate on issues and pull requests pages. I'm also available on my email.

About Me

Tell us about a few:

  • Education (completed)

Microverse: Full Stack Web Development
University: University of Nairobi, Bachelors in Actuarial Science

  • How did you hear about this program?

I was referred by a friend who heard about it on twitter and suggested that we should apply for the same

  • Will you have any other time commitments, such as school work, another job, planned vacation, etc, during the duration of the program?

No, I will be available fulltime as my current internship will be completed.

  • We advise all candidates eligible for Google Summer of Code and Outreachy to apply for both programs. Are you planning to apply to both programs and, if so, with what organization(s)?

No, I have only applied for Outreachy with Wikimedia Foundation.

What does making this project happen mean to you?

  • This is my first experience with OSS and the experience during the application has been really exciting. The Wikimedia community in specific is very great and having a chance to learn and help in improving the community is an opportunity I'm really looking forward to. Rails and React in particular are my preferred stack and having a chance to improve in them is really important to me. Doing so to avail free services to learners for increased knowledgebase is what makes this project even more important to me.

Past Experience

    • Please add links to any feature or bug fix you have written for a Wikimedia project during the application phase.
  • 5308 - Fixed rubocop Rails/I18nLocaleTexts issue that was temporarily disabled
  • 5321 - Fixed an outdated Windows setup script and automated WSL script
  • 5338 - Creating an alert to Wiki expert when an article is moved out of mainspace to different namespaces. This is an issue that I'm currently still working on while incorporating my mentor's feedback.
  • 5360 - Currently, students list in a specific course are sorted in the way they joined the course. In this contribution, I updated the default sorting to be the student's last name and fallback to their username when they have similar last names. This provides a better user experience especially when one wants to find a student in their course by their name since this might be more relevant than the time joined.
    • Describe any relevant projects that you've worked on previously and what knowledge you gained from working on them
  • shesupplies - This is a website for an organization that promotes gender equality in the global supply chain. I'm currently updating, maintaining and adding a digital platform to the website. Fro m this experience I've learnt about the imbalances and how providing resources to different organizations can help promote gender equality. I've also learnt about quality and reusable code and improved my HTML, CSS, JavaScript and PHP skills.
  • Jetlog - This is an aeroplanes reservation application that was built with HTML, CSS, JavaScript React, Ruby, Ruby on Rails, Bootstrap and PostgreSQL. This was a collaborative project where I practiced remote pair programming and effective communication. Additional, I learnt time management, code efficiency, teamwork and professional presentation.

Event Timeline

SharonOdhiambo renamed this task from Write a Ruby gem for analyzing Wikidata edits to Outreachy Proposals for a Ruby gem for analyzing Wikidata edits.Apr 3 2023, 12:39 PM
SharonOdhiambo renamed this task from Outreachy Proposals for a Ruby gem for analyzing Wikidata edits to Outreachy 2023(May - August) Proposal: Write a for a Ruby gem for analyzing Wikidata edits.Apr 3 2023, 12:41 PM
SharonOdhiambo renamed this task from Outreachy 2023(May - August) Proposal: Write a for a Ruby gem for analyzing Wikidata edits to Outreachy 2023(May - August) Proposal: Write a Ruby gem for analyzing Wikidata edits.

Outreachy results are out! Declining this task as the proposal was not selected. You could consider finishing up any pending pull requests or tasks remaining from the contribution period. Your ideas and contributions to Wikimedia projects are still welcome. If you would still be eligible for the next round of Outreachy, we look forward to your participation!