HOME

TheInfoList



OR:

MediaWiki is a
free and open-source Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
wiki software Wiki software (also known as a wiki engine or a wiki application), is collaborative software that runs a wiki, which allows the users to create and collaboratively edit pages or entries via a web browser. A wiki system is usually a web application ...
. It is used on
Wikipedia Wikipedia is a multilingual free online encyclopedia written and maintained by a community of volunteers, known as Wikipedians, through open collaboration and using a wiki-based editing system. Wikipedia is the largest and most-read refer ...
and almost all other
Wikimedia The Wikimedia Foundation, Inc., or Wikimedia for short and abbreviated as WMF, is an American 501(c)(3) nonprofit organization headquartered in San Francisco, California and registered as a charitable foundation under local laws. Best know ...
websites A website (also written as a web site) is a collection of web pages and related content that is identified by a common domain name and published on at least one web server. Examples of notable websites are Google, Facebook, Amazon, and Wikipe ...
, including
Wiktionary Wiktionary ( , , rhyming with "dictionary") is a multilingual, web-based project to create a free content dictionary of terms (including words, phrases, proverbs, linguistic reconstructions, etc.) in all natural languages and in a number ...
,
Wikimedia Commons Wikimedia Commons (or simply Commons) is a media repository of free-to-use images, sounds, videos and other media. It is a project of the Wikimedia Foundation. Files from Wikimedia Commons can be used across all of the Wikimedia projects in ...
and
Wikidata Wikidata is a collaboratively edited multilingual knowledge graph hosted by the Wikimedia Foundation. It is a common source of open data that Wikimedia projects such as Wikipedia, and anyone else, can use under the CC0 public domain license. ...
; these sites define a large part of the requirement set for MediaWiki. It was developed for use on
Wikipedia Wikipedia is a multilingual free online encyclopedia written and maintained by a community of volunteers, known as Wikipedians, through open collaboration and using a wiki-based editing system. Wikipedia is the largest and most-read refer ...
in 2002, and given the name "MediaWiki" in 2003. MediaWiki was originally developed by
Magnus Manske Heinrich Magnus Manske (born 24 May 1974) is a senior staff scientist at the Wellcome Trust Sanger Institute in Cambridge, UK and a software developer of one of the first versions of the MediaWiki software, which powers Wikipedia and a number o ...
and improved by
Lee Daniel Crocker Lee Daniel Crocker (born July 3, 1963) is an American computer programmer. He is best known for rewriting the software upon which Wikipedia runs, to address scalability problems. This software, originally known as "Phase III", went live in July ...
. Magnus Manske's announcement of "PHP Wikipedia", wikipedia-l, August 24, 2001 Its development has since then been coordinated by the
Wikimedia Foundation The Wikimedia Foundation, Inc., or Wikimedia for short and abbreviated as WMF, is an American 501(c)(3) nonprofit organization headquartered in San Francisco, California and registered as a charitable foundation under local laws. Best kno ...
. MediaWiki is written in the
PHP PHP is a general-purpose scripting language geared toward web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1993 and released in 1995. The PHP reference implementation is now produced by The PHP Group ...
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
and stores all text content into a
database In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases sp ...
. The software is optimized to efficiently handle large projects, which can have terabytes of content and hundreds of thousands of
views A view is a sight or prospect or the ability to see or be seen from a particular place. View, views or Views may also refer to: Common meanings * View (Buddhism), a charged interpretation of experience which intensely shapes and affects thou ...
per second. Because Wikipedia is one of the world's largest websites, achieving scalability through multiple layers of caching and
database replication Replication in computing involves sharing information so as to ensure consistency between redundant resources, such as software or hardware components, to improve reliability, fault-tolerance, or accessibility. Terminology Replication in comp ...
has been a major concern for developers. Another major aspect of MediaWiki is its internationalization; its interface is available in more than 300 languages. The software has more than 1,000 configuration settings and more than 1,800
extension Extension, extend or extended may refer to: Mathematics Logic or set theory * Axiom of extensionality * Extensible cardinal * Extension (model theory) * Extension (predicate logic), the set of tuples of values that satisfy the predicate * E ...
s available for enabling various features to be added or changed. Besides its use on Wikimedia sites, MediaWiki has been used as a
knowledge management Knowledge management (KM) is the collection of methods relating to creating, sharing, using and managing the knowledge and information of an organization. It refers to a multidisciplinary approach to achieve organisational objectives by making ...
and
content management system A content management system (CMS) is computer software used to manage the creation and modification of digital content (content management).''Managing Enterprise Content: A Unified Content Strategy''. Ann Rockley, Pamela Kostur, Steve Manning. New ...
on tens of thousands of websites, and thousands of companies, public and private, including the websites
Fandom A fandom is a subculture composed of fans characterized by a feeling of empathy and camaraderie with others who share a common interest. Fans typically are interested in even minor details of the objects of their fandom and spend a significant ...
,
wikiHow wikiHow is an online wiki-style publication featuring how-to articles on a variety of topics. Founded in 2005 by Internet entrepreneur Jack Herrick, its aim is to create an extensive database of instructional content, using the wiki model of ope ...
, and major internal installations like
Intellipedia Intellipedia is an online system for collaborative data sharing used by the United States Intelligence Community (IC). It was established as a pilot project in late 2005 and formally announced in April 2006. Intellipedia consists of three wi ...
and
Diplopedia Diplopedia, billed as the Encyclopedia of the United States Department of State, is a wiki running on a State internal Intranet, called "OpenNet". It houses a unique collection of information pertaining to diplomacy, international relations, an ...
.


License

MediaWiki is
free and open-source Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
and is distributed under the terms of the
GNU General Public License The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the Four Freedoms (Free software), four freedoms to run, study, share, and modify the software. The license was th ...
version 2 or any later version. Its documentation, located at www.mediawiki.org, is released under the Creative Commons BY-SA 3.0 license and partly in the
public domain The public domain (PD) consists of all the creative work A creative work is a manifestation of creative effort including fine artwork (sculpture, paintings, drawing, sketching, performance art), dance, writing (literature), filmmaking, ...
. Specifically, the manuals and other content at MediaWiki.org are
Creative Commons Creative Commons (CC) is an American non-profit organization and international network devoted to educational access and expanding the range of creative works available for others to build upon legally and to share. The organization has release ...
-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's 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
Git Git () is a distributed version control system: tracking changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development. Its goals include speed, data in ...
/
Gerrit Gerrit is a Dutch male name meaning "''brave with the spear''", the Dutch and Frisian form of Gerard. People with this name include: * Gerrit Achterberg (1905–1962), Dutch poet * Gerrit van Arkel (1858–1918), Dutch architect * Gerrit Badenh ...
repository. There are also paid programmers who primarily develop projects for the
Wikimedia Foundation The Wikimedia Foundation, Inc., or Wikimedia for short and abbreviated as WMF, is an American 501(c)(3) nonprofit organization headquartered in San Francisco, California and registered as a charitable foundation under local laws. Best kno ...
. MediaWiki developers participate in the
Google Summer of Code The Google Summer of Code, often abbreviated to GSoC, is an international annual program in which Google awards stipends to contributors who successfully complete a free and open-source software coding project during the summer. , the program is ...
by facilitating the assignment of mentors to students wishing to work on MediaWiki core and extension projects. During the year prior to November 2012, there were about two hundred developers who had committed changes to the MediaWiki core or extensions. Major MediaWiki releases are generated approximately every six months by taking snapshots of the development branch, which is kept continuously in a runnable state; minor releases, or
point release A point release (also a dot release) is a minor release of a software project, especially one intended to fix bugs or do small cleanups rather than add significant features. Often, there are too many bugs to be fixed in a single major or minor ...
s, are issued as needed to correct bugs (especially security problems). MediaWiki is developed on a continuous integration development model, in which software changes are pushed live to Wikimedia sites on regular basis. MediaWiki also has a public bug tracker, ''phabricator.wikimedia.org'', which runs
Phabricator Phabricator is a suite of web-based development collaboration tools, which includes ''Differential'' code review tool, ''Diffusion'' repository browser, ''Herald'' change monitoring tool, ''Maniphest'' bug tracker, ''Phriction'' wiki. Phab ...
. The site is also used for
feature Feature may refer to: Computing * Feature (CAD), could be a hole, pocket, or notch * Feature (computer vision), could be an edge, corner or blob * Feature (software design) is an intentional distinguishing characteristic of a software item ...
and enhancement requests.


History

