OPDA ontology — custom reference script + LLM

The bake-off's seventh "tool". Every off-the-shelf generator scores None on the layers below — overlay profiles + the gap register, round-trip exemplars, the three-graph separation, the governance/decision lineage, and the known-issues register. This page is generated by scripts/gen-ontology-custom.mjs from the committed TTL corpus (the script half) wrapped in hand/LLM-authored narrative (the prose half) — the combination ADR-0041 adopts as the composition.

Corpus snapshot: 42 classes · 76 object + 207 datatype properties · 46 SKOS schemes / 304 concepts · 408 SHACL node shapes · 31 overlay profiles (15 bound) · 17 round-trip exemplars.

1 · Overlay profiles & the gap register

A PDTF form is its SHACL overlay (ODR-0010 / ADR-0029). Only Category-G substantive attributes bind as per-leaf sh:path shapes; A/B/C/D/E/F leaves are carried by dct:subject + JSON-pointer dct:source and GAP-registered, never fabricated (session-034). A thin profile is the ratified outcome, not a defect.

Form (profile)BindingSource instrument (dct:source)
asthinopda.org.uk/pdtf/harness/adr/ADR-0029-overlay-profile-emitter-generalisation-and-rollout
baspi57 boundopda.org.uk/pdtf/harness/adr/ADR-0013-overlay-profile-emission
con29DW1 boundopda.org.uk/pdtf/harness/adr/ADR-0029-overlay-profile-emitter-generalisation-and-rollout
con29Rthinopda.org.uk/pdtf/harness/adr/ADR-0029-overlay-profile-emitter-generalisation-and-rollout
drthinopda.org.uk/pdtf/harness/adr/ADR-0029-overlay-profile-emitter-generalisation-and-rollout
erthinopda.org.uk/pdtf/harness/adr/ADR-0029-overlay-profile-emitter-generalisation-and-rollout
fd1 boundopda.org.uk/pdtf/harness/adr/ADR-0029-overlay-profile-emitter-generalisation-and-rollout
fme1thinopda.org.uk/pdtf/harness/adr/ADR-0029-overlay-profile-emitter-generalisation-and-rollout
hithinopda.org.uk/pdtf/harness/adr/ADR-0029-overlay-profile-emitter-generalisation-and-rollout
hsthinopda.org.uk/pdtf/harness/adr/ADR-0029-overlay-profile-emitter-generalisation-and-rollout
jk1 boundopda.org.uk/pdtf/harness/adr/ADR-0029-overlay-profile-emitter-generalisation-and-rollout
la1 boundopda.org.uk/pdtf/harness/adr/ADR-0029-overlay-profile-emitter-generalisation-and-rollout
llc1thinopda.org.uk/pdtf/harness/adr/ADR-0029-overlay-profile-emitter-generalisation-and-rollout
lpe1thinopda.org.uk/pdtf/harness/adr/ADR-0029-overlay-profile-emitter-generalisation-and-rollout
mathinopda.org.uk/pdtf/harness/adr/ADR-0029-overlay-profile-emitter-generalisation-and-rollout
mcthinopda.org.uk/pdtf/harness/adr/ADR-0029-overlay-profile-emitter-generalisation-and-rollout
nts26 boundopda.org.uk/pdtf/harness/adr/ADR-0029-overlay-profile-emitter-generalisation-and-rollout
ntsl23 boundopda.org.uk/pdtf/harness/adr/ADR-0029-overlay-profile-emitter-generalisation-and-rollout
oa1 boundopda.org.uk/pdtf/harness/adr/ADR-0029-overlay-profile-emitter-generalisation-and-rollout
octhinopda.org.uk/pdtf/harness/adr/ADR-0029-overlay-profile-emitter-generalisation-and-rollout
oc1thinopda.org.uk/pdtf/harness/adr/ADR-0029-overlay-profile-emitter-generalisation-and-rollout
piq6 boundopda.org.uk/pdtf/harness/adr/ADR-0029-overlay-profile-emitter-generalisation-and-rollout
rds3 boundopda.org.uk/pdtf/harness/adr/ADR-0029-overlay-profile-emitter-generalisation-and-rollout
sbthinopda.org.uk/pdtf/harness/adr/ADR-0029-overlay-profile-emitter-generalisation-and-rollout
sf1 boundopda.org.uk/pdtf/harness/adr/ADR-0029-overlay-profile-emitter-generalisation-and-rollout
slthinopda.org.uk/pdtf/harness/adr/ADR-0029-overlay-profile-emitter-generalisation-and-rollout
sr241 boundopda.org.uk/pdtf/harness/adr/ADR-0029-overlay-profile-emitter-generalisation-and-rollout
ta102 boundopda.org.uk/pdtf/harness/adr/ADR-0029-overlay-profile-emitter-generalisation-and-rollout
ta64 boundopda.org.uk/pdtf/harness/adr/ADR-0029-overlay-profile-emitter-generalisation-and-rollout
ta74 boundopda.org.uk/pdtf/harness/adr/ADR-0029-overlay-profile-emitter-generalisation-and-rollout
tfthinopda.org.uk/pdtf/harness/adr/ADR-0029-overlay-profile-emitter-generalisation-and-rollout

