Frame (artificial intelligence): Difference between revisions

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 networksnetwork]]s and are therefore part of structure-based knowledge representations. According to [[Stuart J. Russell|Russell]] and [[Peter Norvig|Norvig]]'s ''[[Artificial Intelligence: A Modern Approach]]'', structural representations assemble "[...]facts about particular objects and event types and arrange the types into a large [[taxonomy|taxonomic]] hierarchy analogous to a biological taxonomy".
 
== 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 ana amountdegree of flexibility that allows representations ofto reflect real-world phenomena to be reflected more accurately.
 
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 Frame frame-based languages were custom developed for specific research projects and were not packaged as tools to be re-used by other researchers. Just as with [[expert system]] [[inference engine]]s, researchers soon realized the benefits of extracting part of the core infrastructure and developing general -purpose frame languages that were not coupled to specific applications. One of the first general -purpose frame languages was KRL.<ref>{{cite journal|last=Bobrow|first=D.G.|author2=Terry Winograd|title=An Overview of KRL: A Knowledge Representation Language|journal=Cognitive Science|year=1977|volume=1|pages=3–46|doi=10.1207/s15516709cog0101_2|doi-access=free}}</ref> One of the most influential early Frameframe languages was [[KL-ONE]].<ref>{{cite journal|last=Brachman|first=Ron|title=A Structural Paradigm for Representing Knowledge|journal=Bolt, Beranek, and Neumann Technical Report|year=1978|issue=3605|url=http://www.dtic.mil/docs/citations/ADA056524}}{{dead link|date=June 2022|bot=medic}}{{cbignore|bot=medic}}</ref> KL-ONE spawned several subsequent Frame languages. One of the most widely used successors to KL-ONE was the [[LOOM (ontology)|Loom language]] developed by Robert MacGregor at the [[Information Sciences Institute]].<ref>{{cite journal|last=MacGregor|first=Robert|title=Using a description classifier to enhance knowledge representation|journal=IEEE Expert|date=June 1991|volume=6|issue=3|doi=10.1109/64.87683|pages=41–46|s2cid=29575443 }}</ref>
 
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>