glam/schemas/20251121/linkml/modules/classes/StorageCondition.yaml
kempersc c1946e93f9 Refactor VideoPost and WebObservation schemas; remove deprecated slots and migrate to new structures
- Updated VideoPost.yaml to include new slots and remove deprecated ones, enhancing video-specific properties.
- Removed extraction_confidence from WebObservation.yaml, streamlining the schema.
- Deleted obsolete slot files: characteristics.yaml, class_definition.yaml, confidence.yaml, confidence_method.yaml, confidence_score.yaml, confidence_value.yaml, count.yaml, and hosts_branch.yaml.
- Introduced ghost_slots.txt to track unused slots.
- Archived previous versions of characteristics, class_definition, confidence, confidence_method, confidence_score, confidence_value, count, and hosts_branch slots for historical reference.
- Added new slots: has_or_had_citation, has_or_had_city_code, and is_or_was_location_of with appropriate descriptions and mappings.
2026-01-28 15:04:11 +01:00

491 lines
22 KiB
YAML

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
- ./Storage
- ./TimeSpan
- ../enums/StorageConditionStatusEnum
- ../enums/StorageObserverTypeEnum
- ../slots/supersede_condition # was: supersede - migrated to class-specific slot 2026-01-16
# REMOVED 2026-01-19: ../slots/confidence_score - migrated to is_or_was_generated_by + GenerationEvent + ConfidenceScore (Rule 53)
- ../slots/is_or_was_generated_by
- ./GenerationEvent
- ./ConfidenceScore
- ./ConfidenceMethod
- ../slots/observation_date
- ../slots/indicates_or_indicated # was: follow_up_date - migrated per Rule 53 (2026-01-26)
- ./ConservationReview # for indicates_or_indicated range
# has_assessment_category REMOVED - migrated to has_or_had_category + AssessmentCategory (Rule 53)
- ../slots/includes_or_included
- ./AssessmentCategory
- ./AssessmentCategoryType
- ./AssessmentCategoryTypes
- ../slots/has_or_had_category
# - ../slots/category_measurement # ARCHIVED 2026-01-24: migrated to has_or_had_measurement + Measurement per Rule 53/56
- ../slots/has_or_had_measurement
- ./Measurement
- ./MeasurementType
- ./MeasurementTypes
- ../slots/has_or_had_measurement_type
- ../slots/has_or_had_note # was: category_note - migrated per Rule 53/56 (2026-01-18)
- ./Note # for has_or_had_note range
# - ../slots/category_status # ARCHIVED 2026-01-24: migrated to has_or_had_status + CategoryStatus per Rule 53/56
- ./CategoryStatus
# REMOVED 2026-01-22: ../slots/compliance_status - migrated to has_or_had_status + ComplianceStatus (Rule 53)
- ../slots/has_or_had_status
- ./ComplianceStatus
# REMOVED 2026-01-18: ../slots/condition_id - migrated to has_or_had_identifier + Identifier (Rule 53)
- ../slots/has_or_had_identifier # was: condition_id - migrated per Rule 53 (2026-01-18)
- ./Identifier
- ../slots/has_or_had_provenance
- ./Provenance
- ../slots/is_or_was_based_on
- ./Documentation
- ../slots/is_official_assessment
- ../slots/measurement_data
- ../slots/observation_note
- ../slots/observation_period
- ../slots/observer_affiliation
- ../slots/observer_name
- ../slots/observer_type
- ../slots/overall_status
- ../slots/refers_to_storage
- ../slots/remediation_note
- ../slots/remediation_required
- ../slots/specificity_annotation
- ../slots/supersede_condition
- ../slots/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
- ./SpecificityAnnotation
- ./TemplateSpecificityScore # was: TemplateSpecificityScores - migrated per Rule 53 (2026-01-17)
- ./TemplateSpecificityType
- ./TemplateSpecificityTypes
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:
- includes_or_included
# REMOVED 2026-01-22: compliance_status - migrated to has_or_had_status + ComplianceStatus (Rule 53)
- has_or_had_status
- has_or_had_identifier # was: condition_id - migrated per Rule 53 (2026-01-18)
# REMOVED 2026-01-19: confidence_score - migrated to is_or_was_generated_by (Rule 53)
- is_or_was_generated_by
- has_or_had_provenance
- indicates_or_indicated # was: follow_up_date - migrated per Rule 53 (2026-01-26)
- is_official_assessment
- measurement_data
- observation_date
- observation_note
- observation_period
- observer_affiliation
- observer_name
- observer_type
- overall_status
- refers_to_storage
- remediation_note
- remediation_required
- specificity_annotation
- supersede_condition
- has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
# has_assessment_category REMOVED - migrated to has_or_had_category (Rule 53)
- has_or_had_category
slot_usage:
has_or_had_identifier: # was: condition_id - migrated per Rule 53 (2026-01-18)
description: |
MIGRATED from condition_id per slot_fixes.yaml (Rule 53, 2026-01-18).
Unique identifier for this condition observation. Uses dcterms:identifier semantics.
Uses Identifier class with identifier_scheme for type discrimination.
Format: URI following NDE Heritage Custodian ontology conventions.
range: Identifier
inlined: true
required: true
identifier: true
examples:
- value:
identifier_scheme: CONDITION_URI
identifier_value: "https://nde.nl/ontology/hc/condition/rijksmuseum-depot-2024-q2"
description: Q2 2024 assessment of Rijksmuseum depot
refers_to_storage:
range: Storage
required: true
examples:
- value: https://nde.nl/ontology/hc/storage/rijksmuseum-depot-amersfoort
observation_date:
range: date
required: true
examples:
- value: '2024-09-15'
observation_period:
range: TimeSpan
examples:
- value: Q2 2024 (April-June)
observer_type:
range: StorageObserverTypeEnum
required: true
examples:
- value: JOURNALIST
- value: INTERNAL_STAFF
- value: GOVERNMENT_INSPECTOR
observer_name:
range: string
examples:
- value: Maria van der Berg
- value: Collections Management Team
- value: Anonymous (confidential source)
observer_affiliation:
range: string
examples:
- value: De Volkskrant
- value: Rijksdienst voor het Cultureel Erfgoed
- value: ABC Conservation Consultants
is_official_assessment:
range: boolean
required: true
examples:
- value: true
description: Official annual condition survey
- value: false
description: Journalist investigation
overall_status:
range: StorageConditionStatusEnum
required: true
examples:
- value: CRITICAL
description: White ant infestation discovered
- value: GOOD
description: All parameters within acceptable ranges
includes_or_included:
description: |
Categorized assessment results.
MIGRATED from has_or_had_category_assessment per Rule 53 (2026-01-28).
Replaces bespoke/classification slots with generic composition slot.
range: StorageConditionCategoryAssessment
multivalued: true
inlined_as_list: true
examples:
- value:
- has_or_had_category:
has_or_had_type: TEMPERATURE
has_or_had_status:
has_or_had_type: GOOD
has_or_had_measurement:
- has_or_had_unit:
has_or_had_label: Celsius
measurement_value: 19.5
- has_or_had_category:
has_or_had_type: PEST_CONTROL
has_or_had_status:
has_or_had_type: CRITICAL
has_or_had_note: # was: note - migrated per Rule 53/56 (2026-01-18)
- note_type: category
note_content: White ants discovered in main depot area
has_or_had_category:
description: |
Category of assessment (e.g., PEST_CONTROL, TEMPERATURE).
MIGRATED from has_assessment_category per Rule 53.
range: AssessmentCategory
multivalued: true
inlined: true
examples:
- value:
has_or_had_category: PEST_CONTROL
description: Pest control assessment
observation_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_or_had_provenance:
range: Provenance
multivalued: true
inlined: true
description: |
Documentation or evidence supporting the observation.
MIGRATED from evidence_documentation per slot_fixes.yaml (Rule 53).
Uses Provenance class with is_or_was_based_on -> Documentation.
examples:
- value:
is_or_was_based_on:
has_or_had_url:
url_value: "https://www.volkskrant.nl/archive-pest-investigation-2024"
description: Published article evidence
- value:
is_or_was_based_on:
has_or_had_url:
url_value: "https://archive.org/evidence/photos/depot-damage-20240915.zip"
description: Photographic evidence
measurement_data:
range: string
examples:
- value: '{"temperature_celsius": 23.5, "humidity_percent": 58, "threshold_exceeded": true}'
# MIGRATED 2026-01-22: compliance_status → has_or_had_status + ComplianceStatus (Rule 53)
has_or_had_status:
description: |
Compliance status with referenced standards.
MIGRATED from compliance_status per slot_fixes.yaml (Rule 53, 2026-01-22).
Uses ComplianceStatus class for structured representation including:
- Status type (COMPLIANT, NON_COMPLIANT, PARTIALLY_COMPLIANT, NOT_ASSESSED)
- Standard reference
- Assessment metadata
range: ComplianceStatus
inlined: true
required: false
examples:
- value:
has_or_had_type: "NON_COMPLIANT"
has_or_had_label: "EN 16893 Non-Compliant"
standard_reference: "EN 16893:2018"
remediation_required: true
description: Does not meet EN 16893:2018 requirements
- value:
has_or_had_type: "COMPLIANT"
has_or_had_label: "ISO 11799 Compliant"
standard_reference: "ISO 11799:2015"
assessment_date: "2024-06-30"
description: Meets ISO 11799 archival storage requirements
remediation_required:
range: boolean
examples:
- value: true
description: Pest treatment required immediately
remediation_note:
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
indicates_or_indicated: # was: follow_up_date - migrated per Rule 53 (2026-01-26)
description: |
Indicates a future review or assessment.
MIGRATED from follow_up_date per Rule 53.
Uses ConservationReview class with temporal_extent.
range: ConservationReview
inlined: true
required: false
examples:
- value:
temporal_extent:
begin_of_the_begin: "2024-12-01"
has_or_had_label: "Post-treatment verification inspection"
description: Follow-up inspection date
# REMOVED 2026-01-19: confidence_score - migrated to is_or_was_generated_by (Rule 53)
is_or_was_generated_by:
range: GenerationEvent
required: false
inlined: true
description: >-
Generation event containing confidence score for this observation.
MIGRATED 2026-01-19: Replaces confidence_score slot with structured pattern.
examples:
- value:
has_or_had_score:
has_or_had_score: 0.95
has_or_had_method: "government_inspection"
description: High confidence - Government inspector with full access
- value:
has_or_had_score:
has_or_had_score: 0.75
has_or_had_method: "journalist_investigation"
description: Medium confidence - Journalist with limited access
# supersede migrated to supersede_condition
# This domain-specific slot has explicit StorageCondition range
# to avoid OWL type ambiguity (DatatypeProperty vs ObjectProperty conflict)
comments:
- 'MIGRATED 2026-01-19: confidence_score → is_or_was_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:
has_or_had_identifier: # was: condition_id - migrated per Rule 53 (2026-01-18)
identifier_scheme: CONDITION_URI
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
includes_or_included:
- has_or_had_category:
has_or_had_type: PEST_CONTROL
has_or_had_status:
has_or_had_type: CRITICAL
has_or_had_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_or_had_provenance:
- is_or_was_based_on:
has_or_had_url:
url_value: "https://www.volkskrant.nl/archive-pest-crisis-2024"
remediation_required: true
is_or_was_generated_by: # was: confidence_score - migrated per Rule 53 (2026-01-19)
has_or_had_score:
has_or_had_score: 0.85
has_or_had_method: "journalist_investigation"
description: Journalist investigation discovering unreported pest infestation
- value:
has_or_had_identifier: # was: condition_id - migrated per Rule 53 (2026-01-18)
identifier_scheme: CONDITION_URI
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'
observation_period:
start_date: '2024-04-01'
end_date: '2024-06-30'
observer_type: INTERNAL_STAFF
observer_name: Collections Management Team
observer_affiliation: Rijksmuseum
is_official_assessment: true
overall_status: GOOD
includes_or_included:
- has_or_had_category:
has_or_had_type: TEMPERATURE
has_or_had_status:
has_or_had_type: EXCELLENT
has_or_had_measurement:
- measurement_value: 18.5
has_or_had_unit:
has_or_had_label: Celsius
- has_or_had_category:
has_or_had_type: HUMIDITY
has_or_had_status:
has_or_had_type: GOOD
has_or_had_measurement:
- measurement_value: 48
has_or_had_unit:
has_or_had_label: Percent
- has_or_had_category:
has_or_had_type: PEST_CONTROL
has_or_had_status:
has_or_had_type: GOOD
has_or_had_note: # was: note - migrated per Rule 53/56 (2026-01-18)
- note_type: category
note_content: No pest activity detected in monitoring traps
- has_or_had_category:
has_or_had_type: SECURITY
has_or_had_status:
has_or_had_type: EXCELLENT
observation_notes: Quarterly facilities review. All parameters within policy ranges.
# MIGRATED 2026-01-22: compliance_status → has_or_had_status + ComplianceStatus (Rule 53)
has_or_had_status:
has_or_had_type: "COMPLIANT"
standard_reference: "ISO 11799:2015"
assessment_date: "2024-06-30"
remediation_required: false
is_or_was_generated_by: # was: confidence_score - migrated per Rule 53 (2026-01-19)
has_or_had_score:
has_or_had_score: 0.9
has_or_had_method: "internal_assessment"
description: Official quarterly 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:
- has_or_had_category
- has_or_had_measurement # was: category_measurement - migrated per Rule 53/56 (2026-01-24)
- has_or_had_note # was: category_note - migrated per Rule 53/56 (2026-01-18)
- has_or_had_status # was: category_status - migrated per Rule 53/56 (2026-01-24)
- specificity_annotation
- has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
slot_usage:
has_or_had_category:
description: |
Category of assessment (e.g., PEST_CONTROL, TEMPERATURE).
MIGRATED from has_assessment_category per Rule 53 (2026-01-28).
range: AssessmentCategory
required: true
inlined: true
has_or_had_status: # was: category_status - migrated per Rule 53/56 (2026-01-24)
description: |
MIGRATED from category_status per Rule 53/56 (2026-01-24).
Status classification for this category assessment.
range: CategoryStatus
required: true
inlined: true
has_or_had_measurement: # was: category_measurement - migrated per Rule 53/56 (2026-01-24)
description: |
MIGRATED from category_measurement per Rule 53/56 (2026-01-24).
Structured measurement with value, type, and unit.
range: Measurement
inlined: true
multivalued: true
has_or_had_note: # was: category_note - migrated per Rule 53/56 (2026-01-18)
description: |
MIGRATED from category_note per Rule 53/56 (2026-01-18).
Notes specific to this category assessment.
Use note_type: "category" for category-specific notes.
range: Note
multivalued: true
inlined: true
inlined_as_list: true
examples:
- value:
- note_type: category
note_content: "White ants discovered in main depot area"
description: Pest control observation note