Ontology Development Methodology
The following methodology has been drawn from Ontology Development 101: A Guide to Creating Your First Ontology. This is a high level and simplified methodology and should only be considered a starting point for the development process. This document conforms to the OWL 2 standard which is used in Protégé 4.x.
For the purpose of this guide an ontology is a formal explicit description of concepts in a domain of discourse, properties of each concept describing various features of the concept, and restrictions on properties.
Although this methodology is written as a sequence of steps, it is not necessary to proceed in a strict sequential order; it may be necessary to iterate through several steps before proceeding, or skip steps. However, completion of all steps will ensure the development of a useful ontology.
- 1 Step 1. Determine the domain and scope of the ontology
- 2 Step 2. Use of existing ontologies
- 3 Step 3. List the relevant terms of the domain
- 4 Step 4. Define the classes and the class hierarchy
- 5 Step 5. Define the object properties of the class
- 6 Step 6. Define the datatype properties
- 7 Step 7. Create instances
Step 1. Determine the domain and scope of the ontology
The exercise of determining domain and scope of the ontology can be defined by answering the following questions. The answers to these questions may be expressed as use cases; situations that describe possible events that illustrate the answers. Successful completion of the ontology may be measured on the degree to which the questions have been addressed.
- What is the domain that the ontology will cover?
- For what (or how) are we going to use the ontology?
- Who else will use the ontology?
- For what types of questions will the information in the ontology provide answers?
- Who will maintain the ontology?
Step 2. Use of existing ontologies
Ontologies and vocabularies may exist in the domains covered by this development project or in adjacent domains. HL7 vocabulary policy states that existing vocabularies should be used if they are available and meet the requirements of the project. It is useful to identify these ontologies, either for inclusion, harmonization or to define the boundaries of the project.
Step 3. List the relevant terms of the domain
In this step we capture terms in the domain that are important in describing the domain. These may be terms that are commonly used in the domain or terms that are used to describe properties and associations. The fact that these terms may describe equivalent or overlapping concepts is not important at this step nor is it necessary to structure or organize the terms; it is sufficient to capture them.
Step 4. Define the classes and the class hierarchy
This is the initial step in organizing and introducing structure to the terms captured in Step 3. From the list of terms we selected in Step 3, we choose those that represent objects that have independent existence rather than those that describe these objects. Class is the general name chosen for these terms. Classes are used to denote the set of objects comprised by a concept. These classes can be associated with other classes through generalization/specialization relationships where appropriate. Generalization/specialization relationships are described as is_a (or kind_of) relationships.
Additional classes may be added to generalize or specialize the original classes if needed at this point.
Step 5. Define the object properties of the class
Entities describing in which way individuals are related are called object properties or simply properties. As with classes, properties can be structured in hierarchies. OWL allows for negative property assertions; that a type of relationship does not exist between two individuals. This kind of information is particularly important in OWL where the default stance is that anything is possible until you say otherwise.
Allowed classes for a property are called the range of the property while the actual classes the property describes is called the domain of the property.
Step 6. Define the datatype properties
The datatype property relates an individual to a data value, numeric information, as opposed to an object property which relates an individual to another individual. Like object properties, datatypes can be constrained by assigning domains and ranges.
Step 7. Create instances
The final step in the development of an ontology is to create actual instances from the abstract representation created. This involves choosing a class, creating an individual instance of that class and filling in the property values. These instances should, at a minimum, satisfy the questions and use cases that were established in Step 1.