When Wikipedia was launched in January 2001, it ran on an existing
wiki software Wiki software (also known as a wiki engine or a wiki application), is collaborative software that runs a wiki, which allows the users to create and collaboratively edit pages or entries via a web browser. A wiki system is usually a web application ...
system,
UseModWiki UseModWiki is a wiki software written in Perl and licensed under the GNU General Public License. Pages in UseModWiki are stored in ordinary files, not in a relational database. Wikipedias in English and many other languages were powered by Use ...
. UseModWiki is written in the
Perl Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it also referred to its redesigned "sister language", Perl 6, before the latter's name was offici ...
programming language, and stores all wiki pages in text (
.txt A text file (sometimes spelled textfile; an old alternative name is flatfile) is a kind of computer file that is structured as a sequence of lines of electronic text. A text file exists stored as data within a computer file system. In operat ...
) files. This software soon proved to be limiting, in both functionality and performance. In mid-2001,
Magnus Manske Heinrich Magnus Manske (born 24 May 1974) is a senior staff scientist at the Wellcome Trust Sanger Institute in Cambridge, UK and a software developer of one of the first versions of the MediaWiki software, which powers Wikipedia and a number o ...
—a developer and student at the
University of Cologne The University of Cologne (german: Universität zu Köln) is a university in Cologne, Germany. It was established in the year 1388 and is one of the most prestigious and research intensive universities in Germany. It was the sixth university to ...
, as well as a
Wikipedia editor The Wikipedia community, collectively known colloquially as Wikipedians, is an informal community that volunteers to create and maintain Wikipedia, an online encyclopedia. Since August 2012, the word "Wikipedian" has been an '' Oxford Diction ...
—began working on new software that would replace UseModWiki, specifically designed for use by Wikipedia. This software was written in the
PHP PHP is a general-purpose scripting language geared toward web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1993 and released in 1995. The PHP reference implementation is now produced by The PHP Group ...
scripting language, and stored all of its information in a
MySQL MySQL () is an open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My, and "SQL", the acronym for Structured Query Language. A relational database o ...
engine database. The new software was largely developed by August 24, 2001, and a test wiki for it was established shortly thereafter. The first full implementation of this software was the new Meta Wikipedia on November 9, 2001. There was a desire to have it implemented immediately on the English-language Wikipedia. However, Manske was apprehensive about any potential bugs harming the nascent website during the period of the final exams he had to complete immediately prior to Christmas; this led to the launch on the English-language Wikipedia being delayed until January 25, 2002. The software was then, 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 to arise again, and soon after, another rewrite of the software began; this time being done by
Lee Daniel Crocker Lee Daniel Crocker (born July 3, 1963) is an American computer programmer. He is best known for rewriting the software upon which Wikipedia runs, to address scalability problems. This software, originally known as "Phase III", went live in July ...
, which became 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 with the added functionality of a wider
scalability Scalability is the property of a system to handle a growing amount of work by adding resources to the system. In an economic context, a scalable business model implies that a company can increase sales given increased resources. For example, a ...
. The "phase III" software went live on Wikipedia in July 2002. The
Wikimedia Foundation The Wikimedia Foundation, Inc., or Wikimedia for short and abbreviated as WMF, is an American 501(c)(3) nonprofit organization headquartered in San Francisco, California and registered as a charitable foundation under local laws. Best kno ...
was announced on June 20, 2003. In July, Wikipedia contributor Daniel Mayer suggested the name "MediaWiki" for the software, as a play on "Wikimedia". The MediaWiki 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 old product logo was created by
Erik Möller Erik Möller (born 1979) is a German freelance journalist, software developer, author, and former deputy director of the Wikimedia Foundation (WMF), based in San Francisco. Möller additionally works as a web designer and previously managed hi ...
, using a flower photograph taken by Florence Nibart-Devouard, and was originally submitted to the logo contest for a new
Wikipedia logo The logo of Wikipedia, a free online encyclopedia, is an unfinished globe constructed from jigsaw pieces—some pieces are missing at the top—each inscribed with a glyph from a different writing system. As displayed on the web pages of the E ...
, held from July 20 to August 27, 2003. The logo came in third place, and was chosen to represent MediaWiki rather than Wikipedia, with the second place logo being used for the Wikimedia Foundation. The double square brackets (  ) symbolize the
syntax In linguistics, syntax () is the study of how words and morphemes combine to form larger units such as phrases and sentences. Central concerns of syntax include word order, grammatical relations, hierarchical sentence structure ( constituency) ...
MediaWiki uses for creating
hyperlink In computing, a hyperlink, or simply a link, is a digital reference to data that the user can follow or be guided by clicking or tapping. A hyperlink points to a whole document or to a specific element within a document. Hypertext is text wit ...
s to other wiki pages; while the
sunflower The common sunflower (''Helianthus annuus'') is a large annual forb of the genus ''Helianthus'' grown as a crop for its edible oily seeds. Apart from cooking oil production, it is also used as livestock forage (as a meal or a silage plant), as ...
represents the diversity of content on Wikipedia, the constant growth, and also the wildness. Later, , the Chief Technical Officer of the
Wikimedia Foundation The Wikimedia Foundation, Inc., or Wikimedia for short and abbreviated as WMF, is an American 501(c)(3) nonprofit organization headquartered in San Francisco, California and registered as a charitable foundation under local laws. Best kno ...
, took up the role of Release Manager, and the most active
Developer Developer may refer to: Computers * Software developer, a person or organization who develop programs/applications * Video game developer, a person or business involved in video game development, the process of designing and creating games * Web d ...
. Major milestones in MediaWiki's development have included: the categorization system (2004); parser functions, (2006);
Flagged Revisions Flagged Revisions, also known as FlaggedRevs, is a software extension to the MediaWiki software that allows moderation of edits to Wiki pages. It was developed by the Wikimedia Foundation for use on Wikipedia and similar wikis hosted on its serve ...
, (2008); the "''ResourceLoader''", a delivery system for
CSS Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation of a document written in a markup language such as HTML or XML (including XML dialects such as SVG, MathML or XHTML). CSS is a cornerstone techno ...
and JavaScript (2011); and the
VisualEditor VisualEditor (VE) is an online rich-text editor for MediaWiki-powered wikis that provides a direct visual way to edit pages based on the "what you see is what you get" principle. It was developed by the Wikimedia Foundation in partnership with ...
, a "what you see is what you get" (
WYSIWYG In computing, WYSIWYG ( ), an acronym for What You See Is What You Get, is a system in which editing software allows content to be edited in a form that resembles its appearance when printed or displayed as a finished product, such as a printed d ...
) editing platform (2013). The contest of designing a new logo was initiated on June 22, 2020, as the old logo was a bitmap image and had "high details", leading to problems when rendering at high and low resolutions, respectively. After two rounds of voting, the new and current MediaWiki logo designed by Serhio Magpie was selected on October 24, 2020, and officially adopted on April 1, 2021.


Version history

The first version of MediaWiki, 1.1, was released in December 2003.


Sites using MediaWiki

