4.1. Ontological Principles of Information Modeling

Ontology is the philosophical discipline that investigates which categories of things (such as objects, events, processes, etc.) do exist in the real world. Since the goal of information modeling is to capture the required types of information about relevant parts of the real world, it is important to understand the ontological foundations of information modeling.

We present seven principles that summarize the ontological foundations of information modeling and information systems.

1 Entities

An information system (IS) has to represent information about entities that occur in the universe of discourse of its domain, and that can be uniquely identified and distinguished from other entities. Examples of such entities are: the Mount Everest, the Empire State Building, John Travolta, the movie "Pulp Fiction", and the wedding of Prince William and Catherine Middleton.

The two most important kinds of entities are objects and events. The Mount Everest is an object, while the wedding of Prince William and Catherine Middleton is an event.

2 Qualities and Relationships

Entities have qualities and participate in relationships with other entities. Examples of qualities are:

  • the height of the Mount Everest,
  • the shape of the Empire State Building, and
  • the eye color of John Travolta.

Examples of relationships among entites are:

  • The Mount Everest is higher than the Empire State Building.
  • John Travolta is an actor in "Pulp Fiction".
  • Prince William is married to Catherine Middleton
3 Entity Types

Entities are classified by entity types. Examples of entity types are: mountains, buildings, people, movies, movie performances and weddings. The two most important kinds of entity types are object types (such as mountains, buildings, people, and movies) and event types (such as movie performances and weddings).

Entity types are represented, or implemented, as classes in object-oriented programming languages and as tables in (relational) databases.

4 Properties

An entity type comes with properties that allow making statements about the qualities of an entity classified by the entity type, or about its relationships with other entities. Each property has a range. When its range is another entity type, the property is called a reference property. When its range is a datatype, it is called an attribute.

Examples of reference properties are:

  • the owner of a building,
  • the director of a movie.

Examples of attributes are:

  • the height of a mountain given as a quantity combining a positive integer with the length unit "meter",
  • the eye color of a person given by three integers in the range between 0 and 255 representing an RGB triple.
A property can be viewed as a fact type that classifies attribution facts or binary relationships. For example, the attribution fact that the height of Mount Everest is 8,844 m is an instance of the attribute height (of a mountain). And the is director of-relationship between Quentin Tarantino and "Pulp Fiction" is an instance of the reference property director (of a movie).

A class implementing an entity type defines a list of properties for representing relevant quality types and binary associations. Each property is defined with a range. The range of a reference property is a class (normally representing an entity type), while the range of an attribute is a datatype (such as Integer or String).

5 Associations

Domain relationships between entities are classified by associations (or relationship types). An association is a relationship between entity types. In many cases, associations are binary (involving only one or two entity types). For instance, the association is-director-of is a binary association between the object types people and movies. But there are also cases of n-ary associations between one or at most n entity types.

In an IS, associations can be represented by reference properties of a class in an OO program, or by relationship tables in a (relational) database.

6 Object States

The state of an object, which may change over time, consists of its qualities and its relationships with other entities.

In an IS, the state of an object can be represented by the property value slots of an OOP object or by the column values of a table row representing the object in a (relational) database.

7 Specialization and Inheritance

There may bekann a special relationship between two entity types that is independent of the application domain: specialization or generalization (also known as subclass/superclass relationship). When an entity type specializes another entity type, then it inherits its properties.

OOP languages (like Java, JavaScript or C#) allow defining a class as a subclass of another class such that it inherits its properties (and methods).