Memory and Control
1. Inference Control
Implementing a logic in a reasoning system:
- Choose a data structure for the sentences (knowledge/beliefs, questions/tasks, intermediate results),
- Code the grammar rules and inference rules into executable routines,
- Design a mechanism (traditionally an algorithm) to select premises and inference rules in each step for given tasks.
Separating logic and control: declarative programming, production system
Issues:
2. Alternative Solutions
3. Inference Control in NARS
Working environment: novel problems (insufficient knowledge), non-exhaustive exploration (insufficient resources).
Basic ideas:
- Case-by-case problem-solving
- Controlled concurrency
NARS design:
- Task, belief, concept (concept graph)
- Bag-based storage (probabilistic priority queue)
- Architecture and working cycle (unified routine)
- Resource allocation policies (dynamic attention shifting)
OpenNARS implementations. Version 1.5.8: NAL-1 to NAL-6
Reading
- Non-Axiomatic Logic: A Model of Intelligent Reasoning, 2nd Edition, Chapter 5