During my sabatical at the University of Sheffield, I was talking to Debora Field, who was asking me how good OWL2 would be at describing and inferring family relationships. I said that I thought it would probably be OK, especially as OWL2 includes sub-property chains: My parent’s brothers are my uncles; etc.
I offered to make a little example KB using OWL2 and some individuals from my family. I sort of got a bit carried away and, with my Mum’s help, I put some 450 of my ancestors, relations, etc. in to this KB. I used only asserted facts about parentage and some sparse assertion of sibling relationships and attempted to infer all the others using properties, property hierarchies, sub-property chains, property charactreistics, together with domain and range constraints on properties.
Well it sort of works. From only three assertion about the individual for myself (I’m object of two and the subject of one), I can entail some 500 or so more facts about my family relationships to other named individuals in the FHKB. A simple example is to make a transitive hasAncestor super-property of the intransitive hasParent property; All my ancestors in the KB are then inferred. We have Margaret Rever isMotherOf Robert; from the inverse of isMotherOf we find that robert hasMother Margaret; hasMother implies hasParent and that then implies robert hasAncester Margaret; as Margaret hasParent Charles Herbert, we can also infer that Robert hasAncester Charles Herbert through the transitivity. The property hierarchy drives most of the inferences on individuals.
Similarly, using the classes person, man and woman (classes defined as a person with sex of either male or female) as domain and range constraints means that the types of individuals can be inferred.
OWL’s sub-property chains enable a lot of inference:
- isUncleOf is implied by isBrotherOf and isParentOf
- isGrrandparentOf is implied by isParentOf and isParentOf
- isgrandFatherOf is implied by isFatherOf and isParentOf
and many more. isBloodrelationOf is quite nice; it is implied by hasAncestor and isAncestorOf. All by farthest ancestor’s descendents are my blood relations. I have to be careful — I don’t wish to make isrelationOf transitive; not all my relations relations are my relations. My first cousin’s father is my own father’s brother, but my first cousin’s mother is not a blood relation of mine, though she is a blood relation of my first cousin (I’m not specifying which first cousin I’m using; it is not important).
I have properties covering parentage; grandparents, great grandparents; in laws; aunts, uncles, cousins, second cousins and removes. I’ve also done spouse relationships and marriages. An example of the FHKB can be downloaded.
What doesn’t work are cousins and distinguishing between full and half-siblings. More on this later;it is worthy of a separate post. This is, of course, somewhat disappointing, but makes for some good examples about the limitations of OWL.
Simon Jupp and I have given a tutorial in the form of a three hour tutorial—slides illustrated with demonstrations. The materials for this tutorial are available. It appears to have gone very well, with a lot of good feedback. As usual, a first presentation such as this reveals many missing aspects of the tutorial. We do, however, have the basis for a two-day face to face tutorial based on this work–the first go at this was given in December 2009 and more will come.
this is another in the series of my pet ontology projects. It has led to a new advanced OWL tutorial, and may well be a replacement for the Pizza tutorial. More will follow.