How to create an ontology
Some of the software applications helpful for creating ontologies are:
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) The process of developing an ontology is an iterative process which can be described in the following steps:2)
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 ontologies3)
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:4)
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.