Download PORK Object System Programmers` Guide
Transcript
Chapter 1 Introduction Initially, PORK was designed for use in the re-engineering of a large knowledgebased system, the OPIS/DITOPS scheduling system [13, 14, 15, 16]. The purpose of the re-engineering eort was to move from an old frame-based implementation to a more maintainable object-oriented version. This chapter introduces PORK and provides some background for the motivation of its design. The name PORK stands for \Programmable Objects for Representing Knowledge." (earlier the system was called \Parsifal" but because of a conict with the name of an existing system this name had to be dropped). From the design standpoint PORK has its heritage in the \well done BEEF" eorts [11] undertaken at the end of the BEEF project [3, 9, 10]. 1.1 Motivation The concept of frames [12] and the idea of a frame system have been very popular as an easy-to-understand paradigm for representing complex data. The fundamental idea is simple: frames are the system's basic objects, they represent real-world concepts and phenomena; frames have named attributes, slots, and slots can be assigned values. Inheritance allows slot values to be used as defaults. From the standpoint of programming it is perhaps unfortunate that what frame systems are really good for is representing things. In an attempt to make it easier to use frame systems in a normal programming context, designers of frame systems have often added features that add \object-oriented" programming capabilities 1