Research:Visual editor usage (January, 2014)

From Meta, a Wikimedia project coordination wiki
This page documents a completed research project.

In this study, we examined the usage rate of mw:VisualEditor (VE) in the list of Wikipedia projects where the editor is enabled by default (see [1]). To infer about recent activities, we limited our analysis to the most recent month: January, 2014.

Methods[edit]

For each wiki where VE is enabled by default, we ran the following query to gather hourly edit counts:

SELECT
    DATABASE() AS wiki,
    LEFT(rev_timestamp, 10) AS hour,
    IF(
        rev_user = 0, 
        "anon",
        IF(post_ve.user_id IS NOT NULL, "post-ve","pre-ve")
    ) AS user_type,
    ve_tag.ct_rev_id IS NOT NULL AS visualeditor,
    COUNT(*) AS edits
FROM revision
LEFT JOIN change_tag ve_tag ON 
    rev_id = ct_rev_id AND
    ct_tag = "visualeditor"
LEFT JOIN user post_ve ON
    rev_user = user_id AND
    user_registration >= "20130701210000"
WHERE rev_timestamp BETWEEN "20140101" AND "20140128"
GROUP BY 1,2,3,4;

The result of these queries was inserted into a MySQL table. In order to fill in missing values, the following query joined the cross product of wiki, hour, user_type and visualeditor:

INSERT INTO ve_hourly_edits
SELECT
    all_possible.wiki,
    all_possible.hour,
    all_possible.user_type,
    all_possible.visual_editor,
    0
FROM (
    SELECT
        wiki,
        hour,
        user_type,
        visual_editor
    FROM (SELECT DISTINCT hour FROM ve_hourly_edits) AS hours
    JOIN (SELECT DISTINCT wiki FROM ve_hourly_edits) AS wikis
    JOIN (SELECT DISTINCT user_type FROM ve_hourly_edits) AS user_types
    JOIN (SELECT DISTINCT visual_editor FROM ve_hourly_edits) AS visual_editor
) AS all_possible
LEFT JOIN ve_hourly_edits ve USING(wiki, hour, user_type, visual_editor)
WHERE ve.wiki IS NULL

Results[edit]

How many visual editor edits per hour?[edit]

editor edits/hour
visual editor 539.4746
wikitext 6925.1757
SQL
SELECT
    IF(visual_editor, "visual editor", "wikitext") AS editor, 
    avg(edits) as "edit/hour" 
FROM (
    SELECT
        hour, 
        visual_editor, 
        SUM(edits) as edits 
    FROM ve_hourly_edits 
    GROUP BY 1,2
) hourly_edits 
GROUP BY 1;


How do the edits break down by user type?[edit]

Editor types
  • Anon -- An IP editor (rev_user = 0)
  • Pre-ve -- An editor who registered before VE was launched user_registration < "20130701210000"
  • Post-ve -- An editor who registered after VE was launched user_registration >= "20130701210000"
editor editor type edits/hour
visual editor anon 371.5439
visual editor post-ve 84.6317
visual editor pre-ve 83.2989
wikitext anon 746.0894
wikitext post-ve 786.3436
wikitext pre-ve 5392.7427
SQL
SELECT
    IF(visual_editor, "visual editor", "wikitext") AS editor, 
    user_type,
    avg(edits) as "edit/hour" 
FROM (
    SELECT
        hour, 
        visual_editor,
        user_type,
        SUM(edits) as edits 
    FROM ve_hourly_edits 
    GROUP BY 1,2,3
) hourly_edits 
GROUP BY 1,2;


References[edit]