SCHOOL OF COMPUTER SCIENCE

Semantic for Travel and Holidays using OWL

Project Initial Report COMP60990

Student Name: Joao Rafael Goncalves Student Number: 7387762

Supervisor(s): Prof. Alan Rector Dr. Robert Stevens Date: 27Apr2009 Table Of Contents

Table Of Contents...... 2 1. Abstract...... 3 2. Introduction...... 4 3. Background and related literature...... 6 3.1 Semantic Wiki approaches ...... 6 3.2 Wiki Architectures...... 7 3.2.1 General structure of a Wiki ...... 7 3.2.2 General structure of a Semantic Wiki...... 8 3.3 Types of Semantic ...... 8 3.4 Semantic Wiki implementations...... 9 3.4.1 Features Overview...... 9 3.4.2 Semantic MediaWiki ...... 10 3.4.3 BOWiki...... 11 3.4.4 IkeWiki ...... 12 4. Research Methods ...... 14 4.1 Project Overview ...... 14 4.2 Objectives ...... 14 4.3 Project Plan...... 16 4.4 Tools and methodologies...... 17 4.4.1 Project stages ...... 17 4.4.2 Tools ...... 17 4.4.3 Implementation...... 18 4.4.4 Testing ...... 18 4.4.5 Extensions...... 19 4.5 Summary...... 20 5. References ...... 21 6. Appendices...... 23 6.1 Appendix A – Wiki Matrix...... 23

2 1. Abstract

This project aims at exploring the use of Semantic Wikis for authoring and reasoning over an OWLDL ontology in a collaborative environment. A number of wiki implementations are here analysed and compared to determine their suitability for extending to this purpose. Semantic wikis allow users to add semantic annotations to wiki content. These annotations provide conceptual or individual information about a wiki page, and its relationships to other pages. The expressivity of annotations varies in most wikis, however this report focuses on OWL ontologies. Using an ontology provides the wiki with an underlying model of its domain’s knowledge, in this case ‘Travel and Holidays’. It is also useful to classify and verify the consistency of the data in the pages, which is done by means of a reasoner. Automated reasoners classify and infer whether new wiki entries are consistent with the knowledge base before storing them.

The implementation proposed in this report consists of enhancing and adapting two semantic wikis to make better use of OWL and reasoning; IkeWiki and BOWiki . The wikis’ functionality will be tested in regards to adding and editing OWL individuals ( ABox ), as well as concepts ( TBox ). Depending on this, either one or both wikis will be adapted to use the Travel ontology, supplied by Dr. Robert Stevens. The ‘Travel wiki’ will subsequently be tested in a collaborative environment, where multiple users author wiki content. This is carried out as outlined in example pages, and also a video demonstration of wiki features. The project will draw conclusions on the usability of the wiki as a collaborative authoring tool for OWL ontologies. The ability to engineer the knowledge contained in an ontology from a semantic wiki brings the added benefits of online collaboration combined with a userfriendly web interface. Furthermore, querying and reasoning over an ontology add powerful capabilities that allow a more advanced and widespread use of wikis as support tools for authoring knowledge.

3 2. Introduction

The purpose of this project is to develop a Semantic Wiki, based on a travel ontology provided by Dr. Robert Stevens, which makes extensive use of reasoning both about classes and individuals. The first part of the project, covered in this report, involves a survey of existing semantic media wiki projects and software, in order to make recommendations for the implementation in the subsequent part of the project. This second part of the project entails the installation and testing of a wiki implementation, so as to finally adapt it to make better use of OWL1 (Web Ontology Language) and reasoning.

Over the initial phase of the project several wiki applications have been analysed and compared. The most relevant wiki applications to this project’s goal will be discussed in the Background section, more specifically these wikis should be reusable – so as to extend it to the ontology domain of the project – and provide advanced reasoning capabilities in OWLDL. Furthermore, the intended wiki is meant to be intuitive and userfriendly, to the point that collaborative authoring of the knowledge base is as simple and straightforward as possible. If entering content in the wiki is made a complex task, then adherence to a particular style may not be always possible. So in terms of adding and editing entries, the best approach would be wizard or formlike interfaces, in order to facilitate what is likely to be the most stressful part of knowledge authoring in wikis.

The first notion of a wiki came to be implemented in 1995 by Ward Cunningham, with the launch of WikiWikiWeb 2. It was then defined as an intelligible piece of software that would provide a simple way to collaboratively describe, author, and collect information [1]. Wikipedia 3 is currently the most popular implementation of a wiki, consisting of a multitude of articles in several languages, and a large online community committed to its development. The notion of communitydriven contributions is what defines a wiki as a collaborative authoring tool; its pages are written through contributions of not one but several people or organised groups worldwide. Wikipedia is based on the MediaWiki4 wiki engine, which comprises several features to support collaboration; such as recent changes in the wiki, revision history of pages, change tracking, and list of contributions by specific users.

The knowledge contained in a wiki is typically represented in HTML 5 pages, comprised of naturallanguage text and hyperlinks. Having no embedded formal definition of itself or how it relates to other pages and resources, a wiki article has very little machine readable information that one can reuse. The querying capability of a regular wiki is an example of this; searching pages in a wiki is done by entering article names (or approximations thereof). It is possible to search Wikipedia for the entry of ‘Athens’ or other city names, but unless such a page has been manually compiled it is not possible to query Wikipedia for a ‘list of all Greek cities’. So despite the amount of information gathered in a regular wiki, it is not structured in a way that allows for article retrieval in this complex way.

