Skip to main content

Journal· onn

ONN project status report -- codebase, tests, and paper readiness

1,041 words4 min read

Historical snapshot (2026-07-10). This is a Feb-2026 engineering status report on the ONN-ES codebase, kept as a dated record. Its dev-status figures (line counts, test pass rate, figure progress) describe the repository at that moment; they are not research results. The programme's central higher-order thesis has since been audited to a scoped No-Go boundary, and any headline research numbers from this era (τ_max = 177 μs, 99.75%, CSR = 1.0) are not reproducible from the current source — see the ONN research status.

Project overview

ONN-ES (Ontology Neural Networks with Evolution Strategy) is an edge-centric graph neural network framework combining topological constraints with evolution strategy (CMA-ES) for inference.

The core architecture follows a Trinity of Operators layout:

  • SEGO (Semantic Graph Observer) -- perception and feature extraction
  • LOGOS (Logical Ontology Graph Optimization Solver) -- correction and stabilisation
  • IMAGO (Intent Modeling via Graph Optimization) -- planning and path generation
  • ORTSF (Ontological Real-Time Semantic Fabric) -- delay-compensated control

Environment: Python 3.12.12, PyTorch 2.3.1, NumPy 1.26.4.


Codebase scale

CategoryFilesLines
Source (src/onn/)5322,098
Tests (tests/)5012,113
Scripts (scripts/)5111,595
Total154~45,800

Module implementation status

Core (14 files)

ModulePurposeStatusNotes
tensors.pySemanticNode (64D), SemanticEdge, graph containerCompleteBound_16 + Form_32 + Intent_16
graph.pyEdge-centric graph, LaplacianCompleteL=BBTL = B B^T
cycles.pyFundamental cycle basisCompleteBFS + Rodrigues formula
projection.pyConstraint-set projection Cx=τCx = \tauCompletePseudo-inverse fallback, 10610^{-6} regularisation
losses.pyLoss functions (data, context, Ricci, smooth, variance)CompleteDelta ODE integration support
solver.pyProjection-Consensus (PC) solverCompleteK-step alternating gradient + projection
diff_solver.pyDifferentiable K-step unroll (Phase 2)PartialDifferentiableSolver class incomplete
constraint_config.pyYAML config loaderCompleteEnv-var CSA_* override
relation_geometry.pySE(3) geometric relation encodingCompleteSO(3)/SE(3) exp/log
graph_utils.pyGraph traversal, validation, pruningCompleteCPL_006 compliant
meta.pyMeta-LOGOS supervision trackingCompleteLogosTrace, BranchType

Operations (9 files)

ModulePurposeStatus
logos_solver.pyLOGOS correction (autograd)Complete
sego_anchor.pySEGO perceptionComplete (protocol-based; CNN/ViT not yet wired)
sego_enhanced.pyEnhanced SEGO (multi-scale)Complete
imago_planner.pyIMAGO planner (Forman-Ricci curvature)Complete
ortsf.pyORTSF delay-compensated controlComplete (Theorem 4 implemented)
csa_pipeline.pyFull CSA pipelineComplete
edge_stabilizer.pyONN-ES / CSA bridgeComplete
branching.pyStagnation detection + branch strategyComplete
paper_solver.pyPaper-data variant of LOGOSComplete

Evolution Strategy (5 files)

ModulePurposeStatus
ask_tell.pyCMA-ES optimiser (ask/tell)Complete
fitness.pyEpisode-based fitness evaluationComplete
geometric_integration.pySE(3) geometric relation evaluationComplete
hybrid_trainer.pyES + GD hybrid trainingComplete
schedule.pyLR schedule (linear, cosine, exp)Complete

Evaluation (4 files)

ModulePurposeStatus
metrics.pyViolation, drift, Ricci, latency, etc.Complete
gates.py7-gate verification systemComplete
reports.pyReport generation and aggregationComplete
cpu_delta_verify.pyCPU-based Delta ODE verificationStub

Relation (7 files)

ModulePurposeStatus
se3_encoder.pySE(3) transform encoderComplete
param.pyLearnable relation encoder (W_lin)Complete
basis.pyPairwise feature extractionComplete
predictive_relation.pyLSTM-based time-series predictionComplete
four_axis_relation.py4-axis relation representationComplete
contrastive_relation.pyContrastive learningComplete
topological_regularizer.pyTopological regularisationComplete

Other modules

