Plausible inference and defaults

Many people have claimed that 'common sense inference' is not the same as logical inference and that intelligent systems should therefore not be constructed on a strictly logical model.

For instance, we can write a rule:


black(X) d_if crow(X)

to express the fact that crows are usually black ('by default, X is black if X is a crow') and use it in inferences as if d_if were if. But we must remember that d_if is not really synonymous with the if of standard logic (what logicians call 'material implication') and that, unless we are careful, our putatively logical language will have no clear semantics. From a practical point of view, we must ensure that systems built in this way can cope with the inconsistencies that arise - for instance, when a given bird can be seen to be brown, say, but 'proved' to be black.

Plausible inferences can be thought of as inference rules that hold by default. Unless we have information to the contrary, it is reasonable, and practically useful, to assume that if something is a crow, then it is black. But if we have special information - for instance, that it is an albino crow - then it may be wrong to use the rule. Another way of looking at this starts from the premise that we frequently need to assume that we have complete information about some property - for instance, being a non-black crow. On this view, we must maintain that if there were any non-black crows, then we would explicitly know about them. Using the default inference rule, then, amounts to assuming that the set of non-black crows is as small as it can be consistent with our other knowledge.

Semantic network systems have traditionally implemented a kind of default inference by allowing information specified directly about an entity to override information that the entity might inherit.

We can readily convert our earlier inheritance network implementation into one which permits information on lower nodes to over-ride that inherited from higher nodes. All we need to do is let the 'has_attr' definition check that no lower node information was available for the attribute:




Code:defaults.pl has_attr(Entity,Attribute,Value) :- attr(Entity,Attribute,Value). has_attr(Entity1,Attribute,Value) :- isa(Entity1,Entity2), has_attr(Entity2,Attribute,Value), not_local(Entity1,Attribute).

As can be seen, the only change to the definition is the locality check in the final line. If there is a local value to be found, then 'not_local' must fail, and stay failed:




not_local(Entity,Attribute) :- attr(Entity,Attribute,_), !, fail.

Otherwise, it should succeed:




not_local(_,_).

That completes the changes required to convert the (absolute) inheritance to default inheritance. For the new program (in DEFAULTS.PL) to be useful, we also need an example network that can make use of the default behaviour. Here is such a network, defined, as before, solely in terms of 'attr' and 'isa' clauses:




% Club_member attr(club_member,sex,male). attr(club_member,over_50,yes). attr(club_member,citizenship,'US'). % Associate isa(associate,club_member). attr(associate,associate_member,yes). attr(associate,citizenship,non_US). % Life_member isa(life_member,club_member). attr(life_member,life_member,yes). attr(life_member,over_50,no). % Kim isa(kim,associate). attr(kim,over_50,no). % Jean isa(jean,associate). attr(jean,sex,female). attr(jean,citizenship,'US'). % Mayumi isa(mayumi,life_member). attr(mayumi,sex,female). attr(mayumi,over_50,yes). attr(mayumi,citizenship,non_US). % Beryl isa(beryl,life_member). attr(beryl,sex,female).

And here is an exhaustive listing of the conclusions (about Kim, Jean, Mayumi and Beryl) that can be drawn from this new example network, under the intended default inheritance interpretation:


Kim is an associate member. The sex of Kim is male. Kim is not over 50. The citizenship of Kim is non-US.

Jean is over 50. Jean is an associate member. The sex of Jean is female. The citizenship of Jean is US.

Mayumi is over 50. Mayumi is a life member. The citizenship of Mayumi is non-US. The sex of Mayumi is female.

Beryl is a life member. The citizenship of Beryl is US. The sex of Beryl is female. Beryl is not over 50.

Plainly our earlier condition (ii) for (strict) inheritance networks, that no entity has an attribute value specified for an attribute that is specified at an ancestral node in the dag, no longer applies. Indeed, it would defeat the whole point of default inheritance networks if we were to maintain it. However, conditions (iii) and (iv), that no pair of entities not in a descendent relationship but with a descendent in common that no entity is associated locally with more than one value for a given attribute, need to remain in force, if attributes are to be guaranteed to have unique values.

Exercise 9.7

Send us a comment.



[Contents] [Previous] [Next]
This document was translated by troff2html v0.21 on October 22, 1996.