glam/schemas/20251121/linkml/modules/classes/StorageUnit.yaml
kempersc 174a420c08
All checks were successful
Deploy Frontend / build-and-deploy (push) Successful in 3m57s
refactor(schema): centralize 1515 inline slot definitions per Rule 48
- Remove inline slot definitions from 144 class files
- Create 7 new centralized slot files in modules/slots/:
  - custodian_type_broader.yaml
  - custodian_type_narrower.yaml
  - custodian_type_related.yaml
  - definition.yaml
  - finding_aid_access_restriction.yaml
  - finding_aid_description.yaml
  - finding_aid_temporal_coverage.yaml
- Add centralize_inline_slots.py automation script
- Update manifest with new timestamp

Rule 48: Class files must NOT define inline slots - all slots
must be imported from modules/slots/ directory.

Note: Pre-existing IdentifierFormat duplicate class definition
(in Standard.yaml and IdentifierFormat.yaml) not addressed in
this commit - requires separate schema refactor.
2026-01-11 22:02:14 +01:00

340 lines
11 KiB
YAML

id: https://nde.nl/ontology/hc/class/StorageUnit
name: storage_unit_class
title: Storage Unit Class
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
crm: http://www.cidoc-crm.org/cidoc-crm/
schema: http://schema.org/
dcterms: http://purl.org/dc/terms/
wd: http://www.wikidata.org/entity/
aat: http://vocab.getty.edu/aat/
default_prefix: hc
imports:
- linkml:types
- ./Storage
- ../enums/StorageUnitTypeEnum
- ../slots/unit_name
- ../slots/unit_type
- ../slots/capacity_item
- ../slots/bay_number
- ../slots/box_number
- ../slots/current_item_count
- ../slots/drawer_number
- ../slots/part_of_storage
- ../slots/part_of_zone
- ../slots/row_number
- ../slots/shelf_number
- ../slots/specificity_annotation
- ../slots/stores_object
- ../slots/template_specificity
- ../slots/unit_description
- ../slots/unit_id
- ../slots/unit_identifier
- ../slots/valid_from
- ../slots/valid_to
- ./EnvironmentalZone
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
classes:
StorageUnit:
class_uri: hc:StorageUnit
description: "An individual storage compartment, shelf, cabinet, drawer, or other\ndiscrete unit where heritage objects\
\ are physically placed.\n\n**DEFINITION**:\n\nStorageUnit represents the lowest level of spatial organization for\n\
object storage within a heritage institution. This is where physical\nobjects are actually located. Examples include:\n\
- Archive boxes on shelves\n- Flat file drawers for maps/prints\n- Museum storage cabinets\n- Hanging racks for textiles\n\
- Specimen cabinets for natural history\n\n**Wikidata Alignment**:\n- Q1186447 (storage unit)\n- Q854619 (archive box)\n\
\n**HC Ontology Extension (hc-storage.ttl)**:\n\nPrimary class: `hc:StorageUnit` (subclass of `crm:E27_Site`)\n\nThe\
\ HC ontology provides:\n- Named individuals for common storage unit types:\n - `hc:ArchiveBox` - Acid-free boxes for\
\ archival materials\n - `hc:FlatFileDrawer` - Drawers for oversized flat materials\n - `hc:HangingRack` - Racks for\
\ textiles/paintings\n - `hc:CompactShelving` - Mobile shelving systems\n - `hc:SpecimenCabinet` - Cabinets for specimens/artifacts\n\
\ - `hc:ColdStorageVault` - Refrigerated storage\n\nKey HC properties for storage units:\n- `hc:storageUnitIdentifier`\
\ - Local ID/barcode\n- `hc:storageUnitType` - Type classification\n- `hc:rowNumber` - Row/aisle identifier\n- `hc:bayNumber`\
\ - Bay/section within row\n- `hc:shelfNumber` - Shelf level within bay\n- `hc:isStorageSectionOf` - Link to parent\
\ facility/zone\n- `hc:currentlyStores` - Objects in this unit\n\nSee: `frontend/public/ontology/hc-storage.ttl`\n\n\
**CIDOC-CRM Alignment (v7.1.3)**:\n\nBase class: `crm:E27_Site` - Storage units are physical locations.\n\nHierarchy:\
\ Uses P59 has section / P59i is located on or within\nto model the containment relationship:\n```\nStorageFacility\n\
\ └── P59 has_section → EnvironmentalZone\n └── P59 has_section → StorageUnit (row/bay/shelf)\n \
\ └── P55 currently_holds → E18_Physical_Thing\n```\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n```\nStorage (facility)\n\
\ │\n ├── has_section → EnvironmentalZone[]\n │ └── has_section → StorageUnit[] (THIS CLASS)\n │ ├──\
\ unit_type (StorageUnitTypeEnum)\n │ ├── row_number, bay_number, shelf_number\n │ ├── stores_objects\
\ → HeritageObject[]\n │ └── part_of → EnvironmentalZone | Storage\n │\n └── stores_collections → CustodianCollection[]\n\
```\n\n**USE CASES**:\n\n1. **Archive Box Location**:\n - unit_type: ARCHIVE_BOX\n - row_number: \"A\", bay_number:\
\ \"12\", shelf_number: 3\n - stores_objects: [document_123, document_456]\n \n2. **Flat File Drawer**:\n - unit_type:\
\ FLAT_FILE_DRAWER\n - unit_identifier: \"FF-MAP-0042\"\n - stores_objects: [map_1890_netherlands, blueprint_123]\n\
\ \n3. **Mobile Shelving Bay**:\n - unit_type: COMPACT_SHELVING\n - row_number: \"12\", bay_number: \"C\"\n \
\ - part_of: [depot_a_zone_1]\n"
exact_mappings:
- hc:StorageUnit
- crm:E27_Site
- wikidata:Q1186447
close_mappings:
- aat:300038892
related_mappings:
- hc:StorageFacility
- hc:EnvironmentalZone
- schema:Place
slots:
- bay_number
- box_number
- capacity_item
- current_item_count
- drawer_number
- part_of_storage
- part_of_zone
- row_number
- shelf_number
- specificity_annotation
- stores_object
- template_specificity
- unit_description
- unit_id
- unit_identifier
- unit_name
- unit_type
- valid_from
- valid_to
slot_usage:
unit_id:
slot_uri: dcterms:identifier
description: 'Unique identifier for this storage unit.
Format: URI following NDE Heritage Custodian ontology conventions.
'
range: uriorcurie
required: true
identifier: true
examples:
- value: https://nde.nl/ontology/hc/unit/na-depot-a-r12-b3-s4
description: National Archives Depot A, Row 12, Bay 3, Shelf 4
unit_identifier:
slot_uri: hc:storageUnitIdentifier
description: 'Local identifier, barcode, or inventory number for this unit.
HC Ontology: `hc:storageUnitIdentifier`
This is the identifier used internally by the institution,
distinct from the global URI identifier.
'
range: string
examples:
- value: BOX-2024-00145
- value: FF-MAPS-042
- value: RACK-TEXT-A12
unit_name:
slot_uri: crm:P87_is_identified_by
description: 'Human-readable name or label for this storage unit.
CIDOC-CRM: P87 is identified by links place to appellation.
'
range: string
examples:
- value: Archive Box 145 - WWII Correspondence
- value: Map Drawer 42 - Netherlands 19th Century
unit_type:
slot_uri: hc:storageUnitType
description: 'Type of storage unit from StorageUnitTypeEnum.
HC Ontology: `hc:storageUnitType` links to crm:E55_Type.
Common types with HC named individuals:
- ARCHIVE_BOX → hc:ArchiveBox
- FLAT_FILE_DRAWER → hc:FlatFileDrawer
- HANGING_RACK → hc:HangingRack
- COMPACT_SHELVING → hc:CompactShelving
- SPECIMEN_CABINET → hc:SpecimenCabinet
- COLD_STORAGE_VAULT → hc:ColdStorageVault
'
range: StorageUnitTypeEnum
required: true
unit_description:
slot_uri: dcterms:description
description: 'Free-text description of this storage unit.
Include:
- Contents or purpose
- Special handling requirements
- Access restrictions
'
range: string
row_number:
slot_uri: hc:rowNumber
description: 'Row or aisle identifier within the storage area.
HC Ontology: `hc:rowNumber`
'
range: string
examples:
- value: A
- value: '12'
- value: North-3
bay_number:
slot_uri: hc:bayNumber
description: 'Bay or section identifier within a row.
HC Ontology: `hc:bayNumber`
'
range: string
examples:
- value: '3'
- value: C
shelf_number:
slot_uri: hc:shelfNumber
description: 'Shelf level within a bay (often numbered from bottom).
HC Ontology: `hc:shelfNumber`
'
range: integer
examples:
- value: 4
description: Fourth shelf from bottom
drawer_number:
slot_uri: schema:position
description: 'Drawer number within a flat file or cabinet.
'
range: integer
examples:
- value: 3
box_number:
slot_uri: schema:position
description: 'Box number or position on a shelf.
'
range: integer
examples:
- value: 12
capacity_item:
slot_uri: schema:value
description: 'Maximum number of items this unit can hold.
'
range: integer
current_item_count:
slot_uri: schema:value
description: 'Current number of items stored in this unit.
'
range: integer
part_of_storage:
slot_uri: hc:isStorageSectionOf
description: 'The parent storage facility containing this unit.
HC Ontology: `hc:isStorageSectionOf` (inverse of `hc:hasStorageSection`)
'
range: Storage
part_of_zone:
slot_uri: hc:isStorageSectionOf
description: 'The environmental zone containing this unit.
HC Ontology: `hc:isStorageSectionOf` (inverse of `hc:hasStorageSection`)
'
range: EnvironmentalZone
stores_object:
slot_uri: hc:currentlyStores
description: 'Heritage objects currently stored in this unit.
HC Ontology: `hc:currentlyStores` (extends crm:P55)
Links to specific heritage objects (not collections).
'
range: string
multivalued: true
inlined_as_list: true
comments:
- Range should be HeritageObject when that class is defined
valid_from:
slot_uri: schema:validFrom
description: 'Date when this storage unit was put into service.
'
range: date
valid_to:
slot_uri: schema:validThrough
description: 'Date when this storage unit was decommissioned.
NULL if still active.
'
range: date
specificity_annotation:
range: SpecificityAnnotation
inlined: true
template_specificity:
range: TemplateSpecificityScores
inlined: true
comments:
- StorageUnit is the lowest level of spatial organization
- Objects are stored IN units, which are IN zones, which are IN facilities
- 'Use hc: ontology properties for precise semantic mapping'
- Row/bay/shelf numbers follow institution's internal conventions
see_also:
- https://nde.nl/ontology/hc/StorageUnit
- http://vocab.getty.edu/aat/300038892
- https://www.wikidata.org/wiki/Q1186447
examples:
- value:
unit_id: https://nde.nl/ontology/hc/unit/na-depot-a-r12-b3-s4
unit_identifier: NA-2024-BOX-00145
unit_name: Archive Box 145 - WWII Ministry Records
unit_type: ARCHIVE_BOX
unit_description: 'Acid-free archive box containing Ministry of Defense
correspondence from 1940-1945. Handle with care.
'
row_number: '12'
bay_number: '3'
shelf_number: 4
part_of_zone: https://nde.nl/ontology/hc/zone/na-depot-a-standard
valid_from: '2020-03-15'
description: Archive box in National Archives depot
- value:
unit_id: https://nde.nl/ontology/hc/unit/rm-depot-ff-042
unit_identifier: FF-MAPS-042
unit_name: Flat File Drawer 42 - Netherlands Maps
unit_type: FLAT_FILE_DRAWER
unit_description: 'Flat file drawer containing oversized maps of the
Netherlands, 1850-1920. Climate-controlled environment.
'
drawer_number: 42
capacity_items: 50
current_item_count: 38
part_of_storage: https://nde.nl/ontology/hc/storage/rm-depot-prints
description: Flat file drawer for maps