Jump to content

User:Mdebellis/sandbox: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Mdebellis (talk | contribs)
No edit summary
Mdebellis (talk | contribs)
Line 4: Line 4:


==Description==
==Description==
Early work on Frames was inspired by psychological research going back to the 1930's that indicated people use stored stereotypical knowledge to interpret and act in new cognitive situations.<ref>{{cite book|last=Bartlett|first=F.C.|title=Remembering: A Study in Experimental and Social Psychology|year=1932|publisher=Cambridge University Press|location=Cambridge, England}}</ref> The term Frame was first used by Marvin Minsky as a paradigm to understand visual reasoning and natural language processing. In these and many other types of problems the potential solution space for even the smallest problem is huge. For example, extracting the phonemes from a raw audio stream or detecting the edges of an object. Things which seem trivial to humans are actually quite complex. In fact how difficult they really were was probably not fully understood until AI researchers began to investigate the complexity of getting computers to solve them. The initial notion of Frames or Scripts as they were then also called is that they would establish the context for a problem and in so doing automatically reduce the possible search space significantly. The idea was also adopted by Schank and Abelson who used it to illustrate how an AI system could process common human interactions such as ordering a meal at a restaurant. These interactions were standardized as Frame with slots that often had default values but also required further refinement as part of the execution of each instance of the scenario. Essentially the abstract Frame represented an object class and the frame instances an object instance. Similarly slots were what are called object properties in the object-oriented paradigm. In this early work the emphasis was primarily on the static data descriptions of the Frame. Various mechanisms were developed to define the range of a slot, default values, etc. However, even in these early systems there were procedural capabilities. One common technique was to use "demons" (aka triggers and similar to the database concept of triggers) attached to slots. A demon was simply procedural code that was attached to a slot. The demon could fire either before and/or after a slot value was accessed or modified.
Early work on Frames was inspired by psychological research going back to the 1930's that indicated people use stored stereotypical knowledge to interpret and act in new cognitive situations.<ref>{{cite book|last=Bartlett|first=F.C.|title=Remembering: A Study in Experimental and Social Psychology|year=1932|publisher=Cambridge University Press|location=Cambridge, England}}</ref> The term Frame was first used by Marvin Minsky as a paradigm to understand visual reasoning and natural language processing.<ref>{{cite book|last=Minsky|first=Marvin|title=The Psychology of Computer Vision|year=1975|publisher=McGraw Hill|location=New York|pages=211-277|editor=Pat Winston|chapter=A Framework for Representing Knowledge}}</ref> In these and many other types of problems the potential solution space for even the smallest problem is huge. For example, extracting the phonemes from a raw audio stream or detecting the edges of an object. Things which seem trivial to humans are actually quite complex. In fact how difficult they really were was probably not fully understood until AI researchers began to investigate the complexity of getting computers to solve them. The initial notion of Frames or Scripts as they were then also called is that they would establish the context for a problem and in so doing automatically reduce the possible search space significantly. The idea was also adopted by Schank and Abelson who used it to illustrate how an AI system could process common human interactions such as ordering a meal at a restaurant. These interactions were standardized as Frame with slots that often had default values but also required further refinement as part of the execution of each instance of the scenario. Essentially the abstract Frame represented an object class and the frame instances an object instance. Similarly slots were what are called object properties in the object-oriented paradigm. In this early work the emphasis was primarily on the static data descriptions of the Frame. Various mechanisms were developed to define the range of a slot, default values, etc. However, even in these early systems there were procedural capabilities. One common technique was to use "demons" (aka triggers and similar to the database concept of triggers) attached to slots. A demon was simply procedural code that was attached to a slot. The demon could fire either before and/or after a slot value was accessed or modified.


