To not miss out on any new articles, consider subscribing

Ontology is a technology in semantic knowledge representation that conceptualizes terms and their formal interpretations in a given domain. Ontologies present two main advantages, namely: shareability and reusability. These properties make them very attractive and powerful for representing domain knowledge.

According to Wikipedia, e-tourism can be defined as the analysis, design, implementation and application of IT and e-commerce solutions in the travel & tourism industry; as well as the analysis of the respective economic processes and market structures and customer relationship management. From a communication science perspective, e-tourism can be also defined as every application of Information and Communication Technologies within both the hospitality and tourism industry, as well as within the tourism experience.

There are hundreds of tourist attractions located around Nigeria. However, finding these tourist sites in a town where I do not reside and knowing the most suitable site was something that I found challenging. This is because information about tourist sites in Nigeria are not represented properly and put out for everyone to access. I decided to build an ontology of this. The project is a very large one and this is just a prototype. I am open to collaboration and partnerships in developing this more.

The proposed Nigerian Tourism Ontology will be based on Ontology Web Language (OWL) and implemented in The Protégé Ontology Editor. OWL is a markup language for sharing and publishing data using ontologies on the Internet. An OWL Ontology uses an object-oriented way to describe the field of knowledge.

Protege is a free open source ontology editor that provides an interface to define ontologies. It is written in Java and uses Swing to produce the user interface.The Protege OWL Editor enables users to build ontologies for the Semantic Web. Protege was the more preferred ontology editor because of the following features:

  • Graphical user interface (GUI) and API
  • Graphical editor for Logical OWL Expressions
  • Wizards to streamline complex tasks
  • Direct access to reasoners: The user interface supports three types of reasoning: (1) consistency checking, (2) classification (subsumption), and (3) instance classification
  • Support for multiple storage formats: Protégé OWL can be extended with back-ends for alternative file formats such as Clips, XML, RDF, and OWL

The following Plugins were installed in the Protege application to increase the features of the software

  • VOWL (Visual Notation for OWL Ontologies): This is a plugin that is used to visualize the ontology and outlines classes and subclasses.
  • Pellet: This is an OWL-DL reasoner that can be used to run queries and carry out inferences.
  • SOVA (Simple Ontology Visualization API): This is a Protege plugin that shows the full ontology visualization. Showing all the elements of the ontology, object properties, data properties and relations.
  • Graphviz: Graphviz is a plugin that consists of a graph description language named the DOT Language that has the capability of producing dot files.
  • SPAQRL: Sparql Protocol and RDF Query Language is the query language that was used to create queries for the ontology.
  • Debugger: This is a Protege plugin that debugs the owl code and gives results if there is any error, inconsistency or incorrect axiom declared.

System architecture

The ontology contains information about tourism activities and destinations, hotels, resorts, parks, restaurants and other tourism sites sorted by location within Nigeria. The ‘FeatureOf’ relationship between a Destination and each of the feature classes were modelled using corresponding OWL functional Object properties of hasSecurity, hasFacility and hasTraffic respectively. Only one functional object property maps to only one specific subclass of the corresponding feature values. The ontology will be populated with OWL individuals representing concrete facts that pertain to specific destinations in Nigeria. The diagram below (Figure 1) shows the architecture of the complete system

Figure 1: System architecture

OWL Components

  • Classes (Concepts): Site, Region, State. We had eight classes under the generic “Thing” base class. Some of the classes had subclasses, while some had just instances listed. These classes and all the subclasses of the ontology are represented below

Figure 2: Classes and Suclasses in Ontology
  • Instances (Individuals): These are the different tourist sites listed on the Ontology. Figures 3a and 3b below are sample instances

Figure 3a: A snapshot of an Instance, “Obudu Cattle Ranch”

Figure 3b: A snapshot of an Instance, “Ibeno Beach”
  • Properties (Attributes): This shows the properties or attributes of an Instance. Examples include Facilities, Features (Security, Scenery, Rating, Price), Traffic and Name as shown in Figures 4a and 4b below.

Figure 4a: ObjectProperty of an Instance

Figure 4b: DataProperty of an Instance (The name of the tourist site)
  • Relationship (Relations): These are: Is_A, Has_A, Feature_Of. Figure 5 is a snapshot showing the different relationships that a subclass has with other classes, properties and instances.

Figure 5: Subclass “Akwa Ibom” relationships


The attributes for the instances include:

  • Rating: {5_Star, 4_Star, 3_Star_and_Below}
  • Security: {Low_Security, High_Security}
  • Traffic: {No_Traffic, Low_Traffic, Heavy_Traffic}
  • Languages: {All Nigerian languages}
  • Price: {Low_Price, Medium_Price, High_Price, Premium_Price}
  • Scenery: {Serene, Busy}
  • Food: {Nigerian local foods}
  • Climate: {Highland, Tropical Dry, Tropical Rainforest, Tropical Monsoon, Tropical Savannah}
  • Weather: {Cold, Warm, Hot}

Ontology visualization

Figure 6 shows the visualization of the entire ontology comprising classes, subclasses, instances, properties and relationships.

Figure 6: Ontology Visualization

What next?

Here is a link to the full code which can be run in Protege 4.5 and above. If there are any corrections or questions, please send me an email. This is an area I am really interested in because I love to travel, explore new places and go on adventures. I am also open to collaboration and partnerships as mentioned earlier, to develop this further.

You can reach out to me via email:, send a Twitter DM: @_aniekan_ or drop a comment below.

Thank you.

To not miss out on any new articles, consider subscribing