glam/schemas/20251121/linkml/modules/classes/Custodian.yaml
kempersc 3ff0e33bf9 Add UML diagrams and scripts for custodian schema
- Created PlantUML diagrams for custodian types, full schema, legal status, and organizational structure.
- Implemented a script to generate GraphViz DOT diagrams from OWL/RDF ontology files.
- Developed a script to generate UML diagrams from modular LinkML schema, supporting both Mermaid and PlantUML formats.
- Enhanced class definitions and relationships in UML diagrams to reflect the latest schema updates.
2025-11-23 23:05:33 +01:00

499 lines
22 KiB
YAML

id: https://nde.nl/ontology/hc/class/Custodian
name: Custodian
title: Custodian Hub Class
imports:
- linkml:types
classes:
Custodian:
class_uri: crm:E39_Actor
description: >-
An abstract hub class that serves as the central connection point for all
information about a heritage custodian entity. The Custodian itself contains
minimal information - essentially just its persistent identifier (hc_id) - and
acts as a node to which all observations (CustodianObservation, CustodianName)
and reconstructions (CustodianLegalStatus) attach.
This hub pattern allows multiple observations from different sources to be
connected to a single logical entity without asserting which observation
is "correct" or "primary".
**HUB ARCHITECTURE**:
- The Custodian hub is identified by: https://nde.nl/ontology/hc/{abstracted-ghcid}
- All observations refer to the hub via refers_to_custodian
- All reconstructions refer to the hub via refers_to_custodian
- The hub persists while observations and interpretations evolve
**CUSTODIAN** is defined broadly to include:
- **Individual people** (private collectors, curators, archivists)
- **Groups and collectives** (heritage societies, collecting groups, guilds)
- **Organizations** (museums, libraries, archives, foundations)
- **Governments** (national archives, state museums, municipal collections)
- **Corporations** (company archives, corporate museums)
- **Religious entities** (churches, monasteries, temples with heritage collections)
- **Educational institutions** (university libraries, school archives)
- **Any entity exercising custody** over heritage materials
**Ontological Alignment**:
- CIDOC-CRM: crm:E39_Actor (primary)
- PROV-O: prov:Agent
- Schema.org: schema:Person OR schema:Organization
- CPOV: cpov:PublicOrganisation (for public sector)
- RiC-O: rico:Agent, rico:CorporateBody
- FOAF: foaf:Agent, foaf:Person, foaf:Organization
- TOOI: tooi:Overheidsorganisatie (Dutch government)
abstract: true
exact_mappings:
- crm:E39_Actor
- prov:Agent
- rico:Agent
- foaf:Agent
- wikidata:Q115641683
close_mappings:
- pico:Person
- schema:Person
- schema:Organization
- cpov:PublicOrganisation
- rico:CorporateBody
- org:Organization
- foaf:Person
- foaf:Organization
- crm:E21_Person
- crm:E74_Group
- crm:E40_Legal_Body
broad_mappings:
- schema:Thing
- owl:Thing
narrow_mappings:
- schema:ArchiveOrganization
- schema:Library
- schema:Museum
- schema:PerformingGroup
- dbo:MusicalArtist
- dbo:Band
- schema:ResearchOrganization
- schema:EducationalOrganization
- schema:CollegeOrUniversity
- dbo:University
- schema:GovernmentOrganization
- cpov:PublicOrganisation
- tooi:Samenwerkingsorganisatie
- tooi:Ministerie
- tooi:Zbo
- tooi:ZboOfZboCluster
- tooi:RegionaalOpenbaarLichaam
- tooi:Gemeente
- tooi:Provincie
- schema:NGO
- schema:Consortium
- schema:Corporation
- schema:LocalBusiness
- schema:MedicalOrganization
- schema:SportsOrganization
slots:
- hc_id
- preferred_label
- custodian_type
- legal_status
- place_designation
- has_collection
- organizational_structure
- organizational_change_events
- encompassing_body
- identifiers
- created
- modified
slot_usage:
hc_id:
slot_uri: dcterms:identifier
description: >-
The persistent NDE Heritage Custodian ontology identifier that uniquely
identifies this custodian entity and serves as the hub for all related data.
Format: https://nde.nl/ontology/hc/{abstracted-ghcid}
Example: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804
range: uriorcurie
required: true
identifier: true
pattern: "^https://nde\\.nl/ontology/hc/[a-z0-9-]+$"
preferred_label:
slot_uri: skos:prefLabel
description: >-
The primary standardized emic name for this custodian.
SKOS: prefLabel for the preferred lexical label.
This is the CANONICAL name - the standardized label accepted by the
custodian itself for public representation.
Distinct from:
- Legal name (formal registered name in CustodianLegalStatus.legal_name)
- Alternative names (in CustodianName.alternative_names list)
- Historical names (superseded CustodianNames)
Example: "Rijksmuseum" (emic name, not "Stichting Rijksmuseum" legal name)
range: CustodianName
required: false
legal_status:
slot_uri: org:hasRegisteredOrganization
description: >-
The formal legal entity representing this custodian.
Links to CustodianLegalStatus with:
- Legal name (as registered)
- Legal form (ISO 20275 codes)
- Registration number (KvK, company number, etc.)
May be null if legal status not yet reconstructed or if custodian
has no formal legal registration (informal groups, individuals).
W3C Org: hasRegisteredOrganization for registered legal entity.
range: CustodianLegalStatus
required: false
place_designation:
slot_uri: crm:P53_has_former_or_current_location
description: >-
Nominal place designation used to identify this custodian.
Links to CustodianPlace with contextual place reference.
CRITICAL: This is NOT geographic coordinates - this is a NOMINAL reference!
Examples:
- "het herenhuis in de Schilderswijk" (neighborhood reference)
- "the mansion" (vague building reference)
- "het museum op het Museumplein" (landmark reference)
May be null if place designation not yet reconstructed.
CIDOC-CRM: P53_has_former_or_current_location for place associations.
range: CustodianPlace
required: false
has_collection:
slot_uri: crm:P46_is_composed_of
description: >-
Heritage collection(s) associated with this custodian.
Links to CustodianCollection aspect representing metonymic relationship:
when people refer to a custodian, they often mean its collection.
CIDOC-CRM: P46_is_composed_of links aggregations to their components.
Examples:
- "The Rijksmuseum has a Rembrandt" = Collection contains artwork
- "The Archives holds parish records" = Collection includes documents
May be null if collection not yet reconstructed.
Inverse of crm:P46i_forms_part_of (from CustodianCollection).
range: CustodianCollection
multivalued: true
required: false
organizational_structure:
slot_uri: org:hasUnit
description: >-
Informal organizational structure - operational departments, teams,
divisions, and groups that are NOT formally registered legal entities.
**Key Distinction from GovernanceStructure**:
- **GovernanceStructure** (on CustodianLegalStatus): FORMAL structure
from legal registration (e.g., "National Archives is agency under Ministry OCW")
- **OrganizationalStructure** (on Custodian): INFORMAL operational units
(e.g., "Digital Preservation Team", "Collections Department")
**W3C ORG Ontology**:
Uses `org:hasUnit` to link custodian to `org:OrganizationalUnit` instances.
- Domain: org:FormalOrganization
- Range: org:OrganizationalUnit
- Definition: "Indicates a unit which is part of this Organization"
**Why on Custodian, not CustodianLegalStatus?**:
- Organizational units are operational/functional, not legal
- Units can change frequently without legal reorganization
- Multiple legal entities (branches) may share organizational units
- Separates formal (legal) from informal (operational) concerns
**Temporal Dynamics**:
Each OrganizationalStructure has `valid_from`/`valid_to` dates to track
organizational changes (department creation, mergers, dissolutions).
**Example - National Archives**:
```yaml
CustodianLegalStatus:
governance_structure: # FORMAL (from legal docs)
structure_type: "Government agency"
governance_body: "Reports to Ministry OCW"
Custodian:
organizational_structure: # INFORMAL (operational)
- unit_name: "Digital Preservation Department"
unit_type: "DEPARTMENT"
staff_count: 15
- unit_name: "Public Services Team"
unit_type: "TEAM"
```
range: OrganizationalStructure
multivalued: true
required: false
inlined_as_list: true
organizational_change_events:
slot_uri: crm:P12i_was_present_at
description: >-
Historical organizational change events that have affected this custodian's
structure, operations, or identity over time.
**Tracks Organizational History**:
Documents significant restructuring events including mergers, splits,
dissolutions, reorganizations, relocations, name changes, and expansions.
**CIDOC-CRM Alignment**:
Uses `crm:P12i_was_present_at` to link Custodian (E39_Actor) to Event (E5_Event).
- Domain: crm:E39_Actor (Custodian)
- Range: crm:E5_Event (OrganizationalChangeEvent)
- Definition: "This property describes the active or passive presence of an Actor
at an Event"
**Event Types** (9 categories from OrganizationalChangeEventTypeEnum):
- MERGER: Multiple units/custodians combining into one
- SPLIT: One unit dividing into multiple independent units
- DISSOLUTION: Unit ceasing operations with no successor
- REORGANIZATION: Structural changes (reporting lines, roles, responsibilities)
- RENAMING: Name change only (no structural impact)
- TRANSFER: Moving unit to different parent organization
- FOUNDING: Creation of new organizational unit
- EXPANSION: Increased scope, responsibilities, or geographic coverage
- REDUCTION: Decreased scope or services
**Relationship to OrganizationalStructure**:
OrganizationalChangeEvent provides PROVENANCE for organizational changes:
- `affected_units`: References to OrganizationalStructure instances that were
dissolved, merged, or transformed
- `resulting_units`: References to new OrganizationalStructure instances created
by the event
- Temporal alignment: event_date marks when organizational structures become
valid (`valid_from`) or cease (`valid_to`)
**Example - Merger Event**:
```yaml
Custodian:
hc_id: "https://nde.nl/ontology/hc/nl-nh-haa-a-nha"
organizational_structure:
- id: ".../org-unit/nha-digital-preservation"
unit_name: "Digital Preservation Department"
valid_from: "2001-01-01"
# Created by merger event
organizational_change_events:
- event_id: ".../event/nha-merger-2001"
event_type: "MERGER"
event_date: "2001-01-01"
event_description: >-
Merger of Gemeentearchief Haarlem (founded 1910) and
Rijksarchief in Noord-Holland (founded 1802) to form
Noord-Hollands Archief.
affected_units:
- ".../org-unit/ga-haarlem-conservation" # Dissolved
- ".../org-unit/ra-nh-research" # Dissolved
resulting_units:
- ".../org-unit/nha-digital-preservation" # Created
staff_impact: "125 employees from both organizations integrated"
```
**Example - Reorganization Event**:
```yaml
organizational_change_events:
- event_id: ".../event/na-reorg-2015"
event_type: "REORGANIZATION"
event_date: "2015-06-01"
event_description: >-
Restructuring of National Archives divisions to align with
digital transformation strategy. Conservation and Digitization
merged into unified Digital Services Division.
change_rationale: >-
Strategic realignment to support digital-first collection
management and public access priorities.
affected_units:
- ".../org-unit/na-conservation" # Reorganized
- ".../org-unit/na-digitization" # Reorganized
resulting_units:
- ".../org-unit/na-digital-services" # New combined unit
staff_impact: "40 staff reassigned, 5 new digital preservation roles created"
documentation_source: "https://example.org/restructuring-plan-2015.pdf"
```
**Why on Custodian (not CustodianLegalStatus)?**:
- Organizational change events affect OPERATIONAL structure (OrganizationalStructure
on Custodian), not LEGAL structure (GovernanceStructure on CustodianLegalStatus)
- Legal entity mergers (two foundations combining) tracked in CustodianLegalStatus
change history
- Operational unit changes (departments merging) tracked here on Custodian
**Temporal Consistency Rules**:
1. `event_date` MUST align with OrganizationalStructure temporal boundaries:
- Dissolved units: `valid_to` = `event_date`
- Created units: `valid_from` = `event_date`
2. Multiple events can occur on same date (batch reorganization)
3. Events provide narrative context for structural changes
**Data Quality**:
- `confidence_score` (0.0-1.0) indicates certainty of event details
- `documentation_source` links to authoritative evidence (annual reports,
government decrees, institutional websites)
- `change_rationale` documents WHY the change occurred (strategic, financial,
regulatory, etc.)
range: OrganizationalChangeEvent
multivalued: true
required: false
inlined_as_list: true
encompassing_body:
slot_uri: org:subOrganizationOf
description: >-
Extra-organizational governance bodies that encompass, oversee, or coordinate
this custodian. Represents parent organizations, service networks, or consortia
that the custodian is part of or member of.
**THREE TYPES OF ENCOMPASSING BODIES**:
1. **UmbrellaOrganisation** - LEGAL parent organizations (permanent hierarchy)
- Example: Ministry of OCW → National Archives
- Defined in statutes/laws, permanent structure
2. **NetworkOrganisation** - SERVICE provider networks (temporary, centralized)
- Example: Digital Heritage Network → Member museums
- Voluntary membership for service access
3. **Consortium** - MUTUAL assistance bodies (temporary, peer-to-peer)
- Example: Library Consortium → Member libraries
- Peer collaboration, reciprocal services
**W3C ORG Property**: `org:subOrganizationOf` - "Represents hierarchical
containment of Organizations or Organizational Units; indicates an organization
which is a sub-part or child of this Organization."
- Domain: org:Organization (Custodian)
- Range: org:Organization (EncompassingBody)
- Inverse: `org:hasSubOrganization` (from EncompassingBody)
**Key Distinctions**:
- **EncompassingBody**: EXTERNAL parent/umbrella organizations (beyond custodian)
- **GovernanceStructure**: INTERNAL legal structure (within CustodianLegalStatus)
- **OrganizationalStructure**: INTERNAL operational units (within Custodian)
**Why on Custodian, not CustodianLegalStatus?**:
- Encompassing relationships affect the ENTIRE custodian (all aspects)
- Not limited to legal entity (may include place-based or collection-based governance)
- Example: Religious order (umbrella) governs monastery archive (custodian with
place, collection, legal, and name aspects)
**Temporal Dynamics**:
Custodians can change umbrella organizations, join/leave networks, or
participate in multiple consortia over time. Track membership changes
with temporal validity on EncompassingBody instances.
**Multiple Encompassing Bodies**:
Custodians may simultaneously belong to:
- One UmbrellaOrganisation (legal parent)
- Multiple NetworkOrganisations (service providers)
- Multiple Consortia (collaborative groups)
**Example - Museum with Multiple Encompassing Bodies**:
```yaml
Custodian:
hc_id: "https://nde.nl/ontology/hc/nl-nh-ams-m-am"
preferred_label: "Amsterdam Museum"
encompassing_body:
# Legal parent (permanent hierarchy)
- id: ".../encompassing-body/umbrella/nl-municipality-amsterdam"
organization_name: "Gemeente Amsterdam"
organization_type: "UMBRELLA"
governance_authority: "Municipal oversight, budget approval"
# Service network (voluntary membership)
- id: ".../encompassing-body/network/digital-heritage-nl"
organization_name: "Digital Heritage Network"
organization_type: "NETWORK"
service_offerings: ["Digital preservation storage", "Metadata services"]
# Consortium (peer collaboration)
- id: ".../encompassing-body/consortium/amsterdam-museums-consortium"
organization_name: "Amsterdam Museums Consortium"
organization_type: "CONSORTIUM"
service_offerings: ["Shared exhibitions", "Marketing coordination"]
```
**Example - National Archives with Umbrella Only**:
```yaml
Custodian:
hc_id: "https://nde.nl/ontology/hc/nl-na"
preferred_label: "Nationaal Archief"
encompassing_body:
# Legal parent under Heritage Act
- id: ".../encompassing-body/umbrella/nl-ministry-ocw"
organization_name: "Ministerie van OCW"
organization_type: "UMBRELLA"
legal_form: "Government ministry"
governance_authority: >-
Exercises governance under Dutch Heritage Act 2016.
Authority includes budget oversight, director appointment,
and strategic policy direction.
```
**SPARQL Query Pattern**:
```sparql
# Find all custodians under a ministry
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX hc: <https://nde.nl/ontology/hc/class/>
SELECT ?custodian_name ?custodian_type WHERE {
?custodian org:subOrganizationOf <.../ministry-ocw> ;
skos:prefLabel ?custodian_name ;
hc:custodian_type ?custodian_type .
}
```
**Data Quality**:
- High-quality data includes temporal validity (when membership began/ended)
- Documentation of governance authority for UmbrellaOrganisations
- Service descriptions for NetworkOrganisations and Consortia
- External identifiers (Wikidata) for encompassing bodies
range: EncompassingBody
multivalued: true
required: false
inlined_as_list: true
identifiers:
slot_uri: crm:P48_has_preferred_identifier
description: >-
External identifiers assigned to this custodian by authorities.
CIDOC-CRM: P48_has_preferred_identifier links E1_CRM_Entity (Custodian) to E42_Identifier.
Domain: Custodian → Range: CustodianIdentifier (multivalued).
Inverse of crm:P48i_is_preferred_identifier_of.
range: CustodianIdentifier
multivalued: true
inlined_as_list: true
created:
slot_uri: schema:dateCreated
description: >-
Timestamp when this DATABASE RECORD was created (NOT the custodian's founding date).
range: datetime
modified:
slot_uri: schema:dateModified
description: >-
Timestamp when this DATABASE RECORD was last modified (NOT the custodian's dissolution).
range: datetime
comments:
- "The Custodian class is intentionally minimal - it exists primarily as an abstract hub"
- "All substantive information stored in CustodianObservation, CustodianName, CustodianLegalStatus, CustodianPlace, CustodianCollection"
- "Hub pattern prevents privileging one source over another"
- "Four aspects can independently identify the hub: legal status (formal), name (emic), place (nominal), collection (metonymic)"
- "Broader semantic scope than 'organization': includes individuals, groups, organizations, governments, corporations"
examples:
- value:
hc_id: "https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804"
description: "Minimal Custodian hub for Rijksmuseum with only persistent identifier"