Wikis are collaborative hypertext authoring environments that allow users to create and edit pages using a Web browser. Wikis have achieved wide-spread popularity in recent years but there are two important limitations with current Wiki technologies.
Wikis do not support structured access, since Wikis provide no means for navigating related information, except if explicitly added by users and no means for structured information retrieval by querying; and Wikis do not support information reuse since information is only represented in natural language, it can not be automatically reused. For example, translations of pages have to be maintained manually, and database-like views of the information are not possible
Adding semantics to Wikis, through metadata annotations in addition to the natural language content, addresses these limitations.
A Semantic Wiki allows users to make formal descriptions of resources by annotating the pages that represent those resources. Where a regular Wiki enables users to describe resources in natural language, a Semantic Wiki enables users to additionally describe resources in a formal language. The authoring effort is relatively low: the semantic annotations are very similar to the layout or structural directives that are already in widespread use in ordinary Wikis.
Using the formal annotations of resources, Semantic Wikis offer additional features over regular Wikis. Users can query the annotations directly (``show me all authors'') or create views from such queries. Also users can navigate the Wiki using the annotated relations (``go to other books by John Grisham''), and users can introduce background knowledge to the system (``all poets are authors; show me all authors'').
A Semantic Wiki consists (at least) of the following components: a user interface, a parser, a data analyser, and a data store, as shown in figure 1. Users can browse, edit, and query pages via the user interface. When users edit a page, the user interface notifies the parser. The parser analyses the text, and extracts annotations and links. All data (text, annotations, etc.) are stored in the semantic storage. From the data in the storage, the analyser computes sets of pages that are related to the current page, which are displayed by the user interface. Queries are posed to the storage, and the results are displayed by the user interface.
For the user of a Semantic Wiki, the most visible change compared to conventional Wikis is the modified annotation language. In Semantic Wikis the annotation language is used to describe not only text style and links, but also to annotate Wiki pages and to embed queries into pages. Our annotation language allows reuse and extension of existing Semantic Web terminologies to connect annotations with other knowledge on the Semantic Web. All annotations result in valid and reusable RDF. Figure 2 shows an example page with annotations describing John Grisham as an author with Random House.
Using the annotated metadata, a Semantic Wiki can offer improved access to information through structured navigation. We have developed a form of faceted meta-data browsing that offers such structured navigation, partly shown in figure 3: knowing that Armin Haller is a person, we show links to all other people in the system.
The structured data can be queried using full-text search, embedded queries, and structured queries. Full-text search allows keyword search over content; structured queries allow querying the structured metadata (e.g. ``show me all authors''); and embedded queries are structured queries that are embedded in a page and create (database-like) views when the page is visited (e.g. the page in figure 2 shows an embedded query that retrieves all the books written by John Grisham).
SEMPERWIKI1, shown in figure 3, is our prototype implementation of a Semantic Wiki. It was first developed as a desktop application, following the previously-discussed architecture [2]; it was recently ported to the web with little effort, fully preserving the described architecture.
SEMPERWIKI is implemented as a Ruby on Rails2 web application, using the ActiveRDF3 RDF to Ruby mapping library, offering programmatic access to RDF objects, and serving as storage layer for Ruby on Rails.
SEMPERWIKI addresses the noted limitations of ordinary wikis as follows: concerning structured access, users can find related information through associative browsing: the wiki analyses the semantic relations in the data and provides navigational links to related information. Users can search for information using structured queries, in addition to simple full-text search; concerning information reuse, the semantic annotations allow better translation and maintenance; the annotations are language independent and can be understood and reused without barriers. Users can also write embedded queries, creating saved searches (database views). These views can be revisited and reused, and provide a consistent picture of structured information.
Souzis [3] describes an architecture for Semantic Wikis but focuses on annotating and representing page structure while we are concerned with page content, and discusses specific implementation decisions rather than generic architecture choices.
Other approaches improve Wikis by augmenting them with semantic annotations. Platypus [4] is a Wiki with semantic annotations, but adding and using annotations requires significantly more effort than normal text. Both WikSAR [1] and Semantic Wikipedia [5] offer easy-to-use annotations, but neither allows reuse of existing Semantic Web terminologies, and both only allow direct annotations of the current page (excluding blank nodes).
Wikis are popular hypertext environments, but are limited in structured access and information reuse. Our Semantic Wiki architecture and prototype implementation SEMPERWIKI alleviates these problems through associative browsing, structured search, and embedded queries.
[1] D. Aumueller and S. Aurer. Towards a semantic wiki experience - desktop integration and interactivity in WikSAR. In Semantic Desktop workshop (ISWC). 2005.
[2] E. Oren. SemperWiki: a semantic personal Wiki. In Semantic Desktop workshop (ISWC). 2005.
[3] A. Souzis. Building a semantic wiki. IEEE Intelligent Systems, pp. 87--91, Sep. 2005.
[4] R. Tazzoli, P. Castagna, and S. E. Campanini. Towards a semantic wiki wiki web. In ISWC. 2004.
[5] M. Voelkel, M. Kroetzsch, D. Vrandecic, and H. Haller. Semantic wikipedia. In WWW. 2006.