MediaWiki

MediaWiki is a free web-based wiki software application. Developed by the Wikimedia Foundation and others, it is used to run all of the Foundation’s projects, including Wikipedia, Wiktionary and Wikinews. Numerous other wikis around the world also use it to power their websites. It is written in the PHP programming language and uses a backend database. The software's code is structured functionally.

The first version of the software was deployed to serve the needs of the free content Wikipedia encyclopedia in 2002. It has been deployed since then by many companies as a content management system for internal knowledge management. Notably, Novell uses it to operate several of its high-traffic websites. Thousands of websites use MediaWiki. Some educators have also assigned students to use MediaWiki for collaborative group projects.

The software is optimized to correctly and efficiently handle projects of all sizes, including the largest wikis, which can have terabytes of content and hundreds of thousands of hits per second. Because Wikipedia is one of the world's largest websites, achieving scalability through multiple layers of caching and database replication has also been a major concern for developers. Wikipedia and other Wikimedia projects continue to define a large part of the requirement set for MediaWiki.

The software is highly customizable, with more than 700 configuration settings and more than 1,800 extensions available for enabling various features to be added or changed. More than 600 automated and semi-automated bots and other tools have been developed to assist in editing MediaWiki sites.

License
MediaWiki is free and open source software and is distributed under the terms of the GNU General Public License version 2 or any later version while its documentation is released under the Creative Commons BY-SA 3.0 license and partly in the public domain. Specifically, the manuals and other content at MediaWiki.org are Creative Commons-licensed, while the set of help pages intended to be freely copied into fresh wiki installations and/or distributed with MediaWiki software is public domain. This was done to eliminate legal issues arising from the help pages being imported into wikis with licenses that are incompatible with the Creative Commons license. MediaWiki development has generally favored the use of open-source media formats.

Development
MediaWiki has an active volunteer community for development and maintenance. Users who have made meaningful contributions to the project by submitting patches are generally, upon request, granted access to commit revisions to the project's Apache Subversion repository. There is also a small group of paid programmers who primarily develop projects for the Wikimedia Foundation. Wikimedia participates in the Google Summer of Code by facilitating the assignment of mentors to students wishing to work on MediaWiki core and extension projects. As of June 2010, there were 143 developers who had committed changes to the MediaWiki core or extensions within the past year. Major MediaWiki releases are generated approximately every three to eight months by taking snapshots of the development trunk, which is kept continuously in a runnable state; minor releases, or point releases, are issued as needed to correct bugs (especially security problems).

MediaWiki has a public bug tracker, bugzilla.wikimedia.org, which runs Bugzilla. The site is also used for feature and enhancements requests.

History
When Wikipedia was first launched in January 2001, it ran on the existing wiki software UseModWiki, which was written in Perl and stored all wiki pages in text files. This software soon proved limiting, both in its functionality and its performance. In mid-2001, Magnus Manske, a developer and student at the University of Cologne, who was also a Wikipedia editor, began working on new software that would replace UseModWiki, specifically for use by Wikipedia. This software was written in PHP and stored all its information in a MySQL database. It launched on the English Wikipedia in January 2002, and was gradually deployed on all the Wikipedia language sites of that time. This software was referred to as "the PHP script" and as "phase II", with the name "phase I" retroactively given to the use of UseModWiki.

Increasing usage soon caused load problems again, and soon afterward, another rewrite of the software began, done by Lee Daniel Crocker, which was first known as "phase III". This new software was also written in PHP with a MySQL backend, and kept the basic interface of the phase II software, but was meant to be more scalable. It went live on Wikipedia in July 2002.

The Wikimedia Foundation was announced on June 20, 2003, and in July, Wikipedia contributor Daniel Mayer suggested the name "MediaWiki" for the software, as a play on "Wikimedia". The name was gradually phased in beginning in August 2003. The name has frequently caused confusion due to its (intentional) similarity to the "Wikimedia" name (which itself is similar to "Wikipedia").

The product logo was created by Erik Möller using a flower photograph taken by Florence Nibart-Devouard, and was originally submitted to an international logo contest for a new Wikipedia logo held in mid-2003. The logo came in third place, and was chosen to represent MediaWiki instead of Wikipedia, with the second place logo used for the Wikimedia Foundation. The double square brackets around the photo of a sunflower symbolize the syntax MediaWiki uses for creating hyperlinks to other wiki pages.

Later, Brion Vibber, the Chief Technical Officer of the Wikimedia Foundation, took up the role of release manager and most active developer.

Major milestones in MediaWiki's development have included the categorization system, added in 2004; parser functions, added in 2006; and flagged revisions, added in 2008.

Sites using MediaWiki
In addition to WikiQueer, there are a number of other LGBT related wikis utilizing MediaWiki or related wiki software. WikiIndex maintains a list of LGBT wikis.

Key features
MediaWiki provides a rich core feature set and a mechanism to attach extensions to provide additional functionality. Due to the strong emphasis on multilingualism in the Wikimedia projects, internationalization and localization has received significant attention by developers. The user interface has been fully or partially translated into more than 300 languages, and can be further customized by site administrators (the entire interface is editable through the wiki).

Markup
One of the earliest differences between MediaWiki (and its predecessor, UseModWiki) and other wiki engines was the use of "free links" instead of CamelCase. When MediaWiki was created, it was typical for wikis to require text like "WorldWideWeb" to create a link to a page about the World Wide Web: links in MediaWiki, on the other hand, are created by surrounding words with double square brackets, and any spaces between them are left intact, e.g. . This change was logical for the purpose of creating an encyclopedia, where accuracy in titles is important.

MediaWiki uses an extensible lightweight wiki markup designed to be easier to use and learn than HTML. Tools exist for converting content such as tables between MediaWiki markup and HTML. Efforts have been made to create a MediaWiki markup spec, but a consensus seems to have been reached that Wikicode requires context-sensitive grammar rules. The following side-by-side comparison illustrates the differences between wiki markup and HTML:

(Quotation above from Alice's Adventures in Wonderland by Lewis Carroll)

Limitations
The parser serves as the de facto standard for the MediaWiki syntax, as no formal syntax has been defined. Due to this lack of a formal definition, it has been difficult to create WYSIWYG editors for MediaWiki, or to port the parsing to another language.

MediaWiki is not designed to be a suitable replacement for dedicated online forum or blogging software, although extensions do exist to allow for both of these.

It is not uncommon for new MediaWiki users to make certain mistakes, such as forgetting to sign posts with four tildes ( ~ ), or manually entering a plaintext signature, due to unfamiliarity with the idiosyncratic particulars involved in communication on MediaWiki discussion pages. On the other hand, the format of these discussion pages has been cited as a strength by one educator, who stated that it provides "more fine-grain capabilities for discussion than traditional threaded discussion forums. For example, instead of 'replying' to an entire message, the participant in a discussion can create a hyperlink to a new wiki page on any word from the original page. Discussions are easier to follow since the content is available via hyperlinked wiki page, rather than a series of reply messages on a traditional threaded discussion forum. However, except in few cases, students were not using this capability, possibly because of their familiarity with the traditional linear discussion style and a lack of guidance on how to make the content more 'link-rich'."

MediaWiki has little support for the creation of dynamically-assembled documents, or pages that aggregate data from other pages. While it is possible to create new "special" pages, it requires coding an extension in PHP and thus administrative rights to the server running MediaWiki. Some research has been done on enabling such features directly within MediaWiki. The Semantic MediaWiki extension provides these features, but it is not in use on Wikipedia.

Upgrading MediaWiki is usually fully automated, requiring no changes to the site content or template programming. Historically troubles have been encountered when upgrading from significantly older versions.