As with object classes frames were organized in subsumption hierarchies. For example, a basic frame might be ordering at a restaurant. An instance of that would be Joe goes to McDonalds. A specialization (essentially a subclass) of the restaurant frame would be a frame for ordering at a fancy restaurant. The fancy restaurant frame would inherit all the default values from the restaurant frame but also would either add more slots or change one or more of the default values (e.g., expected price range) for the specialized frame.<ref>{{cite book|last=Feigenbaum|first=Edward|title=The Handbook of Artificial Intelligence, Volume III|publisher=Addison-Wesley|isbn=0201118114|page=216|url=https://archive.org/stream/handbookofartific01barr#page/156/mode/2up|coauthors=Avron Barr|date=September 1, 1986}}</ref>
As with object classes frames were organized in subsumption hierarchies. For example, a basic frame might be ordering at a restaurant. An instance of that would be Joe goes to McDonalds. A specialization (essentially a subclass) of the restaurant frame would be a frame for ordering at a fancy restaurant. The fancy restaurant frame would inherit all the default values from the restaurant frame but also would either add more slots or change one or more of the default values (e.g., expected price range) for the specialized frame.<ref>{{cite book|last=Feigenbaum|first=Edward|title=The Handbook of Artificial Intelligence, Volume III|publisher=Addison-Wesley|isbn=0201118114|pages=216-222|url=https://archive.org/stream/handbookofartific01barr#page/156/mode/2up|coauthors=Avron Barr|date=September 1, 1986}}</ref>





Revision as of 17:05, 7 December 2013

A frame language is a technology used for knowledge representation in artificial intelligence. Frames are stored as ontologies of sets and subsets of the frame concepts. They are similar to class hierarchies in object-oriented languages although their fundamental design goals are different. Frames are focused on explicit and intuitive representation of knowledge where as objects focus on encapsulation and information hiding. Frames originated in AI research and objects primarily in software engineering. However, in practice the techniques and capabilities of frame and object-oriented languages overlap significantly.

Description

Early work on Frames was inspired by psychological research going back to the 1930's that indicated people use stored stereotypical knowledge to interpret and act in new cognitive situations.[1] The term Frame was first used by Marvin Minsky as a paradigm to understand visual reasoning and natural language processing.[2] In these and many other types of problems the potential solution space for even the smallest problem is huge. For example, extracting the phonemes from a raw audio stream or detecting the edges of an object. Things which seem trivial to humans are actually quite complex. In fact how difficult they really were was probably not fully understood until AI researchers began to investigate the complexity of getting computers to solve them. The initial notion of Frames or Scripts as they were then also called is that they would establish the context for a problem and in so doing automatically reduce the possible search space significantly. The idea was also adopted by Schank and Abelson who used it to illustrate how an AI system could process common human interactions such as ordering a meal at a restaurant. These interactions were standardized as Frame with slots that often had default values but also required further refinement as part of the execution of each instance of the scenario. Essentially the abstract Frame represented an object class and the frame instances an object instance. Similarly slots were what are called object properties in the object-oriented paradigm. In this early work the emphasis was primarily on the static data descriptions of the Frame. Various mechanisms were developed to define the range of a slot, default values, etc. However, even in these early systems there were procedural capabilities. One common technique was to use "demons" (aka triggers and similar to the database concept of triggers) attached to slots. A demon was simply procedural code that was attached to a slot. The demon could fire either before and/or after a slot value was accessed or modified.

As with object classes frames were organized in subsumption hierarchies. For example, a basic frame might be ordering at a restaurant. An instance of that would be Joe goes to McDonalds. A specialization (essentially a subclass) of the restaurant frame would be a frame for ordering at a fancy restaurant. The fancy restaurant frame would inherit all the default values from the restaurant frame but also would either add more slots or change one or more of the default values (e.g., expected price range) for the specialized frame.[3]


In general, "frame" in this context means "something that can be/(has to be) fulfilled"[citation needed]. In such sense, for example: Object-oriented programming languages are frame languages, but also every grammar is a frame language[citation needed]. 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. Minsky frames are intended to help an Artificial Intelligence system recognize specific instances of patterns. Frames usually contain properties called attributes or slots. Slots may contain default values (subject to override by detecting a different value for an attribute), refer to other frames (component relationships) or contain methods for recognizing pattern instances. Frames are thus a machine-usable formalization of concepts or schemata. In contrast, the object-oriented paradigm partitions an information domain into abstraction hierarchies (classes and subclasses) rather than partitioning into component hierarchies, and is used to implement any kind of information processing. Frame Technology is loosely based on Minsky Frames, its purpose being software synthesis rather than pattern analysis.

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.

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.

Implementations

  • Frame Representation Language (FRL), 1977, Roberts/Goldstein.
  • Two examples of frame- or frame based- languages are OIL and F-logic.
  • An 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.

References

See also

External links

  1. ^ Bartlett, F.C. (1932). Remembering: A Study in Experimental and Social Psychology. Cambridge, England: Cambridge University Press.
  2. ^ Minsky, Marvin (1975). "A Framework for Representing Knowledge". In Pat Winston (ed.). The Psychology of Computer Vision. New York: McGraw Hill. pp. 211–277.
  3. ^ Feigenbaum, Edward (September 1, 1986). The Handbook of Artificial Intelligence, Volume III. Addison-Wesley. pp. 216–222. ISBN 0201118114. {{cite book}}: Unknown parameter |coauthors= ignored (|author= suggested) (help)