This page describes a proposed implementation of FlaggedRevisions, which is intended to be limited and designed to allow us to conduct one or more trials on small sets of articles. The proposed configuration does not scale well to a full deployment, but only for technical reasons; if there is consensus to enable FlaggedRevisions more widely, then only additional configuration changes to the Wikipedia software will be needed. Conversely if there is consensus at the end of the trial period that FlaggedRevisions should not be deployed on en.wiki, the implementation can be effectively disabled without developer intervention.

Proposed trial

edit

See Wikipedia:Flagged revisions/Trial/Proposed trials for specific suggestions on the nature of the proposed trial, and for proposed conditions on the conduct of the trial. These are not part of the proposal to carry out a trial, so editors should add to these ideas or contribute to the conditions.

Technical implementation

edit

FlaggedRevisions is made available in the mainspace and portal space only. By default, no pages in these namespaces are either reviewable or sightable and so will behave exactly as they did before the installation. A new usergroup, 'surveyor', is created which has the ability to 'enable' FlaggedRevisions for an individual article or portal page.

When FlaggedRevisions are enabled on a particular page, logged-out and anonymous users will see the most recent sighted revision, and all edits to that page can be sighted by members of a second usergroup, 'reviewer'. By default, all logged-in users, reviewers or not, see the most recent version of such pages, although this can be customised in personal preferences.

The 'reviewer' usergroup can be granted to, or removed from, any editor by administrators or 'surveyor's. Reviewers can sight revisions to pages where FlaggedRevisions have been enabled. The initial sighting scale uses a 'binary' system; edits are either "sighted" or "unsighted". The permissions of the 'reviewer' group are also granted automatically to all administrators and rollbackers. The trial configuration does not use autopromotion to the 'reviewer' group. The 'surveyor' usergroup itself can only be granted or removed by bureaucrats, as surveyors effectively orchestrate and oversee trials.

the PHP configuration code for the implementation above is shown below
# Show more things to logged-out users so they can see what's going on
$wgFlaggedRevsLowProfile = false;
 
# Initial trial is restricted to the mainspace and Portal:
$wgFlaggedRevsNamespaces = array( NS_MAIN, 100 );
 
# Pages display the current version by default
$wgFlaggedRevsOverride = false;
# And only pages where the above setting has been overridden can be reviewed at all
$wgFlaggedRevsReviewForDefault = true;
 
# "Quality" revisions do not trump "normal" sighted revisions
$wgFlaggedRevsPrecedence = false;
 
# All logged-in users see the current version in all cases
$wgFlaggedRevsExceptions = array( 'user' );
 
# We can see if we have any use for the comment functionality
$wgFlaggedRevsComments = true;
 
# Since we're not sighting the template or image namespaces, disable these
$wgUseStableTemplates  = false;
$wgUseCurrentTemplates = false;
$wgUseStableImages     = false;
$wgUseCurrentImages    = false;
 
# The simplest possible rating scheme is used (0 and 1)
$wgFlaggedRevTags = array( 'accuracy'=>1);
$wgFlaggedRevValues = 1;
$wgFlaggedRevPristine = 1;

# Sighters can sight, amazingly enough :D
$wgFlagRestrictions = array(
    'accuracy' => array( 'review' => 1 ),
);

# Define our basic reviewer group
$wgGroupPermissions['reviewer']['review'] = true;
$wgGroupPermissions['reviewer']['autoreview'] = true;
$wgGroupPermissions['reviewer']['autoconfirmed'] = true;
$wgGroupPermissions['reviewer']['patrolmarks'] = true;
$wgGroupPermissions['reviewer']['unreviewedpages'] = true;
$wgGroupPermissions['reviewer']['movestable'] = true;

# Giving sighter rights to rollbackers, administrators and bots
$wgGroupPermissions['rollbacker']['review'] = true;
$wgGroupPermissions['rollbacker']['autoreview'] = true;
$wgGroupPermissions['rollbacker']['autoconfirmed'] = true;
$wgGroupPermissions['rollbacker']['patrolmarks'] = true;
$wgGroupPermissions['rollbacker']['unreviewedpages'] = true;
$wgGroupPermissions['rollbacker']['movestable'] = true;

$wgGroupPermissions['sysop']['review'] = true;
$wgGroupPermissions['sysop']['autoreview'] = true;
$wgGroupPermissions['sysop']['autoconfirmed'] = true;
$wgGroupPermissions['sysop']['patrolmarks'] = true;
$wgGroupPermissions['sysop']['autopatrolother'] = true;
$wgGroupPermissions['sysop']['unreviewedpages'] = true;
$wgGroupPermissions['sysop']['movestable'] = true;

