Logical tier
Typed entity-relationship view — attributes, cardinalities, relationships, and SKOS enumerations.
Audience: Data engineers, system architects
OPDA Logical Model
This tier shows the entity-relationship structure of OPDA’s ontology in platform-independent form. Audience: data engineers, solution architects, integration architects, technical product managers. The reader is expected to be comfortable with entity-relationship modelling but should not need to read RDF, SHACL, or SKOS Turtle.
OPDA’s Logical-tier inventory: 41 entities (including three short-name aliases under owl:equivalentClass) across seven modules + 23 enumeration schemes.
See also: Modelling section
The Data dictionary page in the Modelling section is the complementary schema-level register: 1,538 PDTF schema-derived data elements (broad, schema-level, with suggested RDF URIs) sourced from the 16 canonical overlays and OPDA Glossary spreadsheets. This tier is the refined ontology reference (41 entities, deep, generator-emitted); the data dictionary is the raw schema material it grew from.
Reading order
- This tier overview — module catalogue, entity index, master ER diagram (below)
- The seven module directories (in IC-dependency order):
foundation/— six foundation classes (UFO meta-classes, ValidationContext, generator provenance)property/— Property + Address + LegalEstate + RegisteredTitle + LeaseTerm + lifecycle eventsagent/— Person + Organisation + Roles + Relatorstransaction/— Transaction Relator + Milestone + TransactionChainclaim/— Claim + Evidence subtypes + VerificationActivitygovernance/— DPV mapping records + special-category datadescriptive/— Survey + Valuation + EPC + Search + Comparable
- Per-module
enumerations/subdirectories — typed value sets (SKOS schemes) bound by each module’s attributes.
What’s in each entity file
Every entity follows the same nine-section shape:
- Summary — one paragraph; UFO meta-category in brackets; back-link to Concept tier
- Attributes — typed table with cardinality + identity-bearing flags
- Relationships — typed table with cardinality + inverse predicate
- Identity key — typed shape of the Identity Criterion
- Constraints — non-cardinality business rules with SHACL severity tier
- Derived attributes — attributes computed from SHACL-AF rules
- ER diagram — Mermaid
erDiagramof the entity + direct neighbours - Source ODR + ADR — link targets only (no quoted text)
Module catalogue
| Module | Entities | Schemes used | Description |
|---|---|---|---|
| foundation | 6 | — | UFO meta-classes (Role, RoleMixin, Relator); ValidationContext; generator provenance (GeneratorRun); diagnostic exemplars |
| property | 7 | 15 | Physical Property + Address + LegalEstate + RegisteredTitle + LeaseTerm + lifecycle events |
| agent | 7 | 4 | Person + Organisation as substances; Buyer/Seller/Proprietor as Roles; Proprietorship Relator |
| transaction | 3 | 2 | Transaction Relator; lifecycle Milestones; TransactionChain aggregate |
| claim | 11 | 2 | Verifiable Claims + Evidence subtypes + VerificationActivity + AssuranceLevel + TrustFramework |
| governance | 2 | — | DPV mapping records (PII baseline + variants); special-category data scheme |
| descriptive | 5 | — | Class-promoted descriptive Kinds: Survey, Valuation, EPC, Search, Comparable |
Entity index (alphabetical)
| Entity | Module | UFO meta-category |
|---|---|---|
| Address | property | Substance Kind |
| AssuranceLevel | claim | Quale-in-Region |
| Buyer | agent | RoleMixin |
| Claim | claim | Information particular |
| Comparable | descriptive | Substance Kind (informational) |
| DiagnosticExemplar | foundation | Substance Kind (informational) |
| Document | claim | Substance Kind (informational; alias) |
| DocumentEvidence | claim | Substance Kind (informational) |
| DPVMappingRecord | governance | Information particular |
| ElectronicRecord | claim | Substance Kind (informational; alias) |
| ElectronicRecordEvidence | claim | Substance Kind (informational) |
| EPCCertificate | descriptive | Substance Kind (informational) |
| Evidence | claim | Substance Kind (informational) |
| GeneratorRun | foundation | Information particular |
| LeaseExtensionEvent | property | Event particular |
| LeaseTerm | property | Information particular |
| LegalEstate | property | Substance Kind |
| Milestone | transaction | Event particular |
| NameChangeEvent | agent | Event particular |
| Organisation | agent | Substance Kind |
| Person | agent | Substance Kind |
| Property | property | Substance Kind |
| Proprietor | agent | Role |
| Proprietorship | agent | Relator |
| RegisteredTitle | property | Substance Kind (informational) |
| Relator | foundation | Meta-class (UFO Relator) |
| Role | foundation | Meta-class (UFO Role) |
| RoleMixin | foundation | Meta-class (UFO RoleMixin) |
| Search | descriptive | Substance Kind (informational) |
| Seller | agent | RoleMixin |
| SpecialCategoryScheme | governance | Information particular (declaration only) |
| Survey | descriptive | Substance Kind (informational) |
| Transaction | transaction | Relator |
| TransactionChain | transaction | Aggregate |
| TrustFramework | claim | Information particular |
| UPRNSuccessionEvent | property | Event particular |
| Valuation | descriptive | Substance Kind (informational) |
| ValidationContext | foundation | Substance Kind (informational) |
| VerificationActivity | claim | Event particular |
| Vouch | claim | Substance Kind (informational; alias) |
| VouchEvidence | claim | Substance Kind (informational) |
Master ER diagram
The diagram below shows the cross-module relationships at a glance. Per-module ER diagrams (showing within-module detail) live in the module READMEs and in diagrams/.
Source file: diagrams/master-er.mmd.
Module dependency diagram
Module dependencies in IC-dependency order. Edges indicate that the source module declares entities or predicates whose domain or range resolves to an entity in the target module.
Role / RoleMixin / Relator
ValidationContext / GeneratorRun"]:::foundationMod Property["property
Property / Address / LegalEstate
RegisteredTitle / LeaseTerm + events"]:::propertyMod Agent["agent
Person / Organisation
Buyer / Seller / Proprietor / Proprietorship"]:::agentMod Transaction["transaction
Transaction Relator
Milestone / TransactionChain"]:::transactionMod Claim["claim
Claim / Evidence subtypes
VerificationActivity / TrustFramework"]:::claimMod Governance["governance
DPVMappingRecord
SpecialCategoryScheme"]:::governanceMod Descriptive["descriptive
Survey / Valuation / EPC
Search / Comparable"]:::descriptiveMod Property -->|"specialises meta-classes"| Foundation Agent -->|"specialises meta-classes"| Foundation Transaction -->|"specialises Relator"| Foundation Claim -->|"PROV-O Entities"| Foundation Governance -->|"declaration patterns"| Foundation Descriptive -->|"PROV-O Entities"| Foundation Agent -->|"Proprietorship binds RegisteredTitle
(cross-module Relator)"| Property Transaction -->|"concerns LegalEstate"| Property Transaction -->|"founds Seller and Buyer"| Agent Claim -->|"Seller hasEvidencedAuthority
VouchEvidence attestedBy Person"| Agent Governance -->|"DPVMappingRecord targetsKind"| Agent Governance -->|"DPVMappingRecord targetsKind"| Claim Descriptive -->|"concerns Property"| Property
Identity-key index
Each entity is named alongside its Identity Criterion key. Use this as a navigation aid when designing payload shapes or evaluating cross-tier mappings.
continuity]:::icKey AuthorityRecord[Authority-record
variant + record-id]:::icKey RightsBundle[Rights-bundle
persistence]:::icKey TitleLineage[Title-number lineage
+ registry-event history]:::icKey OWLTime[OWL-Time interval
+ LegalEstate]:::icKey ProvTuple[PROV-O tuple
entity + timestamp]:::icKey IdentifierBundle[Identifier bundle
FIBO multi-id]:::icKey Tuple[Relator tuple
bearers + founding event]:::icKey Digest[Cryptographic digest
content-addressable]:::icKey SchemeMember[Scheme-member
notation]:::icKey URI[Dereferenceable URI]:::icKey ProvActivity[Provenance Activity
prov:wasGeneratedBy]:::icKey TargetTuple[targetsKind
+ baselineCategory]:::icKey GenRun[generatorVersion
+ sourceCommit]:::icKey Parasitic["Parasitic on bearer
+ Relator (no IC)"]:::icKey Property[Property]:::entity --> SpatialMaterial Address[Address]:::entity --> AuthorityRecord LegalEstate[LegalEstate]:::entity --> RightsBundle RegisteredTitle[RegisteredTitle]:::entity --> TitleLineage LeaseTerm[LeaseTerm]:::entity --> OWLTime LeaseExtensionEvent[LeaseExtensionEvent]:::entity --> ProvTuple UPRNSuccessionEvent[UPRNSuccessionEvent]:::entity --> ProvTuple NameChangeEvent[NameChangeEvent]:::entity --> ProvTuple Person[Person]:::entity --> IdentifierBundle Organisation[Organisation]:::entity --> IdentifierBundle Proprietorship[Proprietorship]:::entity --> Tuple Transaction[Transaction]:::entity --> Tuple Milestone[Milestone]:::entity --> Tuple TransactionChain[TransactionChain]:::entity --> Tuple Seller[Seller]:::parasitic --> Parasitic Buyer[Buyer]:::parasitic --> Parasitic Proprietor[Proprietor]:::parasitic --> Parasitic Role[Role]:::metaEntity --> Parasitic RoleMixin[RoleMixin]:::metaEntity --> Parasitic Relator[Relator]:::metaEntity --> Tuple Claim[Claim]:::entity --> Digest Evidence[Evidence]:::entity --> Digest DocumentEvidence[DocumentEvidence]:::entity --> Digest ElectronicRecordEvidence[ElectronicRecordEvidence]:::entity --> Digest VouchEvidence[VouchEvidence]:::entity --> Digest Document[Document]:::entity --> Digest ElectronicRecord[ElectronicRecord]:::entity --> Digest Vouch[Vouch]:::entity --> Digest VerificationActivity[VerificationActivity]:::entity --> ProvTuple AssuranceLevel[AssuranceLevel]:::entity --> SchemeMember TrustFramework[TrustFramework]:::entity --> URI ValidationContext[ValidationContext]:::entity --> URI DPVMappingRecord[DPVMappingRecord]:::entity --> TargetTuple GeneratorRun[GeneratorRun]:::entity --> GenRun Survey[Survey]:::entity --> ProvActivity Valuation[Valuation]:::entity --> ProvActivity EPCCertificate[EPCCertificate]:::entity --> ProvActivity Search[Search]:::entity --> ProvActivity Comparable[Comparable]:::entity --> ProvActivity
UFO category index
Each entity grouped by its UFO meta-category bracket (pulled from the entity’s ## Summary UFO bracket per the IA spec).
(informational)"]:::entity --> SubKind PersonE[Person]:::entity --> SubKind OrganisationE[Organisation]:::entity --> SubKind ValidationContextE["ValidationContext
(informational)"]:::entity --> SubKind DiagnosticExemplarE["DiagnosticExemplar
(informational)"]:::entity --> SubKind EvidenceE["Evidence
(informational)"]:::entity --> SubKind DocumentEvidenceE[DocumentEvidence]:::entity --> SubKind ElectronicRecordEvidenceE[ElectronicRecordEvidence]:::entity --> SubKind VouchEvidenceE[VouchEvidence]:::entity --> SubKind DocumentE["Document (alias)"]:::entity --> SubKind ElectronicRecordE["ElectronicRecord (alias)"]:::entity --> SubKind VouchE["Vouch (alias)"]:::entity --> SubKind SurveyE[Survey]:::entity --> SubKind ValuationE[Valuation]:::entity --> SubKind EPCCertificateE[EPCCertificate]:::entity --> SubKind SearchE[Search]:::entity --> SubKind ComparableE[Comparable]:::entity --> SubKind ProprietorE[Proprietor]:::entity --> RoleCat SellerE[Seller]:::entity --> RoleMixinCat BuyerE[Buyer]:::entity --> RoleMixinCat ProprietorshipE[Proprietorship]:::entity --> RelatorCat TransactionE[Transaction]:::entity --> RelatorCat NameChangeEventE[NameChangeEvent]:::entity --> EventP LeaseExtensionEventE[LeaseExtensionEvent]:::entity --> EventP UPRNSuccessionEventE[UPRNSuccessionEvent]:::entity --> EventP MilestoneE[Milestone]:::entity --> EventP VerificationActivityE[VerificationActivity]:::entity --> EventP LeaseTermE[LeaseTerm]:::entity --> InfoP ClaimE[Claim]:::entity --> InfoP TrustFrameworkE[TrustFramework]:::entity --> InfoP GeneratorRunE[GeneratorRun]:::entity --> InfoP DPVMappingRecordE[DPVMappingRecord]:::entity --> InfoP SpecialCategorySchemeE["SpecialCategoryScheme
(declaration only)"]:::entity --> InfoP AssuranceLevelE[AssuranceLevel]:::entity --> QualeR TransactionChainE[TransactionChain]:::entity --> AggregateCat RoleE[Role]:::entity --> MetaCls RoleMixinE[RoleMixin]:::entity --> MetaCls RelatorE[Relator]:::entity --> MetaCls
Cross-tier traceability
Every Logical-tier entity maps 1:1 to:
- the Concept-tier file at
../concept/<module>/<entity>.md(business-language narrative) - one
owl:ClassURI in the Physical-Ontology tier (TBox specifics) - one or more named graphs in the Physical-Database tier (deployment specifics)
The same <module>/<entity>.md path shape is used across all four tiers.
Out of scope at this tier
- Business prose, hard cases, anti-pattern rationale → Concept tier
- Named-graph layout, derived profiles, BASPI5 overlay composition → Physical-Database tier
- OWL / SHACL / SKOS / Turtle syntax → Physical-Ontology tier
Provenance
Generated from the 24 emitted TTLs at source/03-standards/ontology/ per the IA spec at ../../information-architecture/logical-model-ia.md. The ODR corpus is the modelling-decision audit trail and is referenced as link targets only.
Comments