2 · Round-trip exemplars

17 worked instance graphs, each paired with an expected SHACL validation report — the data contract no OWL doc tool renders. They demonstrate conformant + non-conformant cases (e.g. the BASPI5 Seller-as-Attorney violation traceable to form-question B1.3.2).

baspi5-transaction-conformantbaspi5-transaction-nonconformantchain-of-transactionsclaim-with-document-evidenceclaim-with-electronic-record-evidenceclaim-with-vouch-evidenceflat-no-uprn-newly-convertedflat-with-split-uprnlease-extension-transactionlisted-building-divergent-addressesorganisation-with-mergerperson-with-name-changeproprietorship-relator-multi-proprietorregistered-freehold-houserural-plot-inspire-no-uprnsimple-transaction-with-milestonesunregistered-pre-first-registration-house

3 · Three-graph separation

OPDA keeps three graphs strictly apart (ODR-0004 §3a, CI-enforced): the class graph (opda-classes.ttl + module TBox), the shapes graph (opda-*-shapes.ttl — constraints that target classes, never owl:imports them), and the annotation graph (opda-*-annotations.ttl — DPV co-annotations, AI hints). Inference materialises into a fourth, derived graph (…/pdtf/graph/inferred/entailment) and never pollutes the canonical three.

4 · Inference / validation boundary

Infer the relations whose closure the author wants (subclass/subproperty/inverse/symmetric/transitive — the 7 frozen rules of config/opda-rdfs-plus.rules, a sound but RL-incomplete fragment, not an OWL 2 RL reasoner). Validate the constraints the author wants checked (domain/range/cardinality/identity) as SHACL — the 273 sh:targetSubjectsOf → sh:class domain/range shapes (ODR-0029 R3). The closure adds 0 triples over the flat schema; it is kept as a governed boundary + negative gate (no owl:sameAs, no spurious EPCCertificate ⊑ Property), not for current output.

5 · Governance & decision-provenance

Every term carries dct:source back to a PDTF schema-leaf-path or glossary row. The ontology's own provenance is the ODR/ADR/council corpus: the schema-to-ontology project is retired (ODR-0003, 2026-06-14); the descriptive layer is reconciled complete (ODR-0028); the inference/validation boundary is ODR-0029 (Council session-039); this reference document is ADR-0041 (Council session-038), and ADR-0042 records the historical /manual→/model rename. Both former documentation routes are now retired.

6 · Known-issues register

IssueRecordStatusDetail
EPC-certificate inference cross-tripODR-0028 R3 / ODR-0029 R4CONSUMER-SIDEA naive full-RDFS/OWL consumer mis-infers EPCCertificate ⊑ Property (currentEnergyRating has rdfs:domain Property). OPDA’s own Safe-Group closure excludes domain/range and does NOT produce this; the round-trip validates against the Safe-Group closure. Model is correct.
Thin overlay profilessession-034 / ODR-0022 §Rules.1BY DESIGN16 of 31 profiles bind 0 per-leaf shapes; most overlay leaves are A/B/C/D/E/F treatments carried by dct:subject + dct:source, not per-leaf sh:path. 224 bound / 1095 GAPped across 28 forms.
oc1 / llc1 held thinODR-0008d / session-034 Q2BY DESIGN (re-open trigger)Authority-register extracts, not human-filled forms; thin until a named consumer issues a worked SPARQL query against a register leaf.
Ruleset is not OWL 2 RLODR-0029 R5RESOLVED (rename)config/opda-rdfs-plus.rules is a SOUND but RL-incomplete fragment (7 of the RL rules; omits domain/range/equality/functional/equivalence) — not an OWL 2 RL reasoner. Renamed + honest header; rule logic frozen.