id: https://nde.nl/ontology/hc/class/StorageConditionPolicy name: storage_condition_policy_class title: Storage Condition Policy 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/ dcterms: http://purl.org/dc/terms/ odrl: http://www.w3.org/ns/odrl/2/ default_prefix: hc imports: - linkml:types - ./TimeSpan - ../enums/StorageStandardEnum - ../enums/StorageConditionStatusEnum - ../slots/has_or_had_access_restriction - ../slots/policy_id - ../slots/policy_name - ../slots/note # REMOVED 2026-01-16: temperature_tolerance - migrated to allows_or_allowed with TemperatureDeviation class (Rule 53/56) - ../slots/allows_or_allowed - ./TemperatureDeviation - ../slots/humidity_tolerance - ../slots/has_air_changes_per_hour - ../slots/fire_suppression_type - ../slots/flood_protection_required - ../slots/humidity_max - ../slots/humidity_min - ../slots/humidity_target - ../slots/light_max_lux - ../slots/particulate_max - ../slots/pest_management_required - ../slots/is_or_was_approved_by # MIGRATED: was ../slots/policy_approved_by (2026-01-15) - ../slots/policy_description - ../slots/policy_effective_from - ../slots/policy_effective_to - ../slots/policy_review_date - ../slots/specificity_annotation - ../slots/standards_compliance - ../slots/has_or_had_security_level # was: storage_security_level - migrated per Rule 53 (2025-01-15) # REMOVED 2026-01-15: temperature_max, temperature_min, temperature_target - migrated to has_or_had_setpoint with Setpoint class (Rule 53) - ../slots/has_or_had_setpoint - ./Setpoint - ../enums/SetpointTypeEnum - ../slots/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) # REMOVED 2026-01-14: ../slots/uv_filtered_required - migrated to is_or_was_required with RequirementStatus # MIGRATED 2026-01-16: is_or_was_required → has_or_had_requirement_status (range: RequirementStatus) - ../slots/has_or_had_requirement_status - ./RequirementStatus - ./SpecificityAnnotation - ./TemplateSpecificityScore # was: TemplateSpecificityScores - migrated per Rule 53 (2026-01-17) - ./TemplateSpecificityType - ./TemplateSpecificityTypes - ./Approver # Added for is_or_was_approved_by migration (2026-01-15) - ./ConditionPolicy # Base class (added 2026-01-22) classes: StorageConditionPolicy: is_a: ConditionPolicy # Added 2026-01-22 per condition_policy migration (Rule 53) class_uri: hc:StorageConditionPolicy # Changed from odrl:Policy - now inherits via ConditionPolicy → Policy description: "Designed environmental and safety conditions for a storage facility.\n\n**DEFINITION**:\n\nStorageConditionPolicy\ \ specifies what conditions SHOULD BE maintained\nin a storage facility according to institutional policy, standards\n\ requirements, and preservation best practices.\n\n**CRITICAL DISTINCTION**:\n\n- **StorageConditionPolicy** (THIS CLASS):\ \ What SHOULD BE - designed conditions\n- **StorageCondition**: What IS - actual observed state\n\nThe gap between policy\ \ and reality is often significant and represents\na key transparency metric for heritage preservation assessment.\n\ \n**STANDARDS ALIGNMENT**:\n\nThis class captures requirements from:\n- **ISO/TR 19815:2018**: Environmental management\ \ framework\n- **EN 16893:2018**: Building specifications for storage\n- **EN 15757:2010**: Temperature and relative\ \ humidity control\n- **ISO 9706:2025**: Paper permanence requirements\n- **PAS 198**: Archive storage requirements\n\ - **ASHRAE**: HVAC specifications for cultural heritage\n\n**POLICY vs. OBSERVATION PATTERN**:\n\n```\nStorage Facility\n\ \ │\n ├── condition_policy → StorageConditionPolicy (THIS CLASS)\n │ ├── temperature_target: 18°C\n │ ├──\ \ temperature_tolerance: ±2°C\n │ ├── humidity_target: 50%\n │ ├── standards_compliance: [EN_15757_2010, ISO_TR_19815_2018]\n\ \ │ └── policy_effective_from: 2020-01-01\n │\n └── storage_conditions[] → StorageCondition (observations)\n\ \ ├── Observation 1: Temperature 19°C ✓ (within policy)\n ├── Observation 2: Temperature 25°C ✗ (exceeds\ \ policy)\n └── Observation 3: Humidity 65% ✗ (exceeds policy)\n```\n\n**ODRL ALIGNMENT**:\n\n`odrl:Policy` -\ \ \"A Policy is a named entity for a rule-based system\nfor specifying permissions, prohibitions, and obligations.\"\ \n\nWhile ODRL is primarily for digital rights, the policy pattern applies:\n- Policy defines RULES for acceptable conditions\n\ - Observations are checked against policy RULES\n- Violations trigger OBLIGATIONS (remediation)\n\n**USE CASES**:\n\n\ 1. **Archive Climate Policy**:\n - Based on ISO/TR 19815:2018\n - Temperature: 18°C ±2°C\n - Humidity: 50% RH\ \ ±5%\n - Light: <50 lux for sensitive materials\n \n2. **Cold Storage Policy**:\n - Based on Image Permanence\ \ Institute guidelines\n - Temperature: -18°C ±2°C\n - Humidity: 30% RH ±5%\n - For film negatives and photographs\n\ \ \n3. **Art Storage Policy**:\n - Based on museum industry standards\n - Temperature: 21°C ±1°C\n - Humidity:\ \ 50% RH ±3%\n - Strict light and UV control\n" exact_mappings: - odrl:Policy close_mappings: - hc:EnvironmentalRequirement - premis:PreservationPolicy - schema:Policy - crm:E29_Design_or_Procedure slots: - has_or_had_access_restriction - has_air_changes_per_hour - fire_suppression_type - flood_protection_required - humidity_max - humidity_min - humidity_target - humidity_tolerance - allows_or_allowed # was: temperature_tolerance - migrated per Rule 53/56 (2026-01-16) - light_max_lux - note - particulate_max - pest_management_required - is_or_was_approved_by # MIGRATED: was policy_approved_by (2026-01-15) - policy_description - policy_effective_from - policy_effective_to - policy_id - policy_name - policy_review_date - specificity_annotation - standards_compliance - has_or_had_security_level # was: storage_security_level - migrated per Rule 53 (2025-01-15) # REMOVED 2026-01-15: temperature_max, temperature_min, temperature_target - migrated to has_or_had_setpoint - has_or_had_setpoint # REMOVED 2026-01-16: temperature_tolerance - migrated to allows_or_allowed with TemperatureDeviation - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) # REMOVED 2026-01-14: uv_filtered_required - migrated to is_or_was_required with RequirementStatus # MIGRATED 2026-01-16: is_or_was_required → has_or_had_requirement_status - has_or_had_requirement_status slot_usage: policy_id: range: uriorcurie required: true identifier: true examples: - value: https://nde.nl/ontology/hc/policy/rijksmuseum-depot-climate-2020 policy_name: range: string required: true examples: - value: Rijksmuseum Depot Climate Control Policy - value: National Archives Cold Storage Requirements policy_description: range: string examples: - value: Climate control policy for main art storage depot at Amersfoort. Designed to maintain stable conditions for mixed media collections including oil paintings, works on paper, and decorative arts. Based on EN 15757:2010 and museum industry best practices. # REMOVED 2026-01-15: temperature_target, temperature_min, temperature_max # Migrated to has_or_had_setpoint with Setpoint class per Rule 53 has_or_had_setpoint: range: Setpoint multivalued: true inlined: true inlined_as_list: true description: | Environmental control setpoints for this storage policy. MIGRATED 2026-01-15: Replaces temperature_target, temperature_min, temperature_max. Uses Setpoint class for structured setpoint data with types (TEMPERATURE, RELATIVE_HUMIDITY, etc.). examples: - value: - setpoint_type: TEMPERATURE setpoint_value: 18.0 setpoint_min: 16.0 setpoint_max: 22.0 setpoint_tolerance: 2.0 setpoint_unit: DEGREE_CELSIUS iso_standard_reference: "ISO 11799:2015" description: Archive temperature setpoint # REMOVED 2026-01-16: temperature_tolerance - migrated to allows_or_allowed with TemperatureDeviation allows_or_allowed: range: TemperatureDeviation multivalued: true inlined: true inlined_as_list: true description: | Allowed temperature deviation/tolerance for this policy. MIGRATED 2026-01-16: Replaces temperature_tolerance (float). Uses TemperatureDeviation class for structured tolerance data. examples: - value: - deviation_value: 2.0 deviation_direction: PLUS_MINUS has_or_had_measurement_unit: has_or_had_type: DEGREE_CELSIUS has_or_had_symbol: "°C" iso_standard_reference: "ISO 11799:2015" description: ±2°C tolerance per ISO 11799 humidity_target: range: float minimum_value: 0.0 maximum_value: 100.0 examples: - value: 50.0 description: 50% RH for general storage - value: 30.0 description: 30% RH for cold storage humidity_min: range: float minimum_value: 0.0 maximum_value: 100.0 examples: - value: 45.0 humidity_max: range: float minimum_value: 0.0 maximum_value: 100.0 examples: - value: 55.0 humidity_tolerance: range: float examples: - value: 5.0 description: ±5% RH tolerance light_max_lux: range: float examples: - value: 50.0 description: 50 lux max for sensitive materials # REMOVED 2026-01-14: uv_filtered_required - migrated to is_or_was_required with RequirementStatus # uv_filtered_required: # range: boolean # examples: # - value: true # MIGRATED 2026-01-16: is_or_was_required → has_or_had_requirement_status has_or_had_requirement_status: description: | Whether UV-filtered lighting is required for this storage policy. MIGRATED 2026-01-14: Replaces uv_filtered_required slot. MIGRATED 2026-01-16: Renamed from is_or_was_required to has_or_had_requirement_status to resolve OWL ambiguous type warning (base slot has range: boolean). examples: - value: | RequirementStatus: is_required: true requirement_type: "uv_filtered_lighting" description: UV filtering required has_air_changes_per_hour: range: float examples: - value: 1.5 description: 1.5 air changes per hour minimum particulate_max: range: float examples: - value: 100000.0 description: ISO Class 8 clean room equivalent pest_management_required: range: boolean examples: - value: true fire_suppression_type: range: string examples: - value: INERT_GAS description: Inert gas suppression for archive materials flood_protection_required: range: boolean examples: - value: true has_or_had_security_level: # was: storage_security_level - migrated per Rule 53 (2025-01-15) range: SecurityLevel required: false description: | Security classification level for this storage policy. MIGRATED from storage_security_level slot per slot_fixes.yaml (Rule 53, 2025-01-15). examples: - value: level_code: HIGH level_name: High Security description: High-value collection storage has_or_had_access_restriction: range: string examples: - value: Staff access only. Two-person rule for vault access. Visitor access requires Director approval and escort. standards_compliance: range: StorageStandardEnum multivalued: true examples: - value: - EN_15757_2010 - EN_16893_2018 - ISO_TR_19815_2018 policy_effective_from: range: date required: true examples: - value: '2020-01-01' policy_effective_to: range: date is_or_was_approved_by: description: >- Agent (person/organization) that approved this policy. MIGRATED from policy_approved_by (2026-01-15) per Rule 39. Range changed from string to Approver class for structured approval tracking. range: Approver required: false examples: - value: approver_name: Collections Committee description: Committee approval - value: approver_name: Director of Collections description: Individual approval policy_review_date: range: date examples: - value: '2025-12-31' note: range: string comments: - Policy defines INTENDED conditions, not actual state - Actual conditions tracked separately in StorageCondition observations - Gap between policy and observation is key transparency metric - Policy should reference applicable standards (ISO, EN, PAS) - Policy should be reviewed and updated regularly - Multiple policies may apply to different storage zones see_also: - https://www.iso.org/standard/68893.html - https://www.en-standard.eu/bs-en-16893-2018/ - https://www.en-standard.eu/bs-en-15757-2010/ examples: - value: policy_id: https://nde.nl/ontology/hc/policy/rijksmuseum-depot-climate-2020 policy_name: Rijksmuseum Depot Climate Control Policy policy_description: 'Climate control policy for off-site art storage depot at Amersfoort. Designed for mixed media including oil paintings, works on paper, and decorative arts. Based on EN 15757:2010 and museum best practices. ' has_or_had_setpoint: # MIGRATED 2026-01-15: was temperature_target - setpoint_type: TEMPERATURE setpoint_value: 18.0 setpoint_min: 16.0 setpoint_max: 20.0 setpoint_tolerance: 2.0 setpoint_unit: DEGREE_CELSIUS iso_standard_reference: "EN 15757:2010" humidity_target: 50.0 humidity_tolerance: 5.0 light_max_lux: 50.0 has_or_had_requirement_status: # MIGRATED 2026-01-16: was is_or_was_required is_required: true requirement_type: uv_filtered_lighting pest_management_required: true fire_suppression_type: INERT_GAS flood_protection_required: true has_or_had_security_level: # was: storage_security_level level_code: HIGH level_name: High Security standards_compliance: - EN_15757_2010 - EN_16893_2018 policy_effective_from: '2020-01-01' is_or_was_approved_by: approver_name: Collections Committee policy_review_date: '2025-12-31' description: Museum art storage climate policy - value: policy_id: https://nde.nl/ontology/hc/policy/nationaal-archief-cold-storage policy_name: National Archives Cold Storage Policy policy_description: 'Cold storage policy for photographic materials including film negatives, glass plates, and color photographs. Based on Image Permanence Institute guidelines for extended preservation. ' has_or_had_setpoint: # MIGRATED 2026-01-15: was temperature_target - setpoint_type: TEMPERATURE setpoint_value: -18.0 setpoint_min: -20.0 setpoint_max: -16.0 setpoint_tolerance: 2.0 setpoint_unit: DEGREE_CELSIUS iso_standard_reference: "ISO 18911:2010" humidity_target: 30.0 humidity_tolerance: 5.0 light_max_lux: 0.0 has_or_had_requirement_status: # MIGRATED 2026-01-16: was is_or_was_required is_required: true requirement_type: uv_filtered_lighting pest_management_required: true fire_suppression_type: INERT_GAS flood_protection_required: true has_or_had_security_level: # was: storage_security_level level_code: HIGH level_name: High Security access_restrictions: Restricted access - Conservation staff only. Materials must acclimate 24 hours before and after access. Gloves required. standards_compliance: - IMAGE_PERMANENCE_INSTITUTE - ISO_TR_19815_2018 policy_effective_from: '2015-06-01' is_or_was_approved_by: approver_name: General Rijksarchivaris policy_review_date: '2025-06-01' description: Archive cold storage policy for photographic materials