Frame Based Models
Frame based systems use entities like frames and their properties as a modeling primitive. The central modeling primitive is a frame together with slots. These slots are applicable only to the frames they are defined for. Value restriction (facets) can be defined for each attribute. A frame provides a context for modeling one aspect of a domain. An important part of frame-based languages is the possibility of inheritance between frames. The inheritance allows inheriting attributes together with restrictions on them. Knowledge base then consists from instances (objects) of these frames.
An example of the usage of the frame-based model is Open Knowledge Base Connectivity (OKBC) that defines API for accessing knowledge representation systems. It defines most of the concepts found in frame-based systems, object databases and relational databases. The OKBC API is defined in language independent fashion, and implementations exist for Common Lisp, Java, and C. The OKBC API provides operations for manipulating knowledge expressed in an implicit representation formalism called the OKBC Knowledge Model. The conceptualization in OKBC Knowledge Model is based on frames, slots, facets, instances, types, and constants. This knowledge model supports an object- oriented representation of knowledge and provides a set of representational constructs and thus can serve as an interlingua for knowledge sharing and translation. The OKBC Knowledge Model includes constants, frames, slots, facets, classes, individuals, and knowledge bases. For precise description of the model, the KIF language (see section about KIF) is used.
The OKBC knowledge model assumes a universe of discourse consisting of all entities about which knowledge is to be expressed. In every domain of discourse it is assumed that all constants of the following basic types are always defined: integers, floating point numbers, strings, symbols, lists, classes. It is also assumed that the logical constants true and false are included in every domain of discourse. Classes are sets of entities, and all sets of entities are considered to be classes.
A frame is a primitive object that represents an entity in the domain of discourse. A frame is called class frame when it represents a class, and is called individual frame when it represents an individual. A frame has associated with it a set of slots that have associated a set of slot values. A slot has associated a set of facets that put some restrictions on slot values. Slots and slot values can be again any entities in the domain of discourse, including frames. A class is a set of entities, that are instances of that class (one entity can be instance of multiple classes). A class is a type for those entities. Entities that are not classes are referred to as individuals. Class frames may have associated a template slots and template facets that are considered to be used in instances of subclasses of that class. Default values can be also defined. Each slot or facet may contain multiple values. There are three collection types: set, bag (unordered, multiple occurrences permitted), and list (ordered bag). A knowledge base (KB) is a collection of classes, individuals, frames, slots, slot values, facets, facet values, frame-slot associations, and frame-slot-facet associations. KBs are considered to be entities of the universe of discourse and are represented by frames. There are defined standard classes, facets, and slots with specified names and semantics expressing frequently used entities.