How to create an ontology

Ontology software

Some of the software applications helpful for creating ontologies are:

Ontolingua

Protégé

Open Cyc

Chimaera

Steps in creating an ontology

When creating an ontology one should also keep in mind that there are always multiple ways in which an ontology can be designed, and that the ontology should be close to physical or logical objects and their relations in the domain.1) Noy, Natalya F., and Deborah L. Mcguinness. Ontology Development 101: A Guide to Creating Your First Ontology, 2001. The process of developing an ontology is an iterative process which can be described in the following steps:1)

Determine the domain and scope of the ontology - Scope and domain of the ontology should be determined knowing what we want the ontology to cover, what we want to use the ontology for, and what information we want it to provide us with. One should also consider reusing or extending existing ontologies2) For example see: Ontolingua ontology library or DAML ontology library .

Identify terms important for the ontology - Prior identification of terms which will be used in the ontology can be helpful.

Define classes and class hierarchy (subclass/superclass) - There are different approaches suggested for developing a class hierarchy:3) Uschold, Mike, and Michael Gruninger. Ontologies: Principles, Methods and Applications. The Knowledge Engineering Review 11, no. 2: 93-136, 1996. cited by Noy, Natalya F., and Deborah L. Mcguinness. Ontology Development 101: A Guide to Creating Your First Ontology, 2001. the top-down approach (where process starts by identifying the more general domain concepts and then progresses towards more specific concepts), the bottom-up approach (where process starts by identifying the more specific domain concepts and then progresses towards more general ones), or the combination, which combines both top-down and bottom-up approaches.

Define the properties of classes (slots) - Slots help defining the internal structure of concepts. Slots can for example be extrinsic, intrinsic, parts or relationships to other individuals. It is important to keep in mind that subclases inherit all the slots of their superclasses.

Define the facets of the slots - Slots can have different restrictions or facets restricting for example: slot cardinality (number of values a slot can have, for example 1, more or 0 - if this slot in a particular subclass can't have a value), slot-value type (for example string, number, Boolean, enumerated or even instance), or domain (the domain of a slot contains all the classes with this slot) and range (if a slot is an instance, its range are considered to be all the classes the instance can be originating from) of a slot.

Create instances - The last step consists of creating instances for every introduced class and filling in its slot values.