MediaWiki extension

Last updated

MediaWiki extensions allow MediaWiki to be made more advanced and useful for various purposes. These extensions vary greatly in complexity. The Wikimedia Foundation operates a Git server where many extensions are hosted, and a directory of them can be found on the MediaWiki website. Some other sites also are known for development of—or support for—extensions are MediaWiki.org, which maintains an extension matrix; [1] and Google Code. [2] MediaWiki code review is itself facilitated through a Gerrit instance. Since version 1.16 MediaWiki also used the jQuery library.

Contents

Usage

A person with administrative FTP or file system access to the wiki directories can install extensions manually by downloading them to the appropriate directories and using a text editor to add require once lines to the LocalSettings.php file to cause the extension code to be included and evaluated. Some extensions also have configuration settings that are set and changed by editing this file. [3] There is also an extension, Configure, that allows other extensions to be more easily managed. [4] A better extension management platform is under development. [5]

Kinds of extensions

Parser functions

Among the most popular extensions is a parser function extension, ParserFunctions, that allows different content to be rendered based on the result of conditional statements. [6] 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 {{Qif}}. [7] Schindler recounts the history of the ParserFunctions extension as follows: [8]

In 2006 some Wikipedians discovered that through an intricate and complicated interplay of templating features and CSS they could create conditional wiki text, i.e. text that was displayed if a template parameter had a specific value. This included repeated calls of templates within templates, which bogged down the performance of the whole system. The developers faced the choice of either disallowing the spreading of an obviously desired feature by detecting such usage and explicitly disallowing it within the software, or offer an efficient alternative. The latter was done by Tim Starling, who announced the introduction of parser functions, wiki text that calls functions implemented in the underlying software. At first, only conditional text and the computation of simple mathematical expressions was implemented, but this already increased the possibilities for wiki editors enormously. With time further parser functions were introduced, finally leading to a framework that allowed the simple writing of extension function to add arbitrary functionalities, like e.g. geo-coding services or widgets. This time the developers were clearly reacting to the demand of the community, being forced either to fight the solution of the issue that the community had (i.e. conditional text), or offer an improved technical implementation to replace the previous practice and achieve an overall better performance.

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, [9] clamored for it to be enabled on their projects. [10] Much of its functionality was eventually integrated into the ParserFunctions extension, [11] 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." [12]

Another very popular extension is a citation extension that enable footnotes to be added to pages using inline references. [13] This extension has, however, been criticized for being difficult to use and requiring the user to memorize complex syntax. A tool called ProveIt was proposed as a replacement. [14] A gadget called RefToolbar has also been created to make it easier to create citations using common templates. MediaWiki has some extensions that are well-suited for academia, such as mathematics extensions [15] and an extension that allows molecules to be rendered in 3D. [16]

Integration

A generic Widgets framework has been created that allows MediaWiki to integrate with virtually anything. Other examples of extensions that could improve a wiki are category suggestion extensions [17] and extensions for inclusion of Flash Videos, [18] YouTube videos, [19] and RSS feeds. [20] An extension to integrate with Facebook is forthcoming. [21] Metavid, a site that archives video footage of the U.S. Senate and House floor proceedings, was created using code extending MediaWiki into the domain of collaborative video authoring. [22] One extension, Viskimap, makes use of graphic organizers to visualize the relationships between content pages, so that students can easily get an understanding of the content elements and their relations, as they navigate through the wiki pages. [23]

Combating spam

There are many spambots that search the Internet for MediaWiki installations and add linkspam to them, despite the fact that MediaWiki uses the nofollow attribute to discourage such attempts at search engine optimization. [24] Part of the problem is that third party republishers, such as mirrors, may not independently implement the nofollow tag on their websites, so marketers can still get PageRank benefit by inserting links into pages when those entries appear on third party websites. [25] Anti-spam extensions have been developed to combat the problem by introducing CAPTCHAs, [26] blacklisting certain URLs, [27] and allowing bulk deletion of pages recently added by a particular user. [28]

Searches, queries and data processing and aggregation

A form to edit a page, using the Semantic Forms extension, which in turn relies on Semantic MediaWiki AcaWiki Semantic Forms screenshot.png
A form to edit a page, using the Semantic Forms extension, which in turn relies on Semantic MediaWiki

MediaWiki's weak query functionality, based mostly upon text searches, has inspired the creation of extensions adding complex new behavior to the wiki syntax. Systems which assist in analyzing relationships among editors, articles, revisions, topics, and words have attracted considerable attention from the academic community, both in terms of papers published and programming projects attempted. [29] They have been deemed necessary in order for the software to be suitable for applications such as some scientific databases. [30] [31]

