Joris Slob - Ontologies



Ontology is the study of existing entities. When we look around us, we see things. Humans, as opposed to machines, are naturally able to divide our images of the world into distinct objects. Our language is a testament that humans seem to agree what entities exist in our reality. Of course, we teach our children what tables, trees and dogs are, but after that, humans are able to abstract the idea of dogginess and apply that name to new instances of dogs. Ontologies try to impose order on those entities and formalize the knowledge that we humans seem to build naturally.


An ontology (as used in computer science) is a set of entities and the logical relations between these entities. Entities can be split into two things: concepts and instances. Instances are representations of specific entities you are trying to model. Concepts are generalizations to which instances belong.

For instance, when I want to model the beings that live in a house I could first write down all the instances of beings that live there: John, Mary and Felix the cat. John and Mary are humans and Felix is a cat. So we could construct an ontology like this:

	      There are living beings
	      Humans are living beings
	      Cats are living beings
	      John is an instance of Human
	      Mary is an instance of Human
	      Felix is an instance of Cat

Or in machine readable Turtle format:

	      :Living_Being rdf:type owl:Class .
	      :Human rdf:type owl:Class ;
	             rdfs:subClassOf :Living_Being .	      
	      :Cat rdf:type owl:Class ;
	           rdfs:subClassOf :Living_Being .
	      :John rdf:type :Human ,
                    owl:NamedIndividual .
	      :Mary rdf:type :Human ,
                    owl:NamedIndividual .
	      :Felix rdf:type :Cat ,
                     owl:NamedIndividual .

Of course, you can express more relationships between entities (John and Mary own Felix) and give entities properties (humans have two legs, cats have four legs).