What is an Ontology
This blog contains the basic building blocks required to understand what an Ontology is. Understanding the meaning of the word ontology has been a complicated topic in the industry and this blog will indeed help clarify matters. Please make note that this blog gives an entry level description to ontologies and a more detailed blog for developers will be published soon.
1) What is an Ontology?
The definition for ontologies is a widely argued topic which seems to generate a lot of controversy in discussions about Artificial Intelligence. It has a long history in philosophy, in which it refers to the subject of existence. It is also often confused with epistemology, which is about knowledge and knowing.
The word ontology comes from two Greek words
Let us try and understand the definition of an ontology in a philosophical context and a non-philosophical context (computer science).
1.1 Philosophical Definition
In general, an ontology is the study on what entities exist in this universe and what relationships they possess on each other. This also includes details on how these entities can be grouped within a related hierarchy, and sub divided according to similarities and differences.
An entity is something that exists itself, as a subject or as an object, actually or potentially, concretely or abstractly, physically or not. This makes a distinction between a things existence and its qualities. This could be a concrete thing or an abstract idea, where the existence of that thing is what matters to an entity, not the qualities associated with it. Entities are considered to be the fundamental building blocks of ontologies. They define the vocabulary (the common set of words) of an ontology.
Eg: Shoe, Walking, Teacher, Teaching, Studying etc. ( These can be subjects, objects, physical, non-physical etc)
In philosophy, ontology is the study of what exists, in general. Philosophers use the concept of ontology to build challenging questions to build theories and models, and to better understand the ontological status of the world. Like what are the fundamental parts in the world? How are they related to each other?
Shoes is a physical object. Walking is an immaterial concept. Are physical objects such as shoes more real than the concept of walking? What is the relationship between shoes and walking.
The philosophical ontology has two major branches
1.1.1 Ontological Materialism:
The belief that material things such as particles, energy are more real than the human mind. The belief that reality exists, regardless of human observers.
1.1.2 Ontological Idealism:
The belief that immaterial phenomenon, such as the human mind and consciousness are more real than material things. The belief that the reality is constructed in the mind of the observer.
1.2 Computer Science Definition
In computer science, an ontology is a data model that represents knowledge as a set of concepts within a domain, and the relationships between these concepts. When describing an ontology, it normally happen within a certain scope of a domain. Understanding and creating ontologies for the entire universe would be meaningless and endless.
Inline with the philosophical definition, an ontology is a formal naming and definition of the types, properties and interrelationships of entities, that really or fundamentally exist for a particular domain of discourse. It is thus a practical application of philosophical ontology, with a taxonomy (classification).
Here an ontology is the description of what exist specifically within a determined field (domain). Unlike the philosophers mentioned above, these researchers are not primarily interested in discussing if these things are the true essence or the core of the system. They do not even compare what is real between the parts within the system (physical materials) and the processes happening in the system (immaterial concept). The purpose is to understand and describe the underlying structures that affect the individuals and groups.
They are more focused on naming parts and processes (labeling) and grouping similar ones together into categories.
If a classroom (System) is considered, there is a Teacher, Subject (Part of the system) and Teaching (Process of the system).
2) Why use Ontologies?
Today, people have access to more data from various sources broadening to many different domains and information systems. The amount of data that can be accessed within a single date has increased over time, when compared with the information systems we had decades ago.
For example, if we look at an enterprise, their data sources can be found in many different forms like spreadsheets, databases, presentations, documents, Visio diagrams etc. Since these are all captures in many different formats, it makes it inherently hard to understand the relationship between different data. In a situation like this, it is very hard to understand how policies captured in word documents, relate to business processes captured in models,and how these business processes relate to data captured in the database and so on.
Data needs to be allowed to represent in a format where we can identify all these relationships and stored. Ontologies capture data in a way that allows these relationships to become visible. An ontology is a form of knowledge management. It captures the knowledge within a certain domain (organization/ information system) as a model (data model). This model can then be queried by users, to answer complex questions and display relationships across a domain.
According to the Tom Gruber, an AI specialist at Stanford University, "an ontology is the specification of conceptualizations, used to help programs and humans share knowledge." This means that an ontology is a set of concepts (things), events and relations that are specified using natural language, in order to create an agreed-upon vocabulary for exchanging information.
Conceptualization - Breaking the world into concepts in terms of Entities
Specification - This is the representation of this conceptualization in a concrete form.
3) Basic Structure of an Ontology
The two main standards that govern the construction of ontologies are the "Resource Description Framework (RDF)" and the "Web Ontology Language (OWL)". According to these two standards, an ontology is made up of classes and relationships.
Classes - Ovals
Relationships - Arrows
Classes - Person/ Organization
Relationships - Has employer
4) Main Components of an Ontology
The four main components of an ontology are
A concept represents a set or class of entities or `things' within a domain. For example, "case law" can be taken as a concept in the legal domain. There are two kinds of concepts.
Primitive Concepts : These are those which only have necessary conditions (in terms of their properties) for the membership of this class. As an example, for a doctor to practice in Sri Lanka, he/she should necessarily have the SLMC certificate.
Defined Concepts : These are those whose description is both necessary and sufficient for a thing to be a member of the class. As an example, for a doctor to practice in Sri Lanka, he/she should have the SLMC as well as the Degree.
Relations describe the interactions between concepts or a concept's properties. There are two kinds of relations.
Taxonomies - organize concepts into sub- super-concept tree structures
Associative - relationships that relate concepts across tree structures
These are the `things' represented by a concept. For example in the classroom system, "Prof Maurice" is an instance for the concept "Teacher". An ontology does not have any instance. It is merely a conceptualization of the domain. The combination of the ontology with associated instances is what is known as a "knowledge base".
Axioms are used to constrain values for classes or instances. Like Age should be greater than zero and less than 120.
5) How to use an Ontology?
An ontology can then be queried by users, to answer complex questions and display relationships across a domain. This can be used to identify real life relationships of the entities. Let's consider the following example.
Peter - An instance of the class Person
WSO2 - An instance of the class Organization
An ontology is capable of capturing the relationships between these two instances and according to this example, it gives the relationship called "Has employer". Read out as, "Peter has employer WSO2".
As explained above, the combination of classes and relationships is known as a "Triple". A Triple consists of a subject, object and a predicate. This makes the heart of ontologies. Using these Triples, they can all be combined in order to show the comprehensive view of the real world, within an ontology.
For example, if we get a Triple (Relationship of classes) where "John" is the subject, "Has employer" is the predicate, and "Codegen" is the object, this can be merged with the comprehensive view of the real world represented by our ontology. Having many Triples will make the system more comprehensive in terms of the selected ontology.
6) Let's Build an Ontology
In an ontology, concepts are only defined in terms of their relationships to other concepts. Let's build an ontology for a "Person" in our selected, hypothetical domain.
Following are the identified concepts of our ontology. All of these concepts should be represented using ovals.
Person, Colour, Address, Gender, Date, Race
Following are the identified Relationships. All of these relationships should be represented using arrows.
Has address, Has gender, Has hair colour, Has DOB, Has race
Connect the concepts in step 1, using the relationships in step 2.
Imagine that we have a set of Triples which we have already stored under this selected domain. Ontologies and designed and structured in such a way that it will help us catch relationships whenever needed. If we need to figure out a person, given that this person has many relationships to other concepts. Following are the given relationships of that person.
Gender - Male
DOB - August 4, 1961
Race - African American
Hair Colour - Black
Address - Whitehouse
Using these relationships and our ontology, we can find out who this person is. Using these, we can figure out that this person is indeed Barrack Obama. Ontologies can capture such relationships easily.
Ontologies are also easily extensible. If we need to extend a normal piece of software, we might have to rewrite a lot of codes. But in ontologies, new relationships can easily be added to existing ontologies. This enables any system to extend the ontologies without disrupting its normal flow, if the ontology is already in use. Following relationships will be added to our ontology.
Has Spouse (For this we can use the already existing concept called Person)
Has Mobile Number ( For this we need to introduce a new concept called Number)
7) Areas of Interest for Ontologies
Artificial Intelligence - This is an intelligence expressed by machines. Intelligent agents are the components that perceive its environment and take actions that maximize its chance of success at some goal. Read this for more.
Semantic Web - The Semantic Web is an extension of the Web through standards by the World Wide Web Consortium (W3C). The Semantic Web provides a common framework that allows data to be shared and reused across application, enterprise, and community boundaries. Read this for more.
Systems Engineering - This is an interdisciplinary field of engineering management and engineering that mainly focuses on how to design complex systems over their life cycles. At its core systems engineering utilizes systems thinking principles to organize this body of knowledge. Read this for more.
Software Engineering - This is where the engineering expertise gets applied to the software development in a systematic method. Read this for more.
Biomedical Informatics - This is where information technology is being applied to the medical arena. It is a multidisciplinary field. Read this for more.
Library Science - This is a multidisciplinary field where it applies the practices, perspectives, and tools of management, information technology, education, and other areas to libraries. Read this for more.
Enterprise Bookmarking - This is a method for users to tag, organize, store and search for bookmarks of both web pages on the Internet and data resources stored in a distributed database or file-server. Read this for more.
Information Architecture - This is an architecture which has a structural design of shared information environments. the art and science of organizing and labeling websites, intranets, online communities and software to support usability and findability. Read this for more.