1 http://www.w3.org/TR/owlfeatures/ [accessed on 10/02/09] 2 http://c2.com/cgi/wiki [accessed on 19/03/09] 3 http://en.wikipedia.org/wiki/Main_Page [accessed on 05/02/09] 4 http://www.mediawiki.org/wiki/MediaWiki [accessed on 05/02/09] 5 http://www.w3.org/TR/html401/ [access on 17/02/09]

4 On this tone, a Semantic Wiki will be introduced as an extended version of a wiki, with technologies developed by the Semantic Web community, and providing the ability to describe resources in a formal language. The describing of resources, also known as annotating , consists of associating metadata (information about information) with resources in a wiki page. “By adding metadata to ordinary Wiki content, users get added benefits such as improved retrieval, information exchange, and knowledge reuse” [2]. So unlike a regular Wiki, it is possible to author more than just text and links; semantic wikis capture machinereadable information about the data in its pages, as well as the relations between them [3]. This way, the knowledge in a semantic wiki can be queried and exported as if it were a normal database, on the grounds that it holds an underlying model of the knowledge contained within its the pages.

Typically, semantic wiki annotations are written in RDF 6, but can also be supplied by an ontology ; a formal model of a shared understanding of a domain, which is interpreted as a set of concepts and relations between these. In the context of the project, an OWL ontology will be used to describe the ‘Travel and Holidays’ domain of the semantic wiki. There are several benefits to using an ontological basis for a semantic wiki; the ability to use automated reasoners, that check if new entries are consistent with the knowledge base before physically storing them, and also powerful querying methods that make use of the reasoner. Below is an example where the content of a wiki page is annotated, using the Semantic MediaWiki 7 Project Halo extension [4]; on the left keywords can be selected, and annotated with further popup options, or from the right hand side toolbar.

Figure 1 - Annotation mode of Semantic MediaWiki Project Halo extension 8 Adapted from http://www.ontoprise.de/uploads/pics/SMWplus_AnnotationMode.png

6 http://www.w3.org/RDF/ [accessed on 09/03/09] 7 http://semanticmediawiki.org/wiki/Semantic_MediaWiki [accessed on 05/02/09] 8 http://wiki.ontoprise.com/wiki/index.php/Faq/halo_extension [accessed on 19/03/09]

5 3. Background and related literature

3.1 Semantic Wiki approaches

There are numerous semantic wiki implementations publicly available, serving distinguished purposes and with varied functionality. The way in which the content of a wiki is formally represented, annotated, and finally navigated, effectively determines the capabilities of a wiki implementation. Semantic MediaWiki (SMW) [5] is an extension of MediaWiki that provides the ability to annotate the current page. However, it does not detach the page content and the metadata associated with it before storing, thus not taking full advantage of the page annotations for advanced querying and navigation. “The internal knowledge model of Semantic MediaWiki is closely related to OWL DL, although just a small fragment of the expressive means of this language is actually available within the wiki” [6]. Contrary to Semantic MediaWiki, IkeWiki 9 [7, 8] stores the page contents and the annotations separately, and is built upon a background ontology that verifies the consistency and relations of its pages. Similarly, BOWiki 10 employs a core ontology, by default a biological ontology, which provides the background knowledge about types and relations [9]. It is however possible to use an arbitrary core ontology, or access an external ontology from BOWiki’s special pages.

There have been successful attempts at automating the creation of wikis based solely on the input ontology. WikiFactory 11 [10] generates simple semantic wikis from ontological descriptions in OWL; the wiki is automatically populated with pages containing metadata derived from the ontology, as well as the relations among wiki pages. However, in the latest implementation the final output does not provide the complex reasoning and querying methods that other semantic wikis explore, and lacks storage methods for page annotations.

SemperWiki 12 attempts to combine the easeofuse virtue of personal wikis with the advanced retrieval and navigation that characterise semantic wikis [11], resulting in a simple and effective personal information management tool. Another example, Powl 13 was initially designed as a webbased ontology management tool, which allowed “parsing, storing, querying, manipulating, versioning, serving and serializing RDF and OWL knowledge bases for different target audiences” [12]. Later on Powl was used as the basis for OntoWiki 14 , a wikilike tool that supports agile knowledge engineering in a webbased environment. The purpose of OntoWiki is to facilitate the presentation and retrieval of instance data from the knowledge base, by regarding it as an ‘information map’. This allows the user to access ‘mapnodes’ using different views; if the selected instance contains geographical data, OntoWiki perceives it as a location on the globe and attempts to match it by calling upon the Google Maps API 15 from within the wiki, and displaying it in a Map View .

9 http://ikewiki.salzburgresearch.at/ [accessed on 11/03/09] 10 http://bowiki.net/wiki/index.php/Main_page [accessed on 11/03/09] 11 http://swe.web.cs.unibo.it/WikiFactory/WebHome [accessed on 17/03/09] 12 http://www.eyaloren.org/semperwiki.html [accessed on 14/03/09] 13 http://sourceforge.net/projects/powl [accessed on 15/03/09] 14 http://ontowiki.net/Projects/OntoWiki [accessed on 15/03/09] 15 http://code.google.com/apis/maps/ [accessed on 16/03/09]

6 3.2 Wiki Architectures

3.2.1 General structure of a Wiki

The typical architecture of a wiki follows the threetier software design model, where the presentation layer (user interface), application layer (process management services), and data layer (data access and storage) are developed and maintained as independent modules [13]. The interaction between these layers is exemplified in Figure 2.

