Neats vs. scruffies

In artificial intelligence, the labels neats and scruffies are used to refer to one of the continuing philosophical disputes in artificial intelligence research. This conflict is over a serious concern: what is the best way to design an intelligent system? Neats consider that solutions should be elegant, clear and provably correct. Scruffies believe that intelligence is too complicated (or computationally intractable) to be solved with the sorts of homogeneous system such neat requirements usually mandate.

The distinction was originally made by Roger Schank in the middle 70s to characterize the difference between his work on natural language processing from the work of John McCarthy, Alan Newell and others whose work was based on logic (Prolog, Soar, etc.). The "frames" introduced by Marvin Minsky in 1975 were also considered "scruffy" at the time.

Much success in AI has come from combining neat and scruffy approaches. For example, there are many cognitive models matching human psychological data built in Soar and ACT-R. Both of these systems have formal representations and execution systems, but the rules put into the systems to create the models are generated ad hoc.

Typical methodologies
As might be guessed from the terms, neats use formal methods – such as logic or pure applied statistics – exclusively. Scruffies are hackers, who will cobble together a system built of anything – even logic. Neats care whether their reasoning is both provably sound and complete and that their machine learning systems can be shown to converge in a known length of time. Scruffies would like their learning to converge too, but they are happier if empirical experience shows their systems working than to have mere equations and proofs showing that they ought to.

To a neat, scruffy methods appear promiscuous, successful only by accident and unlikely to produce insights about how intelligence actually works. To a scruffy, neat methods appear to be hung up on formalism and to be too slow, fragile or boring to be applied to real systems.

Relation to philosophy and human intelligence
This conflict goes much deeper than programming practices, (though it clearly has parallels in software engineering). For philosophical or possibly scientific reasons, some people believe that intelligence is fundamentally rational, and can best be represented by logical systems incorporating truth maintenance. Others believe that intelligence is best implemented as of a mass of learned or evolved hacks, not necessarily having internal consistency or any unifying organizational framework.

Ironically, the apparently scruffy philosophy may also turn out to be provably (under typical assumptions) optimal for many applications. Intelligence is often seen as a form of search, and as such not believed to be perfectly solvable in a reasonable amount of time (see also NP and Simple Heuristics, commonsense reasoning, memetics, reactive planning).

It is an open question whether human intelligence is inherently scruffy or neat. Some claim that the question itself is unimportant: the famous neat John McCarthy has said publicly he has no interest in how human intelligence works, while famous scruffy Rodney Brooks is openly obsessed with creating humanoid intelligence (Brooks 2001).

Well-known neats and scruffies
Neats


 * John McCarthy
 * Alan Newell
 * Herbert Simon
 * Edward Feigenbaum
 * Robert Kowalski
 * Judea Pearl
 * David McAllester
 * Daphne Koller

Scruffies


 * Rodney Brooks
 * Marvin Minsky
 * Roger Schank
 * Doug Lenat
 * Steve Grand