Without a doubt, the most widely known wiki is Wikipedia. With more than 9 million registered users and close to 16 million pages of content at the time of this writing, those in charge of managing such a massive collaborative site needed to ensure that they relied on the best software package available. Yet, when the Wikimedia Foundation's flagship project quickly outgrew its Perl-based UseModWiki software, the Foundation turned to a PHP-based software package rewritten to include a scalable MySQL database back end. MediaWiki was born.
Although Wikipedia is currently the most famous wiki, it is rather new to the game. The first wiki was created in 1994 by Ward Cunningham as a way for programmers to exchange ideas over the Web. Taken from the Hawaiian word for fast, the name quick-web became WikiWikiWeb, and with it came a new means of collaboration.
Until 2001, wikis were relatively unknown to those outside the programming community. However, with the introduction of Wikipedia in 2001, the collaborative benefits of wikis became evident to organizations of all types and sizes. Wikis took hold because of how easy it is to create and modify pages. Using a simple markup language called wikitext, registered users need only a Web browser to be an active participant in the community.
Because wikis are so versatile, wiki software has been used in many ways to help organizations build a strong Web presence. Outside of building an entire site on a wiki software package — which is frequently done — organizations that implement wikis as part of their Web presence often do so to provide their visitors with:
- A place for collaboration
- A content library
- A knowledge-management system
Although some of the more famous wikis exist on the Internet for anyone to view, edit, and create content, not all installations exist on a public-facing server. Administrators can install the software internally to protect sensitive information from leaving the confines of an organization.
Wiki software was designed to allow for quick and easy collaboration among visitors. Although there have been many implementations of the software, this is still the No. 1 reason an organization implements a wiki. Wikis provide an ideal platform for collaboration because they are easy for non-technical people to use, allow for real-time editing, and provide a centralized repository for storing information.
Nontechnical users find wikis easy to use because there is no new software to learn. Each time a user needs to reference a wiki article, create a new article, or edit an existing piece, he does so through a browser — probably the one piece of software any computer user feels comfortable with.
Unlike other project-management or content-management tools used for collaboration, wiki users need only reference the wiki's markup language when creating or editing a document. In addition, there is no need to involve IT in the management end of the wiki. When installed and configured, anyone can monitor the wiki's content to make sure it is relevant, accurate, and acceptable.
Wikis also allow for real-time editing of content. There is no more question as to whether the document you have is the most recent version: If it exists on the wiki, it is up to date. Wikis also allow for tracking who edits a piece of content and for discussions regarding content, so not only are they accessible in real time, but they can be managed in real time. Users can easily see what content has been recently edited, making them aware of any changes that may be important to them.
Wikis make collaborating easier because they allow all content to be stored in one centralized location: the server. With a wiki solution in place, the days of someone going on vacation with the only copy of a document are minimized. As long as the content has been created on the wiki, it is stored for all users to access whenever they need to.
Since wikis were originally developed for programmers, it is no wonder that this tool has been embraced by so many in the Free/Libre/Open Source Software (FLOSS) movement as a method by which they can provide some of their most important content to users.
Visit almost any site for a FLOSS project, and chances are high that you will find the user manual, FAQs, installation guides, and a host of other content related to their software in the organization's wiki. Many companies use wikis to provide policies, user manuals, human resource documents, forms, and other content to their employees. Again, this content can be stored in one central location for employees to access as needed. With a wiki solution, companies can comply with laws and policies that require them to provide employees with certain information, and they can provide their employees with an easy-to-read online version of this information, reducing the need to print and provide hard copies of the material for each employee.
In either instance, the wiki software can be configured to restrict editing of the content so documents such as those mentioned cannot be compromised and inaccurate information passed to the reader.
Wikis vs. content-management systems
A tool commonly used for collaboration, a content-management system (CMS) allows users to upload, view, and disseminate content to others in a group or organization by uploading it to a central server or Web site. Although wikis and CMSes seem similar in what they provide, the contrasts are stark.
CMSes do allow for collaboration in the sense that users with the proper credentials can edit an existing document and the changes exist in real time. Unlike wikis, however, these changes are not as easily tracked by the group, so changes can be made with no one being informed of them.
Who can create and edit content is generally more restricted in a CMS than it would be in a wiki environment. Wikis are, by nature, designed for quick and easy content editing and creation by all users. In contrast, CMSes are generally designed to allow a few people to create and edit content for a wide audience that will not be able to make any changes.
Linking between content is another area in which wikis have a distinct advantage. With wikis,
linking between content and other wikis is relatively simple. Using the syntax of the
wiki engine, a web of content can be created so that visitors can navigate to similar
content with ease. With CMSes, links between content are not as simple to create for
users. Those with knowledge of HTML will find creating anchors easy to do in a CMS,
but the average user would find it far simpler to simply insert the title of a content
piece between two brackets, as they would in MediaWiki's syntax
([MediaWiki article]).
Although both tools are powerful means of providing information to people, the decision to use one or the other rests on who will be able to access the content for editing and who will manage the content. As stated, wikis allow for nontechnical users to manage and access content with a great deal of ease, whereas a CMS generally requires a greater depth of technical knowledge to manage.
After determining that a wiki solution is right for your organization, the next step is choosing a wiki that will work for you. At the time of this writing, more than 100 wiki engines were available for review at WikiMatrix. Out of so many available software packages, it can be difficult to determine which one is best. However, MediaWiki has proven itself the best of the open source wiki engines. Being voted the best wiki tool by Internet Journal is one accolade that supports this, but greater still is the fact that not only is MediaWiki the choice engine for such companies as Intel® and Novell but also the software that powers the world's largest wiki: Wikipedia.
MediaWiki shares some important features with other wiki engines, so the list provided in Table 1 does not represent features unique to MediaWiki. Additionally, this feature list is by no means a comprehensive list of what MediaWiki has to offer. Instead, it covers some of the most important features you may require when implementing a wiki solution.
Table 1. Some of MediaWiki's features
| Feature | Description |
|---|---|
| Database driven | Rather than storing data in text files, MediaWiki uses MySQL or PostgreSQL. This allows all revisions of the article to be stored. |
| Multi-language support | Currently, MediaWiki supports 140 languages. |
| Scalability | The largest implementation of MediaWiki — Wikipedia — has more than 1 million articles. |
| Section editing | Users can edit article sections rather than having to load the entire article. |
| RSS | Users can track changes to specific content through RSS feeds. |
| Special report pages | Users can locate site statistics, lists of users, newly created articles, all pages by title, most wanted articles, popular articles, and many other reports that help them navigate through content. |
| Discussion lists | Users can follow and participate in discussions related to the content of an article through talk pages. |
| Side-by-side diffs | Users can compare edits shown side by side with changes highlighted. |
MediaWiki is written in PHP, and although MySQL receives a majority of the testing (because Wikipedia uses this database), there is support for PostgreSQL, Ingres, and SQLite, as well. According to the MediaWiki guide for hackers, the code base is "large and ugly." Most of the data is stored in the database, but some files — such as media files that users upload — are stored in the local file system. The software's architecture is as follows:
- User layer — Web browser
- Network layer — Squid | Web server
- Logic layer — MediaWiki PHP Scripts | PHP
- Data layer — File system | Database | Caching system
To install MediaWiki, you need:
- PHP
- A database server
- A Web server
Obviously, PHP is required to run the software, and the database stores the content and user details. Although Apache is the recommended Web server, you could use Microsoft® Internet Information Services (IIS), instead. Sun Java™ System Web Server is also compatible with MediaWiki, but it requires special installation instructions.
The minimum hardware required for a server to run a MediaWiki site is 256 MB of RAM and 40 MB of storage. These values represent the bare-minimum requirements because any site that has a significant amount of traffic will find them inadequate.
MediaWiki is not without strong competition from other open source wiki engines. TikiWiki, DocuWiki, PmWiki, and others all compare extremely well with MediaWiki. Many share similar features that make wikis what they are. There are some distinct differences among the top wikis, however, where MediaWiki demonstrates a solid edge.
Not all wiki engines use a database. Both DokuWiki and PmWiki store information in text files. Although text files take up less disk space, databases provide greater data security, easier access to the data, and better scalability for a large number of users. PmWiki does provide support for MySQL, but only through a plug-in.
Any FLOSS project is only as good as its community. Although bigger doesn't always mean better, it helps to have many resources from which to pull. Because of MediaWiki's popularity, it boasts an active IRC support channel on freenode — #mediawiki — as well as multiple forums on which users interchange ideas and questions. Considering that MediaWiki supports three times as many languages as its nearest competitor (140 compared to 46 provided by DokuWiki), it is evident that contributors from all over the world are working on this project.
For those who prefer commercial support for FLOSS projects, more than 33 companies will provide paid support for MediaWiki, compared to six for PmWiki, nine for TikiWiki, and 17 for DokuWiki.
Bringing the power of the semantic Web to a wiki engine allows for semantic annotations of content, making it computer-processable so that the text can be understood by computers searching for information and complex relationships therein.
To make MediaWiki even more powerful for users, a free extension named Semantic MediaWiki (SMW) was developed to help "search, organize, tag, browse, evaluate, and share the wiki's content."
Just because someone else is doing it doesn't always mean its best. However, when looking at the list of companies and organizations that employ MediaWiki as their wiki engine, one can't help but be a bit impressed.
Of course, there is Wikipedia and all the other sites run by the WikiMedia foundation, yet the references don't stop there. Large companies like Pfizer, Siemens AGSI, NVIDIA, and End Point use MediaWiki for internal and public-facing projects. Smaller companies also make use of this wiki engine to provide documentation, customer support, and other information to customers and employees. Even the U.S. Government has jumped on the MediaWiki bandwagon with Diplopedia, the official wiki of the U.S. Department of State, which provides information to its 57,000 employees.
With such a large and impressive user base working with the development community, organizations looking to implement a wiki solution can feel confident that MediaWiki can handle their expectations.
As stated earlier, MediaWiki has functioned as more than a collaboration tool for many organizations. In fact, it has been implemented as an all-round Web tool for many. The organizations mentioned below use of MediaWiki in situations other than what one might expect from a wiki.
The OpenNMS Group provides a perfect example of an all-round MediaWiki solution. Right from the beginning, visitors are exposed to MediaWiki, as it serves as the development platform for the home page. The OpenNMS Group makes further use of MediaWiki to provide users with product documentation, collaboration through discussion lists and development pages, and a knowledge-management category titled newbies.
Moodle may reign as the king of course development on the Web, but ECGpedia shows how versatile MediaWiki can be with its online course/textbook, teaching medical professionals about electrocardiography.
To provide support, documentation, and a community portal for its Harpoon naval-simulation series, AGSI built this wiki with the intention of turning it into the primary source of information and support for the Harpoon community.
None of this is to say that MediaWiki is a panacea. Wikis in general are not a solution for every need. There are times when a CMS provides a better route for an organization's needs. Even if a wiki is the route taken, MediaWiki's lack of support for ACLs may be too much of an issue for some to handle. However, the limitations that MediaWiki has for some are the exact characteristics that have made it so popular with others.
Learn
-
See MediaWiki in action at The OpenNMS Group,
ECGpedia, and
AGSI.
-
Compare wiki engines at WikiMatrix.
-
To listen to interesting interviews and discussions for software developers, check out developerWorks podcasts.
-
Stay current with developerWorks' Technical events and webcasts.
-
Follow developerWorks on Twitter.
-
Check out upcoming conferences, trade shows, webcasts, and other Events around the world that are of interest to IBM open source developers.
-
Visit the developerWorks Open source zone for extensive how-to information, tools, and project updates to help you develop with open source technologies and use them with IBM's products.
-
Watch and learn about IBM and open source technologies and product functions with the no-cost developerWorks On demand demos.
Get products and technologies
-
Innovate your next open source development project with IBM trial software, available for download or on DVD.
- Download
IBM product evaluation versions
or explore
the online trials in the IBM SOA Sandbox and get your hands on application development tools and middleware products from
DB2®, Lotus®, Rational®, Tivoli®, and WebSphere®.
Discuss
-
Participate in developerWorks blogs and get involved in the developerWorks community.
Jeff Orloff is a technology coordinator with the School District of Palm Beach County. He also works as a consultant for Sequoia Media Services Inc., specializing in companies that are implementing social media into their businesses for collaboration and information-sharing. He is currently writing a book titled MediaWiki: A Beginner's Guide for Packt Publishing.
Comments (Undergoing maintenance)





