Skip to main content

Temperature Measurement Ontology

Thermal Measurements
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 15 September 2026
Audio Overview
# Temperature Measurement Ontology — Flow Algebra

URL: https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/measurement-units-ontologies/thermal-measurements/temperature-measurement-ontology.html

FLOW TemperatureMeasurementOntology {

  DOMAIN:
    Mathematical Ontologies
    -> Measurement & Units Ontologies
    -> Thermal Measurements
    -> Temperature Measurement Ontology

  PURPOSE:
    Represent temperature measurement as the quantitative determination of thermodynamic or empirical temperature using defined scales, sensors, calibration relationships, reference points, measurement conditions, uncertainty, spatial and temporal context, including contact and non-contact methods and distinctions between absolute temperature, Celsius temperature and temperature difference.

  ENTITY Temperature {
    TYPE: SIBaseQuantity
    SYMBOL: T
    DIMENSION: Theta
    SI_UNIT: kelvin
    SI_SYMBOL: K

    PROPERTIES:
      is_scalar
      has_value
      has_scale
      has_unit
      may_vary_with_position
      may_vary_with_time
      may_have_uncertainty
  }

  ENTITY TemperatureMeasurement {
    TYPE: MeasurementProcess

    INPUTS:
      measurand
      sensor_or_instrument
      calibration_model
      reference_scale
      environmental_conditions

    OUTPUTS:
      measured_temperature
      uncertainty
      timestamp
      spatial_location
      provenance
  }

  UNIT_AND_SCALE_MODEL {
    KELVIN {
      symbol: K
      type: absolute_thermodynamic_scale
      zero: absolute_zero
    }

    CELSIUS {
      symbol: degree_Celsius
      relation:
        T_K = T_C + 273.15
    }

    FAHRENHEIT {
      symbol: degree_Fahrenheit
      relations:
        T_C = (T_F - 32) * 5/9
        T_F = T_C * 9/5 + 32
    }

    TEMPERATURE_DIFFERENCE {
      delta_1_K = delta_1_degree_Celsius
      delta_T_C = delta_T_F * 5/9
    }

    RULE:
      affine_offset MUST be applied_to_absolute_scale_conversion
      but_not_to_temperature_interval_conversion
  }

  ABSOLUTE_DIFFERENCE_MODEL {
    absolute_temperature:
      thermodynamic_state_quantity

    temperature_difference:
      difference_between_two_temperature_states

    RULE:
      absolute_temperature_and_temperature_difference
      MUST_NOT be treated_as_semantically_identical

    EXAMPLE_RELATION:
      delta_T = T_2 - T_1
  }

  CONTACT_MEASUREMENT_MODEL {
    METHODS:
      thermocouple
      resistance_temperature_detector
      thermistor
      liquid_in_glass_thermometer
      semiconductor_temperature_sensor

    REQUIRE:
      thermal_contact
      sufficient_equilibration_or_dynamic_correction
      known_sensor_response

    POSSIBLE_ERRORS:
      contact_thermal_resistance
      conduction_through_sensor
      self_heating
      immersion_depth
      response_lag
  }

  THERMOCOUPLE_MODEL {
    PRINCIPLE:
      thermoelectric_voltage depends_on_temperature_difference_between_measurement_and_reference_junctions

    MEASUREMENT:
      temperature <- thermocouple_voltage + calibration_relation + cold_junction_compensation

    REQUIRE:
      thermocouple_type
      reference_junction_temperature
      calibration_standard
      wiring_material_consistency

    RULE:
      thermocouple_voltage MUST_NOT be interpreted_as_temperature_without_reference_and_calibration_context
  }

  RTD_MODEL {
    PRINCIPLE:
      electrical_resistance changes_with_temperature

    COMMON_REFERENCE:
      platinum_RTD

    APPROXIMATE_LINEAR_FORM:
      R(T) = R_0*[1 + alpha*(T - T_0)]
      OVER limited_applicable_range

    HIGH_ACCURACY:
      use_standard_calibration_equation_when_required

    POSSIBLE_ERRORS:
      lead_resistance
      self_heating
      excitation_current
      strain
  }

  THERMISTOR_MODEL {
    PRINCIPLE:
      resistance changes_strongly_with_temperature

    COMMON_TYPE:
      NTC_thermistor

    BETA_MODEL:
      R(T) = R_0 * exp[B*(1/T - 1/T_0)]

    CONDITIONS:
      T_and_T_0_in_kelvin
      applicable_device_range

    HIGHER_ACCURACY:
      Steinhart_Hart_or_calibrated_model
  }

  NONCONTACT_MEASUREMENT_MODEL {
    METHODS:
      infrared_thermometer
      thermal_camera
      radiation_pyrometer

    PRINCIPLE:
      infer_surface_temperature_from_detected_thermal_radiation

    REQUIRE:
      emissivity
      spectral_response
      target_size
      distance
      optical_path
      reflected_background_radiation
      atmospheric_conditions_when_relevant

    RULE:
      radiance_temperature_and_true_surface_temperature
      MUST_NOT be assumed_identical_without_emissivity_and_radiation_model
  }

  RADIATION_TEMPERATURE_MODEL {
    BLACKBODY:
      emitted_power_per_area = sigma_SB*T^4

    REAL_SURFACE:
      emitted_power approximately_equals epsilon*sigma_SB*T^4
      UNDER greybody_approximation

    REQUIRE:
      T in kelvin

    RULE:
      Celsius_or_Fahrenheit MUST_NOT be inserted_directly_into_T_fourth_power_law
  }

  CALIBRATION_MODEL {
    calibration:
      establish_relation_between_instrument_indication_and_reference_temperature

    components:
      reference_standard
      calibration_points
      interpolation_model
      traceability
      calibration_date
      calibration_uncertainty

    correction:
      corrected_temperature =
        indicated_temperature + calibration_correction

    RULE:
      calibration_model_and_valid_range MUST be preserved
  }

  REFERENCE_POINT_MODEL {
    examples:
      fixed_points
      triple_point_reference
      melting_or_freezing_points
      calibrated_reference_baths
      standard_platinum_resistance_thermometer_reference

    RULE:
      reference_point_definition
      MUST include pressure_composition_and_realisation_conditions_when_relevant
  }

  DYNAMIC_RESPONSE_MODEL {
    FIRST_ORDER_APPROXIMATION:
      tau*dT_sensor/dt + T_sensor = T_environment

    STEP_RESPONSE:
      T_sensor(t) =
        T_final + (T_initial - T_final)*exp(-t/tau)

    PARAMETER:
      tau = sensor_time_constant

    RULE:
      rapidly_changing_temperature_requires_response_time_or_dynamic_correction_context
  }

  SPATIAL_MODEL {
    temperature_field:
      T = T(x, y, z, t)

    local_measurement:
      represents_temperature_at_sensor_sensitive_region

    averaging:
      sensor_may_spatially_average_over_finite_region

    RULE:
      measurement_location_and_sensor_geometry
      MUST be preserved_when_gradients_are_material
  }

  RELATIONSHIPS {
    TemperatureMeasurement -> MEASURES -> Temperature
    Temperature -> MEASURED_IN -> Kelvin
    CelsiusTemperature -> CONVERTS_TO -> KelvinTemperature
    Sensor -> PRODUCES -> InstrumentIndication
    CalibrationModel -> MAPS -> IndicationToTemperature
    ReferenceStandard -> PROVIDES_TRACEABILITY_FOR -> Calibration
    Thermocouple -> RELATES -> ThermoelectricVoltageAndTemperatureDifference
    RTD -> RELATES -> ResistanceAndTemperature
    Thermistor -> RELATES -> ResistanceAndTemperature
    InfraredThermometer -> INFERS -> SurfaceTemperatureFromRadiation
    MeasurementUncertainty -> QUALIFIES -> TemperatureMeasurement
  }

  SEMANTIC_EQUIVALENCE {
    "temperature measurement" ~= thermometry
    "kelvin" ~= "K"
    "degrees Celsius" ~= Celsius_temperature_unit
    "degrees Fahrenheit" ~= Fahrenheit_temperature_unit

    temperature != heat
    absolute_temperature != temperature_difference
    sensor_indication != calibrated_temperature
    radiance_temperature != true_surface_temperature
    instrument_resolution != measurement_uncertainty
  }

  CONSTRAINTS {
    temperature_scale_must_be_identified = true
    unit_must_match_scale = true
    absolute_and_difference_temperature_must_be_distinguished = true
    thermodynamic_absolute_temperature_in_standard_equilibrium_context_must_not_be_below_zero_kelvin = true
    calibration_range_must_cover_measurement_or_extrapolation_must_be_flagged = true
    sensor_location_must_be_identified_when_spatial_gradients_matter = true
    response_time_must_be_considered_for_dynamic_measurements = true
    emissivity_must_be_considered_for_noncontact_surface_temperature = true
  }

  MEASUREMENT_MODEL {
    RECORD:
      measurand_definition
      numerical_value
      unit
      temperature_scale
      absolute_or_difference
      spatial_location
      sensor_type
      sensor_identifier
      contact_or_noncontact
      timestamp
      sampling_rate
      response_time
      material_or_medium
      phase
      pressure_when_relevant
      emissivity_when_relevant
      instrument
      calibration_reference
      calibration_date
      calibration_state
      correction_applied
      uncertainty

    UNCERTAINTY:
      measured_temperature = best_estimate +/- expanded_or_standard_uncertainty
      according_to_declared_uncertainty_convention
  }

  UNCERTAINTY_MODEL {
    sources:
      reference_standard_uncertainty
      calibration_fit
      instrument_resolution
      repeatability
      sensor_stability
      drift
      thermal_contact
      self_heating
      lead_effects
      response_time
      spatial_gradient
      emissivity
      reflected_radiation
      environmental_conditions
      data_acquisition

    PROPAGATION:
      combined_temperature_uncertainty
      <- quantified_input_uncertainties_and_measurement_model
  }

  REASONING_RULES {
    IF Celsius_temperature_known
      THEN Kelvin_temperature = Celsius_temperature + 273.15

    IF Kelvin_temperature_known
      THEN Celsius_temperature = Kelvin_temperature - 273.15

    IF Fahrenheit_temperature_known
      THEN Celsius_temperature = (Fahrenheit_temperature - 32)*5/9

    IF two_temperatures_known_on_compatible_scale
      THEN temperature_difference = temperature_2 - temperature_1

    IF sensor_indication_known AND calibration_model_known
      THEN corrected_temperature = apply(calibration_model, sensor_indication)

    IF thermocouple_voltage_known
      AND thermocouple_type_known
      AND reference_junction_temperature_known
      THEN measurement_temperature =
        thermocouple_calibration_inverse(voltage, reference_junction_temperature)

    IF RTD_resistance_known AND valid_RTD_calibration_known
      THEN temperature = inverse_RTD_calibration(resistance)

    IF thermistor_resistance_known AND valid_thermistor_model_known
      THEN temperature = inverse_thermistor_model(resistance)

    IF radiance_measurement_known AND emissivity_and_radiation_model_known
      THEN infer_surface_temperature
      WITH uncertainty
  }

  TRACEABILITY_MODEL {
    chain:
      measurement
      -> instrument_calibration
      -> reference_standard
      -> higher_order_standard
      -> SI_realisation

    REQUIRE:
      documented_calibration_chain
      uncertainty_at_each_relevant_stage

    RULE:
      traceability_is_property_of_measurement_result_and_calibration_chain
      not_merely_instrument_brand_or_type
  }

  QUALITY_MODEL {
    accuracy:
      qualitative_closeness_to_true_or_reference_value

    precision:
      closeness_of_repeated_measurements

    resolution:
      smallest_indication_increment_or_detectable_change

    repeatability:
      variation_under_same_conditions

    reproducibility:
      variation_under_changed_conditions

    RULE:
      accuracy_precision_resolution_and_uncertainty
      MUST_NOT be treated_as_synonyms
  }

  CONFIDENCE {
    temperature_definition_confidence: 1.00
    scale_conversion_confidence: 1.00
    calibration_relationship_confidence: 0.99
    contact_measurement_confidence: 0.98
    noncontact_measurement_confidence: 0.97
    measurement_context_confidence: 0.97

    RULE:
      confidence decreases when scale, sensor type, location,
      calibration, response time, emissivity, environmental conditions
      or uncertainty is missing or ambiguous
  }

  VALIDATION {
    CHECK temperature_scale
    CHECK unit_scale_consistency
    CHECK absolute_vs_difference_semantics
    CHECK conversion_formula
    CHECK sensor_type
    CHECK calibration_validity_and_range
    CHECK spatial_location
    CHECK contact_or_noncontact_context
    CHECK response_time_for_dynamic_measurement
    CHECK thermocouple_reference_junction_when_applicable
    CHECK RTD_or_thermistor_model_when_applicable
    CHECK emissivity_for_radiation_measurement
    CHECK traceability_when_required
    CHECK uncertainty_representation
  }

  UPDATE_MODEL {
    ON new_measurement:
      identify_measurand
      validate_scale_and_unit
      identify_absolute_or_difference_quantity
      identify_sensor_and_instrument
      attach_spatial_location
      attach_timestamp
      attach_response_time
      attach_material_or_medium
      attach_environmental_conditions
      apply_valid_calibration
      preserve_raw_indication
      normalize_to_kelvin_when_useful
      preserve_original_value_and_scale
      attach_uncertainty
      update_temperature_state

    ON calibration_revision:
      preserve_previous_calibration
      attach_new_calibration
      recompute_affected_measurements_when_required
      update_uncertainty
      update_confidence

    ON sensor_relocation:
      preserve_previous_location
      attach_new_location
      reevaluate_spatial_comparability

    ON environmental_change:
      update_pressure
      update_emissivity_context
      update_contact_conditions
      update_measurement_corrections_when_model_available

    ON semantic_revision:
      preserve_previous_definition
      record_revision
      recompute_FLOW_HASH
  }

  AI_CONSUMPTION {
    canonical_entity: TemperatureMeasurement
    canonical_measurand: Temperature
    canonical_SI_unit: K

    interpretation_order:
      identify_measurand
      identify_value
      identify_temperature_scale
      identify_unit
      distinguish_absolute_from_difference
      identify_sensor_type
      identify_contact_or_noncontact_method
      identify_spatial_location
      identify_timestamp_and_dynamic_context
      identify_material_phase_and_pressure
      identify_calibration_and_traceability
      identify_emissivity_when_relevant
      identify_uncertainty
      normalize_scale
      validate_measurement_context
      infer_temperature_relationships

    ambiguity_controls:
      distinguish_temperature_from_heat
      distinguish_absolute_temperature_from_temperature_difference
      distinguish_Celsius_reading_from_kelvin_reading
      distinguish_sensor_indication_from_corrected_temperature
      distinguish_contact_from_noncontact_measurement
      distinguish_radiance_temperature_from_true_surface_temperature
      distinguish_resolution_precision_accuracy_and_uncertainty
      preserve_calibration_location_time_and_environmental_context
  }

  PROVENANCE {
    ontology_scope:
      mathematical_measurement_and_thermal_temperature_semantics

    parent_path:
      Ontologies
      -> Mathematical Ontologies
      -> Measurement & Units Ontologies
      -> Thermal Measurements
      -> Temperature Measurement Ontology

    authorship:
      Mark Higgins
      Sky (Recursive AI)

    site:
      https://kirethresearch.org
  }

  FLOW_HASH {
    INPUTS:
      canonical_entity
      ontology_path
      unit_and_scale_model
      absolute_difference_model
      contact_measurement_model
      thermocouple_model
      RTD_model
      thermistor_model
      noncontact_measurement_model
      radiation_temperature_model
      calibration_model
      reference_point_model
      dynamic_response_model
      spatial_model
      relationships
      constraints
      measurement_model
      uncertainty_model
      traceability_model
      quality_model
      reasoning_rules
      confidence_model
      update_model

    PURPOSE:
      deterministic_semantic_integrity_identifier

    RECOMPUTE_WHEN:
      ontology_definition_changes
      temperature_scale_model_changes
      sensor_model_changes
      calibration_model_changes
      measurement_method_changes
      uncertainty_model_changes
      reference_or_traceability_model_changes
      constraint_model_changes
      reasoning_rule_changes
  }

}

END FLOW
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