MediaWiki's most famous use has been in
Wikipedia Wikipedia is a multilingual free online encyclopedia written and maintained by a community of volunteers, known as Wikipedians, through open collaboration and using a wiki-based editing system. Wikipedia is the largest and most-read refer ...
and, to a lesser degree, the Wikimedia Foundation's other projects.
Fandom A fandom is a subculture composed of fans characterized by a feeling of empathy and camaraderie with others who share a common interest. Fans typically are interested in even minor details of the objects of their fandom and spend a significant ...
, a
wiki hosting service A wiki hosting service, or wiki farm, is a server or an array of servers that offers users tools to simplify the creation and development of individual, independent wikis. Wiki farms are not to be confused with wiki "families", a more generic ...
formerly known as Wikia, runs on MediaWiki. Other public wikis that run on MediaWiki include
wikiHow wikiHow is an online wiki-style publication featuring how-to articles on a variety of topics. Founded in 2005 by Internet entrepreneur Jack Herrick, its aim is to create an extensive database of instructional content, using the wiki model of ope ...
and
SNPedia SNPedia (pronounced "snipedia") is a wiki-based bioinformatics web site that serves as a database of single nucleotide polymorphisms (SNPs). Each article on a SNP provides a short description, links to scientific articles and personal genomics web ...
.
WikiLeaks WikiLeaks () is an international Nonprofit organization, non-profit organisation that published news leaks and classified media provided by anonymous Source (journalism), sources. Julian Assange, an Australian Internet activism, Internet acti ...
began as a MediaWiki-based site, but is no longer a wiki. A number of alternative wiki encyclopedias to Wikipedia run on MediaWiki, including
Citizendium Citizendium ( ; "the citizens' compendium of everything") is an English-language wiki-based free online encyclopedia launched by Larry Sanger, co-founder of Nupedia and Wikipedia. It was first announced in September 2006 as a fork of the Engli ...
,
Metapedia Metapedia is an online wiki-based encyclopedia dedicated to fascist, far-right, white nationalist, white supremacist, anti-feminist, Islamophobic, antisemitic, and neo-Nazi points of view. History The Swedish Metapedia was founded in 2006 ...
,
Scholarpedia ''Scholarpedia'' is an English-language wiki-based online encyclopedia with features commonly associated with open-access online academic journals, which aims to have quality content in science and medicine. ''Scholarpedia'' articles are written ...
and
Conservapedia Conservapedia ( ) is an English-language, wiki-based, online encyclopedia written from a self-described American conservative and fundamentalist Christian point of view. The website was established in 2006 by American homeschool teacher and atto ...
. MediaWiki is also used internally by a large number of companies, including
Novell Novell, Inc. was an American software and services company headquartered in Provo, Utah, that existed from 1980 until 2014. Its most significant product was the multi-platform network operating system known as Novell NetWare. Under the lead ...
and
Intel Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California. It is the world's largest semiconductor chip manufacturer by revenue, and is one of the developers of the x86 seri ...
. Notable usages of MediaWiki within governments include
Intellipedia Intellipedia is an online system for collaborative data sharing used by the United States Intelligence Community (IC). It was established as a pilot project in late 2005 and formally announced in April 2006. Intellipedia consists of three wi ...
, used by the
United States Intelligence Community United may refer to: Places * United, Pennsylvania, an unincorporated community * United, West Virginia, an unincorporated community Arts and entertainment Films * ''United'' (2003 film), a Norwegian film * ''United'' (2011 film), a BBC Two fi ...
,
Diplopedia Diplopedia, billed as the Encyclopedia of the United States Department of State, is a wiki running on a State internal Intranet, called "OpenNet". It houses a unique collection of information pertaining to diplomacy, international relations, an ...
, used by the
United States Department of State The United States Department of State (DOS), or State Department, is an executive department of the U.S. federal government responsible for the country's foreign policy and relations. Equivalent to the ministry of foreign affairs of other n ...
, and milWiki, a part of
milSuite milSuite is a collection of online applications focused on improving the methods of secure collaboration for the United States Department of Defense. The effort is produced by the U.S. Army PEO EIS MilTech Solutions office with the online suite c ...
used by the
United States Department of Defense The United States Department of Defense (DoD, USDOD or DOD) is an executive branch department of the federal government charged with coordinating and supervising all agencies and functions of the government directly related to national secu ...
.
United Nations agencies The United Nations System consists of the United Nations' six principal organs (the General Assembly, Security Council, Economic and Social Council (ECOSOC), Trusteeship Council, International Court of Justice (ICJ), and the UN Secretariat), ...
such as the
United Nations Development Programme The United Nations Development Programme (UNDP)french: Programme des Nations unies pour le développement, PNUD is a United Nations agency tasked with helping countries eliminate poverty and achieve sustainable economic growth and human dev ...
and INSTRAW chose to implement their wikis using MediaWiki, because "this software runs Wikipedia and is therefore guaranteed to be thoroughly tested, will continue to be developed well into the future, and future technicians on these wikis will be more likely to have exposure to MediaWiki than any other wiki software." The
Free Software Foundation The Free Software Foundation (FSF) is a 501(c)#501(c)(3), 501(c)(3) non-profit organization founded by Richard Stallman on October 4, 1985, to support the free software movement, with the organization's preference for software being distributed ...
uses MediaWiki to implement the
LibrePlanet LibrePlanet (literally, "Free Planet") is a community project created and supported by the Free Software Foundation. Its objective is the promotion of free software around the world by bringing every year an international conference to local comm ...
site.


Key features

MediaWiki provides a rich core feature set and a mechanism to attach
extension Extension, extend or extended may refer to: Mathematics Logic or set theory * Axiom of extensionality * Extensible cardinal * Extension (model theory) * Extension (predicate logic), the set of tuples of values that satisfy the predicate * E ...
s to provide additional functionality.


Internationalization and localisation

Due to the strong emphasis on multilingualism in the Wikimedia projects,
internationalization and localization In computing, internationalization and localization (American) or internationalisation and localisation (British English), often abbreviated i18n and L10n, are means of adapting computer software to different languages, regional peculiarities and ...
has received significant attention by developers. The user interface has been fully or partially translated into more than 300 languages on
translatewiki.net translatewiki.net, formerly named Betawiki, is a web-based translation platform powered by the Translate extension for MediaWiki. It can be used to translate various kinds of texts but is commonly used for creating localisations for software ...
,See also
Translation statistics
and Multilingual MediaWiki.
and can be further customized by site administrators (the entire interface is editable through the wiki). Several extensions, most notably those collected in the MediaWiki Language Extension Bundle, are designed to further enhance the multilingualism and internationalization of MediaWiki.


Installation and configuration

Installation of MediaWiki requires that the user have administrative privileges on a server running both PHP and a compatible type of SQL
database In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases sp ...
. Some users find that setting up a
virtual host Virtual hosting is a method for hosting multiple domain names (with separate handling of each name) on a single server (or pool of servers). This allows one server to share its resources, such as memory and processor cycles, without requiring all ...
is helpful if the majority of one's site runs under a framework (such as
Zope Zope is a family of free and open-source web application servers written in Python, and their associated online community. Zope stands for "Z Object Publishing Environment", and was the first system using the now common object publishing methodol ...
or
Ruby on Rails Ruby on Rails (simplified as Rails) is a server-side web application framework written in Ruby under the MIT License. Rails is a model–view–controller (MVC) framework, providing default structures for a database, a web service, and web p ...
) that is largely incompatible with MediaWiki.
Cloud hosting Cloud computing is the on-demand availability of computer system resources, especially data storage (cloud storage) and computing power, without direct active management by the user. Large clouds often have functions distributed over multip ...
can eliminate the need to deploy a new server. An installation PHP script is accessed via a
web browser A web browser is application software for accessing websites. When a user requests a web page from a particular website, the browser retrieves its files from a web server and then displays the page on the user's screen. Browsers are used on ...
to initialize the wiki's settings. It prompts the user for a minimal set of required parameters, leaving further changes, such as enabling uploads, adding a site logo, and installing extensions, to be made by modifying configuration settings contained in a file called LocalSettings.php. Some aspects of MediaWiki can be configured through special pages or by editing certain pages; for instance, abuse filters can be configured through a special page, and certain gadgets can be added by creating
JavaScript JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
pages in the MediaWiki namespace. The MediaWiki community publishes a comprehensive installation guide.


Markup

One of the earliest differences between MediaWiki (and its predecessor,
UseModWiki UseModWiki is a wiki software written in Perl and licensed under the GNU General Public License. Pages in UseModWiki are stored in ordinary files, not in a relational database. Wikipedias in English and many other languages were powered by Use ...
) and other wiki engines was the use of "
free link A wiki ( ) is an online hypertext publication collaboratively edited and managed by its own audience, using a web browser. A typical wiki contains multiple pages for the subjects or scope of the project, and could be either open to the pub ...
s" instead of
CamelCase Camel case (sometimes stylized as camelCase or CamelCase, also known as camel caps or more formally as medial capitals) is the practice of writing phrases without spaces or punctuation. The format indicates the separation of words with a single ...
. 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 The World Wide Web (WWW), commonly known as the Web, is an information system enabling documents and other web resources to be accessed over the Internet. Documents and downloadable media are made available to the network through web se ...
; 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 Lightweight is a weight class in combat sports and rowing. Boxing Professional boxing The lightweight division is over 130 pounds (59 kilograms) and up to 135 pounds (61.2 kilograms) weight class in the sport of boxing. Notable lightweight boxe ...
wiki markup A wiki ( ) is an online hypertext publication collaboratively edited and managed by its own audience, using a web browser. A typical wiki contains multiple pages for the subjects or scope of the project, and could be either open to the pu ...
designed to be easier to use and learn than
HTML The HyperText Markup Language or HTML is the standard markup language for documents designed to be displayed in a web browser. It can be assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScri ...
. Tools exist for converting content such as
tables Table may refer to: * Table (furniture), a piece of furniture with a flat surface and one or more legs * Table (landform), a flat area of land * Table (information), a data arrangement with rows and columns * Table (database), how the table data ...
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 ''Alice's Adventures in Wonderland'' (commonly ''Alice in Wonderland'') is an 1865 English novel by Lewis Carroll. It details the story of a young girl named Alice (Alice's Adventures in Wonderland), Alice who falls through a rabbit hole into a ...
'' by
Lewis Carroll Charles Lutwidge Dodgson (; 27 January 1832 – 14 January 1898), better known by his pen name Lewis Carroll, was an English author, poet and mathematician. His most notable works are ''Alice's Adventures in Wonderland'' (1865) and its sequel ...
)


