Quintus Prolog Homepage WELCOME TO
Quintus Prolog
The Industry Standard
  Quintus Home > Quintus Flex - frame Evaluation License | Search 

Flex - Frame-Based Hierarchy

Flex offers the power of frames, a convenient structure for storing related pieces of knowledge and data. Frames are analogous to database records, but far more powerful because they can be arranged in a hierarchy.

Common information in the hierarchy is shared among frames through a property called inheritance. Inheritance avoids unnecessary duplication of data, simplifies code, and provides a more readable and maintainable system.

Flex supports single, multiple, specialized, and negative inheritance. In single (normal) inheritance, a frame inherits values from a single parent. Multiple inheritance allows a frame to inherit values from more than one parent. Specialized inheritance lets the programmer override normal inheritance to obtain the value of a slot from another frame in the hierarchy. This is useful for expressing unique cases. (For example, most mammals do not fly, but bats are unique mammals that do fly.) Negative inheritance suppresses default inheritance, also useful for handling unique cases. (For example, most birds do fly, but penguins are birds that do not fly).

In Flex data-driven procedures (daemons, constraints and watchdogs) may be assigned to slots or frames. These procedures are automatically executed whenever their slot's value is updated or accessed, or, in the case of frames, when a new sub-frame is created. This technique, often referred to as procedural attachment, enables applications to react automatically to changes in state. Such a feature is necessary for truth maintenance.