glam/schemas/20251121/linkml/modules/classes/CustodianCollection.yaml
kempersc 67657c39b6 feat: Complete Country Class Implementation and Hypernyms Removal
- Created the Country class with ISO 3166-1 alpha-2 and alpha-3 codes, ensuring minimal design without additional metadata.
- Integrated the Country class into CustodianPlace and LegalForm schemas to support country-specific feature types and legal forms.
- Removed duplicate keys in FeatureTypeEnum.yaml, resulting in 294 unique feature types.
- Eliminated "Hypernyms:" text from FeatureTypeEnum descriptions, verifying that semantic relationships are now conveyed through ontology mappings.
- Created example instance file demonstrating integration of Country with CustodianPlace and LegalForm.
- Updated documentation to reflect the completion of the Country class implementation and hypernyms removal.
2025-11-23 13:09:38 +01:00

298 lines
11 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_usage:
collection_name:
required: true
pattern: "^.{1,500}$" # 1-500 characters
description: "Collection name is required and must be 1-500 characters"
managing_unit:
required: false
description: >-
Optional reference to organizational unit managing this collection.
If provided, temporal consistency is validated:
- Collection.valid_from >= OrganizationalStructure.valid_from
- Collection.valid_to <= OrganizationalStructure.valid_to (if unit dissolved)
Bidirectional relationship: OrganizationalStructure.managed_collections must include this collection.
valid_from:
required: false
description: >-
Date when collection custody began under current managing unit.
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:
required: false
description: >-
Date when collection custody ended (if applicable).
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
slot_usage:
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
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)
**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
**Examples**:
```yaml
CustodianCollection:
id: ".../collection/rm-paintings"
collection_name: "Paintings Collection"
managing_unit: ".../org-unit/rm-paintings-dept"
# Query curators: managing_unit.staff_members (role = CURATOR)
CustodianCollection:
id: ".../collection/na-digital-archives"
collection_name: "Born-Digital Archives"
managing_unit: ".../org-unit/na-digital-preservation"
# Query digital preservation staff: managing_unit.staff_members
```
**Temporal Consistency**:
- Collection custody dates (valid_from, valid_to) should align with managing_unit validity
- During organizational restructuring, managing_unit changes:
```yaml
# Before merger (2013-02-28)
CustodianCollection:
id: ".../collection/rm-paintings-in-conservation"
managing_unit: ".../org-unit/rm-paintings-conservation"
valid_to: "2013-02-28"
# After merger (2013-03-01)
CustodianCollection:
id: ".../collection/rm-paintings-in-conservation"
managing_unit: ".../org-unit/rm-conservation-division"
valid_from: "2013-03-01"
```
**SPARQL Query Pattern**:
```sparql
# Find managing unit and curators for a collection
PREFIX org: <http://www.w3.org/ns/org#>
PREFIX hc: <https://nde.nl/ontology/hc/class/>
PREFIX schema: <http://schema.org/>
SELECT ?unit ?unit_name ?curator ?curator_name
WHERE {
<.../collection/rm-paintings>
org:unitOf ?unit .
?unit hc:unit_name ?unit_name ;
org:hasMember ?curator .
?curator hc:staff_role hc:CURATOR ;
schema:name ?curator_name .
}
```
**Notes**:
- If managing_unit is null, collection may be managed at institutional level (not department-specific)
- Collections may split across multiple units → create separate CustodianCollection instances
- Custody transfers tracked via managing_unit changes + temporal validity
collection_name:
slot_uri: dcterms:title
range: string
required: false
description: >-
Name of the collection (may differ from custodian name).
Examples:
- "Rijksmuseum Collection"
- "Notarial Archives of Amsterdam"
- "Wallace Collection"
- "Vatican Apostolic Library Holdings"
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.
valid_from:
slot_uri: time:hasBeginning
range: date
required: false
description: >-
Start date of collection's existence or custodian's stewardship.
(e.g., founding collection date, acquisition date)
valid_to:
slot_uri: time:hasEnd
range: date
required: false
description: >-
End date of collection's existence or custodian's stewardship.
(e.g., deaccessioned, transferred to another custodian, destroyed)