Last time, I talked about semantic blogging and how the blogging experience can be augmented by adding structure and metadata about the things you’re blogging about. Today, I’m going to talk about wikis and how they too can benefit from such structure.
Firstly, some history. Many people are familiar with the Wikipedia, but less know exactly what a wiki is. In short, a wiki is an “information space” (web or desktop application) that allows users to easily add and edit content, and is especially suited for collaborative writing. Wikis rely on cooperation, on checks and balances of the wiki site members, and a belief in the sharing of ideas. The name comes from a Hawaiian phrase, “wiki wiki”, which means to hasten or go quickly. Ward Cunningham, who now works for Microsoft, created the first wiki in 1995, and I had the pleasure of meeting both Ward and Jimmy Wales (who set up the Wikipedia in 2001) at the first Wikimedia conference. Apart from the Wikipedia, wikis are being used for free dictionaries, book repositories, event organisation, and software development. They have become increasingly used in enterprise environments for collaborative purposes: research projects, papers and proposals, coordinating meetings, etc. Ross Mayfield’s SocialText produced the first commercial open source wiki solution, and many companies now use wikis as one of their main intranet collaboration tools.
There are a plethora (hundreds) of wiki software systems now available, ranging from MediaWiki, the software used on the Wikimedia family of sites, and Eugene Eric Kim’s PurpleWiki, where fine grained elements on a wiki page are referenced by purple numbers, to Alex Schröder’s OddMuse, a single Perl script wiki install, and WikidPad, a desktop-based wiki for managing personal information. Many are open source, free, and will often run on multiple operating systems. The differences between wikis are usually quite small but can include the development language used (Java, PHP, Python, Perl, Ruby, etc.), the database required (MySQL, flat files, etc.), whether attachment file uploading is allowed or not, spam prevention mechanisms, page access controls, RSS feeds, etc.
The Wikipedia project consists of 250 different wikis, corresponding to a variety of languages. The English-language one is currently the biggest, with over 1.5 million pages, but there are wikis in languages ranging from Irish to Arabic to Chinese (and even in constructed languages such as Esperanto and Klingon!). A typical wiki page will have two buttons of interest: “Edit” and “History”. Normally, anyone can edit an existing wiki article, and if the article does not exist on a particular topic, you can create it. If someone messes up an article (either deliberately or erroneously), there is a revision history so that you can fix or revert the contents. There is a certain amount of ego-related motivation in contributing to a wiki – people like to show that they know things, to fix mistakes and fill in gaps in underdeveloped articles (stubs), and to have a permanent record of what they have contributed via their registered account. By providing a template structure to input facts about certain things (towns, people, etc.), wikis also facilitate this user drive to populate wikis with information.
For some time on the Wikipedia and in other wikis, templates have been used to provide a consistent look to the content placed within article texts. They can also be used to provide a structure for entering data, so that it is easy to extract metadata about the topic of an article (e.g. from a template field called “population” in an article about Galway). Semantic wikis bring this to the next level by allowing users to create semantic annotations anywhere within a wiki article text for the purposes of structured access and finer-grained searches, inline querying, and external information reuse. There are already about 20 semantic wikis in existence, and one of the largest ones is Semantic MediaWiki, based on the popular MediaWiki system.
Let’s take some examples of providing structured access to information in wikis. At the moment, there may be a page about John Grisham that has a link to the Pelican Brief (and to other books that he has written), to Mississippi because he lives there, and to Random House, his publisher (thanks to Eyal for this example). But, you cannot perform fine-grained searches on the Wikipedia dataset such as “show me all the books written by John Grisham”, or “show me all authors that live in the US”, or “what authors are signed to Random House”, because the type of links (i.e. the relationship type) between wiki pages are not defined. In Semantic MediaWiki, you can do this by linking with [[author of::Pelican Brief]] rather than just [[Pelican Brief]]. There may also be some attribute such as [[birthdate:=1955-02-08]] which is defined in the John Grisham article. Such attributes could be used for answering questions like “show me authors over 50” or for sorting articles.
Some semantic wikis also provide what is called inline querying. The screenshot on the right (from another system called SemperWiki) gives an example of this. The text in red (which says find me all pages where the creator is Eyal Oren) is processed as a query when the page is viewed and the results are shown at the bottom. Other wikis will process the query and show the results as part of the article text itself. [The green text here defines some relationships and attributes, and for each of these, articles with matching properties are shown on the right-hand side.]
Finally, just as in the semantic blogging scenario, wikis can enable the Web to be used as a clipboard, by allowing readers to drag structured information from wiki pages into other applications (for example, geographic data about locations on a wiki page could be used to annotate information on an event or a person in your calendar application or address book software respectively).
My next (and final) guest blog post will be on social network services and connecting them all together. See you then!