Reasoning and Search
Scope
All repositories implementing uncertain reasoning (PLN), inference control (chaining), evolutionary program learning (MOSES), and pattern mining. For Non-Axiomatic Reasoning, see NARS Ecosystem. For theoretical foundations, see PLN Full, MOSES Full, and Semantic Parsing Full.
Active Repositories
PLN (Probabilistic Logic Networks)
| Repo | Language | Upstream | Maturity | Purpose |
|---|---|---|---|---|
| PLN | MeTTa | trueagi-io | Operational | Primary PLN: consolidated lib_pln.metta with 12 inference rules (Revision, Modus Ponens, Deduction, Induction/Abduction, Negation, Inversion, Similarity, Evaluation, and more). Runs on PeTTa via git-import. |
| patham9/PLN | MeTTa | patham9 | Operational | Fork preserving older modular src/ structure with build.sh and per-directory tests. Includes PLN.py Python integration. |
| ngeiswei/PLN | MeTTa | ngeiswei | Operational | Fork preserving older modular layout. Near-identical to patham9/PLN. |
| pln-experimental | MeTTa / LaTeX | trueagi-io | Experimental | Research platform with nuPLN formalization, multiple rule representations, ETV support, program synthesis. |
| hyperon-pln | MeTTa / Idris2 | trueagi-io (local clone tracks patham9 fork) | Experimental | Four rule implementation approaches (dependent types, match, entail, equality). Includes generic program synthesizer. |
| pln (legacy) | C++ / Scheme | opencog | Legacy | Original C++/Scheme PLN on URE. Superseded by MeTTa PLN. Not in local collection — reference only. |
Chaining and Inference Control
| Repo | Language | Upstream | Maturity | Purpose |
|---|---|---|---|---|
| chaining | MeTTa | trueagi-io | Operational | DTL-based forward/backward/polyward chaining, program synthesis, Metamath proofs, modal logic. Core dependency for hyperon-miner and pln-experimental. |
| ure (legacy) | C++ / Scheme | opencog | Legacy | Unified Rule Engine with Thompson sampling. Superseded by MeTTa chaining. Required by legacy miner. |
| unify (legacy) | C++ / Scheme | opencog | Legacy | AtomSpace expression unifier. Required dependency for URE and legacy miner (cogutil → atomspace → unify → ure). |
| tv-toolbox | Haskell | opencog | Experimental | PLN truth value validation platform: STV/DTV/ITV conversions, deduction formulas, inference formula testing. |
| mm2metta | Python | ngeiswei | Operational | Metamath-to-MeTTa converter enabling formal proof verification. Used by chaining/experimental/metamath. |
MOSES (Evolutionary Program Learning)
| Repo | Language | Upstream | Maturity | Purpose |
|---|---|---|---|---|
| metta-moses | MeTTa + Python | iCog-Labs-Dev | Operational | Full MOSES reimplementation: demes, metapopulation, knob representation, 6 optimizers, scoring, feature selection, ENF. |
| hyperon-moses | MeTTa | trueagi-io | Experimental | Boolean reduction core — ENF simplification as foundation for evolutionary search. Design docs with cognitive synergy vision. |
| moses (legacy) | C++ | opencog | Legacy | Original MOSES v3.7.0. Combo language output. Optional MPI for clusters. Requires cogutil, Boost. |
| asmoses (legacy) | C++ | opencog | Legacy | AtomSpace-integrated MOSES. Atomese/Python output. Commercial use history (medical/financial). Requires cogutil, atomspace, ure. |
| MOSES-MORK | Python | iCog-Labs-Dev | Operational | Python MOSES targeting MORK/Hyperon: factor-graph EDA, ENF reducer, quantale-based variation operators. |
| elegant-normal-forms-python | Python | iCog-Labs-Dev | Operational | ENF satisfiability checker. Supporting tool for MOSES-MORK's boolean reduction pipeline. |
Pattern Mining
| Repo | Language | Upstream | Maturity | Purpose |
|---|---|---|---|---|
| hyperon-miner | MeTTa / Prolog | trueagi-io | Operational | Three implementations (Prolog, match-based, dependent-types). Dependent-types version integrates with chaining module. |
| miner (legacy) | C++ / Scheme | opencog | Legacy | URE-based frequent/surprise subhypergraph mining. Requires cogutil → atomspace → unify → ure build chain. |
| hyperon-miner (iCog) | MeTTa / Prolog | iCog-Labs-Dev | Operational | iCog Labs fork extending base hyperon-miner with expanded validation suites, surprisingness metrics, and integrated pipeline. |
NARS (Non-Axiomatic Reasoning)
The NARS ecosystem has enough repos and conceptual coherence to warrant its own family card. See NARS Ecosystem for metta-nars, OpenNARS-for-Applications, estream, Pars, and NASTL.
How They Fit Together
PLN ecosystem: PLN (trueagi-io) provides the consolidated rule library. The patham9/PLN and ngeiswei/PLN forks preserve an older modular layout — useful for comparing structural approaches but not the canonical path. pln-experimental and hyperon-pln are research frontiers exploring different rule representations. The chaining repo provides the inference engine that PLN rules run on — it is a shared dependency.
MOSES ecosystem: Three generations coexist. metta-moses (iCog Labs) is the most complete MeTTa version and the recommended starting point. hyperon-moses (trueagi-io) focuses narrowly on boolean reduction. Legacy C++ repos (moses, asmoses) remain for reference and commercial backward compatibility.
Mining ecosystem: hyperon-miner's dependent-types implementation depends on the chaining module, creating a direct PLN→mining integration path. The legacy miner requires the full OpenCog C++ stack (cogutil → atomspace → unify → ure).
Quick Start
# PLN on PeTTa (primary path)
cd PeTTa && sh run.sh ./repos/PLN/examples/Smokes.metta
# Chaining tests
metta dtl/tests/test-forward-chaining-curried.metta
# metta-moses (full MOSES on MeTTaLog)
mettalog deme/tests/expand-demes-test.metta
# Pattern mining (match-based)
cd hyperon-miner/match && bash MatchTest.sh
# Legacy C++ MOSES
cd moses && mkdir build && cd build && cmake .. && make -j4
Current State vs. Whitepaper
- PLN on MORK (whitepaper §6.1): Under development. Both backward chaining (PathMap indices) and factor-graph belief propagation are described but not yet operational natively on MORK.
- GEO-EVO (whitepaper §6.2.1): Proposed. The geodesic evolutionary extension to MOSES exists only as whitepaper design — no implementation yet.
- Quantale-annotated factor graphs (whitepaper §5.1): Proposed. The PLN-quantale integration is theoretical.
- Context Quantaloid unification of PLN and NARS (whitepaper): Proposed. PLN and metta-nars are separate implementations with no shared algebraic framework yet.
- MORK-native pattern mining (whitepaper §6.4): Described but not yet implemented. Current hyperon-miner runs on PeTTa, not directly on MORK's trie structures.
Forks and Mirrors
- PLN forks: trueagi-io/PLN is canonical. patham9/PLN and ngeiswei/PLN preserve the older modular src/ structure.
- chaining forks: trueagi-io/chaining is canonical. Local mirrors track rTreutlein/chaining and ngeiswei/chaining.
- hyperon-miner forks: trueagi-io/hyperon-miner is canonical. A local mirror tracks the iCog-Labs-Dev fork with experimental validation suites.
- ngeiswei mirrors: ngeiswei maintains mirrors of several repos: pln-experimental, hyperon-moses, miner, and ure. These are snapshot forks, not divergent development lines.
Recommended Entry Points
- PLN reasoning: Start with PLN on PeTTa — run the Smokes or categorical reasoning examples.
- Chaining/inference: Work through chaining's DTL test files (forward, backward, iterative).
- Evolutionary learning: Use metta-moses on MeTTaLog — it has the most complete MOSES feature set in MeTTa.
- Pattern mining: Start with hyperon-miner's match-based approach — the simplest of the three implementations.
Gaps and Consolidation Opportunities
- PLN fork proliferation: PLN/PLN2/PLN3 diverge structurally. A convergence strategy would help — the modular layout may be worth adopting in the primary repo.
- Two MOSES MeTTa ports: hyperon-moses (trueagi-io, boolean reduction only) and metta-moses (iCog Labs, full stack) overlap on ENF. Consolidation would reduce confusion.
- No integrated PLN+MOSES loop: The cognitive synergy between PLN and MOSES described in the whitepaper has no working demonstration yet.
- Legacy C++ repos require deep dependency chains: Building the C++ miner requires 4 prior installs (cogutil → atomspace → unify → ure). This blocks casual exploration.
Tags
Discussion