A Framework for Representing Knowledge

Authors: Marvin Minsky
Year: 1974 | MIT AI Lab Memo 306
Source: minsky-1974-a-framework-for-representing-knowledge


What it is

Minsky’s 1974 memo proposed frames — data structures for representing stereotyped situations. A frame is a template for a type of situation (a birthday party, a living room, a face), with slots for the specific details and default values for what’s typical. Frames addressed a deep problem with logic-based knowledge representation: real-world reasoning requires context, expectation, and structured defaults, not just isolated facts. Frames are the direct ancestor of object-oriented programming, semantic networks, and modern ontologies.


The problem with atomic knowledge

McCarthy’s Advice Taker stored knowledge as independent logical sentences:

has-wheels(car)
can-move(car)
needs-fuel(car)
...

The problem: real-world reasoning is contextual. When you enter a living room, you don’t look up thousands of independent facts. You retrieve a frame — a structured bundle of expectations — and fill in the details from what you see.

From the paper:

“The ‘chunks’ of reasoning, language, memory, and perception ought to be larger and more structured; their factual and procedural contents must be more intimately connected.”


What a frame is

A frame is a data structure with:

  • Fixed top-level slots: what is always true about this type of situation
  • Terminal slots: placeholders to be filled with specific values
  • Default values: what to assume when a slot is empty
  • Conditions: constraints on what can fill a slot
  • Procedures: code that runs when a slot is filled (demons)
[Living Room Frame]
  furniture:   (default: sofa, chairs, coffee table)
  lighting:    (default: moderate, artificial)
  floor:       (default: carpet or hardwood)
  walls:       (conditions: must have at least one window)
  occupants:   (default: empty)

When you walk into a room and see sofas and a TV, you match this frame. Unknown details are filled with defaults. Surprising details (a swimming pool) update specific slots without replacing the whole frame.


Frame systems

Related frames are linked into frame systems. Example: a cube viewed from different angles.

[Cube Frame: Front view]   ←→   [Cube Frame: Side view]   ←→   [Cube Frame: Top view]
   linked by transformation rules that specify
   how each frame's terminals relate across viewpoints

When you rotate your view of a cube, you transition from one frame to another. The transformation rules encode what changes and what stays the same.

This handles a key problem: a slight change in situation (or viewpoint) shouldn’t require retrieval of a completely new, independent knowledge structure.


Defaults and inheritance

Slots have default values — what’s expected if no specific information is provided:

[Bird Frame]
  can-fly:    (default: true)
  has-wings:  (default: true)
  has-feathers: (default: true)

For most birds, defaults apply. For penguins:

[Penguin Frame] (inherits from Bird Frame)
  can-fly:    false    ← overrides default
  locomotion: swimming ← adds slot

This is inheritance with override — the same mechanism that object-oriented programming later made universal.


Why frames matter for AI

ProblemFrames’ solution
Recognizing a sceneMatch perceived features against frame slots
Filling in missing infoUse default values
Updating beliefsOverride specific slots without replacing the frame
Language understandingSentences activate frames; words fill slots
PlanningGoal frames specify desired slot values

Frames unify perception, memory, language, and action under one representational framework. This was Minsky’s ambition: a theory that explains how the mind works generally, not just for one task.


Impact on computing

Frames didn’t stay in AI — they became a universal programming concept:

DescendantYearWhat it inherited
Smalltalk (OOP)1972Classes = frames; instances = filled frames
FRL (Frame Representation Language)1977Direct implementation
KL-ONE1977Formal frame logic
Scripts (Schank)1977Frames for event sequences
HTML DOM1990sStructured document with typed slots
OWL / RDF2000sFormal frame-based ontologies

The class-instance-inheritance model of every modern programming language is a direct descendant of Minsky’s frames.


See also