PackageModuleStatus
modules/curvature.pyForman-Ricci discrete curvatureComplete
modules/delta.pyDeep Delta Learning residual blockComplete (incl. DeltaTransformer)
topo/filtration.pyPersistent homology (Betti numbers)Complete
topo/ph_distance.pyTopological distance metricComplete
control/stability.pyStability analysis (phase/delay margin)Complete
simulation/pybullet_env.pyPyBullet robot environmentComplete
tlm/model.pyTemporal Latent ModelComplete

Test results (2026-02-15 run)

539 passed, 7 failed (546 total) -- 167.45 s
Pass rate: 98.7%

Breakdown by tier

TierFilesStatus
Unit22539 of which 7 failed
Smoke10All passed
Integration16All passed

Failed tests (7)

TestCauseSeverity
test_logos_energy::test_different_states_positive_lossLoss-scale mismatch (1.0 vs 128.0)Medium -- formula changed, test not updated
test_logos_energy::test_single_node_squared_distanceLoss-scale mismatch (0.22 vs 14.0)Medium -- same root cause
test_logos_energy::test_empty_graph_handledNaN returned (expected 0.0)Medium -- empty-graph edge case missing
test_logos_solver::test_data_loss_formula_correctFormula mismatchMedium -- same root cause
test_meta_enrichment::test_meta_logos_detects_local_gate_collapseCase mismatch ('Local gate' vs 'Local Gate')Low
test_meta_logos::test_decide_unbounded_residualCase mismatch ('unbounded' vs 'Unbounded')Low
test_meta_logos::test_decide_no_action_on_healthy_traceMessage changed ('All checks passed' vs 'Stable state')Low

Analysis. Four failures trace to LOGOS loss normalisation switching from sum to mean without updating the test expectations. Three are simple string-casing mismatches. No core-logic bugs.


Paper readiness

Experiment data

ExperimentCSVRowsStatus
B1 -- Loss DynamicsB1_loss_dynamics_steps.csv2,664Done
B3 -- Seed RobustnessB3_seed_robustness.csv41 (20 seeds x 2 versions)Done
B4 -- Scaling StudyB4_scaling_study.csv31 (N = 2..32)Done
B6 -- Ablation StudyB6_ablation_study.csv51 (6 configs x 5 seeds)Done

Figures (11 / 12)

FigureStatus
A1 -- System OverviewDone
A2 -- Node AnatomyDone
A3 -- LOGOS LoopDone
A4 -- Tradeoff TriangleDone
A5 -- Fix MapDone
A6 -- Meta-LOGOS GateDone
B1 -- Loss DynamicsDone
B2 -- Gradient StabilityDone
B3 -- Seed RobustnessDone
B4 -- Scaling StudyDone
B5 -- (TBD)Missing
B6 -- Ablation StudyDone

LaTeX manuscript

ItemStatus
IEEE template (IEEEtran.cls)Ready
onn_main.texReady
01_introduction.texReady
02_related_work.texReady
03_methodology.texReady
04_experiments.texReady
05_discussion.texReady
06_conclusion.texUnconfirmed
references.bibReady

Reproduction scripts

All four experiment scripts (paper_experiment_B1/B3/B4/B6.py), the combined plotter (paper_plot_B1_to_B6.py), the logger utility (paper_collect.py), and the orchestration script (paper_run_experiments.py) are complete.


Overall completion

Core (math)              ████████████████████░  95%   diff_solver incomplete
Ops (operators)          █████████████████████  100%
ES (evolution strategy)  █████████████████████  100%
Eval (evaluation)        ████████████████████░  95%   cpu_delta_verify stub
Relation (learning)      █████████████████████  100%
Modules (math ops)       █████████████████████  100%
Topo (topology)          █████████████████████  100%
Control                  █████████████████████  100%
Tests                    ████████████████████░  98.7%
Paper                    ██████████████████░░░  85%   B5 figure + conclusion TBD

Remaining work (prioritised)

High

  1. Fix the 7 failing tests -- LOGOS loss-scale expectations (4) + message strings (3).
  2. Complete diff_solver.py -- DifferentiableSolver class needed for Phase 2 training.

Medium

  1. Implement cpu_delta_verify.py -- CPU-only Delta ODE verification.
  2. Generate figure B5 -- collect data and produce the plot.
  3. Confirm or complete 06_conclusion.tex.

Low

  1. Git housekeeping -- finalise paper/ to Archive/ migration, clean staged deletes.
  2. Add __pycache__ to .gitignore or git rm.
  3. Wire a real CNN/ViT encoder into SEGO (prototype to production).

Report snapshot -- 2026-02-15.