The presentation layer gives the user access to the application; it presents the data to the user and permits data manipulation and entry. This is the top level of the web application, and in the case of Media Wiki – the Wiki engine behind Wikipedia – it communicates with the application layer through HTML requests and dispatching PHP commands.

The application layer contains most of the application logic; the presentation layer presents data to and collects data from the user; the database layer stores and retrieves the data. The application layer executes most of the remaining roles that tie the other layers together; it processes input from the user, forming it into queries on the database to read or write data; drives the structure and content of the data displayed to the user.

The data layer, or database access layer, interacts with persistent data stored in a database. It can be accessed trough the application layer, and in some situations by the presentation layer itself. This is where information is stored and retrieved; the information is then passed on to the application layer for processing, and afterwards redirected to the user via the presentation layer.

Figure 2 – Typical architecture Adapted from http://www.mediawiki.org/wiki/Manual:MediaWiki_architecture [Accessed on 05/02/09]

7 3.2.2 General structure of a Semantic Wiki

In comparison with a general wiki, a semantic wiki adds further components and functionality to enable page annotating and storing. When a user edits or creates a new page, the parser analyses the text (typically wikisyntax) and extracts the metadata which is then stored by the ‘page server’. The page server itself acts as a mediator between the other components; namely it calls upon the Analyser to retrieve sets of pages that are related to the current page, displaying it back to the user interface.

In the database layer, it is possible to distinguish between the page content (generally XML content) and the metadata related to it. In this context, the page server is responsible for combining page content with metadata and display as requested.

Figure 3 – Typical Semantic Wiki software architecture [13, 14]

3.3 Types of Semantic Wikis

In the analysis of wikis in Appendix A – Wiki Matrix , RDFS 16 and OWL schemas are often mentioned; in terms of knowledge representation, an OWL ontology is divided in two parts: the assertion box ( ABox ), and the terminology box ( TBox ). “W3C distinguishes between RDF for ABox knowledge and ontology languages like RDFS and OWL for TBox knowledge” [15]. Most of the semantic wikis analysed only offer support for knowledge representation in RDF, but in the interest of this project OWL ABox and TBox authoring are the intended goals. TBox editing in a semantic wiki is associated with functionality of ontology editors, and only a number of wikis offer this, while ABox handling is more widely used. In a general context:

 TBox describes classes or concepts of a domain. It is formed by OWL or RDFS 17 , using an extended RDF syntax.

16 http://www.w3.org/TR/rdfschema/ [accessed on 19/03/09] 17 The distinction should be made that OWL is not the same as RDFS; OWL allows all the same expressivity as RDFS and more.

8  ABox describes instances and relationships between instances of concepts. It is typically formed of RDF triples.

From a semantic wiki point of view, authoring a TBox would mean changes at the conceptual level – altering the definition of, for example, Bird from ‘animal that flies’ to ‘animal that flies and has feathers’. This has consequences on the instances of these concepts, if a duck was instantiated as an ‘animal that flies’ then the change implies that when the knowledge base is classified, the duck is no longer regarded as a Bird.

Authoring an ABox in a semantic wiki means changing instances of concepts or the relationships to other instances. From the example above, duck could be altered in order to say that this duck ‘has feathers’, which would reclassify duck as an instance of Bird.

3.4 Semantic Wiki implementations

Taking into consideration the semantic wikis mentioned in the Background (and also in Appendix A – Wiki Matrix ), BOWiki, IkeWiki and Semantic MediaWiki have been selected as the most relevant implementation approaches to the project. These three wikis are here compared in terms of usability, functionality, and possible extensions. The table below summarises the main features and information regarding these wikis.

3.4.1 Features Overview

Semantic BOWiki IkeWiki MediaWiki Developers Markus Krötzsch, Joshua Bacher, Michael Sebastian Schaffert, Denny Vrandecic, and Backhaus, Alexandr Salzburg Research others Uciteli, Robert Hoehndorf Purpose Annotating content in Annotating knowledge Ontology engineering RDF (OWL ABox ) via OWL ABox / TBox tool Description A MediaWiki extension A Semantic Wiki for IkeWiki is an easyto that introduces simple collaborative editing of use semantic wiki, annotations to wiki biomedical ontologies with a sophisticated content, and adequate and gene data; it is built user interface and querying and upon an OWL support for importing navigation methods. ontology, with support ontologies and for a DL reasoner reasoning Knowledge OWLDL ontology OWLDL ontology OWLRDFS, OWL representation DL (slower) Implementation PHP PHP JSP Webserver Apache HTTP Server Apache HTTP Server Tomcat Wiki Database MySQL MySQL PostgreSQL Metadata Store MySQL MySQL Jena RDF Store Interaction Wikisyntax, Forms, BOWikisyntax, WYSIWYG, wiki Point and click Simple SemanticSearch syntax License GNU General Public GNU General Public GNU General Public License License License Table 1 - Comparison of wiki implementations

9 3.4.2 Semantic MediaWiki

Semantic MediaWiki (SMW) was initially designed as a simple extension to MediaWiki in order to allow users to annotate the content in its page. The annotations in Semantic MediaWiki are entered into the content of a page using a special markup, which is then ‘unambiguously’ mapped into the OWLDL knowledge base [16]. According to the documentation, the majority of the annotations are simple ABox statements in OWL syntax, which in this context may describe or classify individuals, or annotate these with data values. However Semantic MediaWiki is unable to handle schematic information in the form of an OWL TBox , since it was not intended as an ontology editor.

