4-tier documentation validation report
Validator: independent-validator-4-tier Date: 2026-05-28 Worker commits validated: 6328d03, 0c3619d, fbf8d85, 4c16c58
Check 1 — Source-of-truth discipline
- H&M / hm.com / semantic-modelling / SDS sanity grep: 0 matches — PASS
- ODR-body-text leakage probes (
Council Session NNN ratified,Pandit's S012,Devil's Advocate, dialectic, expert-panel, 7-vote, Author-only): 0 matches — PASS - Legitimate ODR link targets under
## Source ODR/## Source ODR + ADRare present and expected.
PASS.
Check 2 — Cross-tier entity inventory
Canonical inventory from source TTLs: 41 owl:Class declarations across 7 modules (foundation/property/agent/transaction/claim/governance/descriptive). All 41 classes are present in the three mandatory tiers (Concept entity file, Logical entity file, Physical-Ontology per-class subsection).
| Module | Class count | Concept | Logical | Phys-Onto |
|---|---|---|---|---|
| foundation | 6 | 6/6 | 6/6 | 6/6 |
| property | 7 | 7/7 | 7/7 | 7/7 |
| agent | 7 | 7/7 | 7/7 | 7/7 |
| transaction | 3 | 3/3 | 3/3 | 3/3 |
| claim | 11 | 11/11 | 11/11 | 11/11 |
| governance | 2 | 2/2 | 2/2 | 2/2 |
| descriptive | 5 | 5/5 | 5/5 | 5/5 |
| TOTAL | 41 | 41 | 41 | 41 |
Plus 23/23 SKOS schemes (Logical enumerations + Physical-Ontology vocabularies) and 15/15 exemplar pairs (Physical-Ontology exemplars).
PASS.
Check 3 — Cross-tier link resolution
200 cross-tier [<X> tier →] links scanned. 56 broken, 144 OK.
Broken-link breakdown:
| Category | Count | Root cause |
|---|---|---|
[Physical-DB tier →] from physical-ontology/<module>/classes.md to per-entity Physical-DB pages |
31 | Physical-DB IA spec is organised by consumption concern (named graphs / derived profiles / content-neg / overlay-deployment / CI), NOT per entity. Per-entity Physical-DB pages do not exist by design. The Physical-Ontology worker followed its IA worked-template (line 222 of physical-ontology-ia.md mandates [Physical-DB tier →] cross-tier link) which presupposes per-entity Physical-DB pages that the Physical-DB IA does not provide. |
[Concept tier →] from logical/<module>/enumerations/<scheme>.md to concept/<module>/enumerations/<scheme>.md |
23 | Concept-tier IA spec does NOT mandate per-enumeration pages; only entity pages. Logical worker invented links to non-existent Concept-tier enumeration pages. |
[Concept tier →] + [Logical tier →] from physical-ontology/foundation/classes.md to has-special-category-data.md |
2 | opda:hasSpecialCategoryData is an owl:DatatypeProperty (engineering placeholder per ADR-0012), not an owl:Class. Concept / Logical workers correctly emit files only for classes; cross-tier links from the property's P-O block point at non-existent property pages. |
These are IA-spec inter-tier inconsistencies, not silent fabrication: each worker followed its own IA spec faithfully. Remediation is to reconcile the IA specs (downgrade [Physical-DB tier →] to optional / per-entity links to be omitted; clarify that per-enumeration pages do not exist at Concept tier; document property-only entities separately).
PASS-WITH-FOLLOW-UPS.
Check 4 — Tier-spec section shape
Concept tier (5 sampled entity files)
All 5 sampled files contain the mandatory sections in the mandatory order: # <Entity>, ## Why it matters, ## Hard cases, ## Identity Criterion, ## Related Kinds, ## Source ODR.
PASS.
Logical tier (5 sampled entity files)
All 5 sampled files contain the mandatory sections in the mandatory order: # <Entity>, ## Summary, ## Attributes, ## Relationships, ## Identity key, ## Constraints, ## Derived attributes, ## ER diagram, ## Source ODR + ADR.
PASS.
Physical-Ontology tier (7 sampled per-class blocks, 1 per module)
| Module | Sampled class | Result |
|---|---|---|
| foundation | opda:RoleMixin |
OK |
| property | opda:LegalEstate |
FAIL — #### Subclass / equivalent-class relationships omitted (because the class has no rdfs:subClassOf declaration) |
| agent | opda:Buyer |
OK |
| transaction | opda:Milestone |
OK |
| claim | opda:Claim |
OK |
| governance | opda:DPVMappingRecord |
FAIL — same omission pattern as LegalEstate |
| descriptive | opda:EPCCertificate |
OK |
The two FAILs both omit the empty #### Subclass / equivalent-class relationships subsection. The IA spec wording (line 84) names it as mandatory but the worker omitted it for classes with no parent classes. Defensible behaviour but a deviation from the strict mandate.
Header-level deviation (all 7 modules): the IA spec mandates H3 (### opda:LocalName) for per-class subsections (line 72), but the worker used H2 (## opda:LocalName). Same deviation in shacl-af-rules.md (10 H2 rule headings, IA mandates H3). The hierarchy is internally consistent within each file (H1 = module title; H2 = per-class) and renders correctly; only the depth level deviates from the IA's worked-template intent.
PASS-WITH-FOLLOW-UPS.
Check 5 — Worker-flagged gaps verification
Concept worker — 4 interpretive Hard cases (Comparable, Search, Valuation, EPCCertificate)
Confirmed: source TTL rdfs:comment for these 4 classes contains only the S008 Q4 three-criterion test, NOT a "Hard cases:" enumeration. The Concept files inject interpretive hard cases (e.g. "stale comparable", "same search re-ordered", "in-flight regulator pivot"). The disclosure was given in the worker's result message but is not surfaced in the doc itself (no callout, no italics admission). PASS-WITH-FOLLOW-UPS: add an editorial-disclosure callout to each of those 4 files (Comparable, Search, Valuation, EPC-certificate) marking the hard-case items as derived analysis rather than TTL-extracted.
Concept worker — 3 alias-stub redirects (Document, ElectronicRecord, Vouch)
Confirmed: concept/claim/document.md, electronic-record.md, vouch.md are short alias-stubs deferring to their *-evidence.md counterparts via OWL equivalence binding. Each disclosure is honestly inline in the doc. PASS.
Logical worker — 16 entities with no SHACL cardinality shapes
Spot-check finds 14 entity files with the disclosure phrase No SHACL Violation/Warning shapes emitted at this tier (close to the worker's claim of 16; small discrepancy may be cardinality phrasing variants). The 3 spot-checked files (generator-run.md, special-category-scheme.md, assurance-level.md) all honestly disclose the gap. PASS.
Physical-DB worker — derived/ directory does not exist
Confirmed: source/03-standards/ontology/derived/ does not exist. All 3 derived-profile pages (opda-validation.md, opda-ui.md, opda-inference.md) plus the README disclose "spec only; composer activation pending". PASS.
Physical-Ontology worker — 1 placeholder rule (citing site #11)
Confirmed: shacl-af-rules.md line 37 marks rule #11 as "(placeholder for future emission) | — | — |". 10 rules are documented with Turtle blocks; the 11th is honestly absent. PASS.
PASS-WITH-FOLLOW-UPS (Concept-tier interpretive hard cases need inline disclosure).
Check 6 — 4-tier coverage matrix
| Module | Class | Concept | Logical | Phys-Onto |
|---|---|---|---|---|
| foundation | DiagnosticExemplar | ✓ | ✓ | ✓ |
| foundation | GeneratorRun | ✓ | ✓ | ✓ |
| foundation | Relator | ✓ | ✓ | ✓ |
| foundation | Role | ✓ | ✓ | ✓ |
| foundation | RoleMixin | ✓ | ✓ | ✓ |
| foundation | ValidationContext | ✓ | ✓ | ✓ |
| property | Address | ✓ | ✓ | ✓ |
| property | LeaseExtensionEvent | ✓ | ✓ | ✓ |
| property | LeaseTerm | ✓ | ✓ | ✓ |
| property | LegalEstate | ✓ | ✓ | ✓ |
| property | Property | ✓ | ✓ | ✓ |
| property | RegisteredTitle | ✓ | ✓ | ✓ |
| property | UPRNSuccessionEvent | ✓ | ✓ | ✓ |
| agent | Buyer | ✓ | ✓ | ✓ |
| agent | NameChangeEvent | ✓ | ✓ | ✓ |
| agent | Organisation | ✓ | ✓ | ✓ |
| agent | Person | ✓ | ✓ | ✓ |
| agent | Proprietor | ✓ | ✓ | ✓ |
| agent | Proprietorship | ✓ | ✓ | ✓ |
| agent | Seller | ✓ | ✓ | ✓ |
| transaction | Milestone | ✓ | ✓ | ✓ |
| transaction | Transaction | ✓ | ✓ | ✓ |
| transaction | TransactionChain | ✓ | ✓ | ✓ |
| claim | AssuranceLevel | ✓ | ✓ | ✓ |
| claim | Claim | ✓ | ✓ | ✓ |
| claim | Document | ✓ (alias) | ✓ | ✓ |
| claim | DocumentEvidence | ✓ | ✓ | ✓ |
| claim | ElectronicRecord | ✓ (alias) | ✓ | ✓ |
| claim | ElectronicRecordEvidence | ✓ | ✓ | ✓ |
| claim | Evidence | ✓ | ✓ | ✓ |
| claim | TrustFramework | ✓ | ✓ | ✓ |
| claim | VerificationActivity | ✓ | ✓ | ✓ |
| claim | Vouch | ✓ (alias) | ✓ | ✓ |
| claim | VouchEvidence | ✓ | ✓ | ✓ |
| governance | DPVMappingRecord | ✓ | ✓ | ✓ |
| governance | SpecialCategoryScheme | ✓ | ✓ | ✓ |
| descriptive | Comparable | ✓ | ✓ | ✓ |
| descriptive | EPCCertificate | ✓ | ✓ | ✓ |
| descriptive | Search | ✓ | ✓ | ✓ |
| descriptive | Survey | ✓ | ✓ | ✓ |
| descriptive | Valuation | ✓ | ✓ | ✓ |
Totals: 41 classes × 3 mandatory tiers = 123 cells, 123 ✓, 0 ✗.
Physical-Database tier is organised by consumption concern (named graphs / derived profiles / content-negotiation / overlay deployment / CI operations) per its IA spec — entity-level coverage is not required and not provided. 15 Physical-DB files documented (1 tier README + 1 index + 1 named-graphs + 4 derived-profiles + 3 content-negotiation + 2 overlay-deployment + 3 operations).
PASS.
Check 7 — IA spec adherence
Concept tier — generation discipline
docs/ontology/odr/ body content NOT cited. Links to ODRs under ## Source ODR are link-only targets. No interpretive overlap with ODR deliberation content. PASS.
Logical tier — generation discipline
docs/ontology/odr/ body content NOT cited. ODR links present under ## Source ODR + ADR are link-only. PASS.
Physical-Database tier — generation discipline
PDTF JSON Schemas (source/03-standards/schemas/) are referenced in two places:
physical-database/README.mdline 29 — explicit out-of-scope disclaimer ("They are documented in the nested schemas repo and are deliberately out of scope")physical-database/operations/round-trip-ci.mdline 22 — cited as a CI integration target (the round-trip harness checksbaspi5Refresolution against the schemas TTL), not as a content source.
Both usages are consistent with the IA spec's intent (schemas are out-of-scope as documentation source; legitimate as a CI gate target per ADR-0014 G19). PASS.
Physical-Ontology tier — generation discipline
Per-class blocks contain TTL extracts + cross-tier links + ADR/ODR link targets only. No business-language narrative seeped in beyond the §Summary openers and §Validation behaviour narratives that the IA spec explicitly allows. PASS.
PASS.
Verdict
PASS-WITH-FOLLOW-UPS
The 4-tier documentation is sound (every section traces to a real source TTL or to a legitimately-cited ADR/ODR link target) and complete (every owl:Class from the source TTLs appears in all three mandatory tiers; all 23 SKOS schemes documented; all 15 exemplar pairs documented). No silent fabrication; worker-flagged gaps are honestly disclosed in the docs (one exception: Concept-tier interpretive hard cases need inline editorial disclosure).
Follow-ups (none blocking; all editorial / IA reconciliation):
31 broken
[Physical-DB tier →]links from Physical-Ontology classes.md → non-existent per-entity Physical-DB pages. Remediation: either omit the[Physical-DB tier →]row from per-class subsections (Physical-DB IA correctly organises by consumption concern, not entity); or extend Physical-DB tier with a per-entity index page that the link can resolve to. The IA spec inter-inconsistency should be reconciled in a small IA amendment.23 broken
[Concept tier →]links from Logical-tier enumeration pages → non-existent Concept-tier enumeration pages. Remediation: either drop the link (Concept tier is intentionally narrative-only and does not enumerate scheme members), or add per-scheme Concept pages.2 broken cross-tier links from
physical-ontology/foundation/classes.mdforhasSpecialCategoryData(aDatatypeProperty, not anowl:Class). Remediation: drop the cross-tier links for property-level entries, or extend Concept / Logical tiers to cover engineering-placeholder properties.Concept-tier interpretive hard cases (4 files):
comparable.md,search.md,valuation.md,epc-certificate.mdcarry hard-case enumerations that are not extracted from the source TTLrdfs:comment"Hard cases:" clause (which doesn't exist for these 4 classes). Remediation: add an editorial-disclosure callout at the top of each "Hard cases" section marking it as derived analysis.Physical-Ontology heading-depth deviation: per-class subsections use H2 (
## opda:Name) where the IA spec mandates H3 (### opda:Name); same inshacl-af-rules.md. Remediation: either re-deepen the headings to H3 (cosmetic), or amend the IA spec to permit H2 when the module-level H1 absorbs the module label.Physical-Ontology empty subsection omission: classes with no
rdfs:subClassOf(e.g.LegalEstate,DPVMappingRecord) omit the#### Subclass / equivalent-class relationshipssubsection entirely rather than emitting it with an empty list. Remediation: either always emit (consistent with IA mandate), or amend the IA spec to mark the subsection optional-when-empty.Concept tier missing
diagrams/directory. IA spec layout (line 32) includesdiagrams/<topic>.mmd; not created by worker. Concept files use inline Mermaid blocks where needed. Remediation: create the dir when authors begin shipping cross-entity diagrams.
Worker output is otherwise compliant with the IA specs and faithful to the source TTLs.
Comments