Content deleted Content added
No edit summary |
No edit summary |
||
Line 1:
'''Frames''' are an [[artificial intelligence]] [[data structure]] used to divide [[knowledge]] into substructures by representing "[[stereotype]]d situations". They were proposed by [[Marvin Minsky]] in his 1974 article "A Framework for Representing Knowledge". Frames are the primary data structure used in artificial intelligence frame languages; they are stored as [[Ontology (information science)|ontologies]] of [[Set theory|sets]].
Frames are also an extensive part of [[knowledge representation and reasoning]] schemes. They were originally derived from [[semantic
== Frame structure ==
Line 23:
One particular strength of frame-based knowledge representations is that, unlike semantic networks, they allow for exceptions in particular
instances. This gives frames
Like [[semantic networks]], frames can be queried using spreading activation. Following the rules of inheritance, any value given to a slot that is inherited by subframes will be updated (IF-ADDED) to the corresponding slots in the subframes and any new instances of a particular frame will feature that new value as the default.
Line 106:
==Frame language==
A '''frame language''' is a technology used for [[knowledge representation]] in [[artificial intelligence]]. 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 whereas objects focus on [[Encapsulation (object-oriented programming)|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.
===Example===
A simple example of concepts modeled in a frame language is the [[FOAF (ontology)|Friend of A Friend (FOAF) ontology]] defined as part of the [[Semantic Web]] as a foundation for social networking and calendar systems. The primary frame in this simple example is a ''Person''. Example slots are the person's ''email'', ''home page, phone,'' etc. The interests of each person can be represented by additional frames describing the space of business and entertainment domains. The slot ''knows'' links each person with other persons. Default values for a person's interests can be inferred by the web of people they are friends of.<ref>{{cite web|title=FOAF|url=http://semanticweb.org/wiki/FOAF|website=semanticweb.org|access-date=7 June 2014|archive-url=https://web.archive.org/web/20130210123012/http://semanticweb.org/wiki/FOAF|archive-date=10 February 2013|url-status=dead}}</ref>
===Implementations===
The earliest
In the 1980s Artificial Intelligence generated a great deal of interest in the business world fueled by expert systems. This led to the development of many commercial products for the development of knowledge-based systems. These early products were usually developed in Lisp and integrated constructs such as IF-THEN rules for logical reasoning with Frame hierarchies for representing data. One of the most well known of these early Lisp knowledge-base tools was the [[Knowledge Engineering Environment]] (KEE) from [[IntelliCorp (software)|Intellicorp]]. KEE provided a full Frame language with multiple inheritance, slots, triggers, default values, and a rule engine that supported backward and forward chaining. As with most early commercial versions of AI software KEE was originally deployed in [[Lisp (programming language)|Lisp]] on [[Lisp machine]] platforms but was eventually ported to PCs and Unix workstations.<ref>{{cite journal|last=Mettrey|first=William|title=An Assessment of Tools for Building Large Knowledge-Based Systems|journal=AI Magazine|year=1987|volume=8|issue=4|url=http://www.aaai.org/ojs/index.php/aimagazine/article/viewArticle/625|access-date=2013-12-09|archive-url=https://web.archive.org/web/20131110022104/http://www.aaai.org/ojs/index.php/aimagazine/article/viewArticle/625|archive-date=2013-11-10|url-status=dead}}</ref>
|