Identity & classification
Two decisions carry more weight than any other in the model. The identity crux (ODR-0005) answers the question PDTF JSON cannot: what is the rigid, identity-bearing "property" when the source schema has no first-class property object at all? The classification doctrine (ODR-0027) answers how every type in the model is assigned: by coded set-membership, not by a subclass tree.
The implicit-Property crux (ODR-0005)
PDTF JSON has no first-class "property" object, yet an RDF consumer needs a rigid, identity-bearing subject to attach everything to. ODR-0005 (Council session-005; Queen Guarino) splits the conflated notion into three UFO Substance Kinds, each committed to a DOLCE Endurant, each with its own identity criterion — not one conflated entity:
| Class | UFO / DOLCE | Identity criterion |
|---|---|---|
opda:Property | Substance Kind / PhysicalObject | spatial-material continuity, with a legal-record discontinuity override |
opda:LegalEstate | Substance Kind / NonPhysicalEndurant | rights-bundle persistence (survives transfer, charges, easements) — may be unregistered at common law |
opda:RegisteredTitle | Substance Kind (informational) / NonPhysicalEndurant | title-number lineage + registry-event history; carries a distinct published-personal-data PII regime under the HMLR open register |
The split is what gives the unregistered-house-before-first-registration case a coherent
answer (a LegalEstate with no RegisteredTitle), and gives RegisteredTitle
instances a class-level discriminator for ICO Subject Access processing. The three are joined by co-reference —
the controlled opda:identifiesSameProperty predicate and SHACL key-matching —
never owl:sameAs.
UPRN is a contingent Quality — never the IC, never owl:sameAs
UPRN is a contingent Quality of a opda:Property, never the identity
criterion, and never asserted with owl:sameAs (the owl:sameAs-across-UPRN
option was rejected unanimously at session-005). A property can change UPRN — administrative
re-numbering is captured by a reified opda:UPRNSuccessionEvent under
prov:wasDerivedFrom, materialised into the validation report by a SHACL-AF rule at
sh:Info severity, and the Property's identity persists through it. Two records sharing
a UPRN are not thereby the same legal estate. Forbidden anti-patterns:
owl:sameAsbetween any two UPRN-bearing nodes — propagates every context's properties onto every other, irreversibly under inference.- Treating UPRN or address as the identity criterion — both are administratively contingent (UPRN) or a mode of presentation (address).
- Keying a Role — a Role borrows identity from its bearer and never supplies its own (ODR-0005 anti-pattern §3).
Worked exemplars exercise exactly these surfaces: flat-with-split-uprn,
flat-no-uprn-newly-converted, rural-plot-inspire-no-uprn,
unregistered-pre-first-registration-house — see Exemplars.
The named hard cases (how opda:Property identity behaves)
Per ODR-0001's per-kind: pattern discipline, each identity criterion is exercised over
five named hard cases rather than asserted abstractly. For opda:Property:
| Hard case | Disposition |
|---|---|
| Demolition | The physical thing ceases; the LegalEstate and RegisteredTitle may persist (a cleared plot is still an estate). |
| Subdivision | One Property becomes many — new UPRNs issue; identity does not survive a split into distinct material continua. |
| Merger | Many Properties become one; identity of the constituents ends. |
| Replacement (rebuild on the same plot) | A new Property iff the legal record asserts discontinuity (title closure + re-registration, or a new UPRN with no prov:wasDerivedFrom chain). Routine knock-down-rebuild without registry discontinuity PRESERVES identity — matching conveyancer practice. Listed-building heritage exception via a SHACL profile. |
| Boundary modification | A boundary change without registry discontinuity preserves identity; a transfer of land that re-registers does not. |
The unifying rule: physical-material continuity governs, with a legal-record discontinuity
override. opda:LegalEstate and opda:RegisteredTitle each carry their own
five-hard-case walk in ODR-0005 §3b/§3c.
Classification doctrine — facets, not subclass trees (ODR-0027)
ODR-0027 adopts wholesale the sibling corpus's decade-stable classification-over-inheritance doctrine, grounded in ISO 25964 faceted classification, W3C SKOS, FIBO, and OntoClean/UFO. The doctrine is six rules:
| Rule | What it says |
|---|---|
| R1 — isMemberOf is the default; isA is the exception | Classification (what type a thing is) is done by coded set-membership — isMemberOf a skos:ConceptScheme — by default. Mint an OWL subclass (isA / rdfs:subClassOf) ONLY for a genuine Kind that carries its own identity criterion (and/or a distinct relational structure SHACL must enforce per-type). One class, a value that varies, is the rule; a subclass per coded value is the anti-pattern. |
| R2 — a facet is NOT a classification | A facet is the set of type-specific attributes an entity of a given type bears — it presupposes the type and says nothing about what the type is. opda:attestedBy and opda:documentReference are facets. opda:evidenceType is NOT a facet — it is an isMemberOf classifier (it states the kind). (opda overloads "facet" to mean type-borne attributes, not an ISO-25964 classification axis.) |
| R3 — Roles are anti-rigid → NEVER rdfs:subClassOf a Kind | A Role is borne via a roleOf / playedBy relation (founded by the relevant Relator/Activity), with a coded isMemberOf classifier where the role sub-divides — never rdfs:subClassOf the bearer Kind. opda already does this for opda:Seller / opda:Buyer (RoleMixin) and opda:Proprietor (Role); the doctrine generalises it. |
| R4 — every enumeration is a SKOS scheme | Every closed value-space, status set, kind-discriminator, and UFO-stereotype axis is a skos:ConceptScheme of skos:Concepts, referenced by a coded value — never an owl:oneOf bag and never an rdfs:subClassOf enumeration. A scheme member binds to an OWL Kind by skos:exactMatch only where that Kind independently earns isA — never owl:sameAs. |
| R5 — enforcement is value-keyed, not class-keyed | rdfs:domain / rdfs:range are informative, never evaluated. SHACL is the enforcement layer, and per-type obligations are value-keyed on the isMemberOf classifier (sh:targetSubjectsOf + a value-guarded material implication in SHACL-Core), not keyed on a subclass sh:targetClass (which is entailment-relative and silently passes a value-recorded instance). Class-targeting is correct in exactly one place: a type↔value coherence shape. |
| R6 — evidence is a Role, not a Kind tree | opda:Evidence is the role target (a RoleMixin); evidence-kind is an isMemberOf coded classification (opda:evidenceType → opda:EvidenceMethodScheme), not a subclass tree. The three …Evidence rdfs:subClassOf opda:Evidence axioms are retired; kind-specific attributes become facets borne by the role. (This reverses session-036's keep-the-subclasses disposition; its value-keyed-enforcement finding stands.) |
The OntoClean cascade behind R1 (ODR-0011 §8a): anti-rigid → never a subclass; +R∧−I → classify (coded); +R∧+I∧+D → Relator; +R∧+I∧−D → subclass. The net effect: the ~40 OWL classes are kept deliberately few and rigid, while the 47 SKOS concept schemes carry all the varying classification — see Vocabularies (SKOS).
Related
The UFO legend, three-graph separation, bounded contexts, and inference boundary are on Foundations & architecture. Browse the terms: Classes, Properties, Vocabularies (SKOS). Full index: Ontology section overview.
Comments
Loading comments…
Sign in to post a comment