Finding Parents

The hierarchical structure used to describe the properties of objects is one of multiple parentage and controlled inheritance.

An object has as parent a part of speech - a dog is a noun, so acquires all the properties of a noun and a word. There has to be some way of turning this inheritance off when it is no longer relevant.

The procedure that finds parents can be controlled from the bottom up and from the top down, and can be controlled for things that must, and must not, appear in the inheritance of the object. The procedure has two sets - MustSet and NotSet. If an object is found as a parent, then it must have an object in MustSet as an ancestor to be accepted. Similarly, if an object's parent has no other ancestor than an entry in NotSet (there is no way to avoid this ancestor), then it will not be accepted. This means that each parent in the hierarchy can only be accepted by rising to the top of the hierarchy to check its ancestors first (about six to ten levels).

An object like "dog" is also a word token, and the entire word structure is hung off Word, so putting Word in the NotSet will prevent the inheritance of any property that only has Word as an ancestor. Noun also has many properties it inherits from WordStructure - where a noun can be used in a sentence. Word and WordStructure are children of WordAndStructure, so parents of Dog with WordAndStructure in the NotSet will return all the doggy things about Dog, and ignore all the things to do with sentence structure.

Sometimes it is easier to say what something is, rather than what it is not. ONLYCHILD allows you to assert that something has a particular property, and no other properties that it might acquire from other disjoint members. If something is asserted to be only a Noun by using ONLYCHILD, then all the MEMBERS operators will be found that have Noun as a child, and all other members of those operators will be placed in the NotSet. If a meaning of the object allows some child of a verb, it will be cut off by Verb being in the NotSet.

These operations of exclusion work during inheritance - each parent is checked for the presence of parent exclusion operators before continuing.

The hierarchical network can only be searched sequentially - what happens if the exclusion is found after a parent has been allowed in the set? The hierarchy is searched again from the beginning, this time using the augmented MustSet or NotSet.

Hierarchical Structure

The hierarchical structure contains a number of different operators used to represent different forms of inheritance. They include

INVOCATIONS - implying a copy - all properties pass through
MEMBERS - each member has different properties to its siblings - lions and tigers are members of the cat family
ALTERNATIVES - the children can be the parent - a document or a person are alternative entitlers
MEANING - the properties of the children differ - "term" can be a noun or a verb
IS Relation - a path for synonyms

Some of these operators function as cusps in the hierarchy - if something has as parent an object that heads up a MEANING operator, then the different meanings contribute to the parents - "tenant" has noun and verb as parents, where the split occurred at a MEANING operator passing into the different meanings. If the search came up through TenantNoun, then the other meanings would not be seen in the hierarchy.

onlynoun1.wmf (35802 bytes)

See Searching an Ontology