MediaWiki extension
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.
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]
Academic and encyclopedia-related data display
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
![](../I/AcaWiki_Semantic_Forms_screenshot.png.webp)
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]
References
- "Extension Matrix". MediaWiki. Retrieved 2010-05-30.
- MediaWiki Extensions Archived 2012-07-11 at Archive.today, Google Code
- "Manual:Extensions". MediaWiki. 2016-02-25. Retrieved 2016-05-04.
- "Extension:Configure". MediaWiki. Retrieved 2016-05-04.
- "Deployment". MediaWiki. Retrieved 2016-05-04.
- "Extension:ParserFunctions". MediaWiki. 2009-12-25. Retrieved 2010-05-30.
- "Wikipedia:Miscellany for deletion/Template:Qif – Wikipedia, the free encyclopedia". En.wikipedia.org. Retrieved 2010-05-30.
- M Schindler; D Vrandecic (2009), Introducing new features to Wikipedia (PDF), Proceedings of WebSci
- "Category:String manipulation templates – Wikipedia, the free encyclopedia". En.wikipedia.org. 2010-05-15. Retrieved 2010-05-30.
- "⚓ T8455 Set $wgPFEnableStringFunctions = true on WMF wikis". Bugzilla.wikimedia.org. Retrieved 2016-05-04.
- "Extension:StringFunctions". MediaWiki. Retrieved 2010-05-30.
- "r51497 – Code Review". MediaWiki. Retrieved 2010-05-30.
- "Extension:Cite". MediaWiki. 2010-05-03. Retrieved 2010-05-30.
- 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
- "Category:Math extensions". MediaWiki. 2009-12-26. Retrieved 2010-05-30.
- Marieke Guy (January 2007), "Wikido: Exploiting the Potential of Wikis", Ariadne, Ariadne (50)
- "Extension:CategorySuggest". MediaWiki. Retrieved 2010-05-30.
- "Category:Flash Video extensions". MediaWiki. Retrieved 2010-05-30.
- "Category:YouTube extensions". MediaWiki. 2008-09-16. Retrieved 2010-05-30.
- "Category:RSS extensions". MediaWiki. Retrieved 2010-05-30.
- "Extension:FBConnect". MediaWiki. Retrieved 2010-05-30.
- M Dale; 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
- Espiritu, Cleo; Stroulia, Eleni; Tirapat, Tapanee (February 8, 2008), "Lecture Notes in Business Information Processing", Lecture Notes in Business Information Processing, Enterprise Information Systems, 3: 420–438, doi:10.1007/978-3-540-77581-2_29, ISBN 978-3-540-77580-5, ISSN 1865-1348
- "Wiki spam – Meta". Meta.wikimedia.org. Retrieved 2010-05-30.
- Goldman, Eric, Wikipedia's Labor Squeeze and its Consequences, 8, Journal on Telecommunications and High Technology Law
- "Extension:ConfirmEdit". MediaWiki. 2010-05-05. Retrieved 2010-05-30.
- "Extension:SpamBlacklist". MediaWiki. 2010-03-24. Retrieved 2010-05-30.
- "Extension:Nuke". MediaWiki. 2010-05-19. Retrieved 2010-05-30.
- "Summer of Code 2010". MediaWiki. Retrieved 2010-05-30.
- Masanori Arita & Kazuhiro Suwa (September 17, 2008), "Search extension transforms Wiki into a relational system: A case for flavonoid metabolite database", BioData Min, 1 (1): 7, doi:10.1186/1756-0381-1-7, PMC 2556319, PMID 18822113
- Finn Årup Nielsen (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
- Eric Ras; 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
- 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
- Hartung, Michael; et al. "A Platform for Collaborative Management of Semantic Grid Metadata". Intelligent distributed computing, systems and applications. p. 123.
- "Extension:Woogle4MediaWiki". MediaWiki. Retrieved 2010-05-30.
- Hans-Jörg Happel (2009), Woogle – On Why and How to Marry Wikis with Enterprise Search (PDF)
- 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
- Tansey, Brendan (2010), "Annoki", Annoki: A MediaWiki-based Collaboration Platform, p. 31, doi:10.1145/1809198.1809209, ISBN 978-1-60558-975-6