glam/schemas/20251121/linkml/modules/classes/CustodianCollection.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

229 lines
8.4 KiB
YAML

# Heritage Custodian Collection Class
# This class represents the COLLECTION dimension of a heritage custodian
id: https://nde.nl/ontology/hc/class/CustodianCollection
name: custodian-collection-class
title: CustodianCollection Class
imports:
- linkml:types
- ./Custodian
- ./CustodianObservation
- ./ReconstructionActivity
- ./TimeSpan
- ./OrganizationalStructure
classes:
CustodianCollection:
class_uri: crm:E78_Curated_Holding
description: >-
Represents a heritage collection as a multi-aspect entity with independent temporal lifecycle.
Collections are curatedHoldings (CIDOC-CRM E78) with provenance tracking, custody history,
and organizational management relationships.
Phase 4 (2025-11-22): Added managing_unit bidirectional relationship with OrganizationalStructure.
Phase 8 (2025-11-22): Added validation constraints via slot_usage.
slots:
- id
- collection_name
- collection_description
- collection_type
- collection_scope
- temporal_coverage
- extent
- access_rights
- digital_surrogates
- managing_unit
- custody_history
- refers_to_custodian
- was_derived_from
- valid_from
- valid_to
# Validation Constraints (Phase 8) + Slot Definitions
slot_usage:
collection_name:
slot_uri: dcterms:title
range: string
required: true
pattern: "^.{1,500}$" # 1-500 characters
description: >-
Name of the collection (may differ from custodian name).
Required field, 1-500 characters.
Examples:
- "Rijksmuseum Collection"
- "Notarial Archives of Amsterdam"
- "Wallace Collection"
- "Vatican Apostolic Library Holdings"
managing_unit:
slot_uri: org:unitOf
range: OrganizationalStructure
required: false
description: >-
Organizational unit (department, division, section) responsible for managing this collection.
**Bidirectional Relationship**:
- **Forward**: CustodianCollection → OrganizationalStructure (managing_unit)
- **Reverse**: OrganizationalStructure → CustodianCollection (managed_collections)
**Validation**: If provided, temporal consistency is validated:
- Collection.valid_from >= OrganizationalStructure.valid_from
- Collection.valid_to <= OrganizationalStructure.valid_to (if unit dissolved)
**Use Cases**:
1. **Collection Management**: "Which department manages the Medieval Manuscripts collection?"
2. **Staffing Cross-Reference**: "Who are the curators managing this collection?"
- Follow: managing_unit → OrganizationalStructure → staff_members → PersonObservation
3. **Organizational Change Impact**: Track collection custody through mergers, splits, reorganizations
**Notes**:
- If managing_unit is null, collection may be managed at institutional level
- Collections may split across multiple units → create separate CustodianCollection instances
- Custody transfers tracked via managing_unit changes + temporal validity
valid_from:
slot_uri: time:hasBeginning
range: date
required: false
description: >-
Date when collection custody began under current managing unit.
Start date of collection's existence or custodian's stewardship
(e.g., founding collection date, acquisition date).
Validation Rule 1 (Collection-Unit Temporal Consistency):
- Must be >= managing_unit.valid_from (if managing_unit is set)
- Validated by SHACL shapes and custom Python validators
valid_to:
slot_uri: time:hasEnd
range: date
required: false
description: >-
Date when collection custody ended (if applicable).
End date of collection's existence or custodian's stewardship
(e.g., deaccessioned, transferred to another custodian, destroyed).
Validation Rule 1 (Collection-Unit Temporal Consistency):
- Must be <= managing_unit.valid_to (if managing_unit is dissolved)
- Validated by SHACL shapes and custom Python validators
id:
identifier: true
required: true
description: >-
Unique identifier for this collection aspect (URI).
Format: https://nde.nl/ontology/hc/collection/{custodian-id}
refers_to_custodian:
slot_uri: crm:P46i_forms_part_of
range: Custodian
required: true
description: >-
Links this collection aspect back to the Custodian hub it represents.
CIDOC-CRM: P46i_forms_part_of (inverse of P46_is_composed_of).
This property enables navigation from aspect → hub:
- From collection aspect: refers_to_custodian → Custodian hub
- From hub: has_collection → CustodianCollection
collection_description:
slot_uri: dcterms:description
range: string
required: false
description: >-
Narrative description of the collection's contents, scope, and significance.
collection_type:
slot_uri: dcterms:type
range: string
multivalued: true
description: >-
Type(s) of heritage materials in collection.
Multiple types may apply (e.g., archives + library).
Examples:
- "archival_records" (rico:RecordSet)
- "museum_objects" (crm:E78_Curated_Holding)
- "library_holdings" (bf:Collection)
- "monuments" (crm:E27_Site)
- "archaeological_materials"
- "natural_history_specimens"
- "digital_born" (born-digital collections)
- "photographs"
- "manuscripts"
collection_scope:
slot_uri: dcterms:coverage
range: string
required: false
description: >-
Subject scope or thematic focus of collection.
Examples:
- "17th-century Dutch painting"
- "Municipal government records, 1578-present"
- "Medieval manuscripts"
- "East Asian art"
temporal_coverage:
slot_uri: dcterms:temporal
range: TimeSpan
required: false
description: >-
Time period covered by collection materials (NOT when collected).
Examples:
- Collection of 18th-century documents: temporal_coverage = 1700-1799
- Medieval manuscript collection: temporal_coverage = 800-1500
extent:
slot_uri: dcterms:extent
range: string
required: false
description: >-
Size/quantity of collection.
Examples:
- "1,200 linear meters"
- "45,000 objects"
- "2.3 million books"
- "150 manuscript volumes"
arrangement_system:
slot_uri: rico:hasRecordSetType
range: string
required: false
description: >-
Intellectual arrangement or classification system.
Examples:
- "Archival fonds organized by provenance" (RiC-O)
- "Dewey Decimal Classification" (libraries)
- "Thematic galleries" (museums)
- "Chronological arrangement"
provenance_note:
slot_uri: crm:P24_transferred_title_of
range: string
required: false
description: >-
Notes on collection provenance, acquisition history, custody transfers.
Documents metonymic relationship: how collection identifies custodian.
was_generated_by:
slot_uri: prov:wasGeneratedBy
range: ReconstructionActivity
required: false
description: >-
Links to the ReconstructionActivity that generated this collection aspect.
If present, indicates formal entity resolution process was used.
If absent, indicates direct extraction without reconstruction.
was_derived_from:
slot_uri: prov:wasDerivedFrom
range: CustodianObservation
multivalued: true
required: true
description: >-
Links to the observation(s) from which this collection aspect was derived.
Multiple observations may contribute evidence for a single collection aspect.