Example of extensions facilitating such analyses include Semantic MediaWiki, which provides the ability to add structured and searchable relations and attributes to wiki pages, and WikiTrust, which implements a system for checking the author, origin, and reliability of wiki text. SNPedia, NeuroLex, and DBpedia are projects along these lines. A Software Organization Platform, intended to support specific software engineering activities such as experience management, requirements engineering, or project management, was based upon Semantic MediaWiki. [32] Another wiki, SynBioSS Wiki, whose purpose is to enable the scientific community to store and retrieve information related to synthetic biology efforts, likewise sought to overcome MediaWiki's limitations in this regard by creating database fields for species ids, complex ids, etc.; new species and such could be added through a special page. A modified MediaWiki search engine was also part of that project. [33] SMW was itself extended by the introduction of content types, bidirectional relationships, controlled vocabularies, user-friendly user interfaces (including, for instance, autocompletion), and Web 2.0 techniques for visualization and interaction options. [34]

An extension called Woogle [35] was created in an attempt to combine the advantages of wikis in capturing new information in a lightweight and collaborative fashion and of enterprise search engines in locating existing documents and information in an organization. [36] Since by default, creating and changing tables is a manual process, with inconsistencies likely to occur among tables that display the same data in different ways, the DynaTable extension was created to provide wiki users with a convenient way to define data in a separate namespace, resulting in the data being stored in a database table, and have it be dynamically retrieved from the database at the time of the wiki page parsing or rendering, to pages that have the appropriate tag (and needed parameters). The extension also allows users to filter tables by selecting a subset of columns and rows to display. [37]

An extension-based system known as Annoki was developed to help attribute specific parts of articles to specific authors. If more than 50% of a sentence was added by a particular editor, that sentence was deemed to be "owned" by that editor. If less than 50% was added by an editor, that editor was deemed to be a proofreader of that sentence. The system also viewed a series of edits made by the same author as a continuous editing effort and defined a wiki page "release" as the last of these sequential revisions. [38]

Related Research Articles

PHP Scripting language created in 1994

PHP is a general-purpose scripting language geared towards web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1994. The PHP reference implementation is now produced by The PHP Group. PHP originally stood for Personal Home Page, but it now stands for the recursive initialism PHP: Hypertext Preprocessor.

Wiki Type of website that visitors can edit

A wiki is a hypertext publication collaboratively edited and managed by its own audience directly 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 public or limited to use within an organization for maintaining its internal knowledge base.

Wiki software Collaborative software that runs a wiki

A Wiki software, 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 that runs on one or more web servers. The content, including previous revisions, is usually stored in either a file system or a database. Wikis are a type of web content management system, and the most commonly supported off-the-shelf software that web hosting facilities offer.

Bookmarklet

A bookmarklet is a bookmark stored in a web browser that contains JavaScript commands that add new features to the browser. Bookmarklets are JavaScripts stored as the URL of a bookmark in a web browser or as a hyperlink on a web page. Bookmarklets are usually small snippets of JavaScript executed when user clicks on them. Regardless of whether bookmarklet utilities are stored as bookmarks or hyperlinks, they add one-click functions to a browser or web page. When clicked, a bookmarklet performs one of a wide variety of operations, such as running a search query or extracting data from a table. For example, clicking on a bookmarklet after selecting text on a webpage could run an Internet search on the selected text and display a search engine results page.

PmWiki Wiki software

PmWiki is wiki software written by Patrick R. Michaud in the PHP programming language.

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 developers can extend wiki application functionality with plugins.

MediaWiki Free and open-source wiki software, used by Wikipedia

MediaWiki is a free and open-source wiki software. It was developed for use on Wikipedia in 2002, and given the name "MediaWiki" in 2003. It remains in use on Wikipedia and almost all other Wikimedia websites, including Wiktionary, Wikimedia Commons and Wikidata; these sites continue to define a large part of the requirement set for MediaWiki. MediaWiki was originally developed by Magnus Manske and improved by Lee Daniel Crocker. Its development has since then been coordinated by the Wikimedia Foundation.

Wikisource Wikimedia Foundation project, an online digital library of free content textual sources on a wiki

Wikisource is an online digital library of free-content textual sources on a wiki, operated by the Wikimedia Foundation. Wikisource is the name of the project as a whole and the name for each instance of that project ; multiple Wikisources make up the overall project of Wikisource. The project's aim is to host all forms of free text, in many languages, and translations. Originally conceived as an archive to store useful or important historical texts, it has expanded to become a general-content library. The project officially began on November 24, 2003 under the name Project Sourceberg, a play on the famous Project Gutenberg. The name Wikisource was adopted later that year and it received its own domain name.

