Saying more with frames: Slots as classes

Abstract A major deficiency of many assertional frame systems is the limited expressiveness of the frame languages that they provide. Many quite simple assertions cannot be stated directly in the frame language, but instead must be expressed less straightforwardly using rules or attached procedures. We describe here two conceptually straightforward extensions to a basic frame system that significantly extend its expressive and inferential power while maintaining the advantages of conceptual simplicity and efficiency of implementation. The first extension is to treat a slot as a representation of the set of its values, and to use the full power of the frame language recursively to describe that set as a class. The second extension is to allow the portion of a class frame that describes the members of the class to contain self references, which are replaced during inheritance by references to the particular class member that inherits the description. We present an implemented frame language that includes these extensions together with rules specifying the inferences performed by the frame system's inheritance algorithms.