Recently, I have been reading about models/ontologies - their development, formal analysis, mapping/merging, and similar concepts. Being geeky, I was drawn to the book, "The Handbook of Ontologies" (ISBN 3-540-40834-7, published by Springer-Verlag in 2004). In it, I found a chapter on the philosophy behind OntoClean (Chapter 8, "An Overview of OntoClean"), which was written by the originators of the methodology, Nicola Guarino and Christopher Welty.
What Guarino and Welty did was analyze what it means to create a "good" ontology - in other words, they defined the heuristics behind a "good" model. They did this by starting from philosophical first principles - understanding that the basics of a good model was something that philosophers themselves had "been trying to describe ... in a formal, logical way since the time of Aristotle." They talk about philosophers struggling "with deep problems of existence, such as God, life and death, or whether a statue and the marble from which it is make are the same entity." (Now, I must admit that I have never had a "God" class in my models, but the discussion did remind me of arguments about whether a computer and its backing hardware the same thing? I always said "no" but now I have philosophical and computer science reasoning to back me up.) :-)
Anyway, back to Guarino and Welty's work... They focus on 3 main ideas - essence/rigidity, identity and unity. I will try to explain each below and give examples. BTW, I have to first give a brief explanation of the word, property, since the semantics vary a lot in the literature. In this work, a property is the meaning or intention of an expression (so a property is T or F, a unary predicate - for example, "being a human" or "having a brain"). Now, back to essence, identity and unity:
- Essence/Rigidity - A property that is essential is one that must be true for all instances, at all times. This means that the property is "rigid". Here are a few examples: An Apple (the property of "being an apple") is rigid but a RedApple is not rigid - aka anti-rigid. "Being red" does not affect whether a thing is an apple. This implies that "RedApple" really shouldn't be in your hierarchy as a backbone concept, but color could be an attribute on an Apple - if you needed to distinguish red from green, for example. On the other hand, "being a person" is rigid but "being a student" is semi-rigid (meaning that the property can "acquire or lose (some of) their instances depending on the state of affairs at hand").
- Identity - Is a property by which one can determine the equality of instances and by which one can reason over equality (i.e., entail equality). This requires an ability to recognize instances as they evolve over time and at any point in time. A great example is that the property Lepidopteran (an order of insects that includes moths and butterflies) carries identity, but the properties of caterpillar and butterfly do not. If you went straight from modeling "LivingBeing" to modeling a caterpillar and a butterfly, you would be missing something important - how to identify the individual. A single instance of a lepidopteran may be a caterpillar or a butterfly at different points in time - but it is still the same instance. So, "being a lepidopteran" is the thing that "owns" defining identity - and this is inherited to a caterpillar and a butterfly.
- Unity - Is a property by which one can distinguish a whole from its parts, and/or distinguish the boundaries of an entity. It is defined by a "unifying relation" - such as a topological relation (based on continuity of space, such as a lump of coal), a morphological relation (based on form or structure, such as a constellation) or a functional relation (based on function/use, such as a bikini). The bikini is a great example, because it indicates that a whole may be made up of other "wholes". Let's look at a few more examples: A Country (as a geopolitical area) has identity and unity (but may cease to exist), but something that does not have unity is a GeographicalArea. The latter does not have a single "unifying relation" which defines it. Its boundaries can be determined differently, based on different perspectives. But a GeographicalArea does have an identity - we can give it a name or location. On the other land, Water or Clay are anti-unities. They are just descriptions of an amount of something, not "whole"s in and of themselves.
Building on these basic concepts, Guarino and Welty define criteria for analyzing an ontology. Here are several rules and some examples of the rules in action:
- If a property is anti-rigid or anti-unity, then any properties that it subsumes (that inherit from it) must also be anti-rigid or anti-unity. For example, it would not make sense to subclass a Person from AmountOfMatter - since a Person is a whole (a unity) and Matter is an anti-unity (it can be divided into different instances/groupings). Certainly, a Person is composed of Matter, but a compositional relation is not inheritance.
- If a property carries identity or unity criterion, then any properties that it subsumes (that inherit from it) must also carry that criterion. For example, it is incorrect to subclass a SocialEntity from a GroupOfPeople - since a SocialEntity is more than just a GroupOfPeople. You might have two SocialEntities (a neighborhood watch team and a beautification organization) that have the same members (are therefore the same GroupOfPeople) but they are very different Entities. Also, if the membership of one of the SocialEntities changes, the Entity itself persists, but the GroupOfPeople changes. (Wow, these really aren't the same but I have been guilty of making this mistake. Now I know why it was so hard to maintain the identity property for a Group or Collection - and why I always ended up using a string Name!)
There is lots more to write about analyzing non-rigid properties. But, I will get into that in my next post.
Andrea