John McCarthy presented “Programs with Common Sense” at the 1958 Mechanisation of Thought Processes symposium, and it appeared in the 1959 proceedings; the author’s own copy is hosted on his Stanford pages. In it McCarthy argued that the way to make a program intelligent in a flexible, general way was not to wire in fixed behaviors but to give it knowledge expressed declaratively, as statements of fact, plus the ability to deduce consequences from those facts.
He sketched a hypothetical system he called the advice taker. The idea was that you could tell the program things, in a formal logical language, and it would work out what follows, so that improving its behavior would be a matter of giving it new facts and advice rather than rewriting its code. A program with common sense, in McCarthy’s phrase, was one that automatically deduces for itself a sufficiently wide class of immediate consequences of anything it is told and already knows. The paper used a small worked example of reasoning about how to get to the airport to make the point concrete.
The paper is a founding document of symbolic, logic-based artificial intelligence and of knowledge representation. The separation it proposed, between a store of declarative knowledge and a general reasoning engine, shaped decades of work on expert systems, automated reasoning, and planning, and it framed a debate, declarative knowledge versus procedural code, that still runs through the field. The primary source used here is McCarthy’s own hosted text.
For a general reader, this is where the dream of a machine you can simply tell things to, and have it reason sensibly, was first laid out in print.