Programs with Common Sense

Authors: John McCarthy
Year: 1958 | NPL Symposium on Mechanization of Thought Processes
Source: mccarthy-1958-programs-with-common-sense


What it is

McCarthy’s 1958 paper proposed the Advice Taker — an AI system that reasons in predicate calculus, stores knowledge as declarative sentences, and derives actions by logical inference. The central innovation: separating knowledge from procedure. Instead of encoding behavior in program code, you tell the system facts, and it figures out what to do. This defined the knowledge-based systems paradigm that dominated AI for thirty years.


Common sense, defined

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.”

This is a precise operationalization of “common sense” — not intuition or experience, but the ability to derive logical consequences from a knowledge base. A system has common sense if, given new facts, it can figure out what follows without being explicitly programmed for each case.


The Advice Taker

Two kinds of sentences:

  • Declarative: facts about the world (the airport is reachable from home by car)
  • Imperative: goals (I want to be at the airport)

The system derives imperative sentences (actions) by logical inference from the knowledge base. When it derives an action, it executes it.

The airport example

Knowledge base:

  • I am at home
  • My car is at home
  • The airport is reachable from any location by car
  • I own my car

Goal (imperative): be at the airport.

The system derives: drive the car from home to the airport.

No special code for “going to the airport.” The derivation is entirely from general facts. To change behavior (car is broken, take a taxi instead), update the knowledge base — don’t rewrite the program.


The key separation

Prior AI programsAdvice Taker
Knowledge baked into procedureKnowledge stored as declarative sentences
Change behavior → rewrite codeChange behavior → add/update facts
Heuristics = implicit rulesHeuristics = explicit logical sentences
Hard to explain behaviorBehavior follows from inspectable premises

McCarthy called this making the system’s knowledge accessible — you can read, modify, and reason about it, not just observe its effects.


The frame problem (implicit)

The paper didn’t name it, but the Advice Taker implicitly raises what became the frame problem: how do you represent what doesn’t change when an action occurs?

If you drive to the airport:

  • Your location changes
  • Your car’s location changes
  • But everything else stays the same

In predicate calculus, “everything else stays the same” requires either enumerating all unchanged facts (expensive) or a general inference rule that’s hard to state correctly. McCarthy and Hayes formalized this in 1969. It remained the central challenge of symbolic AI until the 1980s.


What it directly inspired

Advice Taker (1958)
      ↓
STRIPS (Fikes & Nilsson 1971) — planning by logical action representation
      ↓
Expert Systems (Feigenbaum et al. 1970s) — knowledge bases + inference engines
      ↓
Prolog (Colmerauer 1972) — logic programming
      ↓
OWL / RDF (2000s) — semantic web knowledge representation
      ↓
Modern knowledge graphs (Wikidata, Google KG)

Every system that stores knowledge separately from reasoning code, and uses inference to derive behavior, traces back to the Advice Taker.


Symbolism vs. connectionism

The Advice Taker is the clearest statement of the symbolic AI position: intelligence is reasoning over explicit representations. The contrast with connectionism is sharp:

  • Connectionism: knowledge is implicit in weights, derived from examples
  • Symbolism: knowledge is explicit sentences, derived by logical inference

Modern LLMs (GPT-3, etc.) combine both: their weights implicitly encode vast world knowledge, but they can also reason over explicitly stated facts in context. Whether this counts as symbolic AI is a live debate.


See also