6.1 The Abstraction Relationship
The abstraction relationship between a generic and individual exists when a class is abstracted into an individual in order that it may have properties [Brachman83]. Looking back to Figure 7, we had a case where eagle was split into two parts so that it could have properties such as endangered. One of the problems that arose from this approach was the relationship between the two objects eagle and the eagle.
The abstraction relationship was described merely to point out that, in a system where only instances can have properties, if classes were to have properties they would have to be represented as instances as well as classes. When represented in this manner, there would have to be some relationship to denote the fact that the two objects should be interpreted as different views of the same object. Figure 10
shows the use of the abstraction relationship between the class and instance parts of eagles.
Although the specifics of the relationship were never defined, its existence to denote special kinds of individuals that should not be interpreted in the same context as other individuals helps avoid problems with I1. There are subtle problems with the abstraction relationship, however. First, although the semantics have been defined as different, the eagle and Harry are both individuals in the same universe of discourse and they are not both truly individuals - the eagle does not exist in the same way Harry does. Second, endangered is a property of eagle, not of some other concept, and it is unclear what the relationship between them means in terms of inference. Further, the relationships between the eagle and Harry and between eagle and species are similarly made ambiguous as a result of using two objects (eagle and the eagle) to represent the same domain entity.
The two parts of the class description are basically a representation of two universes of discourse, as shown in Figure 116.2 Smalltalk
Another example of the implicit existence of spanning objects can be found in object-oriented languages that offer a meta-class facility like Smalltalk [Goldberg83] or CLOS [Bobrow88]. In Smalltalk, each class is an instance of the class class, which describes the prototypical nature of classes themselves. Class definitions are then divided into two parts: the object description which describes the nature of the objects which will be instances of the class, and the meta-class description which describes attributes of the class which have nothing to do with the objects (like the method for creating new instances, and variables that might hold information like how many instances this class has). 
While we recognize the use of spanning objects by Smalltalk, the notion remains implicit and is not provided as a modeling construct that can be applied to an arbitrary layering of universes by the modeler. There are only two universes of discourse allowed - in Figure 11 these are shown as Uc and Uo, the universes where classes are instances and where classes are descriptions, respectively. The example involving eagles could not be represented in Smalltalk using the language constructs provided - only instances of class may span universes. KR languages and FOL also provide no such support.
Generated with CERN WebMaker