My last post was an attempt to drag myself out of the realism debate; unfortunately, Chris Mungall replied, and he deserves an answer. Fortunately, his comment addressed an issue that I have been meaning to post for a while, which is the use of “not”, or “absent” in an ontology. I’ll make a brief aside into realism, then describe the pragmatic design decisions that lie at the heart of the issue. Feel free to skip the realism bit.

The realist objection

“I wasn’t aware of the realist objection to the not / complementOf construct.”

— Chris Mungal

Obviously, the standard problem with realism is that it is ill-defined, so it is, therefore hard to determine exactly what is does mean. My reading that realism objects to “not” comes from the “Beyond Concepts” paper ( *).

This paper describes this form of class as “purely contingent”, that is not universals. Again, this is based on Barry’s misunderstanding of OWL set-theoretic semantics, and that classes are defined by their extensions, rather than all possible extensions.

The pragmatic issue

First, considering the logic.

“Which seams reasonable since I don’t know how to define ‘absent wing’ in OWL in a way that would give me the correct inferences”

— Chris Mungall

As is always the case, the are advantages and disadvantages. The problem, as you allude to, is not absent wing per se, but with the inference absent wing is-a wing, which is logically incorrect.

Now, of course, as a user I might validly say, I don’t care about the logical incorrectness. However, this incorrectness makes queries harder — to answer the question “how many wings do these three flies have”, you have to actually ask “how many wings, except for absent wings…​”. So, therefore, “absent wing” is wrong.

Sadly, the world is not so simple, as using “absent wings” also makes things easier, because I can ask “how many of the flies have abnormal wings” straight-forwardly. In general, users would consider an absent wing to be abnormal. So, now the user has to remember to ask something like “how many of the flies have abnormal wings, or less than two wings”.

So, from a logical perspective, there are gain and losses either way. The bottom line is that, “absent wings” have a nasty sting in the tail (to mix my metaphor), and it is an issue that you have to be aware of when building ontologies; there isn’t a universal answer.

We can also see the same issue, from another perspective, which I have stolen from Gary Merrill. A wing is not an either/or property, it’s a continuum. At some level of granularity, I suspect that there is no fly mutant which has absolutely no wings at all (well, obviously this doesn’t include those which just prevent adult development). So, “small wing”, “really small wing”, “five cells more than having no wing” are all fine, cause no logical problems. But once those five cells disappear, then suddenly all the logic breaks down?

I am reminded of a mistaken argument I had once, when some one asserted that the drink-driving limit should be zero. This is, of course, daft as every human in existance has a measurable amount of alcohol in their blood; the mistake was trying to explain this when this measurable amount was quite high for both the listener and myself.

Unless we are dealing with maths, zero never means zero. But this does not make us all drink-drivers.


As it turns out we can dispense with realism entirely for this discussion. If we focus on modeling in a way that gives us useful answers then the realist objection is consistent with but superfluous with a pragmatic modeling approach.

— Chris Mungall

Indeed. As always, it comes down to a question of having a set of clearly defined use-cases, to an understanding of the logic, and the consequences of our modelling decisions. My own feeling is that, in general, constructs such as “absent wing” are dangerous as they are likely to lead to bad ontologies; but this does not mean that they are wrong. I think that the pragmatic modelling approach would be to say, do not do this unless you understand why it is dangerous.