In Semantic MediaWiki it is possible to import data from an OWL ABox , as well as exporting formal descriptions of wiki pages in OWL/RDF format; which means the whole ontology can be exported in the same way. The ability to import and export parts of an ontology allows for reuse of the information in the wiki pages or the overall domain represented. The content in Semantic MediaWiki can be queried using the same syntax as for annotating; queries are done via a special page Special:Ask , or via inline queries. Finally it is possible to save conceptualqueries in a wiki page, which act as dynamic queries in the page content.

Figure 4 - Semantic MediaWiki Ontology browser, Adapted from http://sourceforge.net/dbimage.php?id=162688 [accessed on 08/04/09]

On top of these aspects, Semantic MediaWiki has a number of issues that would constrain the implementation of this project. In particular, it does not support a number of ontology features: transitivity, inverse properties, domain and range restrictions, number restrictions and functional properties. This poses a major restriction in terms of ontological expressivity. Reasoning capabilities for OWLDL in Semantic MediaWiki have to be configured separately, but would be limited nonetheless. This is because the wiki stores both the page content and its annotations together, with no formal distinction. Such distinction would make reasoning over metadata possible, as well as increasing the overall performance of page retrieval and querying; since the entire page content and metadata have to be parsed and the relevant code retrieved for each request.

10 3.4.3 BOWiki

The BOWiki is a collaborative editor that extends MediaWiki by using an ontology to validate all the semantic information related to the wiki pages. Originally it was intended as a biomedical wiki, particularly dedicated to gene functions. But in spite of this, BOWiki allows importing an arbitrary OWL ontology to replace the original core ontology. The wiki is comprised of four main components [17], which are also depicted in Figure 7:

 The BOWiki software extension – the main application component, a presentation layer addition to MediaWiki.

 BOWiki database extension – an enhancement of the MediaWiki data layer for separate semantic data storage.

 BOWikiserver, based on the Jena 2 Semantic Web Framework [18] and the Pellet reasoner [19] – classifies and reasons over the content of the wiki’s knowledge base.

 OWLDL ontology.

Figure 5 - Introducing a new relation in BOWiki [20] Figure 6 - Inconsistency detection entering data

The BOWiki extension to the MediaWiki is responsible for processing the semantic annotations entered in the wiki pages, which are then transferred to the BOWikiServer. At this point the semantic data is checked for its consistency with the resident OWL ontology (which has to be preloaded onto the wiki at installation time). This check is carried out by the description logic reasoner, via the Jena 2 Semantic Web framework, which will then commit the semantic data to storage if it is consistent.

The page content and its related annotations are stored separately; the page content is stored in the MediaWiki database, while the annotations are stored in the BOWiki database extension. This annotation database extension uses separate tables for storing subjects, relations, roles, types and objects [21]. The database model of the wiki is divided into two semantic store parts; the first is dedicated to classes relations, roles and types, and the second to instances instances of relations, roles or objects.

11

Figure 7 - BOWiki software architecture adapted from http://onto.eva.mpg.de/pub/eswc-misc/ [accessed on 06/04/09]

3.4.4 IkeWiki

The development of IkeWiki started as a support tool for knowledge workers to collaboratively formalise knowledge. Currently the wiki supports importing and exporting of a knowledge base in RDFS and OWL. The basic user interface and functionality of IkiWiki resembles MediaWiki, but it is an AJAX application based on the Dojo Toolkit 18 . Editing content is facilitated by a WYSIWYG editor, which includes AJAXbased Link and Page Annotations. The architecture of IkeWiki, in Figure 8, includes three main components; the Rendering Pipeline, RDF Store and Page Store.

Figure 8 - IkeWiki software architecture [7]

18 http://dojotoolkit.org/

12  Page Store; stores and retrieves the content of wiki pages from the database. The page content is represented in Wiki Interchange Format (WIF).

 RDF Store; based on the Jena 2 Framework for representation of the knowledge base, includes a SPARQL engine that enables querying of the KB.

 Rendering Pipeline; responsible for combining the page content, in the XML based WIF format, with the semantic data associated with it.

Despite the fact that IkeWiki supports OWL, the reasoning support is by default limited to RDFS. In order to add an OWLDL reasoner such as Pellet some changes need to be done to the setup and code, which is part of the research to be ensued. Enabling OWL DL reasoning, however, could reportedly slow down the wiki performance to a certain degree, which may be related to the processing and storage of the ontology.

Figure 9 - IkeWiki example page content and functionality [7]

13 4. Research Methods

4.1 Project Overview

In the Background section several wiki systems were described in relevant detail, and from their functionality there are two appropriate candidates to extend the initial specification of the project:

 BOWiki due to its complex reasoning and querying capabilities  IkeWiki for its advanced user interface, and similar functionality to BOWiki.

From the documentation available both wikis allow importing OWL ontologies as the core ontology for the wiki pages, which is the main concern for extending an existing implementation. Moreover the reasoning and querying tools used in these wikis are adequately complex for the goals of this project; therefore it seems sensible to pursue installing and adapting both systems concurrently, to evaluate their suitability in relation to the ‘travel and holiday’ domain.

In the initial implementation and testing stages of the project both wikis will be compared simultaneously, and it is possible that only one will proceed to the following implementation and testing stages. Since reasoning in IkeWiki is limited to RDFS by default, the issue that arises is adapting the wiki to use the Pellet reasoner. In case the tests carried out when reasoning over OWLDL in IkeWiki are successful, then it would be most suitable for the project’s purposes. Otherwise the remaining three objectives of the project would apply only to BOWiki.

