www.entitymodelling.org - entity modelling introduced from first principles - relational database design theory and practice - dependent type theory
Entity modelling has the questions ‘What is?’ and ‘What can be said of it?’ at its heart. We can define it to be the process of defining what can be predicated of entities and it necessarily seems to embrace, in passing, many questions of philosophy, specifically of Ontology, the branch of metaphysics dealing with the nature of being.
In ancient times, Aristotle had used the Greek word ousia (being) to describe the subject, to which predicates are ascribed1. Traditionally in translation the Greek ousia has been rendered as substance, a term with broad connotations whereas the Latin word ens which is, as is also the Greek ousia, the present participle of the verb to be, yielded our modern English word entity defined as:
The term entity, as we use it here in the term ‘entity modelling’, was introduced into information science by Chen in 1966. An entity for our purposes is simply something about which it is possible to have knowledge and which can be counted. Thus we can have fictional entities such as characters from a book or entities whose state of existence we can debate such as the number zero or the transcendental number π.
In Aristotelian ontology, as outlined in Categories, there are ten genera of being. The first genus of being, ousia, is of two types: primary and secondary. Primary ousia are individual things — they are our entities, secondary ousia are classes of things, or the genera and species of things — for us these are entity types. The other genera of being (quantity, quality, relation, place, time, position, state, action, affection) are properties inherent in the primary ousia.
Though Metaphysics has such ancient origins, there is an intersection of concerns between it and a most practical and modern discipline, namely of software engineering and the programming of computer based systems. The overlap exists because metaphysics has as its subject matter what is most general about things in general — not just physical properties of physical things — and the software development discipline starts with the representation of the very same generalities. So whereas most computer programs have as their subjects, everyday if not concrete and physical things, things such as people, accounts, orders, contracts, airline bookings, and so on; other computer programs have as their subjects programs themselves, mathematical functions, relationships in general, not particular, types of things as distinct from the things themselves, and so on.
The ontology of computer data is myriad: computer databases hold data, but also data about data, and data about data about data; the referentially rich, and it sometimes seems, tottering, structures of data involved in real working software can seem unreal; as to can the arguments made by metaphysicians and the positions they hold to. Distinctions are made in the modelling of data, for the most practical purposes and to achieve the ends of programming, which rendered in metaphysical discussion could be comfortably described as esoteric.