22-spike Spike 9 — Prudhomme PROV-O→BFO vendoring CLOSED 2026-05-03 (Batch D second)
Status
CLOSED outcome-VALIDATED 2026-05-03T12:25 BST. 8th spike of 22-spike Q&A-formulation suite to close (after Spikes 1 + 12 + 18 + 22 + 2 + 21 + 3 + 8). SECOND of strict-chain Batch D (Spike 8 → 9 → 10) Group 4 Phase-1 Sprint S1/S2 pre-deliveries. Methodological-foundation spike pre-delivering richard-task #216.
Cascade complete
| Surface | Outcome |
|---|---|
| T-file | ~/off-github/library/projects/inherit/T-spike-rt216-prudhomme-prov-o-bfo-vendoring-2026-05-03.md v1.0 (191 lines) at off-github commit db483cf |
| Spike artefacts | ~/tools/inherit-spike-corpora/prudhomme-prov-o-bfo-vendoring-artefact/ 13 files: 3 vendored TTLs (prov-bfo / prov-cco / prov-ro) + LICENSE CC0 1.0 + README + CITATION.cff + COMMIT-SHA pin file with sha256sums + extract_sssom.py + prudhomme-prov-o-bfo.sssom.tsv + cross-val.md + prov-bfo-directmappings.owl |
| arch-state | NO §11/§12/§13 row added — DEFERRED to Phase E Task 13 batch per Group 4 closure mapping |
| Plan | 2026-05-03-22-spike-q-and-a-formulation-suite.md v1.18 → v1.19 — §0 Spike 9 ticked + lastmod 11:50 → 12:25 + CHANGELOG row at docs-strategy commit (absorbed by parallel session commit 7d5aded) |
| richard-tasks | #216 → PRE-DELIVERED at docs-personal commit 84b4e76 |
| Memory | this file |
| MEMORY.md | indexed (forthcoming this session) |
| Active-work-log | CLOSED entry (forthcoming this session) |
Findings
| # | Finding |
|---|---|
| 1 | Zenodo DOI 10.5281/zenodo.14692262 HTTP 200 (kill clause a NOT-MET); GitHub repo HTTP 200 |
| 2 | LICENSE = CC0 1.0 Universal (public domain dedication; STRICTLY MORE permissive than required CC-BY; kill clause b NOT-MET) |
| 3 | All 3 vendored TTLs ROBOT-parseable (506 + 486 + parsed-OK triples); ROBOT round-trip via --format ttl succeeds (workaround for OWL/XML save policy on cco/ro files) |
| 4 | 73 SSSOM TSV mapping rows extracted via custom Python regex (5 skos:exactMatch + 68 skos:narrowMatch; 48 BFO + 25 CCO targets); sssom-py validate exit 0 |
| 5 | Cross-validation against Spike 8 9-class IRIs: ZERO direct cco anchor overlap; complementary not overlapping; both terminate at BFO 2020 IndependentContinuant root |
| 6 | Plan defect surfaced: §5 Task 9 Step 1 placeholder DOI XXXXXXX — T6 §0 + §3 already provided exact DOI 14692262; recommend plan v1.19 → v1.20 patch |
Vendoring pin reference
repository: https://github.com/BFO-Mappings/PROV-to-BFO
commit_sha: c60847a4b838d25972d899731c0f6bb83716181d
release_tag: v2025-01-19
zenodo_doi: 10.5281/zenodo.14692262
license: CC0-1.0
authors: Tim Prudhomme, Giacomo De Colle, Austin Liebers, Alec Sculley, Peihong Karl Xie, Sydney Cohen, John Beverley
paper_doi: https://www.nature.com/articles/s41597-025-04580-1
richard-task #216 disposition
PRE-DELIVERED 2026-05-03 by Spike 9. Phase-1 Sprint S2 commit-time work reduced from ~1d planned-estimate to ~½d (commit + frontmatter + CI gate registration only).
Reconsideration trigger: Phase-1 Sprint S2 build-start OR Prudhomme upstream releases new version (v2025-01-19 pinned at commit-SHA per A-33).
Next in Batch D strict-chain
- Spike 10 — B3 #218 G-IRI-VERIFY CI gate (consumes Spike 8 + Spike 9 IRI universe; ≥160 IRIs to HTTP-HEAD verify)
Honesty caveats
- Plan defect (DOI placeholder XXXXXXX) prevented blind execution; T6 pre-flight resolved DOI before spike runtime
- rdflib (notation3 strict parser) FAILS to parse all 3 vendored TTLs because of empty-prefix swrl Variable declarations without
@prefix : <uri>directive — ROBOT (canonical for INHERIT v2 CI) tolerates by treating empty prefix as @base - ROBOT default OWL/XML save fails on prov-cco + prov-ro with INVALID ELEMENT ERROR
rdfs:comment:URI policy (OBO-Foundry-specific); workaround:--format ttlround-trip succeeds (Year-2+ uplift candidate) - 73 SSSOM TSV rows is a NAVIGABLE SUMMARY of simple class-class mappings (5 owl:equivalentClass + 68 rdfs:subClassOf); rich union/intersection/restriction axioms preserved in vendored TTL itself
- Cross-validation ZERO direct cco anchor overlap with Spike 8 is EXPECTED architecture (complementary anchoring strategies; not a defect)
- SSSOM TSV extraction via custom Python regex parser (NOT sssom-py) — sssom-py 0.4.19 lacks TTL-to-SSSOM extraction utility for owl:Axiom annotation patterns
- Wall-clock ~25 min (12:00→12:25 BST); pre-flight T6 read saved ~15-20 min over plan’s DOI-resolution steps
- 0-byte stale OWL files (failed ROBOT save attempts) removed from durable location post-spike (kept in /tmp/ for forensic completeness)