Expert Systems: Frame based Flashcards
What is a frame?
A frame is a data structure with typical knowledge about a particular object or concept. Frames, first proposed by Marvin Minsky in the 1970s (Minsky, 1975), are used to capture and represent knowledge in a frame-based expert system. Boarding passes shown in Figure 5.1 represent typical frames with knowledge about airline passengers. Both frames have the same structure.
Each frame has its own name and a set of attributes, or slots, associated with it. Name, weight, height and age are slots in the frame Person. Model, processor, memory and price are slots in the frame Computer. Each attribute or slot has a value attached to it. In Figure 5.1(a), for example, slot Carrier has value QANTAS AIRWAYS and slot Gate has value 2. In some cases, instead of a particular value, a slot may have a procedure that determines the value.
In expert systems, frames are often used in conjunction with production rules.
Are there any specific differences between rules used in rule-based
expert systems and those used in frame-based systems?
expert systems and those used in frame-based systems?
Every rule has an IF-THEN structure, and every rule relates given information or facts in its IF part to some action in its THEN part. In this sense, there are no differences between rules used in a rule-based expert system and those used in a frame-based system. However, in frame-based systems, rules often use pattern matching clauses. These clauses contain variables that are used for finding matching conditions among all instance-frames.
A frame is a data structure with typical knowledge about a particular object or concept.
. Frames are used to represent knowledge in a frame-based expert system. A frame contains knowledge of a given object, including its name and a set of attributes also called slots. Name, weight, height and age are attributes of the frame Person. Model, processor, memory and price are attributes of the frame Computer.
. Attributes are used to store values. An attribute may contain a default value or a pointer to another frame, set of rules or procedure by which the attribute value is obtained.
. Frame-based systems can also extend the attribute-value structure through the application of facets. Facets are used to establish the attribute value, control end-user queries, and tell the inference engine how to process the attribute.
. A frame may refer to a group of similar objects, or to a particular object. A class-frame describes a group of objects with common attributes. Animal, person, car and computer are all class-frames. An instance-frame describes a particular object.
. Frame-based systems support class inheritance, i.e. the process by which all characteristics of a class-frame are assumed by the instance-frame. The fundamental idea of inheritance is that attributes of the class-frame represent things that are typically true for all objects in the class, but slots in the instance-frames are filled with actual data that is unique for each instance.
. A frame can inherit attributes from more than one parent through multiple- parent inheritance.
. Frames communicate with each other by methods and demons. A method is a procedure associated with a frame attribute; it is executed whenever requested. Most frame-based expert systems use two types of methods: WHEN CHANGED and WHEN NEEDED. The WHEN CHANGED method is executed when new information is placed in the slot, and the WHEN NEEDED method is executed when information is needed for solving the problem but the slot value is unspecified.
. Demons are similar to methods, and the terms are often used as synonyms. However, methods are more appropriate if we need to write complex procedures. Demons, on the other hand, are usually limited to IF-THEN statements.
. In frame-based expert systems, rules often use pattern matching clauses. These clauses contain variables that are used for locating matching conditions among all instance-frames.
. Although frames provide a powerful tool for combining declarative and procedural knowledge, they leave the knowledge engineer with difficult decisions about the hierarchical structure of the system and its inheritance paths.