All checks were successful
Deploy Frontend / build-and-deploy (push) Successful in 3m57s
- Remove inline slot definitions from 144 class files - Create 7 new centralized slot files in modules/slots/: - custodian_type_broader.yaml - custodian_type_narrower.yaml - custodian_type_related.yaml - definition.yaml - finding_aid_access_restriction.yaml - finding_aid_description.yaml - finding_aid_temporal_coverage.yaml - Add centralize_inline_slots.py automation script - Update manifest with new timestamp Rule 48: Class files must NOT define inline slots - all slots must be imported from modules/slots/ directory. Note: Pre-existing IdentifierFormat duplicate class definition (in Standard.yaml and IdentifierFormat.yaml) not addressed in this commit - requires separate schema refactor.
573 lines
20 KiB
YAML
573 lines
20 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
|
|
- ../slots/confidence_score
|
|
- ../slots/observation_date
|
|
- ../slots/follow_up_date
|
|
- ../slots/has_assessment_category
|
|
- ../slots/has_or_had_category_assessment
|
|
- ../slots/category_measurement
|
|
- ../slots/category_note
|
|
- ../slots/category_status
|
|
- ../slots/compliance_status
|
|
- ../slots/condition_id
|
|
- ../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/template_specificity
|
|
- ./SpecificityAnnotation
|
|
- ./TemplateSpecificityScores
|
|
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
|
|
- condition_id
|
|
- 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
|
|
- template_specificity
|
|
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
|
|
has_or_had_category_assessment:
|
|
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
|
|
note: White ants discovered in main depot area
|
|
observation_note:
|
|
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_note:
|
|
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
|
|
supersede:
|
|
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
|
|
specificity_annotation:
|
|
range: SpecificityAnnotation
|
|
inlined: true
|
|
template_specificity:
|
|
range: TemplateSpecificityScores
|
|
inlined: true
|
|
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
|
|
has_or_had_category_assessment:
|
|
- category: PEST_CONTROL
|
|
status: CRITICAL
|
|
note: 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
|
|
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
|
|
note: 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
|
|
- category_note
|
|
- category_status
|
|
- specificity_annotation
|
|
- template_specificity
|
|
slot_usage:
|
|
has_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_note:
|
|
slot_uri: dcterms:description
|
|
description: Notes specific to this category assessment
|
|
range: string
|
|
specificity_annotation:
|
|
range: SpecificityAnnotation
|
|
inlined: true
|
|
template_specificity:
|
|
range: TemplateSpecificityScores
|
|
inlined: true
|