Module TBox emission
Context and Problem Statement
The ratified ODR corpus declares six kind: pattern module ODRs and supporting cross-cutting ODRs. This ADR ratifies the engineering emission of each module’s TBox as a per-module .ttl file in source/03-standards/ontology/.
Per ADR-0007 §“Module pluralism”, the generator emits one TTL file per ratified module ODR in addition to the foundation. Each module file:
- Declares only the classes + properties scoped to that module’s ratified ODR.
- Imports
opda-classes.ttl(foundation) +opda-vocabularies.ttl(SKOS substrate) viaowl:imports. - Carries
owl:versionIRIpinned to the ratifying ODR’s date + generator version. - Pairs with
opda-<module>-shapes.ttl+opda-<module>-annotations.ttl(three-graph separation preserved per module — ADR-0012 emits shapes + annotations).
Six modules in scope (covering all ratified kind: pattern ODRs that mint classes):
| Module file | Source ODR(s) | UFO Kinds emitted |
|---|---|---|
opda-property.ttl | ODR-0005 + ODR-0015 + ODR-0008 | Property; LegalEstate; RegisteredTitle; Address; Building (held); Room (held) |
opda-agent.ttl | ODR-0006 | Person; Organisation; Seller; Buyer; Proprietor; Proprietorship (Relator) |
opda-transaction.ttl | ODR-0007 | Transaction (Relator); Milestone; TransactionChain; LeaseTerm |
opda-claim.ttl | ODR-0009 | Claim; Evidence; VerificationActivity; AssuranceJudgement; TrustFramework |
opda-governance.ttl | ODR-0012 + ODR-0018 | (mainly mapping tables; classes via reference-not-import to DPV) |
opda-descriptive.ttl | ODR-0008 + S008 Q4 | Survey; EPCCertificate; Search; Valuation; Comparable; (Building/Room held) |
Plus the supporting pattern ODRs:
- ODR-0017 (SHACL-AF non-blocking quality rules) — pattern; no classes emit here; rules emit into shapes graph per ADR-0012.
- ODR-0018 (DPV class-level co-annotation) — pattern; mapping tables emit into
opda-governance.ttl; co-annotations themselves emit into annotation graph per ADR-0012.
Decision Drivers
- A9 per-kind discipline (ODR-0001 §What an ODR records) MUST output: UFO/DOLCE category + IC over named hard cases + artefact realisation, per emitted class. Per ADR-0007 §“A9 per-kind discipline output”, the generator emits these as
dct:source+skos:scopeNote+rdfs:commenttriples on each minted class. - Three-graph separation per module (ODR-0004 §3a). Each module emits three files (classes / shapes / annotations); ADR-0012 emits the shapes + annotations sides. This ADR scopes the classes side.
- 3-class commitment is load-bearing (S005 Q5 6-2-1 verdict). Property + LegalEstate + RegisteredTitle are three distinct Substance Kinds with three distinct ICs.
- RoleMixin / Role distinction (S006 Q2) MUST emit as
opda:RoleMixin+ per-role sub-classes (Seller, Buyer, Proprietor) — the UFO anti-rigid pattern. - Transaction-as-Relator (S007 Q1) MUST emit with
prov:Activityreification for founding event + IC over 5 hard cases. - PROV-O Plan-vs-Activity (S007 Q6) emission discipline — Plans are separate resources from Activities, linked via
prov:qualifiedAssociation. - 80%/5-residue PROV-O coverage (S009 Q1) —
Claim/Evidence/VerificationActivitymap toprov:Entity/prov:Entity/prov:Activityrespectively. - Reference-not-import for DPV (S002 + S012 + ODR-0018) —
opda-governance.ttldoes NOT import DPV’s TBox; it cites DPV terms viadct:source.
Considered Options
- A — One monolithic
opda-modules.ttl. Pro: simpler imports. Con: violates module separation; ratified ODRs are per-module; per-module amendment cycles can’t target one module’s TTL. - B — Per-module files, one TTL per module (chosen). Pro: per-module amendment surgery; reviewers see one module’s TBox in isolation; downstream consumers can import only what they need.
- C — Per-class files (one TTL per class). Pro: maximum granularity. Con: ~30+ files for the initial corpus; cognitive overhead far exceeds the benefit.
Decision Outcome
Chosen option: B — One TTL file per ratified module ODR, emitted into source/03-standards/ontology/. Each module file is a self-contained class + property declaration scoped to its ratifying ODR.
Module emission template (applies to every module)
# opda-<module>.ttl — OPDA <Module> Module
# Generator: opda-gen <version>; DO NOT HAND-EDIT.
# Ratifying ODR(s): <list of ODR-NNNN>
# Source data dictionary leaves: <count> / <annotated count>
@prefix opda: <https://w3id.org/opda/#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix dct: <http://purl.org/dc/terms/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix time: <http://www.w3.org/2006/time#> .
<https://w3id.org/opda/<module>/>
a owl:Ontology ;
dct:title "OPDA <Module> Module"@en ;
owl:imports <https://w3id.org/opda/0.1.0/> ; # foundation
owl:imports <https://w3id.org/opda/vocabularies/> ; # SKOS substrate
owl:versionIRI <https://w3id.org/opda/<module>/0.1.0/> ;
.
# Class declarations follow (deterministic order per ADR-0007):
# owl:Class blocks alphabetised by URI
# owl:DatatypeProperty alphabetised
# owl:ObjectProperty alphabetised
Per-module detail
opda-property.ttl (ODR-0005 + ODR-0015 + ODR-0008)
Mints Property + LegalEstate + RegisteredTitle (3-class per S005 Q5) + Address (S015 Q1 Substance Kind) + held-Building/Room conditional emissions.
opda:Property
a owl:Class ;
rdfs:label "Property"@en ;
rdfs:comment "Physical property; UFO Substance Kind; DOLCE Endurant. IC: spatial-material continuity with Kendall+Davis legal-record-discontinuity-override hybrid. Hard cases: demolition; subdivision; merger; replacement; first-registration; flat with split UPRN."@en ;
skos:scopeNote "DOLCE: Endurant. UFO: Substance Kind. (Guizzardi 2005 Ch. 4; Masolo D18 §4.1)."@en ;
dct:source <https://w3id.org/opda/odr/ODR-0005#section-2a> ;
.
opda:LegalEstate
a owl:Class ;
rdfs:label "Legal Estate"@en ;
rdfs:comment "Legal rights-bundle vested in a Property; UFO Substance Kind; DOLCE NonPhysicalEndurant. IC: rights-bundle persistence — same individual through grant, transfer, registration, and discharge events; distinguishable from coexisting RegisteredTitle and physical Property by extension of property rights. Hard cases: tenure change; lease grant; lease termination; commonhold conversion."@en ;
skos:scopeNote "DOLCE: NonPhysicalEndurant. UFO: Substance Kind. (Guizzardi 2005 §5; Masolo D18 §4.2)."@en ;
dct:source <https://w3id.org/opda/odr/ODR-0005#section-3b> ;
.
opda:RegisteredTitle
a owl:Class ;
rdfs:label "Registered Title"@en ;
rdfs:comment "HMLR title record; UFO Substance Kind (informational); DOLCE NonPhysicalEndurant. IC: title-number lineage with PROV-O lifecycle reification per S005 §3c. Hard cases: first-registration; title closure; title merger; register transfer."@en ;
skos:scopeNote "DOLCE: NonPhysicalEndurant. UFO: Substance Kind (informational)."@en ;
dct:source <https://w3id.org/opda/odr/ODR-0005#section-3c> ;
.
opda:Address
a owl:Class ;
rdfs:subClassOf <http://www.w3.org/2006/vcard/ns#Address> ; # S015 Q4 alignment
rdfs:label "Address"@en ;
rdfs:comment "Address resource shape; UFO Substance Kind; DOLCE NonPhysicalEndurant. IC: five-rule (cosmetic-reformat / authority-succession / cross-variant-distinction / Property-side-change / INSPIRE-only-locatedness). Per S015 Q1 commitment, NOT a Mode."@en ;
skos:scopeNote "DOLCE: NonPhysicalEndurant (Searle 1995 institutional fact grounding). UFO: Substance Kind."@en ;
dct:source <https://w3id.org/opda/odr/ODR-0015#section-2a> ;
.
# Property descriptive attributes per ODR-0008 §Operational specifications Q5a binding table
opda:builtForm
a owl:DatatypeProperty ;
rdfs:domain opda:Property ;
rdfs:range xsd:string ;
rdfs:label "built form"@en ;
rdfs:comment "Property built-form classification per opda:BuiltFormScheme. UFO Quale-in-Region. SKOS scheme membership via skos:notation."@en ;
dct:source <https://w3id.org/opda/data-dictionary#builtForm> ;
dct:source <https://w3id.org/opda/data-dictionary/baspi5#B1.3.2> ; # spanning-leaf overlay source
.
# … (per ODR-0008 §Operational specifications Q5a binding table — full leaf set)
# Property predicates
opda:hasUPRN
a owl:DatatypeProperty ;
rdfs:domain opda:Property ;
rdfs:range xsd:string ;
rdfs:label "has UPRN"@en ;
rdfs:comment "Unique Property Reference Number — OS AddressBase identifier. Per ODR-0005 §6a, contingent identifier (PROV-O succession); not load-bearing IC key."@en ;
dct:source <https://w3id.org/opda/odr/ODR-0005#section-6a> ;
.
opda:hasAddress
a owl:ObjectProperty ;
rdfs:domain opda:Property ;
rdfs:range opda:Address ;
rdfs:label "has Address"@en ;
dct:source <https://w3id.org/opda/odr/ODR-0015#section-3a> ;
.
opda:identifiesSameProperty
a owl:ObjectProperty ;
rdfs:domain opda:RegisteredTitle ; # Generalised: also LegalEstate, Address
rdfs:range opda:Property ;
rdfs:label "identifies same property"@en ;
rdfs:comment "Co-reference predicate. NEVER owl:sameAs (ODR-0005 Rule 5 anti-pattern)."@en ;
.
opda:recordsEstate
a owl:ObjectProperty ;
rdfs:domain opda:RegisteredTitle ;
rdfs:range opda:LegalEstate ;
.
Conditional emissions (Davis HELD-AS-LIVE per S008 Q4): opda:Building, opda:Room. The generator emits these as commented stubs:
# Held conditional per Davis S008 Q4 dissent — re-open on first named BASPI5 round-trip query.
# opda:Building
# a owl:Class ;
# ...
opda-agent.ttl (ODR-0006)
opda:Person
a owl:Class ;
rdfs:label "Person"@en ;
rdfs:comment "Natural person. UFO Substance Kind. IC: FIBO multi-identifier persistence (DOB + state-issued ID + name)."@en ;
dct:source <https://w3id.org/opda/odr/ODR-0006#section-Q1> ;
.
opda:Organisation
a owl:Class ;
rdfs:subClassOf <http://www.w3.org/ns/org#Organization> ; # S006 Q6 9-1 verdict (Allemang held-as-live)
rdfs:label "Organisation"@en ;
dct:source <https://w3id.org/opda/odr/ODR-0006#section-Q1> ;
.
opda:Seller
a opda:RoleMixin ; # S006 Q2 RoleMixin
rdfs:label "Seller"@en ;
rdfs:comment "UFO RoleMixin (anti-rigid; cross-sortal — Person OR Organisation). Borne in the context of a Transaction Relator."@en ;
dct:source <https://w3id.org/opda/odr/ODR-0006#section-Q2> ;
.
opda:Buyer
a opda:RoleMixin ;
rdfs:label "Buyer"@en ;
.
opda:Proprietor
a opda:Role ; # Distinct from RoleMixin per UFO discipline
rdfs:label "Proprietor"@en ;
.
opda:Proprietorship
a opda:Relator ; # S006 Q3 UFO Relator
rdfs:label "Proprietorship"@en ;
rdfs:comment "UFO Relator mediating Property + Proprietor instances. Founding event recorded via prov:wasGeneratedBy."@en ;
dct:source <https://w3id.org/opda/odr/ODR-0006#section-Q3> ;
.
# Capacity vs Authority — two-predicate seam per S006 Q4
opda:hasAssertedCapacity
a owl:DatatypeProperty ;
rdfs:domain opda:Seller ;
rdfs:range xsd:string ;
rdfs:comment "Sellers-capacity per opda:SellersCapacityScheme. Bounded-context seam between Sales and Conveyancing per S006 Q4 (Evans+Vernon load-bearing)."@en ;
dct:source <https://w3id.org/opda/odr/ODR-0006#section-Q4> ;
.
opda:hasEvidencedAuthority
a owl:ObjectProperty ;
rdfs:domain opda:Seller ;
rdfs:range opda:Claim ; # Conveyancing-side claim
.
opda-transaction.ttl (ODR-0007)
opda:Transaction
a opda:Relator ; # S007 Q1
rdfs:label "Transaction"@en ;
rdfs:comment "UFO Relator. FIBO Arrangement precedent. IC: 5-tuple (LegalEstate-concerned, Sellers-set, Buyers-set, transaction-id-lineage). Hard cases: party-substitution; estate-change; transaction-id reissuance; chain-link-break; aborted-transaction."@en ;
dct:source <https://w3id.org/opda/odr/ODR-0007#section-Q1> ;
.
opda:Milestone
a owl:Class ;
rdfs:label "Milestone"@en ;
rdfs:comment "Transaction lifecycle milestone. Hybrid PROV-O: prov:atTime for instant milestones (offer-accepted, exchange); prov:startedAtTime + prov:endedAtTime for interval milestones (completion-process, registration-process). S007 Q2."@en ;
dct:source <https://w3id.org/opda/odr/ODR-0007#section-Q2> ;
.
opda:TransactionChain
a owl:Class ;
rdfs:label "Transaction Chain"@en ;
rdfs:comment "Aggregate of dependent transactions. S007 Q4 dual-mechanism (recursive predicate + Aggregate). Chain-length cap: sh:maxInclusive 7 per CLC data."@en ;
dct:source <https://w3id.org/opda/odr/ODR-0007#section-Q4> ;
.
# PROV-O Plan-vs-Activity per S007 Q6 — Plans are separate resources
# (see opda-x:milestone-completion-plan in simple-transaction-with-milestones.ttl)
opda:plannedAtTime
a owl:DatatypeProperty ;
rdfs:domain prov:Plan ;
rdfs:range xsd:dateTime ;
dct:source <https://w3id.org/opda/odr/ODR-0007#section-Q6> ;
.
opda-claim.ttl (ODR-0009)
Per S009 80%/5-residue (Moreau): Claim/Evidence/VerificationActivity map onto PROV-O backbone.
opda:Claim
a owl:Class ;
rdfs:subClassOf prov:Entity ;
rdfs:label "Claim"@en ;
rdfs:comment "Verifiable claim entity. PROV-O Entity. Hard cases: contested assertion; multi-method verification; assurance-level downgrade."@en ;
dct:source <https://w3id.org/opda/odr/ODR-0009#section-Q1> ;
.
opda:Evidence
a owl:Class ;
rdfs:subClassOf prov:Entity ;
rdfs:label "Evidence"@en ;
dct:source <https://w3id.org/opda/odr/ODR-0009#section-Q1> ;
.
opda:DocumentEvidence
a owl:Class ;
rdfs:subClassOf opda:Evidence ;
rdfs:label "Document Evidence"@en ;
.
opda:ElectronicRecordEvidence
a owl:Class ;
rdfs:subClassOf opda:Evidence ;
.
opda:VouchEvidence
a owl:Class ;
rdfs:subClassOf opda:Evidence ;
.
opda:VerificationActivity
a owl:Class ;
rdfs:subClassOf prov:Activity ;
rdfs:label "Verification Activity"@en ;
.
opda:AssuranceLevel
a owl:Class ; # Backed by opda:AssuranceLevelScheme SKOS scheme
rdfs:label "Assurance Level"@en ;
.
opda:TrustFramework
a owl:Class ;
rdfs:label "Trust Framework"@en ;
rdfs:comment "Trust framework citation. Authoritative within scope per Session 003c Item 3 (OPDA TF authoritative scope)."@en ;
dct:source <https://w3id.org/opda/odr/ODR-0009#section-Q5> ;
.
opda:digest
a owl:DatatypeProperty ;
rdfs:range xsd:string ;
rdfs:comment "Cryptographic digest per S009 Q4. Algorithm SKOS scheme: opda:DigestAlgorithmScheme."@en ;
.
opda-governance.ttl (ODR-0012 + ODR-0018)
Primarily mapping tables to DPV (reference-not-import per Kendall S012 DA condition):
# DPV class-level co-annotation mapping table per ODR-0018
# Each row: opda Kind → dpv-pd category baseline + variant refinements
# (consumed by ODR-0012 generator at annotation-graph emission per ADR-0012)
opda:PersonDPVMapping
a opda:DPVMappingRecord ;
opda:targetsKind opda:Person ;
opda:baselineCategory <https://w3id.org/dpv/pd#Name> ; # Reference-not-import
opda:variantRefinements (
[ opda:identifier "email" ; opda:category <https://w3id.org/dpv/pd#EmailAddress> ]
[ opda:identifier "dob" ; opda:category <https://w3id.org/dpv/pd#DateOfBirth> ]
) ;
dct:source <https://w3id.org/opda/odr/ODR-0018#section-Rule4> ;
.
opda:SpecialCategoryScheme
a skos:ConceptScheme ; # Baker S012 Q3 amendment
skos:prefLabel "Article 10 Special Category Personal Data"@en ;
dct:source <https://gdpr-info.eu/art-10-gdpr/> ;
.
opda-descriptive.ttl (ODR-0008 + S008 Q4 class promotions)
opda:Survey
a owl:Class ;
rdfs:subClassOf prov:Entity ;
rdfs:label "Survey"@en ;
rdfs:comment "Authority-retrieved professional survey report. UFO Substance Kind (informational). IC: distinct provenance chain per S008 Q4 three-criterion test. Hard cases: re-survey; supersession; withdrawal."@en ;
dct:source <https://w3id.org/opda/odr/ODR-0008#section-Q4a> ;
.
opda:EPCCertificate
a owl:Class ;
rdfs:subClassOf prov:Entity ;
rdfs:label "EPC Certificate"@en ;
dct:source <https://w3id.org/opda/odr/ODR-0008#section-Q4a> ;
.
opda:Search
a owl:Class ;
rdfs:subClassOf prov:Entity ;
rdfs:label "Search"@en ;
.
opda:Valuation
a owl:Class ;
rdfs:subClassOf prov:Entity ;
rdfs:label "Valuation"@en ;
.
opda:Comparable
a owl:Class ;
rdfs:subClassOf prov:Entity ;
rdfs:label "Comparable"@en ;
.
# Descriptive datatype properties per ODR-0008 §Operational specifications Q5a
# (Quale-in-Region SKOS schemes referenced; per-property bindings emit here)
opda:currentEnergyRating
a owl:DatatypeProperty ;
rdfs:domain opda:Property ;
rdfs:range xsd:string ;
skos:scopeNote "Constrained to opda:CurrentEnergyRatingScheme via SHACL sh:in"@en ;
.
# … (full per-leaf binding per ODR-0008 §Q5a table — built-form, councilTaxBand, tenureKind, etc.)
Consequences
- Good, because each ratified module ODR maps 1:1 to one emitted TTL file; per-module amendment cycles can target one file.
- Good, because A9 per-kind discipline output is mechanical and uniform across modules — every class carries
dct:source+skos:scopeNote+rdfs:commentper ADR-0007. - Good, because S008 Q5a binding table maps descriptive attributes onto SKOS schemes from
opda-vocabularies.ttl— no per-attribute deliberation at emission time. - Good, because RoleMixin / Role / Relator distinction emits with UFO type discrimination (
a opda:RoleMixinvsa opda:Rolevsa opda:Relator), enabling downstream SHACL checks on UFO ontology violations. - Good, because reference-not-import for DPV keeps
opda-governance.ttllean — mapping tables not import-cascades. - Good, because held-as-live conditional Class promotions (Davis Building/Room) emit as commented stubs — explicit absence with named re-open triggers.
- Bad, because per-module imports of foundation + vocabularies mean each module fetches the substrate; mitigation: rdflib caches; build-step composer (ADR-0012) merges for derived profiles.
- Bad, because descriptive-attributes binding table (S008 Q5a) is large (~50 leaf bindings) — large emission file. Mitigation: split into multiple sub-files if exceeds 1,500 lines per ODR-0011 (recursive application of programme rule).
- Neutral, because some classes (
opda:Building,opda:Room) emit as commented stubs awaiting consumer-query trigger; the absence is explicit.
Confirmation
The ADR is honoured when all seven hold:
- All six modules emit.
opda-gen emit-module property/agent/transaction/claim/governance/descriptiveproduces six.ttlfiles insource/03-standards/ontology/. - Byte-identity CI green per module.
- A9 discipline output verified. Every emitted
owl:Classfrom akind: patternmodule ODR carriesdct:source+skos:scopeNote+rdfs:commentper ADR-0007 §“A9 per-kind discipline output”. - Three-graph isolation verified. No
sh:*triples in any module classes file; no advisory annotation predicates; noowl:importsto DPV (reference-not-import). - Per-module
owl:versionIRIpins to generator version.<https://w3id.org/opda/property/0.1.0/>etc. - Diagnostic exemplars validate against the emitted classes. Every exemplar’s
a opda:Xtyping resolves to a declared class. opda:Property hasUPRN,opda:identifiesSameProperty,opda:hasAddress— the core join predicates from S005 + S015 — emit and validate.
Manual test: opda-gen emit-module property && pyshacl -s opda-shapes.ttl -d opda-property.ttl (after ADR-0012 emits shapes) returns no shape-target-unresolved errors.
Programme-wide validation gate (per ADR programme plan §9 — Validation discipline). In addition to the ADR-specific criteria above, this ADR moves proposed → accepted only when all four of the following hold (independent of the worker that implemented this ADR):
- (a) Soundness check PASS — every emitted artefact traces to a cited ODR/ADR
## Rulesor## Operational specificationsclause viadct:source(for Turtle) or code-comment provenance header (for Python). The validation agent extracts emitted-artefact provenance and verifies each resolves to a ratified section. - (b) Completeness check PASS — every cited ODR’s
## Rulesand## Operational specificationssubsection is realised by an emitted artefact OR explicitly deferred with a named follow-up trigger. The validation agent enumerates cited subsections and checks coverage. - (c) Cross-ADR consistency check PASS — every downstream ADR’s confirmation criteria can be met given this ADR’s emission (e.g. classes emitted here are referenceable by downstream shapes; shapes here are composable by downstream profiles). The validation agent simulates the downstream contract against this ADR’s output.
- (d) Validation report committed at
docs/adr/validation/ADR-0011-validation-report.md, produced by an independent validation-agent spawn (NOT the implementing worker; mirrors the Council Devil’s Advocate independence per ODR-0001 §Roles for every session; see ADR programme plan §8 swarm orchestration topology).
A FAIL on any of (a)–(d) blocks accepted status; the implementing worker amends and validation re-runs. Two consecutive validation failures on the same ADR escalate to a Council mini-session per ODR-0001 §Self-amendment process — engineering does not re-deliberate; surfaced ## Rules ambiguity routes to Council ratification.
More Information
- Ratified ODRs realised: ODR-0005; ODR-0006; ODR-0007; ODR-0008; ODR-0009; ODR-0012; ODR-0015; ODR-0018.
- Predecessor ADRs: ADR-0009 — Foundation TTL emission; ADR-0010 — SKOS vocabulary emission. Foundation + substrate land before modules.
- Successor ADR: ADR-0012 — SHACL shapes + DPV annotation emission. Shapes + annotations side of each module’s three-graph triple.
- Held-as-live tracking: Davis Q4 Building/Room class-promotion (commented stubs in
opda-property.ttl; re-open trigger 18-month or named BASPI5 round-trip query); Kendall Q2 four-way sub-module alternative (re-open trigger encumbrance-cardinality evidence). - Out of scope for this ADR:
- SHACL shapes (ADR-0012).
- DPV co-annotation triples (ADR-0012).
- Overlay profile shapes (ADR-0013).
- SHACL-AF rule emission (ADR-0012 emits rules into shapes graph).
Amendments
- 2026-05-27 — Implementation landed (commit
e0e3e2d). Six module TTLs emitted atsource/03-standards/ontology/opda-{property,agent,transaction,claim,governance,descriptive}.ttl(572 LOC; 35 classes; 9 ObjectProperties; 9 DatatypeProperties). Foundation expanded withopda:RoleMixin,opda:Role,opda:Relator(5 foundation classes total;owl:versionIRI 0.2.0 → 0.3.0). All 7 §Confirmation criteria PASS; 15/15 diagnostic exemplars validate; A9 per-kind discipline observed on every class; three-graph isolation clean. Queued follow-up G11 (44 remaining Q5a descriptive-attribute leaves; trigger amended to MVP-gate-discovery per validator recommendation). Tests grew 51 → 61. Implementation report atdocs/adr/implementation-reports/ADR-0011-implementation.md. - 2026-05-27 — Independent validation PASS-WITH-FOLLOW-UPS (commit
3d941c4). Soundness 0 failures on A9 SPARQL attack; Completeness 53/53 cited subsections accounted for (37 REALISED + 12 DEFERRED-to-ADR-0012 + 4 N/A + 1 PARTIAL Q5a); Cross-ADR 5/5 + 4/4 probes. All 5 worker-flagged ambiguities (LeaseExtensionEvent placement; Document/Vouch short-name handling viaowl:equivalentClass; Q5a subset; URL-fragment naming; UFO meta-class placement) independently affirmed as within-engineering. G11 recommendation: accept with closure-trigger tightened to “before ADR-0014 MVP gate”. Status movesproposed → accepted. Validation report atdocs/adr/validation/ADR-0011-validation-report.md. - 2026-06-01 — Evidence short-name aliases RETIRED (Council session-035; supersedes the within-engineering option (b) affirmed in the
3d941c4validation). The threeowl:equivalentClassshort-name alias classes (opda:Document/opda:ElectronicRecord/opda:Vouch) are removed fromclaim.py. Rationale (8–0–0): a synonymy need mis-encoded as a class-identity axiom — inert under the ODR-0025/0026 closure yet a latent DL-explosion hazard and an active silent-pass (exemplars typeda opda:Documentmatched no emitted shape). Replacement:skos:altLabelcarries the short name on each canonical…Evidenceclass; the three diagnostic exemplars re-type to the canonical class; the evidence-kind discriminator becomes the governedopda:evidenceTypefacet (skos:exactMatch-bound toopda:EvidenceMethodSchemeper ODR-0011 §8a). Migration was generator-mechanical (3 alias-class blocks dropped + 3 exemplar re-types + facet wiring); all 7 CI gates + 337 pytest + 27 round-trip green; byte-identity re-pinned. The modelling recast (Evidence→RoleMixin, Vouch→Relator) is recorded in the ODR-0009 session-035 amendment. - 2026-06-01 — Evidence subtypes to be RETIRED to coded classification (ODR-0027 §R6; directing-authority adoption of the hm approach). ODR-0027 supersedes session-036’s keep-the-subclasses disposition: opda:Evidence is a role a document plays, so the three
…Evidence rdfs:subClassOf opda:Evidenceaxioms are retired and evidence-kind becomes theopda:evidenceTypeisMemberOfcoded classification;opda:AttachedDocumentstays as the one genuine Kind; kind-specific attributes (opda:attestedBy…) become role-borne facets (rdfs:domain opda:Evidence, documentary).claim.pychange: drop the 3 subclass declarations + theirskos:exactMatch-to-subclass + re-homeattestedBy’s domain toopda:Evidence. Status: IMPLEMENTED (2026-06-01) —claim.pyretired the 3…Evidencesubclasses + the orphan scheme-concept constants;CLASSESnow{Claim, Evidence, AttachedDocument, AssuranceLevel, TrustFramework, VerificationActivity};opda:Evidenceisowl:Class, opda:RoleMixin;opda:AttachedDocumentretained as the one genuine Kind. All 7 CI gates + 337 pytest + 27 round-trip green; byte-identity re-pinned.
Comments
Loading comments…
Sign in to post a comment