Re: multiple inheritance in ontolingua

From: macgregor@ISI.EDU
Message-id: <>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Date: Tue, 31 May 1994 15:05:20 -0800
To: (Ronny), ontolingua@HPP.Stanford.EDU
Subject: Re: multiple inheritance in ontolingua
>When describing our ontology, it happens that we introduce a multiple-
>inheritance conflict. As far as we know, there is no construction in ontolingua
>to solve this problem,

Nor should there be in a declarative (monotonic) setting. 

>One approach would be that this problem is decided
>by the target language (e.g. C++, CLOS...(they decide anyway)), but our client,

CLOS inserts a bias in favor of the leftmost in a list of superclasses.
>From a logic perspective, this is a completely arbitrary choice, and
hence would not be appropriate within a language like Ontolingua.
C++ does NOT decide; instead it generates a compile time error (C++
is braindead WRT multiple inheritance).

To handle multiple inheritance in a logic setting only makes sense
for non-monotonic inheritance, since it involves blocking one or
more inherited values.  Assuming that default rules are a good
way to model such inheritance, a preference ordering on defaults
could provide an answer to the problem of resolving multiple
inheritance conflicts.  It will probably be some years yet before
the non-mon community produces a practical semantics for defaults
with preferences (although within the context of description
logics some reasonable proposals are beginning to surface).  KIF
and Ontolingua have (wisely) held off establishing their own semantics
for default rules (with or without preferences).

- Bob

Robert M. MacGregor                           
USC/ISI, 4676 Admiralty Way, Marina del Rey, CA 90292      (310) 822-1511