Making sure my brother and I have the same grandparents

I recently closed off another hole in my Family History Knowledgebase (FHKB). OWL’s open world assumption means that to make many of the desired inferences in an ontology or knowledgebase, one has to make sure the reasoner has no “possibilities for doubt”. I’ve wrritten before about closing down areas of the FHKB with respect to how many children people have. I’ve also closed parts of the amino acid ontology and written in general about closure. The example of grandparents (and parents etc.) in the FHKB is just another example of having to be really tight.

My brother Richard and I have the same parents and grandparents (the latter being William and Iris on my Dad’s side and charles and Violet on my Mum’s side). If I write two defined classes as follows:

Class: GrandparentOfRobert
        EquivalentTo: Person
                that isParentOf some (Person that isParentOf value Robert)

Class: GrandparentOfRichard
        EquivalentTo: Person
                that isParentOf some (Person that isParentOf value Richard)

they both give the same answer of William, iris, charles and Violet. The two defined classes are, however, not themselves infered to be equivalent, even though they appear to have the same extents. This last point is the cruicial one – they only appear to have the same extents; we just have to ignore our domain knowledge. In my description of Person I’ve left it open that there may be more ways of having a parent than having a mother and a father… So it is possible that I have other parents than my Mum and Dad, and thus any old number of grandparents can exist; the FHKB implies that I have at least two parents and at least four grandparents – I could have more.

In the FHKB I have the central class of:

Class: Person
        SubClassOf: hasMother some Woman,
                hasFather some Man

hasMother and hasFather are functional, so an individual person may only hold one of these properties to a distinct individual of Woman and Man. hasMother and hasFather are sub-properties of hasParent. In this little property hierarchy I’ve said there are two known ways to have a parent – by having a mother and by having a father. I haven’t said there are no other ways and to close things tighly I need to do so. In OWL, I can’t put a closure axiom on the hasParent property. I would like to say hasParent EquivalentTo: hasMother or hasFather, just like a closure axiom on a class. I can, however, close down the possibilities of how many ways a Person can have a parent by doing the following:

Class: Person
        SubClassOf: hasParent exactly 2 Person,
                hasMother some Woman,
                hasFather some Man

and then everything works. I’ve said a person can have only one mother and one father and now I’ve said a person can have just two parents; so I’ve closed off possibilities of having other kinds of parents – a person must have two parents adn one must be a father and one must be a woman (making two). The exactly makes the reasoner run like a pig on stilts, but replacing the exactly with a max makes it run sensibly. With this addition to the FHKB, the classses for the grandparents of Richard and Robert are infered to be equivalent. An example FHKB fragment with this closure is available. You can remove the closure axiom on Person to see it run rather slowly on classification.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: