Frame (artificial intelligence): Difference between revisions

Content deleted Content added
Improve presentation and add internal link
Tags: Visual edit Mobile edit Mobile web edit Advanced mobile edit
m Add "unreferenced section" tags
 
(17 intermediate revisions by 13 users not shown)
Line 1:
{{Short description|Artificial intelligence data structure}}
'''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 network]]s and are therefore part of structure-based [[Knowledge representation and reasoning|knowledge representations]].
 
According to [[Stuart J. Russell|Russell]] and [[Peter Norvig|Norvig]]'s ''[[Artificial Intelligence: A Modern Approach]]'', structural representations assemble "[...]facts about particular objectsobject and event types and [arrange] the types into a large [[taxonomy|taxonomic]] hierarchy analogous to a [[biological taxonomy]]".
 
== Frame structure ==
{{Unreferenced section|date=July 2025}}
The frame contains information on how to use the frame, what to expect next, and what to do when these expectations are not met.
 
Some information in the frame is generally unchanged while other information, stored in "terminals", usually change. Terminals can be considered as variables.
 
Top-level frames carry information, that is always true about the problem in hand, however, terminals do not have to be true. Their value might change with the new information encountered. Different frames may share the same terminals.
 
Each piece of information about a particular frame is held in a slot.
 
The information can contain:
Line 29 ⟶ 31:
 
== Features and advantages ==
{{Unreferenced section|date=July 2025}}
 
A frame's terminals are already filled with default values, which is based on how the [[Mind|human mind]] works.
 
For example, when a person is told "a boy kicks a ball", most people will visualize a particular ball (such as a familiar [[soccer ball]]) rather than imagining some abstract ball with no attributes.
Line 43 ⟶ 45:
 
== Example ==
{{Unreferenced section|date=July 2025}}
 
Worth noticing here is the easy analogical reasoning (comparison) that can be done between a boy and a monkey just by having similarly named slots.
 
Line 117 ⟶ 119:
 
==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 programming|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 [[Inference|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-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 frame 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}}}{{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 system]]s. This led to the development of many commercial products for the development of knowledge-based systems. These early products were usually developed in [[Lisp (programming language)|Lisp]] and integrated constructs such as IF-THEN rules for [[logical reasoning]] with Frame hierarchies for representing data.
 
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 [[Personal computer|PCs]] and [[Workstation|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>
 
The research agenda of the [[Semantic Web]] spawned a renewed interest in automatic classification and frame languages. An example is the [[Web Ontology Language]] (OWL) standard for describing information on the Internet. OWL is a standard to provide a semantic layer on top of the Internet. The goal is that rather than organizing the web using keywords as most applications (e.g. Google) do today the web can be organized by concepts organized in an ontology.
Line 145 ⟶ 155:
The name of the OWL language itself provides a good example of the value of a Semantic Web. If one were to search for "OWL" using the Internet today most of the pages retrieved would be on the bird [[Owl]] rather than the standard [[Web Ontology Language|OWL]]. With a Semantic Web it would be possible to specify the concept "Web Ontology Language" and the user would not need to worry about the various possible acronyms or synonyms as part of the search. Likewise, the user would not need to worry about homonyms crowding the search results with irrelevant data such as information about birds of prey as in this simple example.
 
In addition to OWL, various standards and technologies that are relevant to the Semantic Web and were influenced by Frame languages include [[Ontology Inference Layer|OIL]] and [[DARPA Agent Markup Language|DAML]]. The [[Protégé (software)|Protege]] Open Source software tool from Stanford University provides an ontology editing capability that is built on OWL and has the full capabilities of a classifier. However it ceased to explicitly support frames as of version 3.5 (which is maintained for those preferring frame orientation), the version current in 2017 being 5. The justification for moving from explicit frames being that OWL DL is more expressive and "industry standard".<ref>{{cite web|last=Horridge|first=Mathew|title=Protégé OWL Tutorial A step-by-step guide to modeling in OWL using the popular Protégé OWL tools.|url=http://130.88.198.11/tutorials/protegeowltutorial/|work=Manchester University|publisher=Manchester University|access-date=9 December 2013|archive-url=https://web.archive.org/web/20131213081905/http://130.88.198.11/tutorials/protegeowltutorial/|archive-date=13 December 2013|url-status=dead}}</ref>
 
===Comparison of frames and objects===
Frame languages have a significant overlap with [[Object-oriented programming|object-oriented]] languages. The terminologies and goals of the two communities were different but as they moved from the academic world and labs to the commercial world developers tended to not care about philosophical issues and focused primarily on specific capabilities, taking the best from either camp regardless of where the idea began. What both paradigms have in common is a desire to reduce the distance between concepts in the real world and their implementation in software. As such both [[Paradigm|paradigmsparadigm]]s arrived at the idea of representing the primary software objects in [[Taxonomy|taxonomies]] starting with very general types and progressing to more specific types.
 
The following table illustrates the [[correlation]] between standard terminology from the object-oriented and frame language communities:
 
{| class="wikitable"
Line 167 ⟶ 177:
The primary difference between the two paradigms was in the degree that [[Encapsulation (computer programming)|encapsulation]] was considered a major requirement. For the object-oriented paradigm encapsulation was one of, if not the most, critical requirement. The desire to reduce the potential interactions between software components and hence manage large complex systems was a key driver of object-oriented technology. For the frame language camp this requirement was less critical than the desire to provide a vast array of possible tools to represent rules, constraints, and programming logic. In the object-oriented world everything is controlled by methods and the visibility of methods. So for example, accessing the data value of an object property must be done via an accessor method. This method controls things such as validating the data type and constraints on the value being retrieved or set on the property. In Frame languages these same types of constraints could be handled in multiple ways. Triggers could be defined to fire before or after a value was set or retrieved. Rules could be defined that managed the same types of constraints. The slots themselves could be augmented with additional information (called "facets" in some languages) again with the same type of constraint information.
 
The other main differentiator between frame and OO languages was [[multiple inheritance]] (allowing a frame or class to have two or more superclasses). For frame languages multiple inheritance was a requirement. This follows from the desire to model the world the way humans do, human conceptualizations of the world seldom fall into rigidly defined non-overlapping [[Taxonomy|taxonomies]]. For many OO languages, especially in the later years of OO, single inheritance was either strongly desired or required. Multiple inheritance was seen as a possible step in the analysis phase to model a ___domain but something that should be eliminated in the design and implementation phases in the name of maintaining encapsulation and [[modularity]].<ref>{{cite web|title=The Unified Modeling Language|url=http://www.essentialstrategies.com/publications/modeling/uml.htm|work=essentialstrategies.com|publisher=Essential Strategies Inc.|access-date=10 December 2013|year=1999|quote=In your author's experience, nearly all examples that appear to require multiple inheritance or multiple type hierarchies can be solved by attacking the model from a different direction.}}</ref>
 
Although the early frame languages such as [[KRL (programming language)|KRL]] did not include [[message passing]], driven by the demands of developers, most of the later frame languages (e.g. Loom, KEE) included the ability to define messages on Frames.<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>
Line 191 ⟶ 201:
The most notable of the more formal approaches was the [[KL-ONE]] language.<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 later went on to spawn several subsequent Frame languages. The formal semantics of languages such as KL-ONE gave these frame languages a new type of automated reasoning capability known as the [[Deductive classifier|classifier]]. The classifier is an engine that analyzes the various declarations in the frame language: the definition of sets, subsets, relations, etc. The classifier can then automatically deduce various additional relations and can detect when some parts of a model are inconsistent with each other. In this way many of the tasks that would normally be executed by forward or backward chaining in an inference engine can instead be performed by the classifier.<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>
 
This technology is especially valuable in dealing with the Internet. It is an interesting result that the formalism of languages such as KL-ONE can be most useful dealing with the highly informal and unstructured data found on the Internet. On the Internet it is simply not feasible to require all systems to standardize on one data model. It is inevitable that terminology will be used in multiple inconsistent forms. The automatic classification capability of the classifier engine provides AI developers with a powerful toolbox to help bring order and consistency to a very inconsistent collection of data (i.e., the Internet). The vision for an enhanced Internet, where pages are ordered not just by text keywords but by classification of concepts is known as the [[Semantic Web]]. Classification technology originally developed for Frame languages is a key enabler of the Semantic Web.<ref>{{cite journal |last=Berners-Lee |first=Tim |author2=James Hendler |author3=Ora Lassila |title=The Semantic Web A new form of Web content that is meaningful to computers will unleash a revolution of new possibilities |journal=Scientific American |date=May 17, 2001 |url=http://www.cs.umd.edu/~golbeck/LBSC690/SemanticWeb.html |doi=10.1038/scientificamerican0501-34 |volume=284 |issue=5 |pages=34–43 |url-status=dead |archive-url=https://web.archive.org/web/20130424071228/http://www.cs.umd.edu/~golbeck/LBSC690/SemanticWeb.html |archive-date=2013-04-24 |url-access=subscription }}</ref><ref>{{cite web|last=Horridge|first=Mathew|title=Protégé OWL Tutorial A step-by-step guide to modelling in OWL using the popular Protégé OWL tools.|url=http://130.88.198.11/tutorials/protegeowltutorial/|work=Manchester University|publisher=Manchester University|access-date=9 December 2013|archive-url=https://web.archive.org/web/20131213081905/http://130.88.198.11/tutorials/protegeowltutorial/|archive-date=13 December 2013|url-status=dead}}</ref> The "neats vs. scruffies" divide also emerged in Semantic Web research, culminating in the creation of the [[Linking Open Data]] community—their focus was on exposing data on the Web rather than modeling.
 
== See also ==
Line 200 ⟶ 210:
*[[Knowledge base]]
*[[Knowledge-based system]]
*[[Knowledge graph]]
*[[Ontology language]]
*[[Predicate (disambiguation)|Predicate]]
Line 211 ⟶ 222:
* Russell, Stuart J.; Norvig, Peter (2010), ''Artificial Intelligence: A Modern Approach'' (2nd ed.), Upper Saddle River, New Jersey: Prentice Hall, {{ISBN|0-13-604259-7}}, ch. 1.
* Marvin Minsky, [http://web.media.mit.edu/~minsky/papers/Frames/frames.html A Framework for Representing Knowledge], MIT-AI Laboratory Memo 306, June, 1974.
* Daniel G. Bobrow, Terry Winograd, [ftp://reports.stanford.edu/pub/cstr/reports/cs/tr/76/581/CS-TR-76-581.pdf An Overview of KRL, A Knowledge Representation Language]{{dead link|date=May 2025|bot=medic}}{{cbignore|bot=medic}}
* R. Bruce Roberts and Ira P. Goldstein, [https://web.archive.org/web/20170706131617/ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-408.pdf The FRL Primer], 1977
* R. Bruce Roberts and Ira P. Goldstein, [https://web.archive.org/web/20170706131620/ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-409.pdf The FRL Manual], 1977