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

  1. Advice Taker — a proposed AI system that reasons in predicate calculus, separating knowledge from procedure.
  2. Common sense defined as the ability to automatically derive consequences from known facts — not hardcoded rules, but general logical inference.
  3. Declarative knowledge representation — knowledge stored as logical sentences, not as program code; behavior is controlled by changing the knowledge base, not rewriting the program.
  4. 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:

  1. I can drive my car to the airport
  2. 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)