FRAMES – A Framework for Representing Knowledge (1974)
web.media.mit.edu
web.media.mit.edu
[1] http://www.swi-prolog.org/web/
https://dspace.mit.edu/handle/1721.1/5767
There is also a manual:
https://dspace.mit.edu/handle/1721.1/5768
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.
[1] https://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/areas...
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.
Doug Lenat's Eurisko was implemented in RLL, another frame-based language.
Cognitive wheels: the frame problem of AI
https://pdfs.semanticscholar.org/3aa1/296bbe4ae9a56aba47343a...
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 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".
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.
[1] https://en.wikipedia.org/wiki/Knowledge_Interchange_Format