glam/schemas/20251121/linkml/modules/classes/TemperatureDeviation.yaml
2026-01-17 00:08:39 +01:00

262 lines
8.9 KiB
YAML

# TemperatureDeviation - Structured temperature tolerance/deviation specification
# Created per slot_fixes.yaml migration for: temperature_tolerance
# Migration: temperature_tolerance → allows_or_allowed + TemperatureDeviation
# Creation date: 2026-01-16
# Rule 53: No bespoke slots - use generic, reusable patterns
# Rule 56: Semantic consistency over simplicity
id: https://nde.nl/ontology/hc/class/TemperatureDeviation
name: TemperatureDeviation
title: Temperature Deviation Class
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
qudt: http://qudt.org/schema/qudt/
brick: https://brickschema.org/schema/Brick#
schema: http://schema.org/
crm: http://www.cidoc-crm.org/cidoc-crm/
wd: http://www.wikidata.org/entity/
default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_quantity
- ../slots/has_or_had_measurement_unit
- ../slots/has_or_had_description
- ../slots/has_or_had_label
- ./Quantity
- ./MeasureUnit
classes:
TemperatureDeviation:
class_uri: qudt:Tolerance
description: >-
Structured specification of allowed temperature deviation/tolerance.
**DEFINITION**:
Represents the acceptable range of temperature variation from a setpoint,
typically expressed as ±X degrees Celsius (e.g., ±2°C).
**ONTOLOGY MAPPING**:
- class_uri: qudt:Tolerance (QUDT tolerance concept)
- close_mapping: brick:Temperature_Deadband (building automation)
**ISO STANDARD REFERENCE VALUES**:
| Standard | Context | Typical Tolerance |
|----------|---------|-------------------|
| ISO 11799:2015 | Archives | ±2°C daily |
| ISO 18911:2010 | Cold/Frozen Storage | ±2°C |
| BS 4971:2017 | UK Sensitive Materials | ±1°C |
| EN 16893:2018 | Museums | ±2°C recommended |
**PRESERVATION CONTEXT**:
Temperature fluctuations cause dimensional changes in hygroscopic materials
(paper, parchment, leather, textiles). Repeated cycling leads to mechanical
fatigue and cumulative damage. Tighter tolerances are critical for mixed
media objects (e.g., oil paintings on canvas).
**WHY NOT JUST FLOAT?**
Simple float fields like `temperature_tolerance: 2.0` lose important context:
- What's the unit? (Celsius? Fahrenheit?)
- Is this plus/minus or just plus?
- What standard is this based on?
- When was this tolerance established?
**MIGRATION NOTE**:
This class replaces the bespoke `temperature_tolerance` slot (float range).
Used via the generic `allows_or_allowed` slot per Rule 53/56.
**EXAMPLE**:
```yaml
EnvironmentalZone:
allows_or_allowed:
- deviation_value: 2.0
deviation_direction: PLUS_MINUS
has_or_had_measurement_unit:
has_or_had_type: DEGREE_CELSIUS
has_or_had_symbol: "°C"
iso_standard_reference: "ISO 11799:2015"
```
exact_mappings:
- qudt:Tolerance
close_mappings:
- brick:Temperature_Deadband
- crm:E54_Dimension
related_mappings:
- wd:Q11466 # temperature
- schema:additionalProperty
slots:
- has_or_had_quantity
- has_or_had_measurement_unit
- has_or_had_description
- has_or_had_label
attributes:
deviation_value:
range: float
required: true
minimum_value: 0.5
maximum_value: 5.0
description: >-
Numeric value of the allowed deviation (e.g., 2.0 for ±2°C).
Typical ranges:
- 0.5-1.0: Precision cold storage, sensitive materials
- 1.0-2.0: Standard archive/museum storage
- 2.0-3.0: General storage, less sensitive materials
examples:
- value: 2.0
description: Standard tolerance for archive storage (ISO 11799)
- value: 1.0
description: Tight tolerance for sensitive materials (BS 4971)
- value: 0.5
description: Very tight tolerance for precision cold storage
deviation_direction:
range: DeviationDirectionEnum
required: false
ifabsent: 'string(PLUS_MINUS)'
description: >-
Direction of deviation.
- PLUS_MINUS: Symmetric tolerance (±2°C) - most common
- PLUS: Only above target allowed (+2°C)
- MINUS: Only below target allowed (-2°C)
examples:
- value: PLUS_MINUS
description: Symmetric tolerance (±2°C)
- value: PLUS
description: Asymmetric - only positive deviation allowed
iso_standard_reference:
range: string
required: false
description: >-
ISO or other standard this tolerance is based on.
examples:
- value: "ISO 11799:2015"
description: Archive storage standard
- value: "ISO 18911:2010"
description: Cold storage standard
- value: "BS 4971:2017"
description: UK conservation standard
slot_usage:
has_or_had_quantity:
range: Quantity
required: false
inlined: true
description: >-
Alternative structured representation using Quantity class.
For complex scenarios requiring full provenance tracking.
examples:
- value:
quantity_value: 2.0
quantity_type: TEMPERATURE_TOLERANCE
has_or_had_measurement_unit:
has_or_had_type: DEGREE_CELSIUS
has_or_had_symbol: "°C"
description: Structured quantity representation
has_or_had_measurement_unit:
range: MeasureUnit
required: false
inlined: true
description: >-
Unit of measurement (typically degree Celsius).
If not specified, defaults to Celsius per ISO standards.
examples:
- value:
has_or_had_type: DEGREE_CELSIUS
has_or_had_symbol: "°C"
description: Celsius unit (default)
has_or_had_description:
range: string
required: false
description: >-
Additional notes about this tolerance setting.
examples:
- value: "Tighter tolerance required for daguerreotype collection"
has_or_had_label:
range: string
required: false
description: >-
Human-readable label for this tolerance specification.
examples:
- value: "Archive Standard Tolerance"
- value: "Cold Storage Precision Tolerance"
comments:
- MIGRATED from temperature_tolerance slot (float) per Rule 53/56
- Used via allows_or_allowed slot for temporal flexibility
- Companion to humidity_tolerance migration (HumidityDeviation class)
- Setpoint class already handles target values - this handles deviations
see_also:
- https://www.iso.org/standard/63810.html # ISO 11799
- https://www.iso.org/standard/46602.html # ISO 18911
- http://qudt.org/schema/qudt/Tolerance
annotations:
specificity_score: "0.65"
specificity_rationale: "Specialized for environmental control in storage facilities"
qudt_unit: "unit:DEG_C"
ucum_code: "Cel"
iso_reference: "ISO 11799:2015, ISO 18911:2010, BS 4971:2017"
preservation_parameter: "true"
examples:
- value:
deviation_value: 2.0
deviation_direction: PLUS_MINUS
has_or_had_measurement_unit:
has_or_had_type: DEGREE_CELSIUS
has_or_had_symbol: "°C"
iso_standard_reference: "ISO 11799:2015"
has_or_had_label: "Standard Archive Tolerance"
has_or_had_description: "Per ISO 11799:2015 for paper-based materials"
description: Standard archive storage tolerance (±2°C)
- value:
deviation_value: 1.0
deviation_direction: PLUS_MINUS
has_or_had_measurement_unit:
has_or_had_type: DEGREE_CELSIUS
has_or_had_symbol: "°C"
iso_standard_reference: "BS 4971:2017"
has_or_had_label: "Sensitive Materials Tolerance"
description: Tight tolerance for sensitive materials (±1°C)
- value:
deviation_value: 0.5
deviation_direction: PLUS_MINUS
iso_standard_reference: "ISO 18911:2010"
has_or_had_description: "Precision cold storage for film negatives"
description: Very tight tolerance for precision cold storage
enums:
DeviationDirectionEnum:
description: >-
Direction of allowed deviation from a setpoint.
permissible_values:
PLUS_MINUS:
description: Symmetric tolerance - deviation allowed in both directions (±)
PLUS:
description: Asymmetric - only positive deviation allowed (+)
MINUS:
description: Asymmetric - only negative deviation allowed (-)