AGISystem2 implements two distinct reasoning engines that can be used interchangeably based on the reasoningPriority configuration. Both engines share the same API interface but differ in their approach to proof search and query resolution.
Symbolic-first proof search with HDC as an acceleration layer.
Similarity-guided candidate discovery with symbolic validation.
How variable binding, unification, and retrieval are implemented.
Backward chaining, rule application, traces, and validation steps.
Hypothesis generation under constraints (explain observations).
Generalize patterns into rules (learn from examples).
Mode: symbolicPriority (default)
Classical logical reasoning with HDC for efficient storage and retrieval. Uses explicit rules, transitive chains, and backward chaining with symbolic validation at each step.
Mode: holographicPriority
HDC-first approach using vector similarity to find candidate proofs, then validates with symbolic logic. Leverages the full power of hyperdimensional computing for pattern matching.
| Component | Symbolic Engine | Holographic Engine |
|---|---|---|
| Proof Engine | ProofEngineprove.mjs |
HolographicProofEngineholographic/prove-hdc-first.mjs |
| Query Engine | QueryEnginequery.mjs |
HolographicQueryEngineholographic/query-hdc-first.mjs |
| CSP Solver | CSPSolvercsp/solver.mjs |
HolographicCSPSolverholographic/csp-hdc-heuristic.mjs |
| Abduction | AbductionEngine - Shared ("best explanation" reasoning) |
|
| Induction | InductionEngine - Shared (pattern generalization) |
|
# Use holographic priority
export REASONING_PRIORITY=holographicPriority
# Use symbolic priority (default)
export REASONING_PRIORITY=symbolicPriority
// Symbolic priority (default)
const session = new Session({ reasoningPriority: 'symbolicPriority' });
// Holographic priority
const session = new Session({ reasoningPriority: 'holographicPriority' });
import { createQueryEngine, createProofEngine, createCSPSolver } from './reasoning/index.mjs';
// Automatically selects engine based on session/env config
const queryEngine = createQueryEngine(session);
const proofEngine = createProofEngine(session);
const cspSolver = createCSPSolver(session);
| Scenario | Recommended | Rationale |
|---|---|---|
| High-stakes decisions requiring traceable proofs | Symbolic | Every step is explicitly logged and traceable |
| Large KB with many similar facts | Holographic | HDC similarity excels at finding patterns in noise |
| Strict logical correctness required | Symbolic | No false positives from similarity matching |
| Exploratory queries ("find similar to X") | Holographic | Native support for similarity-based search |
| Complex CSP with many constraints | Holographic | HDC heuristics can prune search space faster |
| Formal verification / compliance | Symbolic | Deterministic, reproducible proofs |
Detailed documentation for each reasoning capability:
Backward chaining proof search with confidence tracking. Determines if KB ⊢ G (KB entails G) using goal-directed reasoning.
Finding answers to open queries with variables. Returns sets of bindings that satisfy the goal pattern.
Inference to the best explanation. Given observations, finds hypotheses that would explain them.
Learning general rules from specific examples. Discovers patterns and generalizes from KB facts.
Both engines share the following components that are used regardless of reasoning mode:
Handles transitive relations like isA, locatedIn, partOf.
// Tweety isA Bird, Bird isA Animal
// → Tweety isA Animal (transitive chain)
Inherits properties along class hierarchies.
// Bird can Fly, Tweety isA Bird
// → Tweety can Fly (property inheritance)
Finds substitutions that make two expressions identical.
unify(isA ?x Human, isA Socrates Human)
// → { ?x → Socrates }
Constraint satisfaction for compound queries with multiple variables.
// And (isA ?x Animal) (eats ?x ?y)
// → All (animal, food) pairs
| Metric | Symbolic | Holographic |
|---|---|---|
| Proof search strategy | Depth-first with backtracking | Similarity-guided + validation |
| KB size scaling | Linear scan possible | Sub-linear with HDC bundle |
| Memory usage | Lower (no bundles) | Higher (KB bundle + candidate sets) |
| Precision | 100% (symbolic match) | High with validation layer |
| Recall for fuzzy queries | Limited to exact matches | Better for similarity queries |
AGISystem2 implements all four classical modes of logical inference, each serving a distinct cognitive purpose:
| Mode | Direction | Question | Example |
|---|---|---|---|
| Deduction (Proof) | Rule + Case → Conclusion | "What must be true?" | Humans are mortal + Socrates is human → Socrates is mortal |
| Query | Pattern → Instances | "What satisfies this?" | Find all X where isA(X, Mortal) |
| Abduction | Rule + Conclusion → Case | "What explains this?" | Ground is wet + Rain wets ground → It rained (maybe) |
| Induction | Cases → Rule | "What pattern fits these?" | Swan1 is white, Swan2 is white → Swans are white |
All reasoning modes track confidence scores that decay through inference chains: