known to psychologists for quite a while and has only recently been redis-
covered by AI workers, who are now confronting the problems of
"chunked" knowledge, and the difference between procedural and de-
clarative types of knowledge, which is related, as we saw in Chapter XI, to
the difference between knowledge which is accessible to introspection and
knowledge which is inaccessible to introspection.
The naive assumption that all knowledge should be coded into passive
pieces of data is actually contradicted by the most fundamental fact about
computer design: that is, how to add, subtract, multiply, and so on is not
coded into pieces of data and stored in memory; it is, in fact, represented
nowhere in memory, but rather in th(· wiring patterns of the hardware. A
pocket calculator does not store in its memory knowledge of how to add;
that knowledge is encoded into its "guts". There is no memory location to
point to if somebody demands, "Show me where the knowledge of how to
add resides in this machine!"
A large amount of work in AI has nevertheless gone into systems in
which the bulk of the knowledge is stored in specific places-that is, de-
claratively. It goes without saying that some knowledge has to be embodied
in programs; otherwise one would not have a program at all, but merely an
encyclopedia. The question is how to split up knowledge between program
and data. Not that it is always easy to distinguish between program and
data, by any means. I hope that was made clear enough in Chapter XVI.
But in the development of a system, if the programmer intuitively con-
ceives of some particular item as data (or as program), that may have
significant repercussions on the system's structure, because as one pro-
grams one does tend to distinguish between data-like objects and program-
like objects.
It is important to point out that in principle, any manner of coding
information into data structures or procedures is as good as any other, in
the sense that if you are not too concerned about efficiency, what you can
do in one scheme, you can do in the other. However, reasons can be given
which seem to indicate that one method is definitely superior to the other.
For instance, consider the following argument in favor of using procedural
representations only: "As soon as you try to encode features of sufficient
complexity into data, you are forced into developing what amounts to a
new language, or formalism. So in effect your data structures become
program-like, with some piece of your program serving as their interpret-
er; you might as well represent the same information directly in procedural
form to begin with, and obviate the extra level of interpretation."
DNA and Proteins Help Give Some Perspective
This argument sounds quite convincing, and yet, if interpreted a little
loosely, it can be read as an argument for the abolishment of DNA and
RNA. Why encode genetic information in DNA, when by representing it
directly in proteins, you could eliminate not just one, but two levels of
interpretation? The answer is: it turm out that it is extremely useful to have
(^616) Artificial Intelligence: Retrospects