Perception, Action, and Multiple Interaction Channels
Let us now take a look at OCP perception and action from the perspective of software architecture and cognitive architecture. To understand OCP as an embodied perceiving and acting system, let's start with the external world. External-world events come into the OCP system from physical or virtual world sensors, plus from other sources such as database interfaces, Web spiders, and/or other sources. The external systems providing OCP with data may be generically referred to as sensory sources. Once Atoms have been created to represent external data, then one is dealing with perceptions rather than sensations.
What we call an "interaction channel" is a collection of sensory sources that is intended to be considered as a whole as a synchronous stream, and that is also able to receive OCP actions — in the sense that when OCP carries out actions relative to the interaction channel, this directly affects the perceptions that OCP receives from the interaction channel.
A OCP meant to have conversations with 10 separate users at once might have 10 interaction channels. A human mind has only one interaction channel in this sense (although humans may become adept at processing information from multiple external-world sources, coming in through the same interaction channel).
Multiple-interaction-channel digital psychology may become extremely complex — and hard for us, with our single interaction channels, to comprehend. This is one among many cases where a digital mind, with its more flexible architecture, will have a clear advantage over our human minds with their fixed and limited neural architectures. For simplicity, however, in the following chapters we will often focus on the single-interaction-channel case.
Events coming in through an interaction channel are presented to the system as new perceptual Atoms, such as PixelNodes, PolygonNodes, CharacterInstanceNodes or NumberInstanceNodes, and relationships amongst these. The AttentionValues of these newly created Atoms require special treatment. Not only do they require special rules, they require additional fields to be added to the AttentionValue object, beyond what has been discussed so far.
We require newly created perceptual Atoms to be given a high initial STI. And we also require them to be given a high amount of a quantity called "interaction-channel STI." To support this, the AttentionValue objects of Atoms must be expanded to contain interaction-channel STI values; and the ImportanceUpdating CIMDynamic must apply the IUF to compute interaction-channel importance separately from ordinary importance.
Some interaction channels will come with mechanisms that give certain new perceptual Atoms more generic and interaction-channel-specific STI than others.
Newly created perceptual Atoms must also have their TruthValues set, with strength=1 indicating that the Atom denotes something definitely present in the observed world, and strength < 1 denoting uncertain presence. The first-order inference CIM-Dynamics will then propagate these strength variables, via the node probability inference rules. Via this inference process, for example, when a ListLink corresponding to the word cow is created, the corresponding ConceptNode cow will gain additional strength.
Just as we have channel-specific AttentionValues, we may also have channel-specific TruthValues. This allows the system to separately account for the frequency of a given perceptual item in a given interaction channel. However, no specific mechanism is needed for these, they are merely contextual truth values, to be interpreted within a Context Node associated with the interaction channel.
Once perceptual Atoms have been created, various perceptual CIMDynamics comes into play, taking perceptual schemata (schemata whose arguments are perceptual nodes or relations therebetween) and applying them to Atoms recently created (creating appropriate ExecutionLinks to store the results). The need to have special, often modality-specific perception CIMDynamics to do this, instead of just leaving it to the generic SchemaExecution CIMDynamic, has to do with computational efficiency, scheduling and parameter settings. Perception CIMDynamics are doing schema execution urgently, and it's doing it with parameter settings tuned for perceptual processing. This means that, except in unusual circumstances, newly received stimuli will be processed immediately by the appropriate perceptual schemata.
Some newly formed perceptual Atoms will have links to existing atoms, ready-made at their moment of creation. CharacterInstanceNodes and NumberInstanceNodes are examples; they are born linked to the appropriate CharacterNodes and NumberNodes. Of course, atoms representing perceived relationships, perceived groupings, etc., will not have ready-made links and will have to grow such links via the standard cognitive processes. The context formation CIMDynamic looks at perceptual atom creation events and creates Context Nodes accordingly; this should be timed so that the Context Nodes are entered into the system rapidly, so that they can be used by the processes doing initial-stage link creation for new perceptual atoms.
As discussed above, in a full OCP configuration, newly created perceptual nodes and perceptual schemata will reside in a special perception-oriented Units. The purpose of this is to ensure that perceptual processes occur rapidly, not delayed by slower cognitive processes.
Finally, separate from the ordinary perception process, it is also valuable for there to be a direct route from the system's sensory sources to the overall MindDB that records all of the system's experience. This does not involve perceptual schemata at all, nor is it left up to the sensory source; rather, it is carried out by the OCP server at the point where it receives input from the sensory source. This experience database is a record of what the system has seen in the past, and may be mined by the system in the future for various purposes. The creation of new perceptual atoms should also be stored in the experience database; this portion of the MindDB is what the "TimeServer" process mentioned above accesses, in the context of context formation.
Obviously, the MindDB is something that has no correlate in the human mind/brain. This is a case where OCP takes advantage of the non-brainlike properties of its digital computer substrate. The OCP perception process is intended to work perfectly well without access to the comprehensive database of experiences potentially stored in the MindDB. However, a complete record of a mind's experience is a valuable thing, and there seems no reason for the system not to exploit it fully. Advantages like this allow the OCP system to partially compensate for its lack of some of the strengths of the human brain as an AI platform, such as massive parallelism.