DokuWiki Wiki software

DokuWiki is a wiki application licensed under GPLv2 and written in the PHP programming language. It works on plain text files and thus does not need a database. Its syntax is similar to the one used by MediaWiki. It is often recommended as a more lightweight, easier to customize alternative to MediaWiki.

Plain Old Documentation (pod) is a lightweight markup language used to document the Perl programming language as well as Perl modules and programs.

The following tables compare general and technical information for a number of wiki software packages.

XWiki Wiki engine

XWiki is a free wiki software platform written in Java with a design emphasis on extensibility. XWiki is an enterprise wiki. It includes WYSIWYG editing, OpenDocument based document import/export, semantic annotations and tagging, and advanced permissions management.

Semantic MediaWiki Software for creating, managing and sharing structured data in 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 searches, used for aggregation of pages, displayed in formats like maps, calendars and graphs, and exported to the outside world via formats like RDF and CSV.

Template processor Software designed to combine templates with a data model to produce result documents

A template processor is software designed to combine templates with a data model to produce result documents. The language that the templates are written in is known as a template language or templating language. For purposes of this article, a result document is any kind of formatted output, including documents, web pages, or source code, either in whole or in fragments. A template engine is ordinarily included as a part of a web template system or application framework, and may be used also as a preprocessor or filter.

History of wikis History of wiki collaborative platforms

The history of wikis begins in 1994, when Ward Cunningham gave the name "WikiWikiWeb" to the knowledge base, which ran on his company's website at c2.com, and the wiki software that powered it. The "wiki went public" in March 1995—the date used in anniversary celebrations of the wiki's origins. c2.com is thus the first true wiki, or a website with pages and links that can be easily edited via the browser, with a reliable version history for each page. He chose "WikiWikiWeb" as the name based on his memories of the "Wiki Wiki Shuttle" at Honolulu International Airport, and because "wiki" is the Hawaiian word for "quick".

The Sweble Wikitext parser is an open-source tool to parse the Wikitext markup language used by MediaWiki, the software behind Wikipedia. The initial development was done by Hannes Dohrn as a Ph.D. thesis project at the Open Source Research Group of professor Dirk Riehle at the University of Erlangen-Nuremberg from 2009 until 2011. The results were presented to the public for the first time at the WikiSym conference in 2011. Before that, the dissertation was inspected and approved by an independent scientific peer-review and was published at ACM Press.

The following outline is provided as an overview of and topical guide to the Perl programming language:

Yesod is a free and open-source web framework based on Haskell for productive development of type-safe, REST model based, high performance web applications, developed by Michael Snoyman et al.

Infobox Template used to collect and present a subset of information about a subject

On wikis, an infobox is a 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 represents a summary of information about the subject of an article. In this way, they are comparable to data tables in some aspects. When presented within the larger document it summarizes, an infobox is often presented in a sidebar format.

VisualEditor WYSIWYG rich-text editor MediaWiki extension

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. This MediaWiki extension was developed by the Wikimedia Foundation in partnership with Fandom. In July 2013, it was enabled by default on several of the largest Wikipedia projects.

