Ontologies: In Detail

How to develop an ontology?

Selen Parlar
Analytics Vidhya

--

In the previous posts, we made an overview of ontologies and talk about how to use and visualize them. In this post, we will see the details about how to design one.

There exist a great number of methodologies for developing an ontology in several environments like Protegé and Chimaera. Using these environments save us from the implementation in a language like UML and OWL. Once we have the model for our ontology, we can easily create it.

A simple methodology

There is no one correct methodology for developing ontologies. Here we will see an iterative approach: we start with a first pass and create an ontology, then we revise and refine the ontology. While doing this, we need to make design decisions, pros, and cons of solutions. We should also mention the fundamental principles for creating an ontology:

That is, we need to decide the aim of our ontology and how detailed or general the ontology is going to be while modeling it. Moreover, the concept of reality should be remembered, i.e., we are trying to reflect the real-world concepts in the ontology, thus we can evaluate using it in applications.

Development process

The image below shows a Book hierarchy that we have created as an example. The superclass Books has two distinct subclasses, namely Children’s Books and Novels. There are also instances of these subclasses like The Little Black Fish and Brave New World.

An example hierarchy of the Books

Let’s see how to develop a Book ontology. We can break up the ontology development process into 7 steps:

It is suggested to start the ontology development process by defining the domain and the scope of the ontology. For instance, if your ontology will be used in a natural language processing domain, you should probably need to include part-of-speech information for the concepts in your ontology. For the Book ontology, we need to ask “For which purpose we are going to use the Book ontology?” and then perform further developments.

Besides that, to determine the scope of your ontology one of the possible ways is to sketch a list of questions that your ontology should be able to answer. These questions are called competency questions (Gruninger and Fox 1995). For instance, for the Book ontology, we should be able to answer the question of “Is 1984 is a novel or children’s book?”

It should always be considered to refine and extend the previously developed sources that might be helpful for our task. It is easy to import an existing ontology using an ontology-development environment. There are several libraries of reusable ontologies such as DAML ontology and Ontolingua ontology libraries.

It is suggested to create a list of all terms that we would like to explain to users. For instance, different types of books such as novel and poetry, the content, author, and so on.

There are several possible approaches in developing a class hierarchy (Uschold and Gruninger 1996) such as top-down, bottom-up, and combination.

  • In the top-down development process, general concepts are defined first, and then the subsequent specializations are defined. For example, we can start with the Book class and then we specialize the Book class with Novel and Children’s Book class.
  • In the bottom-up development process, specific classes are defined first and then we group these classes into more general concepts. As in the Book ontology, we first define a class for the books 1984 and Brave New World which is Novel, we then create a superclass for these two classes, namely Book.
  • In the combination development process, the more salient concepts are defined first, then we generalize and specialize them.

Once we have done with defining classes, we must also describe the internal structure, namely the properties of the concepts in these classes. An object property becomes a slot of this class. For instance, Book ontology has Genre and Author slots.

It is allowed to have different facets that describe the value types of a slot. For instance, the “Dystopian Fiction” genre is a string. Here are some facets:

  • Slot cardinality defines how many values a slot can have.
  • Slot-value type describes what types of values can fill in the slot such as String, Number, Boolean, Enumerated, and Instance.
  • The domain of a slot is the property that describes the slot.
  • The range of a slot is the allowed classes of type Instance for that slot.

The last step of developing an ontology is to create individual instances of classes in the hierarchy. To do that one needs to;

  1. Choose a class
  2. Create an individual instance
  3. Fill the slots

All in all…

In this post, we have described a simple ontology-development methodology and listed the steps in the ontology-development process. However, do not forget that there is no one correct way to create a single ontology. The important thing is ontology development is an evolving process and we can only asses its quality only by using it in an application.

References

  • DAML — Hendler and McGuinness 2000
  • Ontology Development 101: protege.stanford.edu
  • Bermejo J. (2007). A simplified guide to create an ontology. Technical Report R- 2007–004. Madrid University, Autonomous Systems Laboratory.
  • Horridge M., Knublauch H., Rector A., Stevens R., Wroe C. (2004) A Practical Guide To Building OWL Ontologies Using The Protégé-OWL Plugin and COODE Tools Edition 1.0, The University Of Manchester Stanford University.
  • Noy N., McGuinness D., (2001) Ontology Development 101: A Guide to Creating Your First Ontology.
  • Uschold, M., and Gruninger, M. (1996). Ontologies: principles, methods, and applications. Knowledge Engineering. Review, 11, 2, pp. 93–155.
  • Drawings are created using Sketch.io.

--

--