MODAF Concepts

What is an Ontology ?

First published in a report on Ontology for ICAD and the IA, this is a brief overview of the basics of Ontology.

Ontology is the study of what exists. As a discipline, it has been honed over thousands of years by the finest minds in philosophy and mathematics. In recent years, the topic of ontology has come to some prominence in the domain of software engineering. The formal principles of ontology used by mathematicians and logicians have been shown to be useful in enabling software systems to better represent the physical world, and so more accurately support users’ requirements.

Developing a proper formal ontology is not a task to be taken lightly. New ontologies appear daily on the web, which are little more than traditional data models represented in OWL (the W3C’s Web Ontology Language). Where true ontologies do exist, they are the result of years of hard work by academics and software professionals. Good examples are SUMO , ISO15926 and Dolce.

The main benefit of an ontology for an organization like the MOD is that, if properly designed, it can offer great benefits of interoperability. This is because a true, formal ontology aims to describe what exists rather than what is perceived – in other words, it is not slanted towards any particular stakeholder’s view of the world. This is sometimes described as a “view from nowhere”, and it is this feature that makes an ontology particularly useful in enabling parties with very different views to come to an agreement on meaning. This feature is also the reason that ontologies are difficult to develop properly – each new term in the ontology must be adequately analysed to assess its true meaning and establish how it relates to other parts of the ontology. Great care has to be taken not to “model the entire world”, and a practical ontology should remain focussed on the domain it is to support.

Most formal ontology development is based around set theory or similar branches of mathematics and logic such as category theory or type theory. The fundamental components of an ontology are classes and individuals. Individuals are things which have spatial and temporal extent – e.g. me, you, the computer you’re using, the Eiffel Tower, etc. Classes are categories of things – e.g. people, organizations, computers, monuments. This is easily illustrated with a Venn Diagram:

Aside from these fundamental concepts, there are a number of important relationships. The first to consider is the relationship between class and individual (as illustrated in the previous diagram). The second is specialisation – i.e. one class being a subset of another:

The example above shows that there are two subsets (specialisations) of person which are UK nationals and US nationals. Note that the sets overlap to cover the case of dual nationality. Mistaking class-individual for specialisation is a common mistake – you are not a type of person, you are a person. This degree of semantic precision is essential in developing an ontology, and is at the root of what makes an ontology useful and also what makes it difficult to develop.

Other than class-individual and specialisation, there is the general case of relationships between classes (sometimes called predicates). These establish common patterns in the ontology – e.g.

The example above establishes two relationships that assert people can both play in competitions and spectate at them. These relationships are classes themselves – i.e. there can be actual relationships between individuals:

Another important aspect of formal ontology development is the fact that classes can be classified – i.e. it’s not just individuals that belong to classes. This is often ignored by ontology developers, but it has to be realised that a very large proportion of the information that businesses work with is classification information. To be able to manage this information properly, it has to be classified – i.e. classification of classes. The example below shows members of the class competition type which are themselves classes:

Any ontology that is to be useful must deal with classes of classes. In formal terms, this is called a higher-order ontology (an ontology which only has classes whose members are individuals is first-order). A practical problem of software implementation exists with higher-order ontologies – a machine reasoner is not guaranteed to resolve an answer from a higher-order ontology in a finite amount of time. This presents something of a dilemma to ontology developers – the real world is higher-order, but the reasoners and inference engines can only practically work with first-order ontologies. Two solutions are possible. The first is to develop a higher-order ontology and implement without using reasoners (the commercial benefits of reasoning and inference are still as yet confined to niche applications). The second is to “compress” the higher-order concepts into a first-order framework (this usually means replacing the class-individual relationships with simple predicates).

Page version 1.1, dated 4th April 2007