References

  1. "Extension Matrix". MediaWiki. Retrieved 2010-05-30.
  2. "MediaWiki Extensions". Google Code. Archived from the original on 2012-07-11.
  3. "Manual:Extensions". MediaWiki. 2016-02-25. Retrieved 2016-05-04.
  4. "Extension:Configure". MediaWiki. Retrieved 2016-05-04.
  5. "Deployment". MediaWiki. Retrieved 2016-05-04.
  6. "Extension:ParserFunctions". MediaWiki. 2009-12-25. Retrieved 2010-05-30.
  7. "Wikipedia:Miscellany for deletion/Template:Qif – Wikipedia, the free encyclopedia". En.wikipedia.org. Retrieved 2010-05-30.
  8. Schindler, M; D Vrandecic (2009), Introducing new features to Wikipedia (PDF), Proceedings of WebSci[ permanent dead link ]
  9. "Category:String manipulation templates – Wikipedia, the free encyclopedia". En.wikipedia.org. 2010-05-15. Retrieved 2010-05-30.
  10. "⚓ T8455 Set $wgPFEnableStringFunctions = true on WMF wikis". Bugzilla.wikimedia.org. Retrieved 2016-05-04.
  11. "Extension:StringFunctions". MediaWiki. Retrieved 2010-05-30.
  12. "r51497 – Code Review". MediaWiki. Retrieved 2010-05-30.
  13. "Extension:Cite". MediaWiki. 2010-05-03. Retrieved 2010-05-30.
  14. Luther, Kurt; Flaschen, Matthew; Forte, Andrea; Jordan, Christopher; Bruckman, Amy (2009), ProveIt: a new tool for supporting citation in MediaWiki (PDF), ACM, archived from the original (PDF) on 2011-05-15
  15. "Category:Math extensions". MediaWiki. 2009-12-26. Retrieved 2010-05-30.
  16. Guy, Marieke (January 2007), "Wikido: Exploiting the Potential of Wikis", Ariadne (50)
  17. "Extension:CategorySuggest". MediaWiki. Retrieved 2010-05-30.
  18. "Category:Flash Video extensions". MediaWiki. Retrieved 2010-05-30.
  19. "Category:YouTube extensions". MediaWiki. 2008-09-16. Retrieved 2010-05-30.
  20. "Category:RSS extensions". MediaWiki. Retrieved 2010-05-30.
  21. "Extension:FBConnect". MediaWiki. Retrieved 2010-05-30.
  22. Dale, M; A Stern; M Deckert; W Sack, System demonstration: Metavid.org: a social website and open archive of congressional video, Proceedings of the 10th Annual International Conference on Digital Government Research: Social Networks: Making Connections between Citizens, Data and Government, pp. 309–310, ISBN   978-1-60558-535-2
  23. Espiritu, Cleo; Stroulia, Eleni; Tirapat, Tapanee (February 8, 2008), "The Viski Map Toolkit: Extending Mediawiki with Topic Maps", Enterprise Information Systems, Lecture Notes in Business Information Processing, 3, Enterprise Information Systems, pp. 420–438, doi:10.1007/978-3-540-77581-2_29, ISBN   978-3-540-77580-5, ISSN   1865-1348
  24. "Wiki spam – Meta". Meta.wikimedia.org. Retrieved 2010-05-30.
  25. Goldman, Eric, Wikipedia's Labor Squeeze and its Consequences, 8, Journal on Telecommunications and High Technology Law
  26. "Extension:ConfirmEdit". MediaWiki. 2010-05-05. Retrieved 2010-05-30.
  27. "Extension:SpamBlacklist". MediaWiki. 2010-03-24. Retrieved 2010-05-30.
  28. "Extension:Nuke". MediaWiki. 2010-05-19. Retrieved 2010-05-30.
  29. "Summer of Code 2010". MediaWiki. Retrieved 2010-05-30.
  30. Arita, Masanori & Kazuhiro Suwa (September 17, 2008), "Search extension transforms Wiki into a relational system: A case for flavonoid metabolite database", BioData Min, 1 (1), p. 7, doi:10.1186/1756-0381-1-7, PMC   2556319 , PMID   18822113
  31. Nielsen, Finn Årup (August 11, 2009), "Lost in localization: A solution with neuroinformatics 2.0?", NeuroImage, 48 (1): 11–13, CiteSeerX   10.1.1.218.8359 , doi:10.1016/j.neuroimage.2009.05.073, PMID   19497377, S2CID   11429529
  32. Ras, Eric; Jörg Rech; Sebastian Weber (1 August 2008), Collaborative Authoring of Learning Elements for Adaptive Learning Spaces (PDF), Fifth International Conference on Adaptive Hypermedia and Adaptive Web-Based Systems
  33. Emma Weeding; Jason Houle; Ben Swiniarski; Patrick Smadbeck; Kristen Lindblad; Katherine Volzing; Poonam Srivastava; Vassilios Sotiropoulos; Kostas Biliouris & Yiannis Kaznessis (2009), BBF RFC##: SynBioSS Wiki: A Repository of BioBrick Models (PDF), archived from the original (PDF) on 2011-04-30, retrieved 2010-07-22
  34. Hartung, Michael; et al. "A Platform for Collaborative Management of Semantic Grid Metadata". Intelligent distributed computing, systems and applications. p. 123.
  35. "Extension:Woogle4MediaWiki". MediaWiki. Retrieved 2010-05-30.
  36. Happel, Hans-Jörg (2009), Woogle – On Why and How to Marry Wikis with Enterprise Search (PDF)
  37. Arnold, Carrie (2009), "Dyna Table", DynaTable: a Wiki extension for structured data, p. 1, doi:10.1145/1641309.1641347, ISBN   978-1-60558-730-1, S2CID   33591909
  38. Brendan (2010), "Annoki", Annoki: A MediaWiki-based Collaboration Platform, p. 31, doi:10.1145/1809198.1809209, ISBN   978-1-60558-975-6, S2CID   16690119