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 premise(s) and inference rule(s) in each step for a given task/problem.
Separating logic and control (declarative programming, production system)
An inference process (problem solving, question answering, task processing) as searching, forward and backward
Issues in control algorithms:
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 + hashtable)
- Architecture and working cycle (unified routine)
- Resource allocation policies (dynamic attention shifting)
Refernece: OpenNARS Version 1.5.7, an implementation of NAL-1 to NAL-6
Reading
- Non-Axiomatic Logic: A Model of Intelligent Reasoning, 2nd Edition, Chapter 5