Ontology 101, Part 1: What is an Ontology
posted by Mosaic Data Science
Through the use of an ontology in the development process, each team member (i.e., business analysts, data architects, and developers) plays a crucial role in maintaining a consistent story and plan across all aspects of the application. Understanding that the word “ontology” is new to some people, I thought it would be useful to explore the world of ontologies by giving a more formal introduction.
In Part 1, we will look into just what an ontology is and what are the key components. For the purposes of clarity, all references to specific classes, properties, and individuals contained within an ontology will be written in italics, like this.
An ontology is used to capture knowledge about a domain of interest by describing the concepts in that domain and the relationships that are held between those concepts. Specifically, it defines a common vocabulary for researchers who need to share information in a domain and it includes machine-interpretable definitions of basic concepts in the domain. Organizing information in an ontology does the following:
- Shares a common understanding of the structure of information among people or software agents
- Enables the reuse of domain knowledge
- Makes domain assumptions explicit
- Separates domain knowledge from the operation knowledge
- Analyzes domain knowledge
Regardless of the domain, there are three main parts to an ontology: classes, properties, and individuals. To illustrate the differences between these parts, a sample ontology that describes information about different cars will be used. This sample ontology is shown in the figure below.
Classes (also known as concepts) are the focus of most ontologies as they describe the primary concepts in a domain. They contain instances, or individuals, of that class that are within our domain of interest. In the sample ontology shown in Figure 1, there are two classes which are rep- resented by the solid blue circles: Car and Color. These classes contain three individuals (represented as red diamonds) which are instances of that class. The Car class contains the individuals Civic, Explorer, and Mustang and the Color class contains the individuals Blue, Red, and Silver.
Figure 1. Sample car ontology
Classes in an ontology can also have subclasses which represent concepts that are more specific than the superclass. Represented as dashed blue ovals in the figure, the Car class contains three subclasses: Compact, SUV, and Sport. This superclass-subclass hierarchy is known as a taxonomy. It is important to note that this hierarchical class structure in an ontology implies an “is-a” relationship between subclasses that are subsumed by a superclass. In other words, if class A is a superclass of class B, then every instance of B is also an instance of A. For example, “A compact is a car” or “An SUV is a car.” This is an important verification step in the development of an ontology as it ensures that the class hierarchy is correct. If this implied relationship fails, the overall structure and inferred relationships of the ontology will be incorrect. For instance, Metallic could not be a subclass under Color because the test “Metallic is a color” fails.
The TransmissionType class is special type of class called a Value Partition. Represented as an orange circle in the figure, Value Partitions are used to refine the descriptions of a class by restricting the range of possible values. The Value Partition in the car ontology contains only two values: Automatic and Standard. This allows us to classify the cars in the ontology based on whether their transmission type is either ‘automatic’ or ‘standard.’
Properties (also known as slots) describe the relationships between a class and another class (object property) or a class and a data type (data property). In the sample ontology, there are two object properties represented by the green arrows: hasColor and hasTransmissionType. The hasColor property links the Car class to the Color class by stating that the members of the Car class has at least one color from the members of Color class. Similarly, the hasTransmissionType property links the Car class to the Transmission Type class by stating that the members of the Car class has exactly one transmission type from the Transmission Type class. The lone data property in the ontology is hasMPG and represented by the yellow arrow. This property states that the members of the Car class have exactly one miles per gallon value and that value is a positive integer.