Editing interface

MediaWiki's default page-editing tools have been described as somewhat challenging to learn. A survey of students assigned to use a MediaWiki-based wiki found that when they were asked an open question about main problems with the wiki, 24% cited technical problems with formatting, e.g. "Couldn't figure out how to get an image in. Can't figure out how to show a link with words; it inserts a number." To make editing long pages easier, MediaWiki allows the editing of a subsection of a page (as identified by its header). A registered user can also indicate whether or not an edit is minor. Correcting spelling, grammar or punctuation are examples of minor edits, whereas adding paragraphs of new text is an example of a non-minor edit. Sometimes while one user is editing, a second user saves an edit to the same part of the page. Then, when the first user attempts to save the page, an
edit conflict An edit conflict is a computer problem that may occur when multiple editors edit the same file and cannot merge without losing part of their edits. Description The conflict occurs when an editor gets a copy of a shared document file, changes t ...
occurs. The second user is then given an opportunity to merge their content into the page as it now exists following the first user's page save. MediaWiki's user interface has been localized in many different languages. A language for the wiki content itself can also be set, to be sent in the "Content-Language" HTTP header and "lang"
HTML attribute HTML attributes are special words used inside the opening tag to control the element's behaviour. HTML attributes are a modifier of an ''HTML element type''. An attribute either modifies the default functionality of an element type or provides fu ...
.


Application programming interface

