Property Inheritance

It is a simple matter of zoological fact that animals have skin, that birds have skin, and that canaries have skin. Do we, then, store in memory an indefinitely large number of discrete facts? We can see from a glance at the taxonomic tree in Figure 2 that a canary is a kind of bird, that a bird is a kind of animal, and that therefore a canary is a kind of animal; or that a salmon is a kind of fish, that a fish is a kind of animal, and that therefore a salmon is a kind of animal; we can also indirectly see that a canary by virtue of being a kind of bird has wings and can fly, and so on. Since a bird is an animal, any properties or attributes that are generally true of animals will also be true of birds; for example, if animals in general have skin, breathe, move around, and eat, then, unless there is evidence to the contrary, so do birds. In the same manner, whatever is true of birds in general is therefore also likely to be true of particular types of birds. Consequently, we do not need to store as explicit items of knowledge facts such as that a canary has skin -- we can deduce them from simpler facts. The process of inferring that something has a property because it is a particular type of something else which has that property is called property inheritance.

Using deductive reasoning, we may therefore legitimately make the following kind of syllogistic inference:

Premise 1:
Premise 2:
All animals have properties a, b, c, ..., n.
Birds are animals.
Therefore birds have properties a, b, c, ..., n.

We say that the concept 'bird' inherits the property of having skin or of breathing from the concept 'animal'. The corresponding deductive inference in the semantic network is carried along the ISA links. This is because the ISA relationship is transitive -- that is, if a relationship holds between X and Y and between Y and Z, then it also holds between X and Z (but not necessarily between Z and X). For example, if a canary is a kind of bird and a bird is a kind of animal, then a canary is a kind of animal.

Suppose now that we know that Tweetie is a canary. Even though we may not have been specifically told anything about Tweetie, we still know a great deal about him -- for example, that, like other canaries, he is yellow and can sing, that he is a bird, and, like other birds, that he has wings, feathers, and can fly. This information is nowhere explicitly stated of Tweetie; rather, we have inferred it from exploring the ISA and attribute links extending from 'canary'.

It may happen however that a particular kind of object will have peculiar properties that make it atypical of its superclass. A particular feature of ostriches that makes them atypical of birds, for example, is that they can't fly. Attaching this information to the 'ostrich' node (as in Figure 6.2.) will prevent the inheritance of the property 'can fly' from the 'bird' node. We should then more properly speak of default inheritance of properties: if there is no evidence to the contrary, then by default the subclass inherits the properties of its superclasses.

It is often important, incidentally, to distinguish between links connecting generic nodes -- those, like 'canary', that refer to a general class or concept -- and links connecting individuals, such as 'Tweetie', to their parent generic nodes. In this book, we are calling the former isa links, though elsewhere you might also see them referred to as ako links; the latter we are calling inst links. In networks in which properties attached to generic nodes are construed to be properties of the class rather than of instances of the class, then it may well be that we would not want the individual nodes to inherit those properties. For example, if we know that the whale shark (generic node) is the largest living fish, and that Jaws (individual node) is a whale shark, we would not wish to conclude that therefore Jaws is the largest living fish. We treat the issue of interpretation of nodes in links in more detail in the next section.

So far in this section we have been talking about transitive relations between nodes, indicated by arrows pointing in one direction along the connecting links. Yet there are also occasions when we will wish to make inferences in both directions. For example, if Layla is the cousin of Jessica, then Jessica is also the cousin of Layla. Given the first fact, we will want to be able to infer the second. This kind of link is symmetric: that is, for a relation R such as cousin_of or married_to or earns_as_much_money_as, R(X,Y) implies R(Y,X). In our Automated Tourist Guide, if we know that the London Underground station X is connected to station Y, we would want to infer that Y is also connected to X. The connects link is, in fact, both symmetric and transitive: if there is a route from X to Y and there is a route from Y to Z, then there is a route from X to Z (transitively) and also from Z to X (symmetricly). We can indicate a symmetric relation in a semantic network by a bidirectional link (figure 6.5.):

Figure 5.