NARS Ecosystem
Scope
All repositories implementing Non-Axiomatic Reasoning System (NARS) concepts — NAL inference, temporal reasoning, goal-directed planning, and truth value propagation. NARS is a distinct reasoning paradigm from PLN, based on the Assumption of Insufficient Knowledge and Resources (AIKR). For PLN and other probabilistic reasoning, see Reasoning and Search.
Active Repositories
| Repo | Language | Upstream | Maturity | Purpose |
|---|---|---|---|---|
| metta-nars | MeTTa + Scheme | patham9 | Operational | ONA-style NARS in MeTTa: NAL 1–5 inference, temporal reasoning, goal-directed planning. Scheme compilation via metta-morph for 10–100× speedup. Includes Python NAR.py interface and LLM integration. |
| OpenNARS-for-Applications | C | patham9 | Operational | High-performance C implementation of NARS for real-time control. Full NAL inference, decision-making, and memory management. Used as foundation for NACE and robotics integration (nartech_ros). |
| estream | MeTTa | patham9 | Operational | NAL-based empirical reasoning over event streams. Declarative inference rules (NAL 1–5), temporal inference, belief management, goal-based planning. |
| Pars | SWI-Prolog | patham9 | Operational | PLN/NAL inference engine with NARS-style truth values and stamp tracking. Implements NAL 1–5 rules with truth value propagation in Prolog. |
| NASTL | MeTTa | patham9 | Experimental | NAL truth values applied to Signal Temporal Logic. Propositional logic, quantification, and STL operators in MeTTa. |
How They Fit Together
The NARS ecosystem spans three implementation strategies:
- C (systems-level): OpenNARS-for-Applications is the high-performance engine for real-time control — robotics, game AI, embedded applications. It is the foundation that NACE extends with causal exploration.
- MeTTa (symbolic): metta-nars, estream, and NASTL implement NAL reasoning natively in MeTTa, running on PeTTa. metta-nars is the most complete, with estream specializing in temporal event processing and NASTL exploring STL extensions.
- Prolog (logic): Pars implements NAL inference in SWI-Prolog with explicit stamp tracking, bridging NAL and PLN truth value systems.
The MeTTa-native repos (metta-nars, estream, Pars, NASTL) are authored by Patrick Hammer (patham9). OpenNARS-for-Applications is the reference OpenNARS implementation maintained locally as a patham9 fork — it has a broader contributor base upstream under the opennars organization.
Quick Start
# metta-nars (MeTTa, compiled via metta-morph for speed)
cd metta-nars && sh build.sh && sh run_scheme_repl_compiled.sh
# OpenNARS-for-Applications (C, standalone)
cd OpenNARS-for-Applications && sh build.sh && ./NAR
# estream (MeTTa, requires sibling PeTTa checkout)
cd ../PeTTa && sh run.sh ../estream/estream.metta
# Pars (Prolog)
cd Pars && sh build.sh && sh run.sh
Relationship to PLN
NARS and PLN are complementary reasoning paradigms within Hyperon:
- PLN is grounded in probability theory — truth values represent estimated probabilities with confidence.
- NARS is grounded in the Assumption of Insufficient Knowledge and Resources — truth values represent frequency and confidence from limited experience, with built-in mechanisms for operating under resource constraints.
The 2025 whitepaper proposes unifying both within a Context Quantaloid framework — different computational strategies instantiated from the same algebraic structure. This remains theoretical; currently PLN and NARS are separate implementations sharing the MeTTa substrate.
Excluded from This Family
- NACE, AIRIS_Public, AIRIS-general: Full agent architectures that use NARS reasoning but are cognitive systems, not reasoning libraries. Would fit a future "Cognitive Agents" family.
- NarsGPT, NARS-GPT: GPT+NARS wrapper projects under opennars/ — Python applications integrating OpenNARS with GPT APIs. Not MeTTa ecosystem implementations.
- nartech_ros: ROS integration layer for NARS robotics. Would fit a "Robotics and Embodiment" family.
Forks and Mirrors
The MeTTa-native repos (metta-nars, estream, Pars, NASTL) are a cohesive patham9-centered cluster. OpenNARS-for-Applications is a local patham9 fork of a broader upstream OpenNARS codebase. No numbered mirror/fork pattern within this family.
Current State vs. Whitepaper
- Context Quantaloid unification of PLN and NARS (whitepaper): Proposed. PLN and NARS are currently separate implementations with no shared algebraic framework.
- NARS on MORK: Not yet implemented. Current NARS repos run on PeTTa or standalone C, not natively on MORK's trie structures.
Recommended Entry Points
- NARS in MeTTa: Start with metta-nars — it has the most complete NAL coverage and can compile via metta-morph for interactive speed.
- High-performance NARS: OpenNARS-for-Applications for real-time C applications.
- Temporal reasoning: estream for event-stream NAL processing.
- PLN-NARS bridge: Pars implements both PLN and NAL truth value systems in Prolog.
Gaps and Consolidation Opportunities
- No MORK-native NARS: All implementations run above the substrate layer. MORK-native NAL inference would enable the scale needed for the Context Quantaloid vision.
- Fragmented temporal reasoning: estream and NASTL both address temporal aspects but from different angles (event streams vs. STL). A unified temporal NAL module would reduce duplication.
- Single-author ecosystem: All five repos are maintained by one contributor. Bus factor is a concern for long-term sustainability.
Tags
Discussion