Fact-Based Modelling

Fact-Based Modelling Fact-Based Modelling is a form of conceptual modelling that captures the structure of information presented as ‘Facts’. A Fact may be written in the form “Person ‘Barack Obama’ is ‘1.85’ Meters tall’”, from which a Fact Type captures the structure, “Person is Height (in Meters) tall”.

What differentiates Fact-Based Modelling from other, and more simplistic conceptual modelling languages (e.g. Entity Relationship Diagrams and UML Class Diagrams), is that Fact-Based Modelling is semantically rich in the information that it captures about Facts within Fact Types.

In our example, ‘Person’ may be analysed as being an Entity Type (as above). We express ‘Height (in Meters)’ as a special type of Entity Type that represents a value of unit measurement. Usually, however, place-holders for values are analysed as Value Types, and “Person ‘Barack Obama’ has first-Name ‘Barack’” would have Name represented as a Value Type.

Object-Role Modelling was first formalised as a homomorphism of first-order logic under finite model theory as output of Dr Terry Halpin's 1989 PhD thesis.

ORM has a rich set of Constraint types (over 10 different types) that are used to constrain the data that may be stored and represented within a model developed in ORM. For instance, a Subset Constraint may be used to indicate that a Person with a recorded height is a subset of all those Persons who are alive (as below).

A defining feature of Fact-Based Modelling and ORM is that models may be easily converted to Relational Models, Class Models or Property Graph Schemas.