For an adaptive system, control information comes from experience. Under AIKR, the design objective is to use experience to the extent allowed by available resources.
AIKR means a task can be unanticipated in content, arrival time, and response-time requirement, so its processing cannot follow an existing algorithm specified in advance for a problem type.
Case-by-case problem solving: directly reasoning on problem instance, using available knowledge and resources at the moment. This approach provides flexibility and creativity, but lacks predictability and repeatability. It cannot be analyzed in terms of computability and computational complexity.
For a given task, its processing is mostly determined by the beliefs (knowledge of the system) interacting with it.
Intuitively speaking, tasks are active, while beliefs are passive. Both are Narsese sentences.
Controlled concurrency: to process many tasks by time-sharing, though each with a different speed, and to a different depth.
NARS inference processes consists of forward steps, backward steps, and "local steps".
The take-out operation is probabilistic, according to the priority distribution of the items in the bag.
Each operation takes a small constant time to finish.
Bag supports the usage of insufficient time and space using relative and absolute forgetting.
In NARS, each concept is named by a term, and refers to the tasks and beliefs with the term in it. A concept is an independent unit of storage and processing.
The system's memory contains a bag of concepts; a concept contains a bag of tasks and a bag of beliefs.
The priority value of an item mainly depends on the following factors:
The control part of NARS is less mature than the logic part, because it depends on the latter.
NARS is implemented in Java, with an open source version.
NAL is also coded in Prolog.