Giovanni Pirrotta

Just a curious person

Developing an Ontology

October 18, 2015

The term ontology has its origin in philosophy; in the framework of computer science, it represents a formal representation of knowledge as a set of concepts within a domain, and the relationships between these concepts.


In the literature we can find many other definitions to explain and define what ontology represents and means.

  • Defines the concepts and relationships used to describe and represent an area of knowledge (Ivan Herman, W3C)
  • A taxonomy combined with inference rules (T. Berners–Lee, J.Hendler, O. Lassila, W3C)
  • The theory or study of being as such; i.e., of the basic characteristics of all reality (Encyclopedia Britannica)
  • The science of something and of nothing, of being and not–being, of the thing and the mode of the thing, of substance and accident (Gottfried Wilhelm Leibniz - Sämtliche schriften und briefe.)
  • A formal definition of concepts (entities, relationships) of a given area of knowledge, described in a standardized form (Carugo & Pongor, 2002)
  • A systematic arrangement of all of the important categories of objects or concepts which exist in some field of discourse, showing the relations between them. (Collaborative International Dictionary of English)
  • An ontology can be defined as a structured and limited concept catalog not unambiguously defined (Uitermark)

The term ontology is used in artificial intelligence, in the Semantic Web, in systems engineering, in software engineering, in biomedical informatics, in library science, in enterprise bookmarking and information architecture as a form of knowledge representation about the world or some part of it.

Ontologies have become common on the World Wide Web. The W3C Consortium developed the RDF Model, a language for encoding knowledge on Web pages to make it understandable to electronic agents. An ontology is the final result of a knowledge engineering process, a well–defined schema allows us to unambiguously define concepts and relationships over a specific knowledge domain.

As an ontology is an explicit description qualitatively advanced of domain concepts, it can be published and reused for different purposes, even if they were not included when it was created. Starting from standardized ontologies, it becomes much easier to develop their more specific ontology reusing and extending the existing ones.

Now we will see briefly the steps to follow in the knowledge engineering process.

Domain Definition

The starting point is the domain to model.

  • We have to specifically define the ontology domain.
  • We have to define what use you intend to do with the ontology.
  • For what types of questions the information in the ontology should provide answers?
  • Who will use and maintain the ontology?

One of the ways to understand the domain of the ontology is to sketch a list of questions that a knowledge base relying on the ontology should be able to answer. This task is called competency questions (Gruninger and Fox) and is useful to understand if the ontology includes sufficient information or needs further details. The ontology development is an iterative process and there are many correct ways to model a domain, so the question list should not necessarily be exhaustive.

Reusing Existing Ontology

Rather than reinvent the wheel, a very important aspect in the ontology development process is to consider reusing existing ontologies. As someone might have already defined an ontology about the same topic, it should be better to reuse and extend it for a specific purpose, thus saving a lot of hard work, instead of rewriting a new one. We can find hundreds of ontologies for any field of application.

Some of the most famous ontologies in the Semantic Web area are:

  • Dublin Core. Dublin core ontology provides a simple and standardized set of conventions for describing things online in ways that make them easier to find. Dublin Core is widely used to describe digital materials such as video, sound, image, text, and composite media like Web pages.
  • FOAF. The Friend of a Friend (FOAF) Ontology, defined using OWL language, is an RDF extension created to define people, their activity and their relationships with other people and other objects. The FOAF project is creating a Web of machine–readable pages describing people, the links between them and the things they create and do.
  • SKOS. Simple Knowledge Organization System Ontology is a common data model for sharing and linking knowledge organization systems, such as thesauri, taxonomies, classification schemes and subject heading systems, share a similar structure, via the Web.

Identifying Concepts

At this point, the goal is to extract and list all terms relative to the model. After collecting the most important words, we have to identify terms representing concepts, preferring to use nouns, and terms representing relations. Moreover, we have to define the hierarchical relation between concepts and we can use three approaches:

  • Top-down: we start from the more general concepts to more specific ones, up to the desired level of detail;
  • Bottom-up: we start from the more specific concepts and go up the hierarchy to the more general concepts;
  • Hybrid: we start from the concepts of more immediate detection, to specify or abstract them where necessary.

Identifying Properties

Starting from the above same term list we have to identify relationships between concepts identified in the previous step. Depending on property type, we can identify intrinsic properties which are those relating to the concept content, independently of other things, including its context and extrinsic properties which are those depending on a thing’s relationship with other things. To correctly model a specific domain, we need to define some ontology constraints to ensure instance consistency and validity. The most commonly used constraints are:

  • cardinality constraints: to specify the minimun and/or maximum relationship cardinality between concepts. For example, each son has exactly one mother and one father, and so forth;
  • value type constraints: to specify the literal value types. For example string, number, boolean, date, etc;
  • domain constraints: to specify what instance types the properties accept as subject;
  • range constraints: to specify what instance types the properties accept as object.


  • Natalya F. Noy and Deborah L. McGuinness - Ontology development 101: A guide to creating your first ontology.
  • Dean Allemang and Jim Hendler - SemanticWeb for the Working Ontologist: Effective Modeling in RDFS and OWL. Morgan Kaufmann, 2008
  • M. Gruninger and Fox - Methodology for the design and evaluation of ontologies. In In: Proceedings of the Workshop on Basic Ontological Issues in Knowledge Sharing IJCAI, Montreal, 1995.
  • John Davies, Dieter Fensel, and Frank van Harmelen - Towards the Semantic Web, Ontology-driven Knowledge Management. Wiley, 2002