A wiki system is usually a web application that runs on one or moreweb servers. The content, including all current and 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. There are currently dozens of actively maintained wiki engines, in a variety of programming languages, including both open source and proprietary applications. These vary widely in their platform support, their support for natural language characters and conventions, and in their assumptions about technical versus social control of editing.
The first generally-recognized ‘wiki’ application, WikiWikiWeb, was created by American computer programmer Ward Cunningham in 1994 and launched on c2.com in 1995. “WikiWikiWeb” was also the name of the wiki that ran on the software, and in the first years of wikis’ existence there was no great distinction made between the contents of wikis and the software they ran on, possibly because almost every wiki ran on its own customized software. The WikiWikiWeb software was later renamed “WikiBase”.
Wiki software originated from older version control systems used for documentation and software in the 1980s. By the mid-1990s these generally had web browser interfaces. However they lacked the ability to easily create links between internal pages without writing HTML code. A page naming convention to simplify this, CamelCase, originated by Ward Cunningham in 1995, indicated the intent to create an internal link later, and required no HTML coding.
By the time MediaWiki appeared, this convention had been largely abandoned in favor of explicitly marking links in edited source code with double square brackets. Page names thus did not interrupt the flow of English and could follow standard English capitalization convention. Case-sensitivity on the first letter but not subsequent letters supported standard English capitalization conventions and let writers author their pages in ordinary English, with the linking of particular words and phrases afterward. This proved to be the critical change that allowed ordinary authors of English to write wiki pages, and non-technical users to read them. This policy was extended to other natural languages, avoiding the use of unusual-looking text or awkward capitalization that violates the language’s own rules.
Over the next 10 years, many more wiki applications were written, in a variety of programming languages. After 2005, there began to be a move toward increasing consolidation and standardization: many less-popular wiki applications were gradually abandoned, and fewer new applications were created. Relatively few of the wiki engines currently in use were created after 2006.
Wiki functionality has also been added to existing content management systems, such as Microsoft SharePoint.
In general new wiki engines have not followed the data formats of the existing engines, making them of limited use for those who have already invested in large knowledge bases in existing software. As a rule newer wiki projects have not succeeded in attracting large numbers of users from the existing wiki software base.
Only one data format has ever been implemented in more than one wiki, that being MediaWiki’s:
- WordPress has extensions to display and edit MediaWiki-format pages, and to frame MediaWiki.
- Jamwiki is a MediaWiki clone in Java, that supports MediaWiki-format pages but not extensions.
- other commercial projects or clones often (or have in the past) follow the MediaWiki format. BlueSpice for MediaWiki is the only such software with a free version available.
None of these alternatives support the extensions available under standard MediaWiki, some of which extend or alter its data format.
Types of usage
There are essentially three types of usage for wiki software: public-facing wikis with a potentially large community of readers and editors, private enterprise wikis for data management by corporations and other organizations, and personal wikis, meant to be used by a single person to manage notes, and usually run on a desktop. Some wiki software is specifically geared for one of the usage types, while other software can be used for all three, but contains functionality, either in its core or through plugins, that help with one or more of the usage types.
Public wikis are wikis that can be read by anyone; usually (though not always), the contents can be edited by anyone as well, though sometimes registration is required. Among public wikis, MediaWiki is the dominant software: it powers the world’s most popular public wiki,Wikipedia, as well as the most popular wiki farm, Wikia, and it is the most popular software in use on other public wikis as well. Other wiki engines used regularly for public wikis include MoinMoin and PmWiki, along with many others.
Enterprise wiki software is software meant to be used in a corporate (or organizational) context, especially to enhance internal knowledge sharing. It tends to have a greater emphasis on features like access control, integration with other software, and document management. Most proprietary wiki applications specifically market themselves as enterprise solutions, including Confluence, eXo Platform, Socialtext, Jive, SamePage, and Traction TeamPage. In addition, some open source wiki applications also describe themselves as enterprise solutions, including XWiki, which is also an application wiki, Foswiki, which calls itself “the free and open source enterprise collaboration platform”, and TWiki, which calls itself “the Open Source Enterprise Wiki”. Some open-source wiki applications, though they do not specifically bill themselves as enterprise solutions, have marketing materials geared for enterprise users, like Tiki Wiki CMS Groupware and MediaWiki. Many other wiki applications have also been used within enterprises.
Among the many companies and government organizations that use wikis internally are Adobe Systems, Amazon.com, Intel, Microsoft, and the United States intelligence community.
Within organizations, wikis may either add to or replace centrally managed content management systems. Their decentralized nature allows them, in principle, to disseminate needed information across an organization more rapidly and more cheaply than a centrally controlled knowledge repository. Wikis can also be used for document management, project management, customer relationship management, enterprise resource planning, and many other kinds of data management.
Features of wikis specifically helpful to a corporation include:
- Allows entering information, via quick-and-easy-to-create pages, containing links to other corporate information systems like people directories, CMS, applications, and thus to facilitate the build up of knowledge bases.
- Avoids e-mail overload. Wikis allow all relevant information to be shared by people working on a given project. Conversely, only the wiki users interested in a given project need look at its associated wiki pages, in contrast to high-traffic mailing lists which may burden subscribers with many messages, regardless of their relevance. It is also very useful for the project manager to have all the communication stored in one place, which allows them to link the responsibility for every action taken to a particular team member.
- Organizes information. Wikis allow users to structure new and existing information. Like editable content, the structure of data is sometimes also editable by users.
- Builds consensus. Wikis allows structuring the expression of views, on a topic being considered by authors, on the same page. This feature is very useful when writing documentation, preparing presentations, when author opinions differ, and so on.
- Access levels by rights and roles. Users can be denied access to view and/or edit given pages, depending upon their department or role within the organization.
- Knowledge management with comprehensive searches. This includes document and project management, as well as using a wiki as a knowledge repository useful during times of employee turnover, retirement and so on.
Software that is specifically designed for running personal wikis includes NotePub, Pimki and Tomboy. Other, more general, wiki applications have components geared for individual users, including MoinMoin, which offers a “DesktopEdition”.
Most wiki software uses a special syntax, known as wiki markup, for users to format the text, instead of requiring them to enter in HTML. Some wiki applications also include a WYSIWYG editor, either instead of or in addition to the wiki markup editing.
There are a variety of wiki hosting services, otherwise known as wiki farms, that host users’ wikis on a server. Some wiki software is only available in hosted form: PBworks, Wetpaint and Wikispaces are all examples of wiki hosting services that run on code that is only available on those sites. Other wiki software is available in both hosted and downloadable form, including Confluence, Socialtext, MediaWiki (available on Wikia and EditThis.info, among other sites) and XWiki (see also XWiki Cloud).
Wiki software can include features that come with traditional content management systems, such as calendars, to-do lists, blogs and discussion forums. All of these can either be stored via versioned wiki pages, or simply be a separate piece of functionality. Software that supports blogs with wiki-style editing and versioning is sometimes known as “bliki” software.
Tiki Wiki CMS Groupware is an example of wiki software that is designed to support such features at its core. Many of the enterprise wiki applications, such as TWiki, Confluence and SharePoint, also support such features, as do open-source applications like MediaWiki and XWiki, via plugins.
Some wiki applications let users embed scripting-style calls into wiki pages, which are processed by the wiki’s parser and run either when the page is saved or when it is displayed. XWiki and MediaWiki are examples of such an application.
Specifically XWiki offers support for the following scripting languages: Groovy, Velocity, Ruby, Python, PHP or more generally any JSR223 scripting language.
Wiki software can let users store data via the wiki, in a way that can be exported via the Semantic Web, or queried internally within the wiki. A wiki that allows such annotation is known as a semantic wiki. The current best-known semantic wiki software is Semantic MediaWiki, a plugin toMediaWiki.
Some wiki software have special handling for accessing by mobile devices, such as mobile phones. This is usually done by displaying conservative HTML coding.
Offline viewing and editing
Various approaches to providing wiki functionality when the user is not online have been tried. For users who need to simply read the wiki’s content when offline, a copy of the content can often be made easily; in the case of Wikipedia, CD-ROMs and printed versions have been made of parts of Wikipedia’s content.
Allowing offline editing, however (where the changes are synchronized when the user is back online), is a much more difficult process. One approach to doing this is using a distributed revision control system as a backend of the wiki, in peer-to-peer style. With this approach, there is no central store of the wiki’s content; instead, every user keeps a complete copy of the wiki locally, and the software handles merging and propagating of changes when they are made. This is the approach taken by the ikiwiki engine (which can use the distributed revision control system Git as its back-end), and Code Co-op (a distributed revision control system that includes a wiki component).