Are Frames and Slots anything more that OO with a different name?

Frames and slots were hot in the 80s but now the terminology seems to be rarely used. Is this because the frame model are a subset of the OO model?

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Data Encoding Method vs Programming Language

I think the primary difference is one of origins. Frame-Based Systems originated from AI (Marvin Minsky I think) where they were used as a means of encoding knowledge. If however you let slots also contain functions, then you essentially end up with an OO programming language. I read somewhere that frames were the original inspiration for the Self programming language (via Peter Deutsch who noticed the similiarity between Frames and Objects).

Self, Lua, and even Javascript are all very "frame and slot"-ish.

I thought that CycL was frame-based but according to the Wikipedia article:

The original version of CycL was a frame language, but the modern version is not. Rather, it is based on classical first-order logic, with extensions for modal operators and higher order quantification.

Logical Foundations of OO and Frame-Based Languages

You might find this paper interesting.

Also, the Wikipedia article on Frame Languages has some interesting links.

once upon a time

... I saw a book about the theoretical basis for object-oriented languages. I don't remember the title now, but it was chock full of frames & slots everywhere.

I think the book is "A

I think the book is "A Theory of Objects"

See here

No, judging by the TOC

...and also having read several papers of the authors.

BTW, nice idea of concept map. Is it widely used?

Are FRLs just OO languages?

FWIW ...

During the late 1980's early 1990's, I worked at Bolt, Beranek & Newman, Inc. Anyway, Bruce Roberts (one of the authors of the originalFrames Representation Language (FRL) document) told me that when he and Goldstein told Marvin that they had written this paper wherein they outlined the design of a Frames Representation Language, etc., Marvin's reaction was ho-hum. He could care less.

Apparently, he'd never thought of Frames as a programming paradigm, per se; apparently, he was more interested in presenting a pure model ... such as these things go.

IIRC a lot of people were frustrated with the early FRL implementation because of the nasty side-effects. I implemented one or two of these myself and can attest to the difficulty of controlling activation, deamonic slot methods, etc. So, the more conservative forces brought typing to bear, among other mechanisms, to "tame" the beast.

Don't know where any of this leads us ... but it might be an interesting anecdote for some...



Frames Subsume Objects

The frame model is not a subset of the OO model. And FRLs are not just OO languages. Everything Kevin Greer says is correct AFAICT.

A frame represents a situation (context, if you wish), e.g., I sit down at a table at a restaurant. There may be many objects (e.g., me, the table, chair, waiter, menu, silverware, etc.) and many actions (ask for wine menu, read menu, order food, eat, etc.) within the same frame.

The OO model _could_ be thought of as a subset of the frame model:

  • limit every frame to be an object,

  • limit every element of each frame to be an object attribute and
  • limit every action in the frame to be an object method.
But I see little gained by doing so other than demonstrating how much more restrictive the OO model is than the frame model.

Slots and Prototyping

I'm sure you all already know about Self, a prototyping based OO language. Also, Io is similar language. Both are considered to be OO languages and use slots to set object attributes and methods, and use prototypes to eliminate the need for classes.

My first post, but I had to register to mention these two languages, as everyone else was talking about frames. Maybe prototyping and slots are not the right typic (I don't know anything about frames), or maybe it is too obvious to discuss. The link to Self is to the white papers.