This is an old revision of the document!
What is an ontology?
“ontology is the study of being or existence. It seeks to describe or posit the basic categories and relationships of being or existence to define entities and types of entities.
In modern computer science and information science basic definitions consider an ontology to be:
“a data model that represents a set of concepts within a domain, and the relationships between those concepts
“an explicit specification of a conceptualization.
“an explicit formal specification of the terms in the domain and relations among them
In more details, an ontology can be described as:
a formal explicit description of concepts or classes in a domain of discourse, with
properties of each concept describing various features and attributes of the concept (slots, roles or properties), and
restrictions on concept
or role restrictions
An ontology has the following properties:6)
it is used to reason about the objects in a domain;
specifies the classes of concepts and their relations at a higher level than relevant to the domain;
captures the intrinsic conceptual structure of a domain;
forms the hearth of the knowledge representation within a domain.
Why do we need an ontology?
An ontology can be used to:7)
share common understanding of the structure of information among people or software agents
enable reuse of domain knowledge
make domain assumptions explicit
separate domain knowledge from the operational knowledge
analyze domain knowledge
Some of the software applications for creating ontologies are:
How to create an ontology?
The process of developing an ontology is an iterative process which can be described in the following steps:8)
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 ontologies9)
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:10)
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 of some class) of a slot.
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.11)