id: https://nde.nl/ontology/hc/class/StorageCondition name: storage_condition_class title: Storage Condition Observation 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/ pico: https://personsincontext.org/model# default_prefix: hc imports: - linkml:types - ../enums/StorageConditionStatusEnum - ../enums/StorageObserverTypeEnum - ../slots/categorized_as - ../slots/identified_by # was: condition_id - ../slots/measured_through - ../slots/has_measurement_type - ../slots/has_note # was: category_note - ../slots/has_provenance - ../slots/has_score # was: template_specificity - ../slots/has_status - ../slots/include - ../slots/indicate # was: follow_up_date - ../slots/based_on - ../slots/generated_by - ../slots/analyze - ../slots/temporal_extent - ../slots/observed_by - ../slots/refer_to - ../slots/remedy - ../slots/require - ../slots/supersede classes: StorageCondition: class_uri: hc:StorageConditionAssessment description: "An observation-based report of actual storage conditions.\n\n**DEFINITION**:\n\nStorageCondition represents\ \ a specific assessment or observation of\na storage facility's actual state at a point in time. Multiple\nobservations\ \ can exist for the same storage facility, from different\nobservers with potentially different findings.\n\n**CRITICAL\ \ DISTINCTION**:\n\n- **StorageCondition** (THIS CLASS): What IS - actual observed state\n- **StorageConditionPolicy**:\ \ What SHOULD BE - designed/intended conditions\n\nThe gap between policy and observed condition is often significant\n\ and represents a critical transparency concern.\n\n**PiCo OBSERVATION PATTERN**:\n\nFollowing the Person in Context\ \ (PiCo) ontology pattern, observations\nare NOT assertions of truth but reports from specific observers with\ntheir\ \ own perspectives and potential biases.\n\nA journalist discovering white ants in a storage facility creates an\nobservation\ \ with:\n- observer_type: JOURNALIST\n- condition_status: CRITICAL\n- category: PEST_CONTROL\n- observation_notes: \"\ White ants discovered in main document depot\"\n\nThis observation exists ALONGSIDE any official self-assessment, without\n\ requiring reconciliation of conflicting reports.\n\n**PROV-O ALIGNMENT**:\n\n`prov:Activity` - \"An activity is something\ \ that occurs over a period\nof time and acts upon or with entities; it may include consuming,\nprocessing, transforming,\ \ modifying, relocating, using, or generating\nentities.\"\n\nThe observation activity:\n- `prov:wasAssociatedWith`\ \ → observer (prov:Agent)\n- `prov:used` → storage facility being observed\n- `prov:atTime` → observation timestamp\n\ - `prov:generated` → this condition report\n\n**RELATIONSHIP TO STORAGE CLASS**:\n\n```\nStorage\n │\n ├── storage_conditions[]\ \ → StorageCondition (THIS CLASS)\n │ ├── Observation 1: Internal staff, 2024-06 → GOOD\n │ ├── Observation\ \ 2: Journalist, 2024-09 → CRITICAL (pest issue)\n │ └── Observation 3: Government inspector, 2024-10 → POOR\n\ \ │\n └── condition_policy → StorageConditionPolicy (what SHOULD be)\n```\n\n**USE CASES**:\n\n1. **Regular Internal\ \ Assessment**:\n - observer_type: INTERNAL_STAFF\n - is_official_assessment: true\n - category_assessments: Temperature=GOOD,\ \ Humidity=GOOD\n \n2. **Investigative Journalism**:\n - observer_type: JOURNALIST\n - is_official_assessment:\ \ false\n - observation_notes: \"Photographs show water damage in basement storage\"\n - evidence_documentation:\ \ [URLs to published article]\n \n3. **Government Inspection**:\n - observer_type: GOVERNMENT_INSPECTOR\n - is_official_assessment:\ \ true (regulatory authority)\n - compliance_status: \"NON_COMPLIANT\"\n - remediation_required: true\n \n4. **Automated\ \ Monitoring**:\n - observer_type: AUTOMATED_SYSTEM\n - category: TEMPERATURE\n - measurement_value: \"23.5°C\"\ \n - threshold_exceeded: true\n" exact_mappings: - hc:StorageConditionAssessment - crm:E14_Condition_Assessment - prov:Activity close_mappings: - crm:E7_Activity - premis:Event - pico:Observation - hc:StorageEnvironmentObservation slots: - include # REMOVED 2026-01-22: compliance_status - migrated to has_status + ComplianceStatus (Rule 53) - has_status - identified_by # was: condition_id - migrated per Rule 53 (2026-01-18) # REMOVED 2026-01-19: confidence_score - migrated to generated_by (Rule 53) - generated_by - has_provenance - indicate # was: follow_up_date - migrated per Rule 53 (2026-01-26) - has_status - analyze - temporal_extent - has_note - temporal_extent - observed_by - observed_by - observed_by - has_status - refer_to - remedy - require - supersede - has_score # was: template_specificity - migrated per Rule 53 (2026-01-17) # has_assessment_category REMOVED - migrated to categorized_as (Rule 53) - categorized_as slot_usage: identified_by: # was: condition_id - migrated per Rule 53 (2026-01-18) # range: string # uriorcurie inlined: false # Fixed invalid inline for primitive type required: true identifier: true examples: - value: identifier_value: "https://nde.nl/ontology/hc/condition/rijksmuseum-depot-2024-q2" refer_to: range: Storage required: true examples: - value: https://nde.nl/ontology/hc/storage/rijksmuseum-depot-amersfoort temporal_extent: range: date required: true examples: - value: '2024-09-15' temporal_extent: range: TimeSpan examples: - value: Q2 2024 (April-June) observed_by: range: StorageObserverTypeEnum required: true examples: - value: JOURNALIST - value: INTERNAL_STAFF - value: GOVERNMENT_INSPECTOR observed_by: # range: string examples: - value: Maria van der Berg - value: Collections Management Team - value: Anonymous (confidential source) observed_by: # range: string examples: - value: De Volkskrant - value: Rijksdienst voor het Cultureel Erfgoed - value: ABC Conservation Consultants has_status: range: boolean required: true examples: - value: true - value: false has_status: range: StorageConditionStatusEnum required: true examples: - value: CRITICAL - value: GOOD include: range: StorageConditionCategoryAssessment multivalued: true inlined_as_list: true examples: - value: - categorized_as: has_type: TEMPERATURE has_status: has_type: GOOD measure: - has_unit: has_label: Celsius measurement_value: 19.5 - categorized_as: has_type: PEST_CONTROL has_status: has_type: CRITICAL has_note: # was: note - migrated per Rule 53/56 (2026-01-18) - note_type: category note_content: White ants discovered in main depot area categorized_as: range: AssessmentCategory multivalued: true inlined: true examples: - value: categorized_as: PEST_CONTROL has_note: # range: string examples: - value: During routine inspection, white ant damage discovered in south wall of main document storage. Approximately 50 linear meters of shelving affected. Evidence of active infestation - live insects observed. Immediate treatment recommended. has_provenance: # range: string multivalued: true inlined: false # Fixed invalid inline for primitive type examples: - value: based_on: has_url: url_value: "https://www.volkskrant.nl/archive-pest-investigation-2024" - value: based_on: has_url: url_value: "https://archive.org/evidence/photos/depot-damage-20240915.zip" analyze: # range: string examples: - value: '{"temperature_celsius": 23.5, "humidity_percent": 58, "threshold_exceeded": true}' # MIGRATED 2026-01-22: compliance_status → has_status + ComplianceStatus (Rule 53) has_status: range: ComplianceStatus inlined: true required: false examples: - value: has_type: "NON_COMPLIANT" has_label: "EN 16893 Non-Compliant" standard_reference: "EN 16893:2018" remediation_required: true description: Does not meet EN 16893:2018 requirements - value: has_type: "COMPLIANT" has_label: "ISO 11799 Compliant" standard_reference: "ISO 11799:2015" require: range: boolean examples: - value: true remedy: # range: string examples: - value: 1. Engage licensed pest control immediately 2. Quarantine affected materials 3. Survey adjacent storage areas 4. Install additional monitoring traps 5. Report to Heritage Inspectorate within 48 hours indicate: # was: follow_up_date - migrated per Rule 53 (2026-01-26) range: ConservationReview inlined: true required: false examples: - value: temporal_extent: begin_of_the_begin: "2024-12-01" has_label: "Post-treatment verification inspection" # REMOVED 2026-01-19: confidence_score - migrated to generated_by (Rule 53) generated_by: range: GenerationEvent required: false inlined: true examples: - value: has_score: has_score: 0.95 has_method: "government_inspection" - value: has_score: has_score: 0.75 has_method: "journalist_investigation" # supersede migrated to supersedes_or_superseded # This domain-specific slot has explicit StorageCondition range # to avoid OWL type ambiguity (DatatypeProperty vs ObjectProperty conflict) comments: - 'MIGRATED 2026-01-19: confidence_score → generated_by + GenerationEvent + ConfidenceScore (Rule 53)' - Observations are NOT assertions of truth - they are reports from specific observers - Multiple observations may exist for same storage with conflicting findings - Gap between observed conditions and policy conditions is critical transparency metric - External observations (journalists, researchers) may reveal unreported issues - Official assessments vs external investigations treated equally as data - Automated system observations provide objective measurements but require calibration see_also: - http://www.w3.org/ns/prov#Activity - https://www.loc.gov/premis/rdf/v3/Event examples: - value: identified_by: # was: condition_id - migrated per Rule 53 (2026-01-18) identifier_value: "https://nde.nl/ontology/hc/condition/depot-pest-investigation-2024" refers_to_storage: https://nde.nl/ontology/hc/storage/national-archive-depot-b observation_date: '2024-09-15' observer_type: JOURNALIST observer_name: Jan de Vries observer_affiliation: De Volkskrant is_official_assessment: false overall_status: CRITICAL include: - categorized_as: has_type: PEST_CONTROL has_status: has_type: CRITICAL has_note: # was: note - migrated per Rule 53/56 (2026-01-18) - note_type: category note_content: White ants discovered in main document depot observation_notes: >- Investigative visit revealed active termite infestation in south section of Document Depot B. Approximately 50 linear meters of historical documents at risk. Institution was unaware of extent of damage until contacted for comment. has_provenance: - based_on: has_url: url_value: "https://www.volkskrant.nl/archive-pest-crisis-2024" remediation_required: true generated_by: # was: confidence_score - migrated per Rule 53 (2026-01-19) has_score: has_score: 0.85 has_method: "journalist_investigation" - value: identified_by: # was: condition_id - migrated per Rule 53 (2026-01-18) identifier_value: "https://nde.nl/ontology/hc/condition/rijksmuseum-q2-2024" refers_to_storage: https://nde.nl/ontology/hc/storage/rijksmuseum-depot-amersfoort observation_date: '2024-06-30' temporal_extent: observer_type: INTERNAL_STAFF observer_name: Collections Management Team observer_affiliation: Rijksmuseum is_official_assessment: true overall_status: GOOD include: - categorized_as: has_type: TEMPERATURE has_status: has_type: EXCELLENT has_measurement: - measurement_value: 18.5 has_unit: has_label: Celsius - categorized_as: has_type: HUMIDITY has_status: has_type: GOOD has_measurement: - measurement_value: 48 has_unit: has_label: Percent - categorized_as: has_type: PEST_CONTROL has_status: has_type: GOOD has_note: # was: note - migrated per Rule 53/56 (2026-01-18) - note_type: category note_content: No pest activity detected in monitoring traps - categorized_as: has_type: SECURITY has_status: has_type: EXCELLENT observation_notes: Quarterly facilities review. All parameters within policy ranges. # MIGRATED 2026-01-22: compliance_status → has_status + ComplianceStatus (Rule 53) has_status: has_type: "COMPLIANT" standard_reference: "ISO 11799:2015" remediation_required: false generated_by: # was: confidence_score - migrated per Rule 53 (2026-01-19) has_score: has_score: 0.9 has_method: "internal_assessment" StorageConditionCategoryAssessment: class_uri: hc:StorageConditionCategoryAssessment description: 'Individual category assessment within a StorageCondition observation. Allows granular reporting of different condition categories with independent status levels. ' slots: - categorized_as - measure # was: category_measurement - migrated per Rule 53/56 (2026-01-24) - has_note # was: category_note - migrated per Rule 53/56 (2026-01-18) - has_status # was: category_status - migrated per Rule 53/56 (2026-01-24) - has_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: categorized_as: range: AssessmentCategory required: true inlined: true has_status: # was: category_status - migrated per Rule 53/56 (2026-01-24) range: CategoryStatus required: true inlined: true has_measurement: # was: category_measurement - migrated per Rule 53/56 (2026-01-24) range: Measurement inlined: true multivalued: true has_note: # was: category_note - migrated per Rule 53/56 (2026-01-18) # range: string multivalued: true inlined: false # Fixed invalid inline for primitive type inlined_as_list: false # Fixed invalid inline for primitive type examples: - value: - note_type: category note_content: "White ants discovered in main depot area"