Monday, November 20, 2006

How to make MediaWiki better

MediaWiki, at least when used to support Wikipedia, could use at least two additional features.

The first is a workflow system. Right now, there are four outcomes that can occur when someone goes to edit an article. First, the user may be refused permission to edit at all. Second, the edit may be accepted and stored. Third, the edit may be rejected due to an edit conflict. Fourth, the edit may be rejected because it contains content deemed inappropriate (e.g. links to a "bad image" or to a spamblocked URL). I would like to have the option to add a fifth option: defer the edit until it has been reviewed by a content administrator. (Edits made by a content administrator would possibly bypass these checks.) This could be used to deal with editors who are on probation, or for edits which insert certain URLs which are frequently, but not always, spam (e.g. youtube, myspace). Right now, Wikipedia cannot add youtube.com to the spam link list because doing so makes editing [[YouTube]] impossible. This would allow people to edit articles containing questionable content, subject to a review process. (A generalized improvement of the methodology by which certain content is unacceptable would be useful too.)

The other addition would be the ability to add an expiration date to an article. This would be useful in the case that an article contains content which will be known to be out of date at some future date. Upon expiration, the article will generate a work queue item. Users with privileges on a work queue will be presented (upon request) with items on the work queues they have access to and asked to resolve them; in this case by updating the page. This could also be used to handle, e.g., AfD closures, RfA closures, proposed deletion, and lots of other things. I believe there's already a tasks extension, which is not implemented on the English Wikipedia for reasons that are not known to me, but I think this goes somewhat beyond what is offered by that extension.

I'm starting to think that I'd be better off reengineering MediaWiki rather than continuing the port, keeping these (and other) considerations in mind. MediaWiki's design is rather wedged, and I don't see any real value in continuing off of that design.