glam/schemas/20251121/linkml/modules/classes/StorageCondition.yaml
kempersc 3da90b940e
All checks were successful
Deploy Frontend / build-and-deploy (push) Successful in 2m4s
feat(schema): complete multiple slot_fixes.yaml migrations
Session 2026-01-19: Completed remaining migrations per Rules 53/56/60.

Major migrations:
1. claim_type → has_or_had_type + ClaimType/ClaimTypes (60+ concrete types in 11 categories)
2. circumstances_of_death → is_deceased + DeceasedStatus + CauseOfDeath
3. claims_count → has_or_had_quantity + Quantity (with based_on_claim for provenance)
4. classification_status → has_or_had_type + ClassificationStatusType

Created files:
- ClaimType.yaml, ClaimTypes.yaml (abstract base + 60+ concrete subclasses)
- DeceasedStatus.yaml, CauseOfDeath.yaml, CauseOfDeathTypeEnum.yaml
- ClassificationStatus.yaml, ClassificationStatusType.yaml, ClassificationStatusTypes.yaml
- CITESAppendix.yaml, City.yaml, CertaintyLevel.yaml
- is_deceased.yaml, is_or_was_caused_by.yaml, based_on_claim.yaml

Archived slots:
- claim_type, circumstances_of_death, claims_count, classification_status

Added Rule 60 to AGENTS.md: No Migration Deferral - agents MUST execute all migrations.

All 527 slot_fixes.yaml entries now complete (100%).
2026-01-19 13:05:53 +01:00

349 lines
15 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
- ../slots/confidence_score
- ../slots/observation_date
- ../slots/follow_up_date
- ../slots/has_assessment_category
- ../slots/has_or_had_category_assessment
- ../slots/category_measurement
- ../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
- ../slots/compliance_status
# 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/evidence_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/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:
- has_or_had_category_assessment
- compliance_status
- has_or_had_identifier # was: condition_id - migrated per Rule 53 (2026-01-18)
- confidence_score
- evidence_documentation
- follow_up_date
- 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)
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
has_or_had_category_assessment:
range: StorageConditionCategoryAssessment
multivalued: true
inlined_as_list: true
examples:
- value:
- category: TEMPERATURE
status: GOOD
measurement: 19.5°C
- category: PEST_CONTROL
status: 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
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.
evidence_documentation:
range: uriorcurie
multivalued: true
examples:
- value:
- https://www.volkskrant.nl/archive-pest-investigation-2024
- https://archive.org/evidence/photos/depot-damage-20240915.zip
measurement_data:
range: string
examples:
- value: '{"temperature_celsius": 23.5, "humidity_percent": 58, "threshold_exceeded": true}'
compliance_status:
range: string
examples:
- value: NON_COMPLIANT
description: Does not meet EN 16893:2018 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
follow_up_date:
range: date
examples:
- value: '2024-12-01'
description: Post-treatment verification inspection
confidence_score:
range: float
minimum_value: 0.0
maximum_value: 1.0
examples:
- value: 0.95
description: Government inspector with full access
- value: 0.75
description: 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:
- 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
has_or_had_category_assessment:
- category: PEST_CONTROL
status: 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.
evidence_documentation:
- https://www.volkskrant.nl/archive-pest-crisis-2024
remediation_required: true
confidence_score: 0.85
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
has_or_had_category_assessment:
- category: TEMPERATURE
status: EXCELLENT
measurement: 18.5°C average
- category: HUMIDITY
status: GOOD
measurement: 48% RH average
- category: PEST_CONTROL
status: 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
- category: SECURITY
status: EXCELLENT
observation_notes: Quarterly facilities review. All parameters within policy ranges.
compliance_status: COMPLIANT
remediation_required: false
confidence_score: 0.9
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_assessment_category
- category_measurement
- has_or_had_note # was: category_note - migrated per Rule 53/56 (2026-01-18)
- category_status
- specificity_annotation
- has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
slot_usage:
has_assessment_category:
range: string
required: true
category_status:
range: StorageConditionStatusEnum
required: true
category_measurement:
range: string
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