4.2 Objectives

Based on the analysis of previous approaches to semantic wikis and the purpose set forth in the Introduction , the main objectives of the project are compiled in the table below, along with the tasks involved. The assignment of tasks in relation to each major objective is represented on the Gantt chart in the following section.

Main objectives Tasks  Examine wikis functionality Configure wiki to import OWL ontologies with an OWL ontology Employ an OWLDL ontology as main knowledge base Adapt reasoner to reason over the ontology Examine the generated articles in the wiki pages

 Test usability and Verify accurate classification of the ontology performance of both wikis Identify if wiki pages are populated accordingly Evaluate which implementation provides a more userfriendly interface Compare the wikis’ handling of ontology changes: ABox and TBox

14  Implementation of the Determine if changes need be made to the ontology Travel ontology wiki Import the travel ontology onto the wiki Verify accurate classification of the ontology Identify if wiki pages are populated accordingly Check that adding and editing wiki entries commits the appropriate ontological changes

 Test wiki implementation in Produce a script for entering data in wiki pages collaborative environment Produce a video demonstration of how to add and annotate content Arrange for a number of users to submit any number of entries, according to the script and video Ensure the validity of information entered by the users in the wiki Verify the produced script is being adhered to

 Explore extensions to the Analyse userinterface extensions to facilitate implementation (if authoring; Forms, WYSIWYG remaining project time Determine the usability of Google Maps within the allows for this) wiki (Semantic Google Maps extension)

 Final testing of the wiki Ensure correct functionality of all components if new extensions are added Verify accurate progress of the wiki ‘population’

Table 2 - Main goals and tasks involved in the project

15 4.3 Project Plan

16 4.4 Tools and methodologies

Following the objectives described before, the project will be implemented and tested over five stages; at each major milestone seen in the Gantt chart there is a testing period, to ensure correct functionality and accordance to the requirements before proceeding to the next implementation or test stage. Aside from the final testing, the major test phase is the collaborative editing of the wiki. At this point, several users will be engaged in entering content in wiki pages following a preestablished approach, which will be discussed in Testing Stages . The division of project stages derived from the project objectives and the Gantt chart is summarised below.

4.4.1 Project stages

Stage Duration 1.1 Implementing wikis with imported ontology 2 weeks 1.2 Testing wiki implementations 2 weeks 2. Implementing wiki with Travel ontology 1 week 3. Collaborative testing of the wiki 3 weeks 4. Implementing extensions 1 week 5. Final testing 1 week 6. Dissertation writing 4 weeks Table 3 - Stages of the project

4.4.2 Tools

The software tools required throughout the project include support for ontology editing, programming in Java and in PHP. Table 4 illustrates the software that will be used.

Software Developers Usage Protégé 4.0 19 COODE OWL ontology editing Eclipse IDE for Java EE Eclipse Foundation Java/JSP development Eclipse Foundation, PHP development tools PDT 2.0 Eclipse plugin 20 Zend Technologies framework Apache Foundation, LAMP (LinuxApache HTTP web server, database The PHP Group, Sun MySQLPHP) server management system, and PHP Microsystems XVidCap 21 Karl Beckers Screen casting software Apache Software HTTP web server for Java Apache Tomcat Foundation Servlets and JSP Pellet reasoner 22 Clark & Parsia OWLDL reasoning Table 4 - Software tools involved in the project

19 http://protege.stanford.edu/ 20 http://www.eclipse.org/pdt/ 21 http://xvidcap.sourceforge.net/ 22 http://clarkparsia.com/pellet

17 4.4.3 Implementation

 Phase 1: Implementing wikis with imported ontology

At this stage, the intention is to compare the usability and performance of IkeWiki and BOWiki with an arbitrary OWL ontology. The wikis need to be installed and configured so that a test ontology can be imported and evaluated. From the documentation and user manuals available BOWiki provides this functionality by default. IkeWiki however, poses a bigger obstacle as its reasoning capabilities are not suitable for OWLDL. So the Pellet reasoner will be adapted to IkeWiki – which according to the developer is possible 23 and supported by the wiki. At the end of this phase it is expected that both wikis will be making full use of reasoning over the test ontology, so that conclusions can be drawn in regards to performance during the testing stage (stage 1.2 of Table 3).

 Phase 2: Implementing wiki with Travel ontology

Based on the tests carried out with the initial ontology, the implementation of the Travel wiki will proceed on either one or both wikis. The system that shows better handling of OWL ABox and TBox is preferable for continuing the project.

The Travel and Holiday ontology will then be imported onto the wiki, and upon classifying the new population will be generated from the knowledge base. At this point, the performance of the wiki will be reviewed, with regards to reasoning and interfacing within the wiki.

4.4.4 Testing

 Phase 1: Testing wiki implementations

Verify accurate classification of the ontology; after importing the ontology onto the wikis, these will be populated with new knowledge. In turn this must be checked for correct ‘categorisation’ within the wiki pages.

Identify if wiki pages are populated accordingly; it is necessary to ensure that the knowledge in the new pages is valid according to the ontology, and represented appropriately.

Evaluate which implementation provides a more userfriendly interface; compare both wikis in terms of usability and practicality when navigating, querying, and annotating wiki articles.

Compare the wikis’ handling of ontology changes: ABox and TBox ; each wiki will be tested by adding OWL ABox and TBox entries, and compared in terms of response time when classifying and presenting a feedback message.

