An ant is quite a simple animal. Its behavioral repertory is limited to ten to forty elementary behaviors. Yet, anthills are very complex. One can find nursery, warehouses or kitchen gardens. Some individuals forage, others take care of the eggs, repair the nest or protect the anthill against miscellaneous threats. What is the secret? How can such mindless animals achieve such complex organization?

How do they forage, for example?

At the beginning, a number of ants are walking, more or less randomly, outside the nest. They are looking for food. All along their way, they deposit a light trail of pheromones. When an ant finds some food, it returns home, depositing a stronger trail (the intensity of the trail possibly depends on the richness of the discovered resource). Since ants have trail-following behavior, a growing number of individuals will tend to follow it and to reach the food. When they return, they reinforce the trail. Positive feedback (self-amplification) therefore occurs. More individuals reinforce the trail, attracting new individuals, who in their turn reinforce the trail... In this example, the ants don't communicate directly. Information is exchanged through modifications of the environment (here local gradients of pheromones).

At any point in time, an ant moves randomly, with a slightly higher than average probability to follow (or keep on following) a pheromone trail. There are some points I'd like to emphasize:

Ants are myopic, they have no global vision of what's going on;

Ants are selfish and go on without asking for help or for permission;

Ants communicate through modifications of their environment.

Here are some screencasts, first, of ants foraging in a simple scenario: one food source.

In a second example, we have 3 species competing for 3 resources, with different rates of consumption for the resources. Now, what does this have to do with cognition? Subcognitive processes are like ants, and cognition is the emergent product of their tiny acts. Hofstadter uses the term codelet, a small program or procedure, which acts on a small part of a representation, and doesn't know or care what others are doing. Codelets are very much like ants:

They are myopic, with no global vision of what's going on;

They are selfish, going on without asking for help or for permission;

They communicate through modifications of their environment--in this case, a representation of the situation being faced by the cognitive agent.

So the first thing in understanding Hofstadter's cognitive architectures is this: codelets run the show. They do a small bit of work here or there, then die. They can trigger other codelets. They often bump into each other, raising "confusion" in the system's mind--and for confusion we can use the term "Temperature". Finally, since codelets act in parallel and are always being triggered and dying, there should have a "place" where they wait to be executed; this is what's called the coderack--by analogy to a coatrack, in which coats are randomly taken away from it. The coderack holds a bunch of codelets prior to their execution.

Our Jekyll and Hyde-ness is modeled by having these subcognitive processes cooperating with and competing against each other. As The Economist once put it, neurons are cells that like to boss other cells around. However, there is no neuron boss to be found in the brain. And there is no codelet boss to be found in the mind.

So this is the first of ideas that Hofstadter brings to the table (and implements in a computational model, which is much harder). Cognition emerges from subcognitive processes--hence "subcognition equals computation", which is in stark contrast to Simon's view that "Cognition equals computation".

The other two ideas I find fascinating and I think Doug's models are right on track are priming, and understanding.