643 lines
22 KiB
YAML
643 lines
22 KiB
YAML
# StorageCondition Class - Observed condition reports for storage facilities
|
|
#
|
|
# Represents ACTUAL observed conditions (what IS), which may differ
|
|
# from StorageConditionPolicy (what SHOULD BE).
|
|
#
|
|
# Based on PiCo observation pattern: observations from multiple sources
|
|
# can report different conditions for the same storage facility.
|
|
#
|
|
# Generation date: 2025-11-29
|
|
#
|
|
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/supersedes
|
|
- ../slots/confidence_score
|
|
- ../slots/observation_date
|
|
|
|
classes:
|
|
StorageCondition:
|
|
class_uri: prov:Activity
|
|
description: |
|
|
An observation-based report of actual storage conditions.
|
|
|
|
**DEFINITION**:
|
|
|
|
StorageCondition represents a specific assessment or observation of
|
|
a storage facility's actual state at a point in time. Multiple
|
|
observations can exist for the same storage facility, from different
|
|
observers with potentially different findings.
|
|
|
|
**CRITICAL DISTINCTION**:
|
|
|
|
- **StorageCondition** (THIS CLASS): What IS - actual observed state
|
|
- **StorageConditionPolicy**: What SHOULD BE - designed/intended conditions
|
|
|
|
The gap between policy and observed condition is often significant
|
|
and represents a critical transparency concern.
|
|
|
|
**PiCo OBSERVATION PATTERN**:
|
|
|
|
Following the Person in Context (PiCo) ontology pattern, observations
|
|
are NOT assertions of truth but reports from specific observers with
|
|
their own perspectives and potential biases.
|
|
|
|
A journalist discovering white ants in a storage facility creates an
|
|
observation with:
|
|
- observer_type: JOURNALIST
|
|
- condition_status: CRITICAL
|
|
- category: PEST_CONTROL
|
|
- observation_notes: "White ants discovered in main document depot"
|
|
|
|
This observation exists ALONGSIDE any official self-assessment, without
|
|
requiring reconciliation of conflicting reports.
|
|
|
|
**PROV-O ALIGNMENT**:
|
|
|
|
`prov:Activity` - "An activity is something that occurs over a period
|
|
of time and acts upon or with entities; it may include consuming,
|
|
processing, transforming, modifying, relocating, using, or generating
|
|
entities."
|
|
|
|
The observation activity:
|
|
- `prov:wasAssociatedWith` → observer (prov:Agent)
|
|
- `prov:used` → storage facility being observed
|
|
- `prov:atTime` → observation timestamp
|
|
- `prov:generated` → this condition report
|
|
|
|
**RELATIONSHIP TO STORAGE CLASS**:
|
|
|
|
```
|
|
Storage
|
|
│
|
|
├── storage_conditions[] → StorageCondition (THIS CLASS)
|
|
│ ├── Observation 1: Internal staff, 2024-06 → GOOD
|
|
│ ├── Observation 2: Journalist, 2024-09 → CRITICAL (pest issue)
|
|
│ └── Observation 3: Government inspector, 2024-10 → POOR
|
|
│
|
|
└── condition_policy → StorageConditionPolicy (what SHOULD be)
|
|
```
|
|
|
|
**USE CASES**:
|
|
|
|
1. **Regular Internal Assessment**:
|
|
- observer_type: INTERNAL_STAFF
|
|
- is_official_assessment: true
|
|
- category_assessments: Temperature=GOOD, Humidity=GOOD
|
|
|
|
2. **Investigative Journalism**:
|
|
- observer_type: JOURNALIST
|
|
- is_official_assessment: false
|
|
- observation_notes: "Photographs show water damage in basement storage"
|
|
- evidence_documentation: [URLs to published article]
|
|
|
|
3. **Government Inspection**:
|
|
- observer_type: GOVERNMENT_INSPECTOR
|
|
- is_official_assessment: true (regulatory authority)
|
|
- compliance_status: "NON_COMPLIANT"
|
|
- remediation_required: true
|
|
|
|
4. **Automated Monitoring**:
|
|
- observer_type: AUTOMATED_SYSTEM
|
|
- category: TEMPERATURE
|
|
- measurement_value: "23.5°C"
|
|
- threshold_exceeded: true
|
|
|
|
exact_mappings:
|
|
- prov:Activity
|
|
|
|
close_mappings:
|
|
- crm:E7_Activity
|
|
- premis:Event
|
|
- pico:Observation
|
|
|
|
slots:
|
|
- condition_id
|
|
- refers_to_storage
|
|
- observation_date
|
|
- observation_period
|
|
- observer_type
|
|
- observer_name
|
|
- observer_affiliation
|
|
- is_official_assessment
|
|
- overall_status
|
|
- category_assessments
|
|
- observation_notes
|
|
- evidence_documentation
|
|
- measurement_data
|
|
- compliance_status
|
|
- remediation_required
|
|
- remediation_notes
|
|
- follow_up_date
|
|
- confidence_score
|
|
- supersedes
|
|
|
|
slot_usage:
|
|
condition_id:
|
|
slot_uri: dcterms:identifier
|
|
description: |
|
|
Unique identifier for this condition observation.
|
|
Format: URI following NDE Heritage Custodian ontology conventions.
|
|
range: uriorcurie
|
|
required: true
|
|
identifier: true
|
|
examples:
|
|
- value: "https://nde.nl/ontology/hc/condition/rijksmuseum-depot-2024-q2"
|
|
description: "Q2 2024 assessment of Rijksmuseum depot"
|
|
|
|
refers_to_storage:
|
|
slot_uri: prov:used
|
|
description: |
|
|
The storage facility being assessed.
|
|
|
|
Links this observation to the Storage instance it describes.
|
|
|
|
PROV-O: used indicates entities used in activity.
|
|
range: Storage
|
|
required: true
|
|
examples:
|
|
- value: "https://nde.nl/ontology/hc/storage/rijksmuseum-depot-amersfoort"
|
|
|
|
observation_date:
|
|
slot_uri: prov:atTime
|
|
description: |
|
|
Date when this observation was made.
|
|
|
|
For automated systems: timestamp of data collection.
|
|
For human observers: date of site visit or assessment.
|
|
|
|
PROV-O: atTime specifies instant at which activity occurred.
|
|
range: date
|
|
required: true
|
|
examples:
|
|
- value: "2024-09-15"
|
|
|
|
observation_period:
|
|
slot_uri: crm:P4_has_time-span
|
|
description: |
|
|
Time period covered by this observation if not a point-in-time.
|
|
|
|
Use for assessments covering a period (e.g., quarterly review)
|
|
rather than a single site visit.
|
|
|
|
CIDOC-CRM: P4_has_time-span for temporal extent.
|
|
range: TimeSpan
|
|
examples:
|
|
- value: "Q2 2024 (April-June)"
|
|
|
|
observer_type:
|
|
slot_uri: prov:wasAssociatedWith
|
|
description: |
|
|
Type of observer who made this assessment.
|
|
|
|
**CRITICAL**: Determines how to interpret the observation.
|
|
- INTERNAL_STAFF may underreport issues
|
|
- JOURNALIST may have discovered unreported problems
|
|
- GOVERNMENT_INSPECTOR has regulatory authority
|
|
- WHISTLEBLOWER may have insider knowledge
|
|
|
|
PROV-O: wasAssociatedWith links activity to responsible agent.
|
|
range: StorageObserverTypeEnum
|
|
required: true
|
|
examples:
|
|
- value: "JOURNALIST"
|
|
- value: "INTERNAL_STAFF"
|
|
- value: "GOVERNMENT_INSPECTOR"
|
|
|
|
observer_name:
|
|
slot_uri: prov:wasAssociatedWith
|
|
description: |
|
|
Name of the individual or team who made this observation.
|
|
|
|
May be anonymized for whistleblowers or confidential sources.
|
|
range: string
|
|
examples:
|
|
- value: "Maria van der Berg"
|
|
- value: "Collections Management Team"
|
|
- value: "Anonymous (confidential source)"
|
|
|
|
observer_affiliation:
|
|
slot_uri: prov:actedOnBehalfOf
|
|
description: |
|
|
Organization the observer represents or works for.
|
|
|
|
For journalists: newspaper/media outlet.
|
|
For inspectors: government agency.
|
|
For consultants: consulting firm.
|
|
|
|
PROV-O: actedOnBehalfOf indicates delegated authority.
|
|
range: string
|
|
examples:
|
|
- value: "De Volkskrant"
|
|
- value: "Rijksdienst voor het Cultureel Erfgoed"
|
|
- value: "ABC Conservation Consultants"
|
|
|
|
is_official_assessment:
|
|
slot_uri: prov:wasAttributedTo
|
|
description: |
|
|
Whether this is an official institutional assessment or external observation.
|
|
|
|
TRUE = Official self-assessment or authorized inspection.
|
|
FALSE = External/investigative observation not sanctioned by institution.
|
|
|
|
**Important for interpretation**: Official assessments represent what
|
|
the institution claims; external observations may contradict this.
|
|
range: boolean
|
|
required: true
|
|
examples:
|
|
- value: true
|
|
description: "Official annual condition survey"
|
|
- value: false
|
|
description: "Journalist investigation"
|
|
|
|
overall_status:
|
|
slot_uri: premis:hasOutcome
|
|
description: |
|
|
Overall condition status based on this observation.
|
|
|
|
Aggregate assessment across all categories observed.
|
|
Individual category assessments may vary.
|
|
|
|
PREMIS: hasOutcome for preservation action results.
|
|
range: StorageConditionStatusEnum
|
|
required: true
|
|
examples:
|
|
- value: "CRITICAL"
|
|
description: "White ant infestation discovered"
|
|
- value: "GOOD"
|
|
description: "All parameters within acceptable ranges"
|
|
|
|
category_assessments:
|
|
slot_uri: schema:hasPart
|
|
description: |
|
|
Individual condition assessments for specific categories.
|
|
|
|
Each entry maps a StorageConditionCategoryEnum to a status and notes.
|
|
Not all categories need to be assessed in every observation.
|
|
|
|
Structure: List of category assessment objects with:
|
|
- category: StorageConditionCategoryEnum value
|
|
- status: StorageConditionStatusEnum value
|
|
- measurement: Optional measurement value
|
|
- notes: Optional category-specific notes
|
|
range: StorageConditionCategoryAssessment
|
|
multivalued: true
|
|
inlined_as_list: true
|
|
examples:
|
|
- value:
|
|
- category: "TEMPERATURE"
|
|
status: "GOOD"
|
|
measurement: "19.5°C"
|
|
- category: "PEST_CONTROL"
|
|
status: "CRITICAL"
|
|
notes: "White ants discovered in main depot area"
|
|
|
|
observation_notes:
|
|
slot_uri: dcterms:description
|
|
description: |
|
|
Free-text notes documenting the observation.
|
|
|
|
Include:
|
|
- What was observed
|
|
- Context of the observation
|
|
- Specific concerns or findings
|
|
- Recommendations if any
|
|
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:
|
|
slot_uri: prov:wasInfluencedBy
|
|
description: |
|
|
Links to supporting evidence for this observation.
|
|
|
|
May include:
|
|
- Photographs of conditions
|
|
- Published articles (for journalism)
|
|
- Official inspection reports
|
|
- Sensor data exports
|
|
- Video documentation
|
|
|
|
PROV-O: wasInfluencedBy for supporting sources.
|
|
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:
|
|
slot_uri: schema:value
|
|
description: |
|
|
Structured measurement data from sensors or instruments.
|
|
|
|
JSON-LD compatible structure for environmental readings:
|
|
- temperature_celsius
|
|
- humidity_percent
|
|
- lux_level
|
|
- particulate_count
|
|
- etc.
|
|
range: string
|
|
examples:
|
|
- value: '{"temperature_celsius": 23.5, "humidity_percent": 58, "threshold_exceeded": true}'
|
|
|
|
compliance_status:
|
|
slot_uri: dcterms:conformsTo
|
|
description: |
|
|
Compliance status with referenced standards.
|
|
|
|
Values: COMPLIANT, NON_COMPLIANT, PARTIALLY_COMPLIANT, NOT_ASSESSED
|
|
|
|
Dublin Core: conformsTo for standards compliance.
|
|
range: string
|
|
examples:
|
|
- value: "NON_COMPLIANT"
|
|
description: "Does not meet EN 16893:2018 requirements"
|
|
|
|
remediation_required:
|
|
slot_uri: schema:potentialAction
|
|
description: |
|
|
Whether remediation action is required based on this observation.
|
|
|
|
TRUE = Issues found that require corrective action.
|
|
FALSE = No immediate action needed.
|
|
range: boolean
|
|
examples:
|
|
- value: true
|
|
description: "Pest treatment required immediately"
|
|
|
|
remediation_notes:
|
|
slot_uri: schema:description
|
|
description: |
|
|
Notes on required or recommended remediation actions.
|
|
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:
|
|
slot_uri: schema:scheduledTime
|
|
description: |
|
|
Scheduled date for follow-up assessment.
|
|
|
|
May be set for:
|
|
- Verification of remediation
|
|
- Regular monitoring cycle
|
|
- Compliance re-inspection
|
|
range: date
|
|
examples:
|
|
- value: "2024-12-01"
|
|
description: "Post-treatment verification inspection"
|
|
|
|
confidence_score:
|
|
slot_uri: prov:value
|
|
description: |
|
|
Confidence score (0.0-1.0) in the accuracy of this observation.
|
|
|
|
Factors affecting confidence:
|
|
- Observer expertise (professionals higher)
|
|
- Access level (full access higher)
|
|
- Evidence quality (documentation higher)
|
|
- Measurement calibration (verified higher)
|
|
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"
|
|
|
|
supersedes:
|
|
slot_uri: prov:wasRevisionOf
|
|
description: |
|
|
Previous condition observation that this one supersedes or updates.
|
|
|
|
Use when a new observation corrects or updates a previous one
|
|
from the same observer type.
|
|
|
|
PROV-O: wasRevisionOf for updated versions.
|
|
range: StorageCondition
|
|
examples:
|
|
- value: "https://nde.nl/ontology/hc/condition/rijksmuseum-depot-2024-q1"
|
|
|
|
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:
|
|
condition_id: "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"
|
|
category_assessments:
|
|
- category: "PEST_CONTROL"
|
|
status: "CRITICAL"
|
|
notes: "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:
|
|
condition_id: "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"
|
|
category_assessments:
|
|
- category: "TEMPERATURE"
|
|
status: "EXCELLENT"
|
|
measurement: "18.5°C average"
|
|
- category: "HUMIDITY"
|
|
status: "GOOD"
|
|
measurement: "48% RH average"
|
|
- category: "PEST_CONTROL"
|
|
status: "GOOD"
|
|
notes: "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.90
|
|
description: "Official quarterly internal assessment"
|
|
|
|
# Helper class for category-level assessments
|
|
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:
|
|
- assessment_category
|
|
- category_status
|
|
- category_measurement
|
|
- category_notes
|
|
|
|
slot_usage:
|
|
assessment_category:
|
|
slot_uri: dcterms:type
|
|
description: Category being assessed (from StorageConditionCategoryEnum)
|
|
range: string
|
|
required: true
|
|
|
|
category_status:
|
|
slot_uri: premis:hasOutcome
|
|
description: Status for this specific category
|
|
range: StorageConditionStatusEnum
|
|
required: true
|
|
|
|
category_measurement:
|
|
slot_uri: schema:value
|
|
description: Measurement value if applicable (e.g., "19.5°C", "48% RH")
|
|
range: string
|
|
|
|
category_notes:
|
|
slot_uri: dcterms:description
|
|
description: Notes specific to this category assessment
|
|
range: string
|
|
|
|
# Slot definitions
|
|
slots:
|
|
condition_id:
|
|
description: Unique identifier for condition observation
|
|
range: uriorcurie
|
|
|
|
refers_to_storage:
|
|
description: Storage facility being assessed
|
|
range: Storage
|
|
|
|
# NOTE: observation_date imported from global slot ../slots/observation_date.yaml
|
|
|
|
observation_period:
|
|
description: Time period covered by observation
|
|
range: TimeSpan
|
|
|
|
observer_type:
|
|
description: Type of observer (from enum)
|
|
range: StorageObserverTypeEnum
|
|
|
|
observer_name:
|
|
description: Name of observer
|
|
range: string
|
|
|
|
observer_affiliation:
|
|
description: Observer's organizational affiliation
|
|
range: string
|
|
|
|
is_official_assessment:
|
|
description: Whether this is an official institutional assessment
|
|
range: boolean
|
|
|
|
overall_status:
|
|
description: Overall condition status
|
|
range: StorageConditionStatusEnum
|
|
|
|
category_assessments:
|
|
description: Individual category assessments
|
|
range: StorageConditionCategoryAssessment
|
|
multivalued: true
|
|
|
|
observation_notes:
|
|
description: Free-text observation notes
|
|
range: string
|
|
|
|
evidence_documentation:
|
|
description: Links to supporting evidence
|
|
range: uriorcurie
|
|
multivalued: true
|
|
|
|
measurement_data:
|
|
description: Structured measurement data
|
|
range: string
|
|
|
|
compliance_status:
|
|
description: Compliance status with standards
|
|
range: string
|
|
|
|
remediation_required:
|
|
description: Whether remediation is required
|
|
range: boolean
|
|
|
|
remediation_notes:
|
|
description: Notes on required remediation
|
|
range: string
|
|
|
|
follow_up_date:
|
|
description: Scheduled follow-up date
|
|
range: date
|
|
|
|
# NOTE: confidence_score imported from global slot ../slots/confidence_score.yaml
|
|
|
|
# Category assessment slots
|
|
assessment_category:
|
|
description: Category being assessed
|
|
range: string
|
|
|
|
category_status:
|
|
description: Status for this category
|
|
range: StorageConditionStatusEnum
|
|
|
|
category_measurement:
|
|
description: Measurement value for category
|
|
range: string
|
|
|
|
category_notes:
|
|
description: Notes for this category
|
|
range: string
|