id: https://nde.nl/ontology/hc/class/Storage name: storage_class title: Storage Class prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ crm: http://www.cidoc-crm.org/cidoc-crm/ premis: http://www.loc.gov/premis/rdf/v3/ prov: http://www.w3.org/ns/prov# schema: http://schema.org/ org: http://www.w3.org/ns/org# dcterms: http://purl.org/dc/terms/ wd: http://www.wikidata.org/entity/ rico: https://www.ica.org/standards/RiC/ontology# default_prefix: hc imports: - linkml:types - ./Custodian - ./AuxiliaryPlace - ./CustodianCollection - ./TimeSpan - ./StorageCondition - ./StorageConditionPolicy - ./StorageUnit - ./EnvironmentalZone - ./Event - ../enums/StorageTypeEnum - ../enums/StorageStandardEnum - ../enums/StorageUnitTypeEnum - ./EnvironmentalZoneType - ./EnvironmentalZoneTypes - ./StorageType # MIGRATED 2026-01-15: storage_id → has_or_had_identifier (Rule 53) - ../slots/has_or_had_identifier # MIGRATED 2026-01-15: storage_name → has_or_had_label + Label (Rule 53) - ../slots/has_or_had_label - ./Label # MIGRATED 2026-01-15: storage_location → is_or_was_stored_at + StorageLocation (Rule 53) - ../slots/is_or_was_stored_at - ./StorageLocation - ../slots/managed_by # MIGRATED 2026-01-17: capacity_* slots → has_or_had_capacity + Capacity (Rule 53) - ../slots/has_or_had_capacity - ./Capacity - ../enums/CapacityTypeEnum # REMOVED 2026-01-17: capacity_item, capacity_cubic_meters, capacity_description, capacity_linear_meters # - ../slots/capacity_item # - ../slots/capacity_cubic_meters # - ../slots/capacity_description # - ../slots/capacity_linear_meters # MIGRATED 2026-01-22: condition_policy → has_or_had_policy + ConditionPolicy/StorageConditionPolicy (Rule 53) - ../slots/has_or_had_policy - ./Policy - ./ConditionPolicy - ./StorageConditionPolicy - ../slots/current_utilization_percent - ../slots/has_or_had_environmental_zone - ../slots/refers_to_custodian - ../slots/specificity_annotation - ../slots/standards_applied - ../slots/has_or_had_storage_condition - ../slots/has_or_had_description # migrated from has_or_had_description per Rule 55 # was: storage_description - migrated per Rule 53 (uses Description class) - ../slots/has_or_had_type - ../slots/has_or_had_storage_unit - ../slots/has_or_had_stores_collection - ../slots/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) - ../slots/temporal_extent # was: valid_from + valid_to - migrated per Rule 53 # REMOVED 2026-01-14: valid_from + valid_to - migrated to temporal_extent (Rule 53) - ./SpecificityAnnotation - ./TemplateSpecificityScore # was: TemplateSpecificityScores - migrated per Rule 53 (2026-01-17) - ./TemplateSpecificityType - ./TemplateSpecificityTypes classes: Storage: class_uri: hc:StorageFacility description: "Physical storage facility where heritage collections are preserved.\n\n**DEFINITION**:\n\nA Storage represents\ \ a dedicated facility or area for preserving\nheritage materials. This includes archive depots, museum storage\nvaults,\ \ library stacks, and specialized storage for different\nmaterial types.\n\n**Wikidata Alignment**:\n- Q1191732 (depot/storage\ \ facility)\n- Q1454974 (archive storage)\n- Q1280667 (art storage)\n\n**HC Ontology Extension (hc-storage.ttl)**:\n\ \nPrimary class: `hc:StorageFacility` (subclass of `crm:E27_Site`)\n\nThe Heritage Custodian storage ontology extension\ \ provides specialized\nclasses and properties for heritage storage management:\n\n- `hc:StorageFacility` - Top-level\ \ storage facility (THIS CLASS)\n- `hc:StorageUnit` - Individual compartments, shelves, cabinets\n- `hc:EnvironmentalZone`\ \ - Climate-controlled areas\n- `hc:StorageAssignment` - Assignment of objects to locations\n- `hc:StorageConditionAssessment`\ \ - Environmental assessments\n- `hc:EnvironmentalRequirement` - Climate specifications\n- `hc:StorageCapacitySpecification`\ \ - Capacity measurements\n\nKey HC properties used:\n- `hc:hasStorageSection` - Links facility to zones/units (extends\ \ P59)\n- `hc:currentlyStores` - Links location to objects (extends P55)\n- `hc:hasEnvironmentalRequirement` - Links\ \ to climate specs\n- `hc:hasStorageCapacity` - Links to capacity measurements\n\nSee: `frontend/public/ontology/hc-storage.ttl`\n\ \n**CIDOC-CRM Alignment (v7.1.3)**:\n\nBase class: `crm:E27_Site` - \"This class comprises pieces of land\nor sea floor.\ \ In contrast to the purely geometric notion of E53 Place,\nthis class describes constellations of matter on the surface\ \ of the\nEarth or other celestial body, which can be represented by photographs,\npaintings and maps.\"\n\n**Location\ \ Predicate Hierarchy**:\n\n| Predicate | Meaning | Use Case |\n|-----------|---------|----------|\n| P53 has former\ \ or current location | Any location in history | General location tracking |\n| P54 has current permanent location\ \ | Reserved/designated location | Permanent storage assignment |\n| P55 has current location | Actual current location\ \ | Where object is NOW |\n\nNote: P55 is a specialization of P53. An object may have a permanent\nlocation (P54) but\ \ currently be elsewhere (P55), e.g., on loan.\n\n**PREMIS Alignment**:\n\n`premis:StorageLocation` - \"Information\ \ needed to retrieve a physical\nitem from its physical storage location or a file from the storage\nsystem, or to access\ \ a bitstream within a file.\"\n\nPREMIS also provides:\n- `premis:StorageMedium` - Physical medium (tape, disk, etc.)\n\ - `premis:storedAt` - Links objects to storage location\n\n**RELATIONSHIP TO OTHER CLASSES**:\n\n```\nCustodian (hub)\n\ \ │\n ├── storage_facilities → Storage[] (THIS CLASS)\n │ ├── storage_type (StorageTypeEnum)\n │ ├── storage_location\ \ → AuxiliaryPlace (physical site)\n │ ├── stores_collections → CustodianCollection[]\n │ ├── storage_conditions\ \ → StorageCondition[]\n │ ├── has_or_had_policy → ConditionPolicy/StorageConditionPolicy\n │ ├── has_section → Storage[] (subdivisions\ \ via P59)\n │ ├── move_events → MoveEvent[] (objects moved to/from)\n │ └── custody_transfers → CustodyTransferEvent[]\n\ \ │\n └── place_designation → CustodianPlace\n └── auxiliary_places → AuxiliaryPlace[]\n └── hosts_storage\ \ → Storage (inverse)\n```\n\n**KEY DISTINCTION**:\n\n- **Storage**: The FUNCTIONAL role of preserving collections\n\ - **AuxiliaryPlace**: The PHYSICAL location/building\n- **StorageCondition**: The ACTUAL observed state\n- **StorageConditionPolicy**:\ \ The INTENDED/designed conditions\n\nA single AuxiliaryPlace may host multiple Storage facilities\n(e.g., climate-controlled\ \ art storage + general depot in same building).\n\n**USE CASES**:\n\n1. **Archive Depot**:\n - storage_type: ARCHIVE_DEPOT\n\ \ - standards_applied: [ISO_TR_19815_2018, EN_16893_2018]\n - climate control: 18°C, 50% RH\n \n2. **Cold Storage\ \ for Film**:\n - storage_type: COLD_STORAGE\n - standards_applied: [IMAGE_PERMANENCE_INSTITUTE]\n - climate control:\ \ -18°C, 30% RH\n \n3. **Open Study Storage**:\n - storage_type: OPEN_STORAGE\n - accessible to researchers\n\ \ - combined storage/study function\n" exact_mappings: - hc:StorageFacility - crm:E27_Site - wikidata:Q1191732 close_mappings: - premis:StorageLocation - rico:Place - schema:Place related_mappings: - hc:StorageUnit - hc:EnvironmentalZone - premis:StorageMedium - org:Site - crm:E53_Place slots: - has_or_had_capacity # MIGRATED 2026-01-17: was capacity_cubic_meters, capacity_description, capacity_item, capacity_linear_meters (Rule 53) - has_or_had_policy # MIGRATED 2026-01-22: was condition_policy (Rule 53) - current_utilization_percent - has_or_had_environmental_zone - managed_by - refers_to_custodian - specificity_annotation - standards_applied - has_or_had_storage_condition - has_or_had_description # was: storage_description - migrated per Rule 53 (uses Description class) - has_or_had_identifier # was: storage_id - migrated per Rule 53 - is_or_was_stored_at # was: storage_location - migrated per Rule 53 - has_or_had_label # was: storage_name - migrated per Rule 53 - has_or_had_type - has_or_had_storage_unit - has_or_had_stores_collection - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) - temporal_extent # was: valid_from + valid_to - migrated per Rule 53 slot_usage: has_or_had_identifier: # was: storage_id - migrated per Rule 53 range: uriorcurie required: true identifier: true description: | Unique identifier for this storage facility. MIGRATED from storage_id per slot_fixes.yaml (Rule 53). examples: - value: https://nde.nl/ontology/hc/storage/rijksmuseum-depot-amersfoort description: Rijksmuseum off-site depot has_or_had_label: # was: storage_name - migrated per Rule 53 range: Label required: true inlined: true description: | Human-readable name for this storage facility. MIGRATED from storage_name per slot_fixes.yaml (Rule 53). Uses Label class with text and language support. examples: - value: label_text: Depot Amersfoort language: nl - value: label_text: Cold Storage Vault A language: en - value: label_text: Manuscript Storage Room 3 language: en has_or_had_type: range: StorageType required: true description: | The type classification of this storage facility. Uses StorageType class hierarchy (ARCHIVE_DEPOT, COLD_STORAGE, ART_STORAGE, etc.). examples: - value: ARCHIVE_DEPOT description: Archive storage depot - value: COLD_STORAGE description: Cold storage for film and photographic materials - value: ART_STORAGE description: Climate-controlled art storage has_or_had_description: # was: has_or_had_description # was: storage_description - migrated per Rule 53 (uses Description class) description: | Description of this storage facility. MIGRATED from storage_description per slot_fixes.yaml (Rule 53). Uses Description class with text and language support. multivalued: true examples: - value: | description_text: 'Climate-controlled archive depot housing overflow document collections. Equipped with mobile shelving system (Compactus). Staff access only. Fire suppression: inert gas system.' description_type: storage language: en description: Storage description using Description class is_or_was_stored_at: # was: storage_location - migrated per Rule 53 range: StorageLocation required: false inlined: true description: | Physical or digital location where this storage facility is situated. MIGRATED from storage_location per slot_fixes.yaml (Rule 53). Uses StorageLocation class for unified location modeling. examples: - value: has_or_had_identifier: https://nde.nl/ontology/hc/aux-place/rijksmuseum-depot-amersfoort has_or_had_label: label_text: Rijksmuseum Depot Amersfoort language: nl description: Physical storage location reference # MIGRATED 2026-01-17: capacity_* slots → has_or_had_capacity + Capacity (Rule 53) has_or_had_capacity: range: Capacity multivalued: true inlined_as_list: true description: | Storage capacity measurements for this facility. MIGRATED from capacity_cubic_meters, capacity_description, capacity_item, capacity_linear_meters per slot_fixes.yaml (Rule 53). Uses Capacity class with capacity_type and has_or_had_measurement_unit. examples: - value: - has_or_had_quantity: has_or_had_numeric_value: 8000.0 has_or_had_unit: has_or_had_type: LinearMeter has_or_had_symbol: "m" has_or_had_type: ShelfLength has_or_had_description: Total linear meters of shelving description: Was capacity_linear_meters (capacity_value → has_or_had_quantity) - value: - has_or_had_quantity: has_or_had_numeric_value: 2500.0 has_or_had_unit: has_or_had_type: CubicMeter has_or_had_symbol: "m³" has_or_had_type: Volume description: Was capacity_cubic_meters (capacity_value → has_or_had_quantity) - value: - has_or_had_quantity: has_or_had_numeric_value: 50000 has_or_had_unit: has_or_had_type: Item has_or_had_symbol: "archive boxes" has_or_had_type: ItemCount description: Was capacity_item (capacity_value → has_or_had_quantity) - value: - has_or_had_description: "Approximately 5,000 linear meters of shelving across 3 floors" is_estimate: true description: Was capacity_description (textual only) # REMOVED 2026-01-17: capacity_* slots migrated to has_or_had_capacity (Rule 53) # capacity_description: # range: string # examples: # - value: Approximately 5,000 linear meters of shelving across 3 floors # - value: Large-scale art storage for paintings up to 4m x 6m # capacity_linear_meters: # range: float # examples: # - value: 5000.0 # description: 5,000 linear meters # capacity_cubic_meters: # range: float # examples: # - value: 2500.0 # description: 2,500 cubic meters # capacity_item: # range: integer # examples: # - value: 50000 # description: Capacity for 50,000 archive boxes current_utilization_percent: range: float minimum_value: 0.0 maximum_value: 100.0 examples: - value: 85.5 description: 85.5% of capacity currently used has_or_had_stores_collection: range: CustodianCollection multivalued: true inlined_as_list: true examples: - value: - https://nde.nl/ontology/hc/collection/rijksmuseum-prints - https://nde.nl/ontology/hc/collection/rijksmuseum-drawings has_or_had_environmental_zone: range: EnvironmentalZone multivalued: true inlined_as_list: true examples: - value: - https://nde.nl/ontology/hc/zone/na-depot-a-standard - https://nde.nl/ontology/hc/zone/na-depot-a-cold has_or_had_storage_unit: range: StorageUnit multivalued: true inlined_as_list: true examples: - value: - https://nde.nl/ontology/hc/unit/na-depot-general-r1-b1 standards_applied: range: StorageStandardEnum multivalued: true examples: - value: - ISO_TR_19815_2018 - EN_16893_2018 - EN_15757_2010 # MIGRATED 2026-01-22: condition_policy → has_or_had_policy + ConditionPolicy (Rule 53) has_or_had_policy: range: ConditionPolicy # Narrowed from Policy base class for storage context description: | Environmental and safety policy governing this storage facility. MIGRATED from condition_policy per slot_fixes.yaml (Rule 53). Uses ConditionPolicy/StorageConditionPolicy class for policy specification. examples: - value: policy_name: "Archive Climate Control Policy" policy_description: "Environmental requirements per ISO/TR 19815:2018" standards_compliance: - "ISO/TR 19815:2018" - "EN 16893:2018" policy_effective_from: "2020-01-01" description: Storage condition policy (was condition_policy) has_or_had_storage_condition: range: StorageCondition multivalued: true inlined_as_list: true managed_by: range: string examples: - value: Collections Management Department - value: Facilities and Security Team temporal_extent: # was: valid_from + valid_to - migrated per Rule 53 description: | Validity period using CIDOC-CRM TimeSpan. MIGRATED from valid_from + valid_to per slot_fixes.yaml (Rule 53). range: TimeSpan inlined: true required: false examples: - value: begin_of_the_begin: '1995-06-01' description: Storage facility operational since June 1995 refers_to_custodian: range: Custodian required: true comments: - Storage models the FUNCTIONAL role of preservation, not just physical location - Links to AuxiliaryPlace for physical building/site information - Condition observations (StorageCondition) may come from internal or external sources - Condition policy (StorageConditionPolicy) represents designed/intended state - Actual conditions may differ significantly from policy - this is critical for transparency - Multiple Storage instances can exist at same AuxiliaryPlace (different zones) see_also: - http://www.loc.gov/premis/rdf/v3/StorageLocation - https://www.wikidata.org/wiki/Q1191732 - http://www.cidoc-crm.org/html/cidoc_crm_v7.1.3.html#E27 examples: - value: has_or_had_identifier: https://nde.nl/ontology/hc/storage/rijksmuseum-depot-amersfoort # was: storage_id has_or_had_label: # was: storage_name label_text: Depot Amersfoort language: nl has_or_had_type: ART_STORAGE has_or_had_description: # was: has_or_had_description - description_text: 'Off-site storage depot for Rijksmuseum overflow collections. Climate-controlled facility housing paintings, sculptures, and decorative arts not currently on display.' description_type: storage language: en is_or_was_stored_at: # was: storage_location has_or_had_identifier: https://nde.nl/ontology/hc/aux-place/rijksmuseum-depot-amersfoort has_or_had_label: label_text: Rijksmuseum Depot Amersfoort language: nl has_or_had_capacity: # was: capacity_linear_meters - migrated per Rule 53 - has_or_had_quantity: has_or_had_numeric_value: 8000.0 has_or_had_unit: has_or_had_type: LinearMeter has_or_had_symbol: "m" has_or_had_type: ShelfLength has_or_had_description: Total linear shelf capacity current_utilization_percent: 78.5 standards_applied: - EN_16893_2018 - EN_15757_2010 refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 description: Rijksmuseum off-site art storage depot - value: has_or_had_identifier: https://nde.nl/ontology/hc/storage/nationaal-archief-depot-b # was: storage_id has_or_had_label: # was: storage_name label_text: Depot B - Cold Storage language: en has_or_had_type: COLD_STORAGE has_or_had_description: # was: has_or_had_description - description_text: 'Refrigerated vault for film negatives, photographic materials, and temperature-sensitive documents. Maintained at 4°C, 35% RH.' description_type: storage language: en has_or_had_capacity: # was: capacity_description - migrated per Rule 53 - capacity_type: SHELF_LENGTH has_or_had_description: "1,200 linear meters of cold storage shelving" is_estimate: false standards_applied: - IMAGE_PERMANENCE_INSTITUTE - ISO_TR_19815_2018 refers_to_custodian: https://nde.nl/ontology/hc/nl-na description: National Archives cold storage for photographic materials