23 http://sourceforge.net/mailarchive/forum.php?thread_name=4682C52A.5020307%40salzburgresearch.at &forum_name=ikewikiusers [accessed on 12/04/09]

18

 Phase 2: Collaborative testing of the wiki

Produce a script for entering data in wiki pages; examples will be prepared on how to add OWL ABox and TBox statements in the wiki, including a vocabulary of wiki syntax compared to OWL.

Produce a video demonstration of how to add and annotate content; simple adding operations will be recorded using screencapturing software, which would be made available in the wiki.

Ensure the validity of information entered by the users in the wiki; supervise the progress of the wiki and new additions to make sure that new information is accurate.

Verify the produced script is being adhered to; ensuring the consistency of the ontology and the domain it represents.

 Phase 3: Final testing

Ensure correct functionality of all components if new extensions are added; mainly to ensure interoperability between the wiki and any extensions applied.

Verify accurate progress of the wiki ‘population’; ensure that all the information entered up to this stage is consistent with the knowledge base, and is accurately represented in the wiki pages.

4.4.5 Extensions

 Semantic Forms 24

Semantic Forms is an extension for Semantic MediaWiki which allows for both wiki users and developers to produce forms for adding and editing pages, based on the metadata contained in each page. These forms are intended to facilitate the authoring of wiki pages, by enabling autocompletion of fields. The adaptations needed for this project are described next to the default functionality of Semantic Forms.

By default Adaptations needed Forms are generated based on categories The original code of this extension (Semantic MediaWiki’s approach to can be reused, by using the OWL concepts) of the page, which is extracted at concept of the page in order to the time of adding or editing retrieve the labels for the form.

A template is formed from these labels, Templates may be viable to generate which can be used on that page once on request; depending on the wiki’s generated. handling of OWL TBoxes .

Table 5 - Adaptability of the Semantic Forms extension

24 http://www.mediawiki.org/wiki/Extension:Semantic_Forms

19  Semantic Google Maps 25

This extension, originally designed for Semantic MediaWiki, uses the Google Maps API 26 to display geographic locations given such a type in the knowledge base, by:

Mapping an entry of type ‘geographic coordinate’ and display on the page Displaying a set of points (locations) on the page, retrieved by a query Allowing the input of geographic locations using Semantic Forms

Unless Semantic Forms would also be adapted, entering geographical data in the wiki would not rely on this last function. However the remaining functionality is adaptable to both wikis, by having a geographic location field to carry out this mapping.

4.5 Summary

The implementation of this project will provide answers to the following questions;

1. Asserting the suitability of reasoning over an OWLDL ontology in the context of a wiki, for: a. classifying concepts (OWL TBox ) and b. individuals (OWL ABox )

2. Providing an insight into the usage of semantic wikis as a collaborative tool for authoring and sharing knowledge, with special focus on the evolution of the core ontology employed.

The expected outcome of the project involves a functional semantic wiki based on the Travel ontology, with OWLDL reasoning using Pellet and appropriate population of wiki content and pages.

The user interface of the wiki is of significant concern, since authoring knowledge in adherence to a particular style is not as straightforward as one would expect. Therefore, it is necessary to ensure that these operations have appropriate support and documentation clearly available. The consistency of the knowledge base should be ensured by the reasoner at every change in the wiki pages. And before these changes are physically stored in the database, the semantic annotations are subject to a consistency check; invalid metadata is refused with appropriate feedback message.

In summary, the project is set to explore the usability and efficiency of semantic wikis using OWL ontologies, which have proven to be an important derivation of Semantic Web technologies. The usage and adherence to semantic wikis by netusers is still limited, but their relevance to the Web is unquestionable. The problem posed is that most semantic wikis are too complex for a regular user to add and annotate content; if the functionality of a semantic wiki would be close enough to that of a regular wiki, then users would easily adapt. With this in mind, the project will draw some feedback regarding the easeofuse of semantic wikis based on the implementation outcomes.

25 http://www.mediawiki.org/wiki/Extension:Semantic_Google_Maps 26 http://code.google.com/apis/maps/

20 5. References