MediaWiki has an extensible
web API A web API is an application programming interface for either a web server or a web browser. It is a web development concept, usually limited to a web application's client-side (including any web frameworks being used), and thus usually does not in ...
(
application programming interface An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how t ...
) that provides direct, high-level access to the data contained in the MediaWiki databases. Client programs can use the API to log in, get data, and post changes. The API supports thin web-based JavaScript clients and end-user applications (such as vandal-fighting tools). The API can be accessed by the backend of another web site. An extensive
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
bot library, Pywikibot, and a popular semi-automated tool called AutoWikiBrowser, also interface with the API. The API is accessed via URLs such as https://en.wikipedia.org/w/api.php?action=query&list=recentchanges. In this case, the query would be asking Wikipedia for information relating to the last 10 edits to the site. One of the perceived advantages of the API is its language independence; it listens for
HTTP The Hypertext Transfer Protocol (HTTP) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, ...
connections from clients and can send a response in a variety of formats, such as
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable ...
, serialized PHP, or
JSON JSON (JavaScript Object Notation, pronounced ; also ) is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and arrays (or other ser ...
. Client code has been developed to provide layers of
abstraction Abstraction in its main sense is a conceptual process wherein general rules and concepts are derived from the usage and classification of specific examples, literal ("real" or "concrete") signifiers, first principles, or other methods. "An abstr ...
to the API.


Rich content

MediaWiki supports rich content generated through specialized syntax. For example, the software comes with optional support for rendering mathematical formulas using
LaTeX Latex is an emulsion (stable dispersion) of polymer microparticles in water. Latexes are found in nature, but synthetic latexes are common as well. In nature, latex is found as a milky fluid found in 10% of all flowering plants (angiosperms ...
and a special parser written in
OCaml OCaml ( , formerly Objective Caml) is a general-purpose programming language, general-purpose, multi-paradigm programming language which extends the Caml dialect of ML (programming language), ML with object-oriented programming, object-oriented ...
. Similar functionality for other content, ranging from graphical timelines over mathematical plotting and musical scores to
Egyptian hieroglyphs Egyptian hieroglyphs (, ) were the formal writing system used in Ancient Egypt, used for writing the Egyptian language. Hieroglyphs combined logographic, syllabic and alphabetic elements, with some 1,000 distinct characters.There were about 1,00 ...
, is available via extensions. The software has become more powerful at dealing with a wide variety of uploaded media files. Its richest functionality is in the area of images, where image galleries and thumbnails can be generated with relative ease. There is also support for
Exif Exchangeable image file format (officially Exif, according to JEIDA/JEITA/CIPA specifications) is a standard that specifies formats for images, sound, and ancillary tags used by digital cameras (including smartphones), scanners and other system ...
metadata Metadata is "data that provides information about other data", but not the content of the data, such as the text of a message or the image itself. There are many distinct types of metadata, including: * Descriptive metadata – the descriptive ...
. The use of MediaWiki to operate the
Wikimedia Commons Wikimedia Commons (or simply Commons) is a media repository of free-to-use images, sounds, videos and other media. It is a project of the Wikimedia Foundation. Files from Wikimedia Commons can be used across all of the Wikimedia projects in ...
, one of the largest free content media archives, has driven the need for further functionality in this area. For WYSIWYG editing,
VisualEditor VisualEditor (VE) is an online rich-text editor for MediaWiki-powered wikis that provides a direct visual way to edit pages based on the "what you see is what you get" principle. It was developed by the Wikimedia Foundation in partnership with ...
is available to use in MediaWiki which simplifying editing process for editors and has been bundled since MediaWiki 1.35. Other extensions exist for handling WYSIWYG editing to different degrees.


Tracking edits

Among the features of MediaWiki to assist in tracking edits is a Recent Changes feature that provides a list of recent edits to the wiki. This list contains basic information about those edits such as the editing user, the edit summary, the page edited, as well as any tags (e.g. "possible malware link") added by customizable abuse filters and other extensions to aid in combating unhelpful edits. On more active wikis, so many edits occur that it is hard to track Recent Changes manually. Anti-vandal software, including user-assisted tools, is sometimes employed on such wikis to process Recent Changes items. Server load can be reduced by sending a continuous feed of Recent Changes to an
IRC channel Internet Relay Chat (IRC) is a text-based chat system for instant messaging. IRC is designed for group communication in discussion forums, called '' channels'', but also allows one-on-one communication via private messages as well as chat an ...
that these tools can monitor, eliminating their need to send requests for a refreshed Recent Changes feed to the API. Another important tool is watchlisting. Each logged-in user has a watchlist to which the user can add whatever pages he or she wishes. When an edit is made to one of those pages, a summary of that edit appears on the watchlist the next time it is refreshed. As with the recent changes page, recent edits that appear on the watchlist contain clickable links for easy review of the article history and specific changes made. There is also the capability to review all edits made by any particular user. In this way, if an edit is identified as problematic, it is possible to check the user's other edits for issues. MediaWiki allows one to link to specific versions of articles. This has been useful to the scientific community, in that expert peer reviewers could analyse articles, improve them and provide links to the trusted version of that article.


Navigation


Wikilinks

Navigation through the wiki is largely through internal wikilinks. MediaWiki's wikilinks implement page existence detection, in which a link is colored blue if the target page exists on the local wiki and red if it does not. If a user clicks on a red link, they are prompted to create an article with that title. Page existence detection makes it practical for users to create "wikified" articles—that is, articles containing links to other pertinent subjects—without those other articles being yet in existence.


Interwiki links

Interwiki links function much the same way as namespaces. A set of interwiki prefixes can be configured to cause, for instance, a page title of wikiquote:Jimbo Wales to direct the user to the Jimbo Wales article on
Wikiquote Wikiquote is part of a family of wiki-based projects run by the Wikimedia Foundation using MediaWiki software. Based on an idea by Daniel Alston and implemented by Brion Vibber, the project's objective is to produce collaboratively a vast refer ...
. Unlike internal wikilinks, interwiki links lack page existence detection functionality, and accordingly there is no way to tell whether a blue interwiki link is broken or not.


Interlanguage links

Interlanguage links are the small navigation links that show up in the sidebar in most MediaWiki skins that connect an article with related articles in other languages within the same Wiki family. This can provide language-specific communities connected by a larger context, with all wikis on the same server or each on its own server. Previously, Wikipedia used interlanguage links to link an article to other articles on the same topic in other editions of Wikipedia. This was superseded by the launch of Wikidata.


Content organization


Page tabs and associated pages

Page tabs are displayed at the top of pages. These tabs allow users to perform actions or view pages that are related to the current page. The available default actions include viewing, editing, and discussing the current page. The specific tabs displayed depend on whether the user is logged into the wiki and whether the user has sysop privileges on the wiki. For instance, the ability to move a page or add it to one's watchlist is usually restricted to logged-in users. The site administrator can add or remove tabs by using JavaScript or installing extensions. Each page has an associated history page from which the user can access every version of the page that has ever existed and generate
diff In computing, the utility diff is a data comparison tool that computes and displays the differences between the contents of files. Unlike edit distance notions used for other purposes, diff is line-oriented rather than character-oriented, but it ...
s between two versions of his choice. Users' contributions are displayed not only here, but also via a "user contributions" option on a sidebar. In a 2004 article, Carl Challborn and Teresa Reimann noted that "While this feature may be a slight deviation from the collaborative, 'ego-less' spirit of wiki purists, it can be very useful for educators who need to assess the contribution and participation of individual student users."


Namespaces

MediaWiki provides many features beyond
hyperlink In computing, a hyperlink, or simply a link, is a digital reference to data that the user can follow or be guided by clicking or tapping. A hyperlink points to a whole document or to a specific element within a document. Hypertext is text wit ...
s for structuring content. One of the earliest such features is ''
namespace In computing, a namespace is a set of signs (''names'') that are used to identify and refer to objects of various kinds. A namespace ensures that all of a given set of objects have unique names so that they can be easily identified. Namespaces ...
s''. One of Wikipedia's earliest problems had been the separation of encyclopedic content from pages pertaining to maintenance and communal discussion, as well as personal pages about encyclopedia editors. Namespaces are prefixes before a page title (such as "User:" or "Talk:") that serve as descriptors for the page's purpose and allow multiple pages with different functions to exist under the same title. For instance, a page titled "", in the default namespace, could describe the 1984 movie starring
Arnold Schwarzenegger Arnold Alois Schwarzenegger (born July 30, 1947) is an Austrian and American actor, film producer, businessman, retired professional bodybuilder and politician who served as the 38th governor of California between 2003 and 2011. ''Time'' ...
, while a page titled "" could be a profile describing a user who chooses this name as a pseudonym. More commonly, each namespace has an associated "Talk:" namespace, which can be used to discuss its contents, such as "User talk:" or "Template talk:". The purpose of having discussion pages is to allow content to be separated from discussion surrounding the content. Namespaces can be viewed as folders that separate different basic types of information or functionality. Custom namespaces can be added by the site administrators. There are 16 namespaces by default for content, with 2 "pseudo-namespaces" used for dynamically generated "Special:" pages and links to media files. Each namespace on MediaWiki is numbered: content page namespaces have even numbers and their associated talk page namespaces have odd numbers.


Category tags

Users can create new categories and add pages and files to those categories by appending one or more category tags to the content text. Adding these tags creates links at the bottom of the page that take the reader to the list of all pages in that category, making it easy to browse related articles. The use of categorization to organize content has been described as a combination of: * Collaborative tagging systems like
del.icio.us Delicious (stylized del.icio.us) was a social bookmarking web service for storing, sharing, and discovering web bookmarks. The site was founded by Joshua Schachter and Peter Gadjokov in 2003 and acquired by Yahoo! in 2005. By the end of 2008, ...
and * Hierarchical classifications like the
Dewey Decimal Classification The Dewey Decimal Classification (DDC), colloquially known as the Dewey Decimal System, is a proprietary library classification system which allows new books to be added to a library in their appropriate location based on subject. Section 4.1 ...
.


Subpages

In addition to namespaces, content can be ordered using ''subpages''. This simple feature provides automatic
breadcrumbs Bread crumbs or breadcrumbs (regional variants including breading and crispies) consist of crumbled bread of various dryness, sometimes with seasonings added, used for breading or crumbing foods, topping casseroles, stuffing poultry, thickeni ...
of the pattern from the page after the slash (in this case, "Subpage title") to the page before the slash (in this case, "Page title").


Customization

If the feature is enabled, users can customize their stylesheets and configure
client-side JavaScript JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of websites use JavaScript on the client side for webpage behavior, often ...
to be executed with every pageview. On Wikipedia, this has led to a large number of additional tools and helpers developed through the wiki and shared among users. For instance, ''navigation popups'' is a custom JavaScript tool that shows previews of articles when the user hovers over links and also provides shortcuts for common maintenance tasks. The entire MediaWiki user interface can be edited through the wiki itself by users with the necessary permissions (typically called "administrators"). This is done through a special namespace with the prefix "MediaWiki:", where each page title identifies a particular user interface message. Using an extension, it is also possible for a user to create personal scripts, and to choose whether certain sitewide scripts should apply to them by toggling the appropriate options in the user preferences page.


Templates

The "MediaWiki:" namespace was originally also used for creating custom text blocks that could then be dynamically loaded into other pages using a special syntax. This content was later moved into its own namespace, "Template:". Templates are text blocks that can be dynamically loaded inside another page whenever that page is requested. The template is a special link in double
curly bracket A bracket is either of two tall fore- or back-facing punctuation marks commonly used to isolate a segment of text or data from its surroundings. Typically deployed in symmetric pairs, an individual bracket may be identified as a 'left' or 'r ...
s (for example ""), which calls the template (in this case located at ) to load in place of the template call. Templates are
structured document A structured document is an electronic document where some method of markup is used to identify the whole and parts of the document as having various meanings beyond their formatting. For example, a structured document might identify a certain por ...
s containing attribute–value pairs. They are defined with
parameter A parameter (), generally, is any characteristic that can help in defining or classifying a particular system (meaning an event, project, object, situation, etc.). That is, a parameter is an element of a system that is useful, or critical, when ...
s, to which are assigned
values In ethics and social sciences, value denotes the degree of importance of something or action, with the aim of determining which actions are best to do or what way is best to live (normative ethics in ethics), or to describe the significance of dif ...
when transcluded on an article page. The name of the parameter is delimited from the value by an
equals sign The equals sign (British English, Unicode) or equal sign (American English), also known as the equality sign, is the mathematical symbol , which is used to indicate equality in some well-defined sense. In an equation, it is placed between two ...
. A class of templates known as
infobox An infobox is a digital or physical Table (information), table used to collect and present a subset of information about its subject, such as a document. It is a structured document containing a set of attribute–value pairs, and in Wikipedia r ...
es is used on Wikipedia to collect and present a subset of information about its subject, usually on the top (mobile view) or top right-hand corner (desktop view) of the document. A related method, called template ''substitution'' (called by adding subst: at the beginning of a template link) inserts the contents of the template into the target page (like a
copy and paste In human–computer interaction and user interface design, cut, copy, and paste are related commands that offer an interprocess communication technique for transferring data through a computer's user interface. The ''cut'' command removes ...
operation), instead of loading the template contents dynamically whenever the page is loaded. This can lead to inconsistency when using templates, but may be useful in certain cases, and in most cases requires fewer
server Server may refer to: Computing *Server (computing), a computer program or a device that provides functionality for other programs or devices, called clients Role * Waiting staff, those who work at a restaurant or a bar attending customers and su ...
resources (the actual amount of savings can vary depending on wiki configuration and the complexity of the template). Templates have found many different uses. Templates enable users to create complex table layouts that are used consistently across multiple pages, and where only the content of the tables gets inserted using template parameters. Templates are frequently used to identify problems with a Wikipedia article by putting a template in the article. This template then outputs a graphical box stating that the article content is disputed or in need of some other attention, and also categorize it so that articles of this nature can be located. Templates are also used on user pages to send users standard messages welcoming them to the site, giving them awards for outstanding contributions, warning them when their behavior is considered inappropriate, notifying them when they are blocked from editing, and so on.


Groups and restriction of access

MediaWiki offers flexibility in creating and defining user groups. For instance, it would be possible to create an arbitrary "ninja" group that can block users and delete pages, and whose edits are hidden by default in the recent changes log. It is also possible to set up a group of "autoconfirmed" users that one becomes a member of after making a certain number of edits and waiting a certain number of days. Some groups that are enabled by default are bureaucrats and sysops. Bureaucrats have the power to change other users' rights. Sysops have power over page protection and deletion and the blocking of users from editing. MediaWiki's available controls on editing rights have been deemed sufficient for publishing and maintaining important documents such as a manual of
standard operating procedures A standard operating procedure (SOP) is a set of step-by-step instructions compiled by an organization to help workers carry out routine operations. SOPs aim to achieve efficiency, quality output, and uniformity of performance, while reducing misc ...
in a hospital. When a page consists only of useless content, there are several ways to remove that content. The simplest way, available to all users, is simply to blank the page. However, this interferes with page existence detection, unless an extension is installed to treat blanked pages as though they were nonexistent. Blanking also leaves the content accessible through the history page, an outcome that, while potentially increasing transparency by allowing non-sysops to easily review the content removal decision for appropriateness, might be unacceptable or even unlawful in some cases. Another option is for a sysop to delete the page, and thereby prevent it from being viewed by non-sysops. Another level of deletion, called RevisionDelete, can be used by a group (e.g. "Oversighters") to prevent a page from being viewed by non-members of that group. It is also possible, using certain extensions, to remove content from being viewed through any of the normal channels on the wiki, or even to completely delete revisions from the database. MediaWiki comes with a basic set of features related to restricting access, but its original and ongoing design is driven by functions that largely relate to content, not content segregation. As a result, with minimal exceptions (related to specific tools and their related "Special" pages), page access control has never been a high priority in core development and developers have stated that users requiring secure user access and authorization controls should not rely on MediaWiki, since it was never designed for these kinds of situations. For instance, it is extremely difficult to create a wiki where only certain users can read and access some pages. Here, wiki engines like
Foswiki Foswiki is an enterprise wiki, typically used to run a collaboration platform, knowledge base or document management system. Users can create wiki applications using the Topic Markup Language (TML), and developers can extend its functionality with ...
,
MoinMoin MoinMoin is a wiki engine implemented in Python, initially based on the PikiPiki wiki engine. Its name is a play on the North German greeting ''Moin'', repeated as in WikiWiki. The MoinMoin code is licensed under the GNU General Public License ...
and
Confluence In geography, a confluence (also: ''conflux'') occurs where two or more flowing bodies of water join to form a single channel. A confluence can occur in several configurations: at the point where a tributary joins a larger river (main stem); o ...
provide more flexibility by supporting advanced security mechanisms like
access control list In computer security, an access-control list (ACL) is a list of permissions associated with a system resource (object). An ACL specifies which users or system processes are granted access to objects, as well as what operations are allowed on giv ...
s.


Extensibility

The MediaWiki codebase contains various hooks using
callback Callback may refer to: * Callback (comedy), a joke which refers to one previously told * Callback (computer programming), executable code that is passed as a parameter to other code * Callback (telecommunications), the telecommunications event th ...
functions to add additional PHP code in an
extensible Extensibility is a software engineering and systems design principle that provides for future growth. Extensibility is a measure of the ability to extend a system and the level of effort required to implement the extension. Extensions can be t ...
way. This allows developers to write extensions without necessarily needing to modify the core or having to submit their code for review. Installing an extension typically consists of adding a line to the configuration file, though in some cases additional changes such as database updates or core patches are required. Five main extension points were created to allow developers to add features and functionalities to MediaWiki. Hooks are run every time a certain event happens; for instance, the ArticleSaveComplete hook occurs after a save article request has been processed. This can be used, for example, by an extension that notifies selected users whenever a page edit occurs on the wiki from new or anonymous users. New tags can be created to process data with opening and closing tags (...). Parser functions can be used to create a new command (). New special pages can be created to perform a specific function. These pages are dynamically generated. For example, a special page might show all pages that have one or more links to an external site or it might create a form providing user submitted feedback. Skins allow users to customize the look and feel of MediaWiki. A minor extension point allows the use of
Amazon S3 Amazon S3 or Amazon Simple Storage Service is a service offered by Amazon Web Services (AWS) that provides object storage through a web service interface. Amazon S3 uses the same scalable storage infrastructure that Amazon.com uses to run its e- ...
to host image files.


Extensions


Resources to developers

MediaWiki can be made more advanced and useful for various purposes through its extensions. These extensions vary greatly in complexity. The Wikimedia Foundation operates a
Git Git () is a distributed version control system: tracking changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development. Its goals include speed, data in ...
server where many extensions host their repository. Most of them also have a documentation page on the MediaWiki website. MediaWiki
code review Code review (sometimes referred to as peer review) is a software quality assurance activity in which one or several people check a program mainly by viewing and reading parts of its source code, and they do so after implementation or as an interru ...
was itself historically facilitated through a MediaWiki extension. As of March 2012, it has been done through
Gerrit Gerrit is a Dutch male name meaning "''brave with the spear''", the Dutch and Frisian form of Gerard. People with this name include: * Gerrit Achterberg (1905–1962), Dutch poet * Gerrit van Arkel (1858–1918), Dutch architect * Gerrit Badenh ...
. Since version 1.16, MediaWiki uses the
jQuery jQuery is a JavaScript library designed to simplify HTML DOM tree traversal and manipulation, as well as event handling, CSS animation, and Ajax. It is free, open-source software using the permissive MIT License. As of Aug 2022, jQuery is used ...
library.


Text manipulation

Among the most popular extensions is a parser function extension, ParserFunctions, which allows different content to be rendered based on the result of conditional statements. These conditional statements can perform functions such as evaluating whether a parameter is empty, comparing strings, evaluating mathematical expressions, and returning one of two values depending on whether a page exists. It was designed as a replacement for a notoriously inefficient template called . Schindler recounts the history of the ParserFunctions extension as follows: Another parser functions extension, StringFunctions, was developed to allow evaluation of string length, string position, and so on. Wikimedia communities, having created awkward workarounds to accomplish the same functionality, clamored for it to be enabled on their projects. Much of its functionality was eventually integrated into the ParserFunctions extension, albeit disabled by default and accompanied by a warning from Tim Starling that enabling string functions would allow users "to implement their own parsers in the ugliest, most inefficient programming language known to man: MediaWiki wikitext with ParserFunctions." Since 2012 an extension, Scribunto, has existed that allows for the creation of "modules"—wiki pages written in the scripting language
Lua Lua or LUA may refer to: Science and technology * Lua (programming language) * Latvia University of Agriculture * Last universal ancestor, in evolution Ethnicity and language * Lua people, of Laos * Lawa people, of Thailand sometimes referred t ...
—which can then be run within templates and standard wiki pages. Scribunto has been installed on Wikipedia and other Wikimedia sites since 2013 and is used heavily on those sites. Scribunto code runs significantly faster than corresponding wikitext code using ParserFunctions.


For footnotes and academic-related display

Another very popular extension is a citation extension that enables footnotes to be added to pages using inline references. This extension has, however, been criticized for being difficult to use and requiring the user to memorize complex syntax. A gadget called RefToolbar attempts to make it easier to create citations using common templates. MediaWiki has some extensions that are well-suited for academia, such as mathematics extensions and an extension that allows molecules to be rendered in 3D.


Integration

A generic Widgets extension exists that allows MediaWiki to integrate with virtually anything. Other examples of extensions that could improve a wiki are category suggestion extensions and extensions for inclusion of
Flash Video Flash Video is a container file format used to deliver digital video content (e.g., TV shows, movies, etc.) over the Internet using Adobe Flash Player version 6 and newer. Flash Video content may also be embedded within SWF files. There ar ...
s, YouTube videos, and
RSS feed RSS ( RDF Site Summary or Really Simple Syndication) is a web feed that allows users and applications to access updates to websites in a standardized, computer-readable format. Subscribing to RSS feeds can allow a user to keep track of many di ...
s.
Metavid Metavid is a free-software wiki-based community archive project for audio video media. The site hosts public domain US legislative footage. It was started as a Digital Arts/New Media MFA thesis project of Michael Dale and Abram Stern under the adv ...
, a site that archives video footage of the
U.S. Senate The United States Senate is the upper chamber of the United States Congress, with the House of Representatives being the lower chamber. Together they compose the national bicameral legislature of the United States. The composition and powe ...
and
House A house is a single-unit residential building. It may range in complexity from a rudimentary hut to a complex structure of wood, masonry, concrete or other material, outfitted with plumbing, electrical, and heating, ventilation, and air condi ...
floor proceedings, was created using code extending MediaWiki into the domain of collaborative video authoring.


Combating linkspam

There are many
spambot A spambot is a computer program designed to assist in the sending of spam. Spambots usually create accounts and send spam messages with them. Web hosts and website operators have responded by banning spammers, leading to an ongoing struggle betw ...
s that search the web for MediaWiki installations and add
linkspam Spamdexing (also known as search engine spam, search engine poisoning, black-hat search engine optimization, search spam or web spam) is the deliberate manipulation of search engine indexes. It involves a number of methods, such as link building ...
to them, despite the fact that MediaWiki uses the
nofollow nofollow is a setting on a web page hyperlink that directs search engines not to use the link for page ranking calculations. It is specified in the page as a type of link relation; that is: <a rel="nofollow" ...>. Because search engines ...
attribute to discourage such attempts at
search engine optimization Search engine optimization (SEO) is the process of improving the quality and quantity of Web traffic, website traffic to a website or a web page from web search engine, search engines. SEO targets unpaid traffic (known as "natural" or "Organ ...
. Part of the problem is that third party republishers, such as
mirrors A mirror or looking glass is an object that Reflection (physics), reflects an image. Light that bounces off a mirror will show an image of whatever is in front of it, when focused through the lens of the eye or a camera. Mirrors reverse the ...
, may not independently implement the nofollow tag on their websites, so marketers can still get
PageRank PageRank (PR) is an algorithm used by Google Search to rank web pages in their search engine results. It is named after both the term "web page" and co-founder Larry Page. PageRank is a way of measuring the importance of website pages. According ...
benefit by inserting links into pages when those entries appear on third party websites.
Anti-spam Various anti-spam techniques are used to prevent email spam (unsolicited bulk email). No technique is a complete solution to the spam problem, and each has trade-offs between incorrectly rejecting legitimate email (false positives) as opposed to ...
extensions have been developed to combat the problem by introducing
CAPTCHA A CAPTCHA ( , a contrived acronym for "Completely Automated Public Turing test to tell Computers and Humans Apart") is a type of challenge–response test used in computing to determine whether the user is human. The term was coined in 2003 ...
s,
blacklist Blacklisting is the action of a group or authority compiling a blacklist (or black list) of people, countries or other entities to be avoided or distrusted as being deemed unacceptable to those making the list. If someone is on a blacklist, t ...
ing certain URLs, and allowing bulk deletion of pages recently added by a particular user.


Searches and queries

MediaWiki comes pre-installed with a standard text-based search. Extensions exist to let MediaWiki use more sophisticated third-party search engines, including
Elasticsearch Elasticsearch is a search engine based on the Lucene library. It provides a distributed, multitenant-capable full-text search engine with an HTTP web interface and schema-free JSON documents. Elasticsearch is developed in Java and is dual-l ...
(which since 2014 has been in use on Wikipedia),
Lucene Apache Lucene is a free and open-source search engine software library, originally written in Java by Doug Cutting. It is supported by the Apache Software Foundation and is released under the Apache Software License. Lucene is widely used as a ...
and
Sphinx A sphinx ( , grc, σφίγξ , Boeotian: , plural sphinxes or sphinges) is a mythical creature with the head of a human, the body of a lion, and the wings of a falcon. In Greek tradition, the sphinx has the head of a woman, the haunches of ...
. Various MediaWiki extensions have also been created to allow for more complex,
faceted search Faceted search is a technique that involves augmenting traditional search techniques with a faceted navigation system, allowing users to narrow down search results by applying multiple filters based on faceted classification of the items. It is som ...
, on both data entered within the wiki and on
metadata Metadata is "data that provides information about other data", but not the content of the data, such as the text of a message or the image itself. There are many distinct types of metadata, including: * Descriptive metadata – the descriptive ...
such as pages' revision history.
Semantic MediaWiki Semantic MediaWiki (SMW) is an extension to MediaWiki that allows for annotating semantic data within wiki pages, thus turning a wiki that incorporates the extension into a semantic wiki. Data that has been encoded can be used in semantic search ...
is one such extension.


Database

MediaWiki can use either the
MySQL MySQL () is an open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My, and "SQL", the acronym for Structured Query Language. A relational database o ...
/
MariaDB MariaDB is a community-developed, commercially supported fork of the MySQL relational database management system (RDBMS), intended to remain free and open-source software under the GNU General Public License. Development is led by some of the ori ...
,
PostgreSQL PostgreSQL (, ), also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. It was originally named POSTGRES, referring to its origins as a successor to the In ...
or
SQLite SQLite (, ) is a database engine written in the C programming language. It is not a standalone app; rather, it is a library that software developers embed in their apps. As such, it belongs to the family of embedded databases. It is the most ...
relational database management system A relational database is a (most commonly digital) database based on the relational model of data, as proposed by E. F. Codd in 1970. A system used to maintain relational databases is a relational database management system (RDBMS). Many relatio ...
. Support for
Oracle Database Oracle Database (commonly referred to as Oracle DBMS, Oracle Autonomous Database, or simply as Oracle) is a multi-model database management system produced and marketed by Oracle Corporation. It is a database commonly used for running online t ...
and
Microsoft SQL Server Microsoft SQL Server is a relational database management system developed by Microsoft. As a database server, it is a software product with the primary function of storing and retrieving data as requested by other software applications—which ma ...
has been dropped since MediaWiki 1.34. A MediaWiki database contains several dozen
tables Table may refer to: * Table (furniture), a piece of furniture with a flat surface and one or more legs * Table (landform), a flat area of land * Table (information), a data arrangement with rows and columns * Table (database), how the table data ...
, including a page table that contains page titles, page ids, and other metadata; and a revision table to which is added a new row every time an edit is made, containing the page id, a brief textual summary of the change performed, the user name of the article editor (or its IP address the case of an unregistered user) and a timestamp. In a 4½ year period prior to 2008, the MediaWiki database had 170
schema The word schema comes from the Greek word ('), which means ''shape'', or more generally, ''plan''. The plural is ('). In English, both ''schemas'' and ''schemata'' are used as plural forms. Schema may refer to: Science and technology * SCHEMA ...
versions. Possibly the largest schema change was done in 2005 with MediaWiki 1.5, when the storage of metadata was separated from that of content, to improve performance flexibility. When this upgrade was applied to Wikipedia, the site was locked for editing, and the schema was converted to the new version in about 22 hours. Some software enhancement proposals, such as a proposal to allow sections of articles to be watched via watchlist, have been rejected because the necessary schema changes would have required excessive Wikipedia downtime.


Performance and storage

Because it is used to run one of the highest-traffic sites on the Web, Wikipedia, MediaWiki's performance and
scalability Scalability is the property of a system to handle a growing amount of work by adding resources to the system. In an economic context, a scalable business model implies that a company can increase sales given increased resources. For example, a ...
have been highly optimized. MediaWiki supports
Squid True squid are molluscs with an elongated soft body, large eyes, eight arms, and two tentacles in the superorder Decapodiformes, though many other molluscs within the broader Neocoleoidea are also called squid despite not strictly fitting t ...
, load-balanced database replication, client-side caching,
memcached Memcached (pronounced variously ''mem-cash-dee'' or ''mem-cashed'') is a general-purpose distributed memory-caching system. It is often used to speed up dynamic database-driven websites by caching data and objects in RAM to reduce the number of t ...
or table-based caching for frequently accessed processing of query results, a simple static file cache, feature-reduced operation, revision compression, and a job queue for database operations. MediaWiki developers have attempted to optimize the software by avoiding expensive algorithms, database queries, etc., caching every result that is expensive and has temporal locality of reference, and focusing on the hot spots in the code through profiling. MediaWiki code is designed to allow for data to be written to a read-write database and read from read-only databases, although the read-write database can be used for some read operations if the read-only databases are not yet up to date.
Metadata Metadata is "data that provides information about other data", but not the content of the data, such as the text of a message or the image itself. There are many distinct types of metadata, including: * Descriptive metadata – the descriptive ...
, such as article revision history, article relations (links, categories etc.), user accounts and settings can be stored in core databases and cached; the actual revision text, being more rarely used, can be stored as append-only blobs in external storage. The software is suitable for the operation of large-scale
wiki farm A wiki hosting service, or wiki farm, is a server or an array of servers that offers users tools to simplify the creation and development of individual, independent wikis. Wiki farms are not to be confused with wiki "families", a more generic ...
s such as
Wikimedia The Wikimedia Foundation, Inc., or Wikimedia for short and abbreviated as WMF, is an American 501(c)(3) nonprofit organization headquartered in San Francisco, California and registered as a charitable foundation under local laws. Best know ...
, which had about 800 wikis as of August 2011. However, MediaWiki comes with no built-in GUI to manage such installations. Empirical evidence shows most revisions in MediaWiki databases tend to differ only slightly from previous revisions. Therefore, subsequent revisions of an article can be concatenated and then compressed, achieving very high
data compression ratio Data compression ratio, also known as compression power, is a measurement of the relative reduction in size of data representation produced by a data compression algorithm. It is typically expressed as the division of uncompressed size by compresse ...
s of up to 100x. For more information on the architecture, such as how it stores wikitext and assembles a page, see ''External links''.


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 In computing, WYSIWYG ( ), an acronym for What You See Is What You Get, is a system in which editing software allows content to be edited in a form that resembles its appearance when printed or displayed as a finished product, such as a printed d ...
editors for MediaWiki, although several WYSIWYG extensions do exist, including the popular
VisualEditor VisualEditor (VE) is an online rich-text editor for MediaWiki-powered wikis that provides a direct visual way to edit pages based on the "what you see is what you get" principle. It was developed by the Wikimedia Foundation in partnership with ...
. MediaWiki is not designed to be a suitable replacement for dedicated
online forum An Internet forum, or message board, is an online discussion site where people can hold conversations in the form of posted messages. They differ from chat rooms in that messages are often longer than one line of text, and are at least temporar ...
or blogging software, although extensions do exist to allow for both of these. It is common 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 Link-richness is the quality, possessed by some websites, of having many hyperlinks. Classified advertising sites like Craigslist tend to be very link-rich, sometimes with hundreds of links on their main page. They help users find the links they ...
'. MediaWiki by default has little support for the creation of dynamically assembled documents, or pages that aggregate data from other pages. Some research has been done on enabling such features directly within MediaWiki. The
Semantic MediaWiki Semantic MediaWiki (SMW) is an extension to MediaWiki that allows for annotating semantic data within wiki pages, thus turning a wiki that incorporates the extension into a semantic wiki. Data that has been encoded can be used in semantic search ...
extension provides these features. It is not in use on Wikipedia, but in more than 1,600 other MediaWiki installations. The Wikibase Repository and Wikibase Repository client are however implemented in
Wikidata Wikidata is a collaboratively edited multilingual knowledge graph hosted by the Wikimedia Foundation. It is a common source of open data that Wikimedia projects such as Wikipedia, and anyone else, can use under the CC0 public domain license. ...
and
Wikipedia Wikipedia is a multilingual free online encyclopedia written and maintained by a community of volunteers, known as Wikipedians, through open collaboration and using a wiki-based editing system. Wikipedia is the largest and most-read refer ...
respectively, and to some extent provides semantic web features, and linking of centrally stored data to infoboxes in various Wikipedia articles. 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.


Security

MediaWiki developers have enacted security standards, both for core code and extensions.
SQL queries The SQL SELECT statement returns a result set of records, from one or more tables. A SELECT statement retrieves zero or more rows from one or more database tables or database views. In most applications, SELECT is the most commonly used data man ...
and HTML output are usually done through wrapper functions that handle validation, escaping, filtering for prevention of
cross-site scripting Cross-site scripting (XSS) is a type of security vulnerability that can be found in some web applications. XSS attacks enable attackers to inject client-side scripts into web pages viewed by other users. A cross-site scripting vulnerability may ...
and
SQL injection In computing, SQL injection is a code injection technique used to attack data-driven applications, in which malicious SQL statements are inserted into an entry field for execution (e.g. to dump the database contents to the attacker). SQL inj ...
. Many security issues have had to be patched after a MediaWiki version release, and accordingly MediaWiki.org states, "The most important security step you can take is to keep your software up to date" by subscribing to the announcement listserv and installing security updates that are announced.


Developer community

MediaWiki developers are spread around the world, though with a majority in the United States and Europe. Face-to-face meetings and programming sessions for MediaWiki developers have been held once or several times a year since 2004.


Support

Support for MediaWiki users consists of: * MediaWiki.org, including the Support Desk. * An official mailing list, Mediawiki-l. * Several books have been written about MediaWiki administration, including some free online books.


Comparison to other online collaboration software

Users of online
collaboration software Collaborative software or groupware is application software designed to help people working on a common task to attain their goals. One of the earliest definitions of groupware is "intentional group processes plus software to support them". As re ...
are familiar with MediaWiki's functions and layout due to its noted use on Wikipedia. A 2006 overview of social software in academia observed that "Compared to other wikis, MediaWiki is also fairly aesthetically pleasing, though simple, and has an easily customized side menu and stylesheet." However, in one assessment in 2006,
Confluence In geography, a confluence (also: ''conflux'') occurs where two or more flowing bodies of water join to form a single channel. A confluence can occur in several configurations: at the point where a tributary joins a larger river (main stem); o ...
was deemed to be a superior product due to its very usable API and ability to better support multiple wikis. A 2009 study at the
University of Hong Kong The University of Hong Kong (HKU) (Chinese: 香港大學) is a public research university in Hong Kong. Founded in 1887 as the Hong Kong College of Medicine for Chinese, it is the oldest tertiary institution in Hong Kong. HKU was also the fi ...
compared
TWiki TWiki is a Perl-based structured wiki application, typically used to run a collaboration platform, knowledge or document management system, a knowledge base, or team portal. Users can create wiki pages using the TWiki Markup Language, and dev ...
to MediaWiki. The authors noted that TWiki has been considered as a collaborative tool for the development of educational papers and technical projects, whereas MediaWiki's most noted use is on Wikipedia. Although both platforms allow discussion and tracking of progress, TWiki has a "Report" part that MediaWiki lacks. Students perceived MediaWiki as being easier to use and more enjoyable than TWiki. When asked whether they recommended using MediaWiki for
knowledge management Knowledge management (KM) is the collection of methods relating to creating, sharing, using and managing the knowledge and information of an organization. It refers to a multidisciplinary approach to achieve organisational objectives by making ...
course group project, 15 out of 16 respondents expressed their preference for MediaWiki giving answers of great certainty, such as "of course", "for sure". TWiki and MediaWiki both have flexible plug-in architecture. A 2009 study that compared students' experience with MediaWiki to that with
Google Docs Google Docs is an online word processor included as part of the free, web-based Google Docs Editors suite offered by Google, which also includes: Google Sheets, Google Slides, Google Drawings, Google Forms, Google Sites and Google Keep. Google Do ...
found that students gave the latter a much higher rating on user-friendly layout. A 2021 study conducted by the Brazilian Nuclear Engineering Institute compared a MediaWiki-based knowledge management system against two others that were based on
DSpace DSpace is an open source repository software package typically used for creating open access repositories for scholarly and/or published digital content. While DSpace shares some feature overlap with content management systems and document manag ...
and
Open Journal Systems Open Journal Systems, also known as OJS, is a free software for the management of peer-reviewed academic journals, created by the Public Knowledge Project, and released under the GNU General Public License. History Open Journal Systems (OJS ...
, respectively. It highlighted ease of use as an advantage of the MediaWiki-based system, noting that because the Wikimedia Foundation had been developing MediaWiki for a site aimed at the general public (Wikipedia), "its user interface was designed to be more user-friendly from start, and has received large user feedback over a long time", in contrast to DSpace's and OJS's focus on niche audiences.


See also

*
List of content management systems Content management systems (CMS) are used to organize and facilitate collaborative content creation. Many of them are built on top of separate content management frameworks. The list is limited to notable services. Open source software :''Th ...
*
List of wiki software Standard wiki programs, by programming language JavaScript-based * Lively Wiki is based on Lively Kernel and combines features of wikis and development environments. Users can create and edit application behavior and other content. * Tiddl ...
*
BlueSpice MediaWiki BlueSpice MediaWiki (BlueSpice for short) is free wiki software based on the MediaWiki engine and licensed with the GNU General Public License. It is especially developed for businesses as an enterprise wiki distribution for MediaWiki and used in ...
*
Semantic MediaWiki Semantic MediaWiki (SMW) is an extension to MediaWiki that allows for annotating semantic data within wiki pages, thus turning a wiki that incorporates the extension into a semantic wiki. Data that has been encoded can be used in semantic search ...
*
XOWA XOWA is a free and open-source application written primarily in Java by anonymous developers and is intended for users who wish to run their own copy of Wikipedia, or any other compatible Wiki, offline without an internet connection. XOWA is com ...
 – for viewing Wikipedia and other wikis offline *
PHP PHP is a general-purpose scripting language geared toward web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1993 and released in 1995. The PHP reference implementation is now produced by The PHP Group ...
--- a programming language that powers MediaWiki


References


External links

* * {{Authority control 2002 software Articles containing video clips Articles with example code Collaborative software Cross-platform free software Free content management systems Free software programmed in PHP Free wiki software Multilingual websites Version control systems History of Wikipedia