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
| Problem | Frames’ solution |
|---|---|
| Recognizing a scene | Match perceived features against frame slots |
| Filling in missing info | Use default values |
| Updating beliefs | Override specific slots without replacing the frame |
| Language understanding | Sentences activate frames; words fill slots |
| Planning | Goal 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:
| Descendant | Year | What it inherited |
|---|---|---|
| Smalltalk (OOP) | 1972 | Classes = frames; instances = filled frames |
| FRL (Frame Representation Language) | 1977 | Direct implementation |
| KL-ONE | 1977 | Formal frame logic |
| Scripts (Schank) | 1977 | Frames for event sequences |
| HTML DOM | 1990s | Structured document with typed slots |
| OWL / RDF | 2000s | Formal frame-based ontologies |
The class-instance-inheritance model of every modern programming language is a direct descendant of Minsky’s frames.
See also
- minsky-1969-perceptrons-an-introduction-to-computational — Minsky’s earlier work, critiquing connectionism
- mccarthy-1958-programs-with-common-sense — The flat logical representation frames were designed to improve on
- newell-1976-computer-science-as-empirical-inquiry — Physical symbol systems: the theoretical context frames operate within