glam/schemas/20251121/uml/mermaid/01_custodian_name_modular.mmd

206 lines
6.1 KiB
Text

---
title: Heritage Custodian Ontology - Legal Entity Model
---
classDiagram
%% Hub Pattern
class Custodian {
+string hc_id
+string id
}
%% Observation Pattern
class CustodianObservation {
+string id
+string refers_to_custodian
+string observed_name
+string[] alternative_observed_names
+string observation_context
+datetime observation_date
+SourceDocument observation_source
+ConfidenceMeasure confidence
}
class CustodianName {
+string id
+string emic_name
+string standardized_name
+LanguageCode name_language
+string name_authority
+TimeSpan name_validity_period
}
%% Reconstruction Pattern
class CustodianReconstruction {
+string id
+string derived_from_entity
+ReconstructionActivity was_generated_by
+LegalEntityType legal_entity_type
+LegalForm legal_form
+LegalName legal_name
+RegistrationNumber[] registration_numbers
+RegistrationAuthority registration_authority
+GovernanceStructure governance_structure
+LegalStatus legal_status
+TimeSpan temporal_extent
+string parent_custodian
+string[] supersedes
+string[] superseded_by
}
%% Legal Entity Classes
class LegalEntityType {
+string code
+string label
+string description
}
class LegalForm {
+string elf_code
+string country_code
+string local_name
+string abbreviation
+string description
+string jurisdiction_name
+boolean is_public_sector
}
class LegalName {
+string full_name
+string name_without_type
+string display_name
+string language
+string source_authority
+datetime valid_from
+datetime valid_to
}
class RegistrationNumber {
+string number
+string type
+string description
+TimeSpan temporal_validity
+string issuing_authority
}
class RegistrationAuthority {
+string name
+string abbreviation
+string jurisdiction
+string website
+string[] registration_types
+string description
}
class GovernanceStructure {
+string structure_type
+string governance_body
+string description
+OrganizationalUnit[] organizational_units
}
class LegalStatus {
+string status_code
+string status_name
+string description
+TimeSpan temporal_validity
+string jurisdiction
}
%% Supporting Classes
class SourceDocument {
+string source_uri
+string source_type
+datetime source_date
+string source_creator
}
class TimeSpan {
+datetime begin_of_the_begin
+datetime begin_of_the_end
+datetime end_of_the_begin
+datetime end_of_the_end
}
class ConfidenceMeasure {
+float confidence_value
+string confidence_method
+string endorsement_source
+string justification
}
class ReconstructionActivity {
+string id
+string activity_type
+datetime created
+datetime modified
+ReconstructionAgent responsible_agent
+SourceDocument[] used_sources
+TimeSpan temporal_extent
+string method
+string justification
}
class ReconstructionAgent {
+string agent_name
+string agent_type
+string affiliation
+string contact
}
class Identifier {
+string identifier_scheme
+string identifier_value
}
class LanguageCode {
+string language_code
+string language
}
class Appellation {
+string appellation_type
+string appellation_value
+string appellation_language
}
%% Relationships - Hub Pattern
Custodian <|-- CustodianObservation : refers_to
Custodian <|-- CustodianReconstruction : derived_from
CustodianObservation <|-- CustodianName : is_a
%% Relationships - Observations
CustodianObservation --> SourceDocument : observation_source
CustodianObservation --> ConfidenceMeasure : confidence
CustodianName --> LanguageCode : name_language
CustodianName --> TimeSpan : name_validity_period
%% Relationships - Reconstruction
CustodianReconstruction --> ReconstructionActivity : was_generated_by
CustodianReconstruction --> LegalEntityType : legal_entity_type
CustodianReconstruction --> LegalForm : legal_form
CustodianReconstruction --> LegalName : legal_name
CustodianReconstruction --> RegistrationNumber : registration_numbers
CustodianReconstruction --> RegistrationAuthority : registration_authority
CustodianReconstruction --> GovernanceStructure : governance_structure
CustodianReconstruction --> LegalStatus : legal_status
CustodianReconstruction --> TimeSpan : temporal_extent
CustodianReconstruction --> CustodianReconstruction : parent_custodian
CustodianReconstruction --> CustodianReconstruction : supersedes
CustodianReconstruction --> CustodianReconstruction : superseded_by
%% Relationships - Legal Entity Components
RegistrationNumber --> TimeSpan : temporal_validity
LegalStatus --> TimeSpan : temporal_validity
%% Relationships - Reconstruction Activity
ReconstructionActivity --> ReconstructionAgent : responsible_agent
ReconstructionActivity --> SourceDocument : used_sources
ReconstructionActivity --> TimeSpan : temporal_extent
%% Notes
note for Custodian "Hub: Minimal entity with only persistent ID"
note for CustodianObservation "Observation: Source-based evidence"
note for CustodianReconstruction "Reconstruction: Formal entity synthesis"
note for LegalEntityType "PERSON or ORGANIZATION (replaces EntityTypeEnum)"
note for LegalForm "ISO 20275 codes (1,600+ legal forms)"
note for LegalName "TOOI-inspired structured name"