Before committing any alignment axiom to an external-ontology IRI in INHERIT v2 (or any TT ontology), run a 30-minute IRI-verification spike that confirms three things:
- Existence — The IRI actually resolves to a real class in the target ontology.
curlthe raw RDF file +grepfor the class name. Never assume an IRI exists because a book or a paper cited it. - Semantics match —
rdfs:subClassOfparents, SHACL shapes, required properties, andskos:definitionalign with the mental model you’re axiomatising. If your class carries fields the target doesn’t require, you needrdfs:subClassOf(one-way), notowl:equivalentClass(two-way). - Version pin is stable — The named release actually exists at time-of-commit. Upstream breaking changes across versions are rare but possible (FIBO quarterly release + Commons annual; OBO ontologies more volatile). Re-verify on each alignment-ontology release.
Why: owl:equivalentClass pointing to a non-existent IRI doesn’t error at authoring time — RDF is open-world, so unknown IRIs are just unknown. It fails silently, creating semantic debt that surfaces years later when a reasoner tries to close the loop or a consumer tool expands the prefix and gets 404.
How to apply:
- Any new
owl:*orrdfs:subClassOfaxiom pointing outsideinherit-*namespaces triggers the spike. - Any version-pin claim (“FIBO Production 2026Q2”, “BFO-2020”, “CIDOC CRM 7.1.1”) triggers verification that the named release exists.
- Library-grounded research (Keet / Allemang / Hitzler / etc.) is necessary but not sufficient for IRI commitment. Books discuss ontology architecture; they rarely drill into specific module paths. The authoritative check is always the raw RDF file.
- Spike output is a small
findings.mddocument pattern (seedocs/superpowers/specs/spike-fibo-role-2026-04-23/findings.mdfor template): method + findings + recommended axiom correction + sources. - Time-box to 30 minutes. If the spike uncovers deep issues, it becomes a proper research task.
Canonical incident: Thu 23 April 2026. A-20 committed inherit-fnd:RoleInstance owl:equivalentClass fibo-fnd-rel-rel:Role. 30-min verification spike revealed three defects: (1) fibo-fnd-rel-rel:Role is not a FIBO class at all — canonical class is cmns-rlcmp:Role in OMG Commons which FIBO imports; (2) owl:equivalentClass was too strong — our RoleInstance carries temporal/evidential fields Commons Role doesn’t require; (3) version pin “FIBO Production 2026Q2” doesn’t exist yet — Q1 2026 is the current stable release. A-20.1 patch applied the corrections. Had the spike not run, Apache-intended code would have shipped with a non-existent IRI.
Where this applies:
- INHERIT v2
@inherit/core/ontology/*.ttlauthoring (any alignment axiom to FIBO / BFO / PROV-O / CIDOC CRM / schema.org / OMG Commons / DOLCE / DublinCore / FOAF / SKOS-itself) - SHACL shapes referencing external IRI ranges or targets
- JSON-LD
@contextentries mapping short prefixes to external IRIs - OpenAPI 3.1 schema
$reftargets pointing to external ontology fragments - Future TT-brand ontologies or data standards (InheritKit, LegacyLists schemas, etc.)
Related:
docs/superpowers/specs/spike-fibo-role-2026-04-23/findings.mdv1.0 — canonical spike-findings templatedocs/superpowers/scoping/2026-04-23-v1-12-amendments.mdA-20.1 entry — example patch amendment triggered by IRI-verification failure- Memory
feedback_v2_apache_deferred_until_public_release— why IRI errors in Apache-intended code matter (irrevocable at public release) - Memory
feedback_always_check_library_indexed_first— library-grounding is step 1; IRI-verification is step 2 for external-ontology claims