Agent
The Agent module covers the people and organisations party to a property transaction, and the roles they bear within those transactions.
The crucial distinction is between the party (Person, Organisation) — whose identity persists across all the transactions and titles they appear in — and the role (Seller, Buyer, Proprietor) — which is anchored to a specific context (Transaction, Title) and borrows identity from its bearer. A Person who is Seller in one Transaction and Buyer in another is the same Person; the two roles are two distinct Role instances on that Person.
The module also contains Proprietorship — the Relator that binds Proprietors to a Registered Title — and Name Change Event, which lets the model track a Person’s name change without forking the Person into two records.
Entities
- Buyer — the role borne by the party acquiring a Property in a Transaction
- Name Change Event — a reified record of a Person’s name change
- Organisation — a corporate or unincorporated organisation party to a Transaction
- Person — a natural person
- Proprietor — the legal owner of a Property as named in a Registered Title
- Proprietorship — the relator binding Proprietors to a Registered Title
- Seller — the role borne by the party disposing of a Property in a Transaction
Module-internal relationships
How the two party Kinds (Person, Organisation) bear the three transactional roles (Seller, Buyer, Proprietor) via the Proprietorship Relator and the Transaction Relator:
(natural)"]:::cls Organisation["Organisation
(corporate)"]:::cls %% Roles Seller["Seller
(RoleMixin)"]:::cls Buyer["Buyer
(RoleMixin)"]:::cls Proprietor["Proprietor
(Role)"]:::cls %% Relator Proprietorship["Proprietorship
(Relator)"]:::rel %% Lifecycle NameChangeEvent["NameChangeEvent
(reified)"]:::cls %% Cross-module Transaction["Transaction
(transaction module)"]:::ext RegisteredTitle["RegisteredTitle
(property module)"]:::ext %% Role bearings Seller -->|"borneBy"| Person Seller -->|"or borneBy"| Organisation Buyer -->|"borneBy"| Person Buyer -->|"or borneBy"| Organisation Proprietor -->|"borneBy"| Person Proprietor -.->|"specialised borneBy"| Organisation %% Proprietorship binding Proprietorship -->|"bears (1..*)"| Proprietor Proprietorship -->|"binds"| RegisteredTitle %% Name change NameChangeEvent -->|"affects"| Person %% Transaction founds Seller and Buyer Transaction -.->|"founds"| Seller Transaction -.->|"founds"| Buyer
Lifecycle: Person identifier succession
How a Person’s identity persists across name changes and gender-recognition events without forking the record:
(non-identifying attributes) Active --> NameChange : Name Change Event
(deed-poll, marriage, GRC) NameChange --> Active : same Person,
name attribute updated
with provenance link Active --> GenderRecognition : GRC received GenderRecognition --> Active : same Person,
gender attribute updated Active --> Deceased : death recorded Deceased --> Deceased : estate administration
(post-mortem properties) Deceased --> [*] : Person record persists
in audit trail
Comments