Conceptually, a cognitive system should have
- Components to process the signals from the sensors, creating percepts.
- A knowledge or belief base, containing what the agent knows or believes.
- Methods for maintaining the belief base, given the stream of incoming percepts.
- A way to represent the agent’s knowledge in a compact form, which is amenable for use in reasoning and planning.
- A set of models for how the environment works (i.e., environment dynamics).
- Reasoning capabilities, i.e., inference for query answering.
- Planning capabilities, i.e., generate recommendations of sequences of actions.
- A way of executing of actions such that they do not conflict with each other and are executed in acceptable time limits.
- The ability to learn and adapt.
- The ability to deal with uncertainty (noise).
- The ability to deal with ignorance (lack of knowledge).
One architecture we can find inspiration from is the HPB agent architecture (Rens & Meyer, 2015; Rens & Moodley, 2017). Here is a flow-diagram representing the architecture:
Another architecture we can find inspiration from is the Stochastic Belief Management framework (Rens, Meyer & Moodley, 2017). Here is a high-level conceptual model:
A more practical architecture for a computational cognitive system might be composed of six main modular components.
- Signal processing and observation buffering.
- A probabilistic belief base and belief change operators.
- Belief state condensation.
- Environment dynamics representation.
- Intention and goal management.
- Real-time stochastic action planning under partial observability.
Each module would be implemented with Artificial Intelligence techniques and algorithms from the state of the art.