[1] A. Ebersbach, M. Glaser, R. Heigl, and G. Dueck, Wiki : Web collaboration , Berlin: Springer, 2006. [2] E. Oren, R. Delbru, K. Moller, M. Volkel, and S. Handschuh, Annotation and Navigation in Semantic Wikis , Forschungzentrum Informatik, Karlsruhe, Germany, 2006. [3] SemanticWeb.org. "Semantic Wiki," accessed on 03/04/09, last updated on 16/03/09; http://semanticweb.org/wiki/Semantic_wiki . [4] N. Friedland, P. Allen, P. Matthews, M. Witbrock, D. Baxter, J. Curtis et al. , Project Halo: Towards a Digital Aristotle , vol. 25, AI Magazine, 2004. [5] M. Völkel, M. Krötzsch, D. Vrandecic, H. Haller, and R. Studer, Semantic Wikipedia , In Proceedings of the 15th international conference on World Wide Web, Karlsruhe, Germany, 2006. [6] M. Krötzsch, S. Schaffert, and D. Vrandecic, Reasoning in Semantic Wikis , vol. 4636/2007, 2007. [7] S. Schaffert, IkeWiki: A SemanticWiki for Collaborative Knowledge Management , In Proceedings of 1st International Workshop on Semantic Technologies in Collaborative Applications (STICA), Manchester, UK, 2006. [8] S. Schaffert, R. Westenthaler, and A. Gruber, IkeWiki: A UserFriendly Semantic Wiki , In Proceedings of 3rd European Semantic Web Conference (ESWC), Budva, Montenegro, 2006. [9] R. Hoehndorf, J. Bacher, M. Backhaus, S. Gregorio, F. Loebe, K. Prüfer et al. , BOWiki: An ontology-based wiki for annotation of data and integration of knowledge in biology , In Proceedings of the 11th Annual BioOntologies Meetings, Toronto, Canada, 2008. [10] A. Di Iorio, M. Fabbri, V. Presutti, and F. Vitali, Automatic Deployment of Semantic Wikis: a Prototype , In Proceedings of 1st Workshop: "SemWiki2006 From Wiki to Semantics", 2006. [11] E. Oren, SemperWiki: a semantic , In Proceedings of the 1st Workshop on The Semantic Desktop at the ISWC 2005 Conference, Galway, Ireland, 2005. [12] S. Auer, Powl – A Web Based Platform for Collaborative Semantic Web Development , In Proceedings of the 1st Workshop Scripting for the Semantic Web (SFSW), Hersonissos, Greece, 2005. [13] A. Bonomi, A. Mosca, M. Palmonari, and G. Vizzari, Integrating a Wiki in an Ontology Driven Web Site: Approach, Architecture and Application in the Archaeological Domain , In Proceedings of the 3rd Semantic Wiki Workshop (SemWiki) at the 5th European Semantic Web Conference (ESWC), Tenerife, Spain, 2008. [14] E. Oren, Semantic Wikis for Knowledge Workers , DERI, National University of Ireland, Galway, 2005. [15] C. Lange, SWiM – A Semantic Wiki for Mathematical Knowledge Management , vol. Technical Report 5, Jacobs University Bremen, 2007. [16] M. Krötzsch, M. Vrandečić, and M. Völkel, Semantic MediaWiki , In Proceedings of the 5th International Semantic Web Conference (ISWC), Athens, GA, USA, 2006. [17] J. Bacher, R. Hoehndorf, and J. Kelso, BOWiki: Ontology-based Semantic Wiki with ABox Reasoning , SemWiki, 2008.

21 [18] J. Carroll, I. Dickinson, C. Dollin, D. Reynolds, A. Seaborne, and K. Wilkinson, Jena: implementing the semantic web recommendations, In Proceedings of the 13th international World Wide Web conference on Alternate track papers & posters, New York, NY, USA, 2004. [19] B. Parsia, E. Sirin, B. Grau, A. Kalyanpur, and Y. Katz, Pellet: A practical OWL-DL reasoner , Journal of Web Semantics, 2007. [20] R. Hoehndorf, "BOWiki: Quality control for largescale collaborative annotation and knowledge acquisition." [21] M. Backhaus, J. Kelso, J. Bacher, H. Herre, R. Hoehndorf, F. Loebe et al. , BOWiki a collaborative annotation and ontology curation framework , In Proceedings of the Workshop on Social and Collaborative Construction of Structured Knowledge (CKC 2007) at the 16th International World Wide Web Conference (WWW), Banff, Canada, 2007.

22 6. Appendices

6.1 Appendix A – Wiki Matrix

Semantic Knowledge Programmin Developers Description Main features Interaction Wiki Representation g language

AceWiki shows the AceWiki makes use formal semantics in of the controlled controlled English. Tobias Kuhn, natural language Controlled natural These semantics are Attempto ACE. In order to language: contained directly in the Predictive AceWiki group help the users to Attempto Java article texts. Ontological Editor (University of write correct ACE Controlled English entities like individuals, Zurich) sentences, AceWiki (ACE) concepts, and properties provides a predictive are mapped one-to-one authoring tool. to linguistic entities. Artificial Memory is a semantic wiki and Semantic Blogs, Personal Knowledge Wikipedia interaction / Management Personal article to instances System. It tries to Semantic import, AJAX, real-time Artificial find a balance Subdocument Lars Ludwig consistency checks, C-Sharp WYSIWYG Memory between schema- Knowledge online semantic rigidity and usability, Management processing as simple as and implements (PS-KM) in online analytical advanced ontology processing management and ontology usage The BOWiki not only supports the definition Joshua BOWiki is a and instantiation of Bacher, collaborative editor Wiki- Individuals or the usage Michael for biomedical syntax, of Relations. It also OWL-version of Backhaus, knowledge, gene Reasoner, BOWiki provides an interface for General Formal PHP Robert functions and Simple directly communicating Ontology (GFO) Hoehndorf annotations; it could Semantic with the Reasoner. An and Alexandr be considered as a Search interface called the Uciteli gene function wiki Simple Semantic Search to perform queries easily COW is a semantic wiki using KAON Jochen that supports In wiki pages, ontology Fischer, Zeno collaborative information can be used Gantner, evolution of COW to render dynamic KAON Java Forms Steffen ontologies by means content as well as Rendle, of versioning, answer user queries. Manuel Stritt transactions, and management of modifications The Hypertext Knowledge HKW is backed by a Workbench is an more flexible data model Max Voelkel, editor and browser than semantic wikis, it Hypertext Konrad for semantic allows to create and Conceptual Data Knowledge Voelkel, personal knowledge change formal Java, GWT Wiki-syntax Structures (CDS) Workbench Werner models. The tool is statements easily, and Thiemann designed to be used integrates authoring, by a single person structuring and to manage personal formalisation notes

