Frame language
From Wikipedia, the free encyclopedia
This article may require cleanup to meet Wikipedia's quality standards. Please improve this article if you can. (January 2007) |
Frame language is a metalanguage. It applies the frame concept to the structuring of language properties. Frame languages are usually software languages.
Frame languages are rather focused on the recognition and description of objects and classes, and relations and interactions are considered as "secondary".
In general, "frame" in this context means "something that can be/(has to be) fulfilled". In such sense, for example: Object-oriented programming languages are frame languages, but also every grammar is a frame language. In specific contexts, the authors of computer languages use the term "frame" arbitrarily and frequently intuitively, and in a metaphoric sense.
In the field of Artificial Intelligence, a frame is a data structure introduced by Marvin Minsky in the 1970s that can be used for knowledge representation. Roughly similar to the object-oriented paradigm, they represent classes (called frames) with certain properties called attributes or slots. Slots may contain values, refer to other frames (relations) or contain methods. Frames are thus a machine-usable formalization of concepts or schemata.
Like many other knowledge representation systems and languages, frames are an attempt to resemble the way human beings are storing knowledge. It seems like we are storing our knowledge in rather large chunks, and that different chunks are highly interconnected. In frame-based knowledge representations knowledge describing a particular concept is organized as a frame. The frame usually contains a name and a set of slots.
The slots describe the frame with attribute-value pairs <slotname value> or alternatively a triple containing framename, slotname and value in some order. In many frame systems the slots are complex structures that have facets describing the properties of the slot. The value of a slot may be a primitive such as a text string or an integer, or it may be another frame. Most systems allow multiple values for slots and some systems support procedural attachments. These attachments can be used to compute the slot value, or they can be triggers used to make consistency checking or updates of other slots. The triggers can be trigged by updates on slots.
Contents |
[edit] Inference and reasoning
In most frame-based knowledge representations, inheritance is the central inference mechanism. The frames are organized as a hierarchy with some general concept as the root frame. Many systems support multiple inheritance. In these systems the tree structure can look more like a directed graph with possible cycles.
Reasoning in frame-systems is based on frame matching, inheritance and spreading activation.
[edit] Implementations
Two examples of frame- or frame based- languages are OIL and F-logic.
A famous editor for frame-based ontologies is Protégé.
The Knowledge Machine (KM) is a knowledge representation language and reasoning engine. The knowledge is represented as frames, but KM is also influenced by logic. This combination makes KM very expressive and provides it with a clear, formal semantics.
KL-ONE is a well known knowledge representation system in the tradition of semantic networks and frames. The system is an attempt to overcome semantic indistinctness in semantic network representations and builds upon the idea of Structured inheritance networks.
[edit] References
Marvin Minsky, A Framework for Representing Knowledge, in: Patrick Henry Winston (ed.), The Psychology of Computer Vision. McGraw-Hill, New York (U.S.A.), 1975.
R. Brachman, J. Schmolze. An overview of the KL-ONE Knowledge Representation System. Cognitive science 9, 171-216, 1985
Fikes, R. E., and T. Kehler. (1985). The role of frame-based representation in knowledge representation and reasoning. Communications of the ACM 28(9):904-920.
Peter Clark & Bruce Porter: KM - The Knowledge Machine 2.0: Users Manual, http://www.cs.utexas.edu/users/mfkb/RKF/km.html.