ζ-Q3 ε.ι S2.6 owlready2 emitter production-scale follow-on — outcome-MITIGATED 2026-05-02

Outcome

Triggered by load-bearing theory tabled at S2.5 closure 2026-05-02T12:30 BST: “owlready2 emitter scales from 28-class PoC to production CCO 1431 classes; codegen pipeline handles production schemas”. Per feedback_test_theories_immediately_when_tabled (locked 2026-05-02T14:30 BST), this is the first spike under that discipline — theory spike-validated within ~1.2 hours rather than deferred to Phase-1 build.

outcome-MITIGATED per feedback_kill_condition_strict_vs_spirit_reading_via_outcome_MITIGATED (post-S3 codification). Strict kill clause 5 (“<90% sample-instantiate success”) met under the narrowest reading (44% IC reach on full-CCO random sample) but the framing artefact is structural — BFO 2020 Continuant+Occurrent top-level split makes ≥90% IC mathematically unreachable for full-CCO sampling. SPIRIT + TARGET + LOAD-BEARING + INSTANTIATION metrics all NOT MET; functional path is intact end-to-end.

Findings

ComponentWall-clockPeak memOutput
Emitter (load + walk + write YAML)0.158 s42 MB6,717 lines / 247 KB / 1,431 CCO + 8 i-ζ
gen-pydantic —meta full117.95 s404 MB20.6 MB / 1,441 Pydantic classes / py_compile clean
gen-typescript39.72 s261 MB154 KB / 1,439 TS interfaces
gen-json-schema74.90 s328 MB13.9 MB / 1,439 $defs
Total codegen~232 s = 3.9 minall <5min budget

Sample-instantiation:

  • STRICT (random 50 from full CCO, IC reach): 22/50 = 44% ← clause met by framing artefact
  • SPIRIT (random 50 from full CCO, BFO upper reach): 50/50 = 100%
  • TARGET (random 50 from MaterialEntity subtree, IC reach): 50/50 = 100%
  • LOAD-BEARING (8 i-ζ + CCO-native FinancialInstrument, IC reach): 9/9 = 100%
  • INSTANTIATION (200 random cls()): 200/200 = 100%

NEW empirical findings

  1. CCO has 0 multi-parent classes — BFO single-inheritance design holds at production scale; emitter mixins logic supported but inactive on this corpus. May exercise on IAO + IOF Core or INHERIT extensions in follow-on.
  2. i-ζ FinancialInstrument collides with CCO-native FinancialInstrument — CCO 2.1 already provides cco:FinancialInstrument. Emitter skips redundant declaration; ω.η SSSOM TSV row aligns at lock-time. ε.ε class-set clarification: 8 i-ζ-novel + 1 CCO-aligned = 9 total (no functional change). NOT a regression — gain: 1 fewer class to author + ω.η alignment mechanism naturally exercises at production-emit-time.
  3. BFO 2020 top-level split makes 90%-IC kill clause structurally unreachable for full-CCO random sampling. Refined-prompt v3.7 candidate: kill clauses must specify (a) the sample-set explicitly + (b) target threshold relative to that sample-set’s structural ceiling.

Implications for ε.ι Layer 1 lock-time framing

  • Lock-frame STANDS at S2.5’s wording: “owlready2-based custom LinkML emitter walks CCO/IAO/IOF + emits LinkML schema with class hierarchy preserved”. S2.6 validates production scale without architectural change.
  • Cost-row STABLE at S2.5’s £2-3K junior-engineer estimate. The S2.6 280-line emitter is approximately the production-shape emitter; lock-time polish (~16-24h: annotations pass-through + complex-domain handling + IAO/IOF extension) fits the original estimate.
  • DROP S2.5-era richard-task #214 caveat “uncertain whether emitter scales to production”. REPLACE with concrete Phase-1 Sprint S1 cost-row.
  • NEW Phase-1.5 stress-test cell candidate: “owlready2 emits LinkML for full CCO (1,431 classes) within <5min CI budget” — 6-monthly cadence.

Cross-references

  • T-file: ~/off-github/library/projects/inherit/T-spike-eps-iota-S2.6-owlready2-scale-2026-05-02.md v1.0 (23 KB, 212 lines)
  • arch-state v3.20 → v3.21 §11 S2.6 row LANDED + Changelog row + lastmod 2026-05-02T13:46
  • Q-003 v1.4 → v1.5 §10 S2.6 row LANDED + CHANGELOG entry + lastmod 2026-05-02T13:46
  • MEMORY.md +1 entry (this file)
  • Active-work-log entry updated (S2.6 in-flight → S2.6 closed)
  • Companion spike artefacts at /tmp/spike-s2.6-owlready2-scale/: owlready2_to_linkml_full.py (10.3 KB, ~280 lines), cco-full.yaml (247 KB), cco-full.py (20.6 MB), cco-full.ts (154 KB), cco-full.schema.json (13.9 MB), BENCHMARKS.md, sample_instantiate.py, sample_instantiate_v2.py

Methodological observations

  1. First spike under feedback_test_theories_immediately_when_tabled discipline (theory tabled at S2.5 → spike within 1.2 hours, not deferred to Phase-1 build). Discipline closes latent decision-debt at minimum cost.
  2. Second instance (after S3) of strict-vs-spirit kill-clause reading via outcome-MITIGATED maturity. Pattern fully validated 5 spikes into the suite.
  3. i-ζ FinancialInstrument collision is the first empirical evidence that the 9 i-ζ class-set wasn’t all INHERIT-novel; ω.η SSSOM mediation is exactly the mechanism for this case. Net effect: i-ζ identity preservation + redundancy elimination at production-emit-time.
  4. Logging-contract closed within same session as T-file authoring — continues post-S2 + post-S2.5 + post-S3 + post-S2.10 discipline.
  5. Refined-prompt v3.6 alternatives-first NOT exercised because kill-condition not substantively met (only the 90%-IC framing artefact). Pre-staged alternatives (ROBOT MIREOT subset / per-module CCO sub-schemas / multi-parent skip-with-log / LinkML 1.9 downgrade) remain available for follow-on if substantively triggered.