Entity Modelling

www.entitymodelling.org - entity modelling introduced from first principles - relational database design theory and practice - dependent type theory


Howlers and Other Violations

Taking a bearing from a map, choosing a meal, calculating a trajectory, developing a new drug, if errors are made then it is preferable to find them early — before the impasse, the disappointment, the failed flight, the failed drug. So it is with computer programming and logical analysis of any kind — if errors are to be found, if systems are to fail, if rethinks are to ensue then better rethink or reprogram early rather than backtrack later. In software development, there is a class of errors called ‘type errors’ such as, in the context of logical analysis, philosopher Gilbert Ryle called ‘category mistakes’ or, more strikingly, ‘category howlers’.

There is a class of programming language [the statically typed languages] in which type errors are not tolerated — they need to be fixed at the earliest possible stage — unless they are fixed the program cannot be deployed or executed. Use of such a programming language helps the programmer avoid such ‘howlers’ but H G Wells took Logicians to task for not helping ‘thinking men’ in avoiding such errors:

Finally : the Logician, intent upon perfecting the certitudes of his methods rather than upon expressing the confusing subtleties of truth, has done little to help thinking men in the perpetual difficulty that arises from the fact that the universe can be seen in many different fashions and expressed by many different systems of terms, each expression within its limits true and yet incommensurable with expression upon a differing system. There is a sort of stratification in human ideas. I have it very much in mind that various terms in our reasoning lie, as it were, in different planes, and that we accomplish a large amount of error and confusion by reasoning terms together that do not lie or nearly lie in the same plane.

Other errors arise through confusions of context and some such, in programming parlance, are called scope violations. These arise when relationships are asserted between individuals whose contexts are a priori inconsistent with them. Scope violations are attempts to relate across contexts illegally.

Of all errors, in logical reckoning or in programming, category howlers and scope violations we need to fix; without fixing them we don't have proper basis to continue. To avoid these howlers we need to be clear about types and scopes — it is establishing clarity on types of entity and types and scoping of relationships that is the purpose of an entity model.

The specification of scopes — that we might understand them and avoid errors of scope — is a distinguishing feature of this presentation of entity modelling and it's supporting software. We return to the topic in the scope concept section later.