23 The purpose of IkeWiki is to be an Some AJAX features, easy to use, editing of resource and collaborative tool link types, editing of that guides metadata annotations, Sebastian knowledge WYSIWIG editor, wiki- Schaffert, RDFS and OWL WYSIWYG, IkeWiki engineers in the syntax. Navigation JSP Salzburg schemas Wiki-syntax process from Support: Wiki links, Research unstructured overview over incoming informal texts to and outgoing RDF knowledge edges, context- represented in an dependent visualisations ontology The system Internet Business automatically generates Logic is an and executes SQL Internet advanced queries and transactions Executable Business Reengineerin technology Wiki for over networked RDF Java English Logic g LLC knowledge in open databases. The system vocabulary, can give business level executable English. English explanations of the query results JSPWiki is wiki software built WikiMarkup/Structured around the standard text, File attachments, Janne J2EE components Forms, Templates Jalkanen of Java, servlets and support, Data storage, JSPWiki (now Apache See PhpWiki Java EE Wiki-syntax JSP. It is used for easy plugin support, Software company intranets UTF-8 support, RSS, Foundation) and has an active Access control, support developer for multiple Wikis community KiWi is a Java EE Representation of many and JBoss Seam different content formats based semantic wiki (text, images, etc). Easy engine. KiWi is the linking between content successor project of items, versioning and Salzburg IkeWiki. The KiWi change tracking of KiWi RDF Java EE Wiki-syntax Research system allows content items. social software Annotation of content developers to easily with meta-data, rating build and adapt new and commenting of services as they are content by users, required integration of diff OntoWiki is a free, OntoWiki facilitates the open-source visual presentation of a semantic wiki knowledge base as an Martin Hepp, application, meant information map, with Daniel to serve as an different views on OntoWiki Bachlechner, ontology editor and instance data. It enables RDF PHP Forms Katharina a knowledge intuitive authoring of Siorpaes acquisition system. semantic content, with OntoWiki is form- an inline editing mode for based rather than editing RDF content, syntax-based similar to WYSIWIG PlatypusWiki offers a simple user Namespace:pagename interface to create links, XHTML for Paolo wiki pages with content, every wiki page Castagna, metadata based on has metadata in RDF. PlatypusWi Stefano W3C standards. It RDF properties used to Separate RDF, RDFS, OWL Java ki Campanini, uses RDF, RDF build navigation menus. text area Roberto Schema and OWL Full text search and Tazzoli (Web Ontology metadata search. Language) to create Shared content and ontologies and metadata can be reused manage metadata.

24 POWL is an opensource, web- Powl allows parsing, based semantic web storing, querying, develop-ment manipulating, ver- platform for PHP. It sioning, serving and POWL Sören Auer RDF, RDFS, OWL PHP WYSIWYG may be used as a serializing RDF-S and foundational OWL knowledge bases framework for in a collaborative web seman-tic web enabled environment. applications The SMW Project Halo Extension is an extension to the Ontology browser, Semantic autocompletion, toolbar Wiki- MediaWiki. It has to introduce semantic syntax, Project ontoprise been developed as See Semantic markup, query interface, PHP Forms, Halo GmbH a part of Project MediaWiki [35] ontology enhanced Point and Halo in order to search page, click facilitate the use of inconsistency-detection Semantic Wikis for a large community of users

SMW is an The SMW Significant speedups, extension of Project: more expressive Wiki- MediaWiki that Markus querying, new syntax, Semantic helps to search, Krötzsch, translations, unified OWL DL ontology PHP Forms, MediaWiki organise, tag, Denny semantics under the Point and browse, evaluate, Vrandecic, term "Property", simpler click and share the wiki's and others datatypes content This semantic Authoring: Wiki syntax personal Wiki (for text layout), instant serves as a save (annihilating the personal information need for explicit saving), system. It is full undo, global SemperWik Eyal Oren extremely easy to keybindings, and RDF Ruby Wiki-syntax i use and provides application integration. instant Retrieval: full-text gratification for search, simple, powerful, adding semantic and embedded queries, annotations. and logical inference The pages are stored in SWiM, designed for OMDoc or OpenMath, Mathematical both semantic Knowledge mathematical markup Management, Christoph languages. For SWiM currently in a RDF Java, XSLT WYSIWYG Lange reasoning and querying, prototype stage, the Krextor RDF coded in Java and extractor is used to XSLT as a fork of extract RDF from that IkeWiki. markup. SWOOKI is a peer to peer Semantic SWOOKI users can Wiki that enables perform transactional users to add changes on semantic semantic data to wiki pages thank to the wiki pages. This Pascal Molli, replication algorithm that data can then be Hala Skaf- forces commutativity of SWOOKI used for better RDF Java Wiki-syntax Molli, Julien operations. This editing searching, browsing, maire mode is particularly and exchanging of useful in semantic wikis information. The where consistent change Peer to peer often requires changing architecure provides ma fault-tolerance, scalability and

25 TaOPis is an open source community project hosting TaOPis' semantic wiki is system with an based on a fully object integrated semantic oriented framework - any wiki component wiki page, any forum Markup FLORA-2, based on F-logic. It's post, any blog entry, any syntax, Markus Python, TaOPis reasoning engine is user etc. is considered to OWL Forms, Schatten PostgreSQL, FLORA-2 but it is be a generic object that Point and PHP mostly implemented can be specialized using click in Python and PHP. attribute value tags. PostgreSQL acts Special tags like class or mainly as an subclass interaction layer between

26