Hacker News new | past | comments | ask | show | jobs | submit login
FRAMES – A Framework for Representing Knowledge (1974) (mit.edu)
56 points by tosh 6 months ago | hide | past | web | favorite | 20 comments

Using Prolog + OWL[1][2][3] would be more modern alternative.

[1] http://www.swi-prolog.org/web/

[2] http://www.swi-prolog.org/web/Triple20.html

[3] http://vangelisv.github.io/thea/

See also the FRL (Frame Representation Language) Primer from 1977:


There is also a manual:


FRL was probably the first language to explore the Frame ideas in the context for programming.

The old Lisp-based implementation of FRL: https://github.com/lispm/FRL

It won't run under a current Lisp, though.

There's a chapter on FRL-style frames in Winston & Horn, 1st edition.

Doug Lenat's Eurisko was implemented in RLL, another frame-based language.

A frame system that will run in a current Lisp is Parmenides [1].

[1] https://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/areas...

how much of this influenced early CL object systems (CLOS, LOOPS and others)

For LOOPS see: http://www.markstefik.com/?page_id=334

One of the main influences was that CLOS was supposed to be flexible enough to implement a Frame system - which is usually more dynamic than even CLOS. The MOP (meta object protocol) can act as the infrastructure for that.


In 1984 Dan Dennett wrote why this fails outside of any formally defined context.

Cognitive wheels: the frame problem of AI


TL;DR, (but if you're interested in this you really should R) There's no formal way to decide which frame is currently in scope, and the proposed solution of "frames for deciding which frame" leads to an infinite regress.

The frame problem is unrelated to frame systems. A frame in the Minsky sense is more like a persistent object.

The Dennett paper I've linked refers directly to the Minsky paper of the article, it quotes it at some length.

The content is certainly critical of the notion of a persistent object which helps bucket knowledge.

From Minsky's paper "Here is the essence of the theory: When one encounters a new situation (or makes a substantial change in one's view of the present problem) one selects from memory a structure called a Frame. This is a remembered framework to be adapted to fit reality by changing details as necessary.", Dennett basically says you've replaced the problem of "Which things am I likely to encounter in this situation" with "Which frame best represents the situation I've just arrived at".

The original 1969 paper by McCarthy and Hayes defining frame is here: http://www-formal.stanford.edu/jmc/mcchay69.pdf

In this sense, a frame describes the state of a system in time, like (metaphorically) a film frame. Dennett also uses frames in this sense. (But see https://plato.stanford.edu/entries/frame-problem/ which incidentally doesn't cite Minsky.)

Minsky's 1974 paper doesn't cite McCarthy and Hayes, and he seems to be using frame in a different and more general sense, as a structure for holding data. Whether he had the frame problem in the back of his mind I don't know, but he doesn't address it directly in his paper and I can't find any evidence it was his intention.

In any case, frames in the Minsky sense have been used successfully in other systems, such as AM and Eurisko, as well as EMYCIN, and also in the Semantic Web.

Similar to Scott Fahlman's Scone Knowledge-Base Project: http://www.cs.cmu.edu/~sef/scone/

In '88 my undergrad senior thesis was a Frame based knowledge representation system. We used it for financial modeling and as a 3D graphics algorithmic testbed.

at CMU?

Boston University

Is there a framework which lets one encode these ideas today ?

Stanford universiry manages a tool called Protege (cf protege.stanford.edu). It is now fully RDF/OWL, I presume. But in the last decade, there was a dedicated version for FRAMES. (I Think this link is still valid: https://protege.stanford.edu/download/protege/3.4/installany...)

A stage inbetween Frames in Lisp and RDF/OWL was KIF [1].

[1] https://en.wikipedia.org/wiki/Knowledge_Interchange_Format

There's Framenet, a computational collection of frames.



RDF/OWL, and the various vocabularies built around it.

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact