Source Summary: McCarthy 1958 — Programs with Common Sense
Full title: Programs with Common Sense
Authors: John McCarthy
Affiliation: Stanford University (originally MIT, 1958)
Venue: Proceedings of the Symposium on Mechanization of Thought Processes, NPL Teddington (1958/1959)
PDF: papers/mccarthy-1958-programs-with-common-sense.pdf
Contributions
- Advice Taker — a proposed AI system that reasons in predicate calculus, separating knowledge from procedure.
- Common sense defined as the ability to automatically derive consequences from known facts — not hardcoded rules, but general logical inference.
- Declarative knowledge representation — knowledge stored as logical sentences, not as program code; behavior is controlled by changing the knowledge base, not rewriting the program.
- Blueprint for knowledge-based systems — anticipates STRIPS (1971), expert systems (1970s–80s), and modern knowledge graphs.
The Advice Taker
From the paper:
“A program has common sense if it automatically deduces for itself a sufficiently wide class of immediate consequences of anything it is told and what it already knows.”
Key design principles:
- Knowledge is represented in a formal language (predicate calculus)
- The system accepts both declarative sentences (facts) and imperative sentences (goals)
- When an imperative sentence is deduced, the system takes the corresponding action
- Behavior can be changed by telling the system new facts — no reprogramming required
The airport example
McCarthy’s famous worked example (from PDF):
Given facts:
- I am at home (location fact)
- The airport is reachable from any location by car
- My car is at home
Given goal (imperative): I want to be at the airport.
The Advice Taker derives:
- I can drive my car to the airport
- Therefore: action = drive to airport
This requires no special-purpose code for “going to airport.” The system reasons from general facts. To change behavior (e.g., car is broken), update the knowledge base — not the program.
Why this was revolutionary
Prior AI programs (Logic Theorist, Geometry Theorem Prover) had knowledge baked into the procedure — you couldn’t tell the program new facts; you had to rewrite it. McCarthy’s insight: if knowledge is represented declaratively and inference is general, the system can be updated by teaching rather than programming.
This is the foundation of:
- STRIPS (Fikes & Nilsson 1971) — planning by logical representation of actions
- Expert systems (Feigenbaum 1970s–80s) — knowledge bases of domain facts + inference engine
- Prolog (Colmerauer 1972) — logic programming
- OWL/RDF — semantic web knowledge representation
Limitations acknowledged
- The formal language must be rich enough to express commonsense knowledge
- Inference must be computationally tractable (the frame problem: how to represent what doesn’t change)
- Learning — how to acquire knowledge automatically — is left open
The frame problem (how to represent that most facts remain unchanged after an action) was later formalized by McCarthy & Hayes (1969) and remained a central challenge of symbolic AI.
Key References (from paper)
- Newell, Simon & Shaw — Logic Theory Machine
- McCarthy 1959 — Programs with Common Sense (expanded version)
- McCarthy & Hayes 1969 — Some Philosophical Problems from the Standpoint of AI (frame problem)