Community Tech/PageAssessments

From Meta, a Wikimedia project coordination wiki

This page documents a project the Wikimedia Foundation's Community Tech team has worked on or declined in the past. Technical work on this project is complete.

We invite you to join the discussion on the talk page. You may track this project's progress on T120219.

Tracked in Phabricator:
Task T120219

The PageAssessments project is working on a new extension – Extension:PageAssessments – that stores English Wikipedia's WikiProject article assessments in a new database table. Once the extension is enabled, developers and bot/gadget creators will be able to create tools that help WikiProjects to track and organize their work.

Problem[edit]

WikiProject page assessments are a way for groups of Wikipedia contributors to evaluate the quality of the encyclopedia articles within their subject area. They provide a benchmark that encourages contributors to organize around bringing more articles up to a high standard of quality.

Currently, WikiProjects store page assessment data in WikiText templates that are added to the Talk pages of articles and other pages. This data can then be retrieved through two different methods: scraping the contents of the page and trying to parse out the data, or looking for certain types of categories assigned to the pages by the templates. The first method is slow, impractical, and likely to be unreliable, especially since there are hundreds of different templates and aliases (just on English Wikipedia) and new ones are added frequently. The second method is more practical, but will only work for a single wiki, since different wikis handle assessment categories differently and some do not use assessment categories at all. In addition, assessment data cannot easily be combined with other types of queries, since it is complicated to query for itself and may be expensive on larger wikis. Also, neither method reveals when the assessment was made or which page revision was actually assessed.

In the long term, we would like to move away from using WikiText for recording page assessments. Ideally, assessments should be done through a simple graphical user interface and not require page editing at all. One of the pre-requisites for this would be storing all of the data somewhere besides WikiText and providing an API for interacting with that data. The PageAssessments extension aims to accomplish both of these tasks.

Approach[edit]

Phase 1[edit]

Status: Complete
In the first phase of PageAssessment usage, it will rely on a parser function that will be embedded in the master assessment template of each wiki. For example, on English Wikipedia, it would be embedded in the WPBannerMeta template. Then, whenever a page assessment was added to a new article, the assessment data would automatically be passed to the parser function by the template and stored in dedicated database tables. The parser function would use the following syntax: {{#assessment:<name of the wikiproject>|<class>|<importance>}}. For example: {{#assessment:Medicine|A|Low}}.

Phase 1 is planned to be rolled-out to English Wikivoyage in early September and English Wikipedia in late September. It will be deployed to other projects as requested.

Phase 2[edit]

Status: Not done. Dropped from roadmap.
Phase 2 (which is not yet concrete) will be to migrate away from using WikiText to record page assessments, and instead, recording them in the database directly via an API and client-side interface. This phase will be fleshed out further once phase 1 is complete.

Technical discussion and background[edit]

Status[edit]

October 3, 2016[edit]

PageAssessments is now live on English Wikpedia.

September 7, 2016[edit]

PageAssessments is now live on English Wikivoyage.

July 6, 2016[edit]

PageAssessments is now live on Test Wikipedia.

June 3, 2016[edit]

PageAssessments is now live on Beta Labs for testing.

May 28, 2016[edit]

WikiProject names have been moved to a separate table which should improve indexing and API performance. Security review is complete (T120220).

March 28, 2016[edit]

The database table has been created, with an API so that people can access the data. (T119997) The next steps are to move the WikiProject names to a separate table (T130844), and start testing the extension on BetaLabs (T125551).