$wgGroupPermissions['bot']['autoreview'] = true;
$wgGroupPermissions['bot']['patrolmarks'] = true;
$wgGroupPermissions['bot']['autopatrolother'] = true;
$wgGroupPermissions['bot']['unreviewedpages'] = true;
$wgGroupPermissions['bot']['movestable'] = true;
 
# Stable version selection and default page revision selection can be set per page.
# This is granted to sysops in the default settings.  We want to instead assign it 
# to a separate user group, 'surveyor', which can 
# then be assigned as necessary. 
$wgGroupPermissions['sysop']['stablesettings'] = false;
$wgGroupPermissions['surveyor']['stablesettings'] = true;
 
# Assignation and revocation of these groups: bureaucrats can grant and revoke 
# 'surveyor', surveyors can resign. Also trial the system whereby sysops grant/revoke 
# 'reviewer' rights just like rollback; surveyors can also grant/revoke 'reviewer'
$wgAddGroups['bureaucrat'][] = 'surveyor';
$wgAddGroups['bureaucrat'][] = 'reviewer';
$wgRemoveGroups['bureaucrat'][] = 'surveyor';
$wgRemoveGroups['bureaucrat'][] = 'reviewer';
$wgAddGroups['sysop'][]         = 'reviewer';
$wgRemoveGroups['sysop'][]      = 'reviewer';
$wgAddGroups['surveyor'][]      = 'reviewer';
$wgRemoveGroups['surveyor'][]   = 'reviewer';
$wgGroupsRemoveFromSelf['surveyor'][] = 'surveyor';
 
# We do not need auto promote at this stage
$wgFlaggedRevsAutopromote = false;

Procedural implementation

edit

The technical configuration explained above will allow us to conduct one or more small-scale trials of FlaggedRevisions on en.wiki before making a final decision on how, and whether, to proceed with a full-scale deployment. In these trials we can gather data in order to answer some of the difficult questions that still surround FlaggedRevisions. These questions include:

  • How effectively does FlaggedRevisions achieve its goal of improving the visible quality of reader-facing pages?
  • How much does FlaggedRevisions detract from the consensus process?
  • How easy is it for reviewers to keep on top of the backlog of unsighted revisions?
  • How should the allocation of reviewing permissions be performed? Is autopromotion a valid method for appointing sighters?
  • What permutation of different sighting 'scales' (how many scales to have, and how many levels to have to each scale) is the most useful?
  • Would a full-scale deployment of FlaggedRevisions on en.wiki provide an ultimate improvement in the encyclopedia and its community?

A trial begins if there is a consensus on the pages, metrics and procedural details involved. Each trial must have a definite endpoint; either a fixed time duration or some other objective quantity. For each trial, a bureaucrat will appoint several 'surveyor's who will be responsible for overseeing the use of FlaggedRevisions. When the trial begins, FlaggedRevisions are enabled by the surveyors on the designated pages. Logged-out readers will see the last sighted revision. At the designated end of the trial, the surveyors will 'disable' FlaggedRevisions on the trial pages, and remove themselves from the 'surveyor' group.

Future options

edit

With the configuration described above, it is easily possible to either extend or terminate the use of FlaggedRevisions on en.wiki, according to consensus after the end of the trial period.

If there is consensus to not use FlaggedRevisions on en.wiki, a bureaucrat will revoke all existing 'surveyor' flags and reset all pages on en.wiki to not display FlaggedRevisions behavior. While FlaggedRevisions will still be installed on en.wiki, it will be effectively unusable; although administrators can still grant the 'reviewer' flag, it will be functionless.

If there is consensus to deploy FlaggedRevisions in a wide but limited fashion, it is likely that the task of maintaining the set of pages displaying FlaggedRevisions behavior will be devolved to administrators, thus requiring all administrators to have 'surveyor' permissions. This can be achieved by a bureaucrat manually adding all active administrators to the 'surveyor' group. Ultimately it will be necessary for a developer to make a configuration change, removing the line of code below:

$wgGroupPermissions['sysop']['stablesettings'] = false;

thereby restoring the default setting which allows administrators to configure FlaggedRevisions for individual pages.

If there is consensus to deploy FlaggedRevisions over entire namespaces, such manual action is not practical. However, a simple set of configuration changes will extend the implementation to all pages by default. The precise details of such a change would have to be discussed and determined by consensus at that time.


See also

edit