Behind the curtain
From Oberon
Contents |
Building a collaborative site with a Wiki
Welcome to Oberon's "behind the curtain" page.
Haviva Avirom has asked the Instructional Technology support team for this wiki to explain how we built this wiki, so all those in the theater community who are interested in using a wiki for collaborative production design can find out how we did it.
On this page is general information on how to build a wiki for a project like this, or any project needing a platform for collaborative editing. If you have any questions on the technical details, feel free to contact me, Randy Thornton, at rwthornton@ups.edu.
As always in technology, the most important part of this project is not the technology, but the people. In practice, you will need to have a system administrator with some knowledge of web servers and how they work. In addition, wiki projects will be more successful if you do two things first before installing anything:
- First, you must be absolutely clear what your goal is for constructing a wiki: wikis have strengths and weaknesses like all software, and so are appropriate or not appropriate depending on what you need to get done. Appreciating "the wiki way" will help you to decide if your project could benefit from one. On the other hand, don't be afraid to experiment: wikis encourage that.
- It is also imperative to know how you are going to edit together: wikis are not like web pages, they are collaborative by nature. Group editing can be a difficult process and a successful wiki depends on open interpersonal dynamics and constant communication. Perhaps a wiki can help you achieve that where a traditional project approach has not.
The Wiki Way
Wikis are the way the web was at its birth. When Tim Berners-Lee built the first web, anyone could view and edit all the pages.
This is what a wiki essentially is: a web site that can be edited in place as you view it.
In practice, the wiki way is about building on-line knowledge-bases by a community of contributors. Wikis work best where the goal is the accumulation of knowledge about a discrete subject(s) over time, and where the contributions are collaborative in nature. Wikis emphasize the ongoing process of knowledge accumulation. It is common on wiki sites to see "wanted" pages -- rough drafts of these needed to be filled in, or "stubs" -- pages that are links with just titles; both indicating areas of content to be filled in.
Wikis are not well designed for projects where the attributions and authorship of invididual contributors is paramount (as in traditional publishing), or where the goal is the presentation of perfected final product that does not need feedback (as in the traditional web site). Other tools are better suited for that, such as blogs, or static HTML web sites.
Wiki Types
There are three main types of wikis:
- The Open wiki -- those that can edited and viewed by anyone. One of the most important aspects of a Open wiki is the wiki community: the group of editors and contributors who actively participate in and provide a community of support and governance for the wiki.
- The Project wiki -- those that can be viewed by anyone, but edited only by a group of designated editors who ensure the consistency of the content. This is appropriate for wikis that have content that is highly specialized or specific, but which could benefit from public viewing and feedback.
- The Closed wiki -- those that are private to a known group of people, such as in a company or school, where the content is only to be seen by a specific group. A wiki can be the best choice for a group working together but separated by time and /or space.
Resources about Wikis
You can find out more about wikis and the development of wikis in the last decade at the paradigm of open wikis, Wikipedia.
Traditionally, wikis are Open Source software and can be built and used by anyone for free. Due to the success of open source wikis (cf. this list), online commercial wikis such as Confluence and Jotspot have sprung up in the last year or two.
How Wikis Work
Wikis need four things to work, three of them software. Different wikis may use different specfic software, but they all must have these three:
- A web server -- Wikis present their face to the world as web pages, so the only software needed by a user of a wiki is a browser, but the wiki software must be running on a web server. The most common web server software on the web is Apache.
- A database -- all the information in a wiki is stored in a database, not in separate HTML pages as traditional web sites do. The means you do not have to know about or worry about HTML codes, styles, or other formatting details. You can concentrate on the content of your site. But it does mean that you, or someone, will have to take care of that database. In practice almost all wiki software uses a SQL database, with MySQL being the most common.
- The wiki software -- the application which actually runs the wiki. Just like other applications, word processors for example, there are many different "brands" of wiki software, which work basically the same way, but have different details. Which wiki software is right for you, depends on the nature of your project: the goal, the type of content, the contributors. The software of this wiki is Mediawiki, which is the same software that is used to run Wikipedia and many other wiki sites. Wikis are of course written in a computer language of some sort, with PHP being most popular, but you do not need to know that language to successfully use a wiki, anymore than you need to know how to program to use a word processor.
And, of course, the human element: - A team of Administrators and Editors -- Every wiki needs both Administrators and Editors. Administrators are responsible for system administration tasks such as managing the web server, taking care of the database, and configuring the wiki application software. Editors fulfill a function similar to that in print enterprises: ensuring the integrity and suitability of the contents submitted by contributors. In some cases, as in a Project wiki, contributors and editors may be the same people. But in large wikis and open wikis, Editors mainly perform editorial tasks such as organizing articles, enforcing content guidelines, etc.
How We Built This Site
The software used on this site is Mediawiki. It is free, open source software, designed originally for use to run Wikipedia, but now in use on thousands of wikis on the web. Mediawiki is written in PHP, so it requires a web server that supports using PHP as a scripting language. Mediawiki is written to support several databases, but MySQL is the preferred database platform.
We chose Mediawiki for this site because it was already in use on the other wikis we have at the University of Puget Sound. It was chosen originally because so many students are already familiar with Wikpedia and know how to use it; and because it has the best support: the Wikipedia community of is large and knowledgeable and has worked through (often in public) the administrative and security issues for managing a wiki.
Building the web server
If you work in an environment that already has a web server platform running that supports your wiki software, use it.
If you have a Linux / Unix based server already running Apache as a web server, it will be very easy to set up a wiki. If you have a Windows server based web server with IIS running on it, you will need to install and configure both PHP scripting support and also a MySQL engine that runs on Windows. For running Mediawiki on a Windows server with IIS, see here.
This wiki server, Oberon, is a regular PC running Red Hat Linux as its operating system, which is our standard for Linux servers on campus. It is dedicated only to this one wiki.
The XAMPP Package
Next, we use the XAMPP package to install and configure the Apache web server, the MySQL database, and the PHP scripting support. Each of these can be found and installed separately, for those who are web server experts, but we have found the XAMPP package made by Apache Friends to be easy to install and configure, and contains all the basics we need. It ensures that we have the latest version of the various pieces and that they are compatible both with one another, and also with the wiki software we want.
A Pitfall
Watch out for versionitis, a disease endemic in the Linux world. Versionitis is our pet name for having to get all the exact version of software just right in order to get everthing to work together.
Wiki software will include the required version numbers of its components. Typically, a wiki will run on Apache version 1.3 or 2.x, but will sometimes only run on a certain minimum version of PHP and or certain versions of MySQL. Be sure to check this when choosing and planning a wiki install. One of the reasons we use XAMPP is because, since it is a package, the version conflict issue has already been solved by them, and we know we are getting a package where all the components will work together.
Installing the Mediawiki software
After installing XAMPP, which gives us a web server, database and support for PHP language on the web server, we simply install the Media wiki software according to the directions on the site. A detailed installation routine for Mediawiki is at: http://meta.wikimedia.org/wiki/Help:Installation and is somewhat clear. Most of the confusion is about getting and installing the right versions of the various required parts - Apache, MySQL and PHP, before even starting the wiki. If you used XAMPP, you can skip all the discussions about versions and just go right to the install Mediawiki part.
The most important thing to know about the install is that it creates the LocalSettings.php file, which contains all your settings for the wiki. Follow the instructions about this exactly, and when done, save a copy of this file somewhere safe.
A great deal of help is available on the Mediawiki wiki. Start at the FAQ page for any questions. Mediawiki has a large community of users, so as you are using the software, you will find it a source of community information and support.
Configuring the Wiki
Once the wiki is running, you will need to configure the permissions for the wiki. Oberon is a project style wiki -- it is open to the web for all the view, but only a small group are editors. By default, Mediawiki is open to any and all to edit. So all editing restrictions must be added in. Details can be found here on this topic; the following sections are how we set up Oberon for this project.
Editor Permissions
- 1. To do this, first you need to set up the wiki LocalSettings.php configuration file to disallow public editing, and to allow a special group login and editing rights. Here is the snippet of our LocalSettings.php file to show how Oberon is set to allow public viewing but only a special group to edit:
$wgGroupPermissions ['editor'] ['edit'] = true; $wgGroupPermissions ['editor'] ['move'] = true; $wgGroupPermissions ['editor'] ['upload'] = true; $wgGroupPermissions ['*'] ['edit'] = false; $wgGroupPermissions ['*'] ['createaccount'] = false;
The first three say that only a special group named "editor" has the right to edit pages, move pages, and to upload attachments. The second group of lines denies the rights to edit and create an account to the public ("*"). This implies the public can view the whole wiki, since we have not denied the 'read' right to them.
- 2. After you set these in the LocalSettings.php file, log in to the wiki as the system operator account and on the Special Pages menu, use Create an account to create accounts for all the editors, and then use the User rights management section to create a group called "editor" and add all those people to that group.
That is basically it. You will find variations and more information on the Media wiki page about Preventing Access. You now have a wiki viewable by all, but with a limited group of editors who must log in to the wiki to edit it.
Enabling Uploads
If you are using images or audio/video content, there are settings you will have to change. See here for details for setting uploads are on Mediawikis. This works well for small images on the wiki, but often for audio or video content, it may be much more convenient to put them on a conventional web server and them to link to the file from the wiki.
Wiki Security
If you want to open your wiki to the web, then there are some security precautions to take. Information about this can be found on the Mediawiki site at Security. Also, you should set a robots.txt file to control how large Internet search engines will search and index your site. See more at Mediawiki and also the Wikipedia article about robots.
Our Customizations
We have made several customizations to Oberon at the request of the editors who are using it. This is an example of one of the most important aspects of Open Source: it is possible to extend the application and add your own custom functionality to it.
Specifically, we have made two adding the special glossary function, and also adding a button to the editing box to simplify the process of making strikeout in the edited text.
Glossary Tag
The glossary tag is special extension function we wrote to create the glosses. See here for the details on how to install and use it.
Strikeout Button
We have added a strike tag button to the edit bar at the top of every edit page. The strikeout tag is already a part of the wiki markup, this customization adds a button to the editor box to make this easy to use, so you don't have to type the code everytime. See here for details on how to do this.
Generic Editing Page
This is a page used for training sessions on how to use the wiki markup, showing examples of how to do basic design and content addition.
