Chaque structure a une force, variant avec le temps, qui est fonction de nombreux facteurs.
La figure 3.3 affiche un état possible du Workspace, illustrant nombre de ces structures. On y trouve plusieurs liens (arcs courts entre les lettres d'une chaîne, représentant diverses relations de similitude et de succession). Chaque lien successeur a une direction (indiquée par le sens de la flèche), alors que ceux de similitude n'ont pas de direction. Un groupe est indiqué par un rectangle autour des deux k. Ce rectangle est marqué par un K qui donne la catégorie de lettre du groupe. Une fois construit, un groupe compte comme un objet unitaire, tout-à-fait comme une lettre : il peut alors être un élément dans un lien, dans un groupe, ou dans une correspondance. De plus, trois correspondances chaîne-initiale-vers-chaîne-modifiée ont été construites. La règle « Remplacer la catégorie de lettre de la lettre la plus à droite par son successeur » (en haut de la figure) est basée sur ces correspondances. Ici, « catégorie de lettre » explicite quel aspect du c a changé. La raison de cette spécification à l'intérieur de la règle est que les objets -- lettres et groupes -- du Workspace peuvent avoir plusieurs aspect modifiables. Par exemple, le groupe jjj dans mrrjjj peut être perçu comme ayant la catégorie de lettre J et la longueur 3. Quand ces deux aspects sont perçus, l'un ou l'autre peut être candidat à modification lors de l'analogie. Enfin, on y voit une correspondance (représentée par la ligne la plus épaisse) de c vers le groupe des k, en dessous duquel sont affichés les associations sur lesquelles ce groupe est fondé : le plus à droite le plus à droite et lettre groupe. Cela reflète le fait que le groupe K joue le même rôle dans la chaîne cible que celui de c dans la chaîne initiale : chacun est le plus à droite dans sa chaîne. Cette association requiert aussi un glissement de lettre à groupe.
Le Workspace de COPYCAT est censé correspondre à la région mentale dans laquelle les représentations des situations sont construites dynamiquement. Le processus de construction est conduit par des agents simples appelés codelets . Un codelet est un bout de code qui effectue un petite tâche locale qui est une partie du processus complet de construction d'une structure. Les codelets ascendants (« remarqueurs ») travaillent sur la base de tout ce qu'ils peuvent trouver, sans qu'on leur demande de chercher des instances de concepts spécifiques ; les codelets descendants (« chercheurs ») recherchent des instances de nœuds particuliers actifs, comme successeur, ou groupe de similarité. Les codelets en attente sont dans une structure de données appelée Coderack, et sont choisis un par un avant d'être exécutés (sur la base des urgences relatives de tous les codelets attendant dans le Coderack).
Chaque structure est construite par une série de codelets, chacun décidant aléatoirement -- sur la base d'estimations de plus en plus profondes de la valeur de la structure -- s'il faut continuer le processus d'évaluation en générant un ou plusieurs codelets pour prendre la suite ou s'il faut abandonner. S'il décide de continuer, le codelet assigne une urgence (sur la base de son estimation de la valeur de la structure) à chaque codelet suivant et l'envoie dans le Coderack. Cette urgence sert à déterminer la longueur de l'attente des codelets avant qu'ils puissent être exécutés et continuer l'évaluation de cette structure -- plus la valeur d'urgence est élevée, plus la probabilité d'être exécuté rapidement est grande.
Une fois qu'une structure a été construite, elle peut indirectement influencer la construction d'autres structures, aidant ainsi à accélérer la construction de structures qui la soutiennent et hâtant la suppression de structures rivales. Des structures incompatibles ne peuvent pas exister simultanément ; l'issue des conflits entre structures incompatibles est décidée aléatoirement sur la base de leurs forces respectives.