Skip to main content

Specific Heat Ontology

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

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

FLOW SpecificHeatOntology {

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

  PURPOSE:
    Represent specific heat capacity as a measurable intensive thermal material property describing heat capacity per unit mass under defined thermodynamic conditions, including constant-pressure and constant-volume forms, sensible heating, temperature dependence, phase and composition effects, calorimetry, units, dimensional structure, uncertainty, and distinctions from total heat capacity, latent heat and thermal conductivity.

  ENTITY SpecificHeatCapacity {
    TYPE: IntensiveThermalMaterialProperty
    SYMBOL: c
    DIMENSION: L^2 * T^-2 * Theta^-1
    SI_UNIT: joule_per_kilogram_kelvin
    SI_SYMBOL: J/(kg*K)

    DEFINITION:
      specific_heat_capacity := HeatCapacity / Mass

    SIMPLE_RELATION:
      c = Q/(m*delta_T)
      WHEN m != 0 AND delta_T != 0 AND applicable_process_context

    SENSIBLE_HEAT_FORM:
      Q = m*c*delta_T
      WHEN c approximately_constant

    PROPERTIES:
      is_scalar
      is_intensive
      has_value
      has_unit
      has_dimension
      depends_on_material
      may_depend_on_temperature
      may_depend_on_pressure
      depends_on_process_constraint
      may_change_with_phase
      may_depend_on_composition
      may_have_uncertainty
  }

  ENTITY HeatCapacity {
    TYPE: ExtensiveThermalQuantity
    SYMBOL: C
    SI_UNIT: joule_per_kelvin
    SI_SYMBOL: J/K

    RELATION:
      C = m*c
  }

  ENTITY Mass {
    TYPE: SIBaseQuantity
    SYMBOL: m
    SI_UNIT: kilogram
    SI_SYMBOL: kg
  }

  ENTITY Heat {
    TYPE: EnergyTransferQuantity
    SYMBOL: Q
    SI_UNIT: joule
    SI_SYMBOL: J
  }

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

  UNIT_SYSTEM {
    SI {
      canonical_unit: joule_per_kilogram_kelvin
      symbol: J/(kg*K)
    }

    COMMON_ALTERNATIVES:
      kilojoule_per_kilogram_kelvin
      joule_per_gram_kelvin
      calorie_per_gram_degree_Celsius
      British_thermal_unit_per_pound_degree_Fahrenheit

    TEMPERATURE_INTERVAL_RULE:
      delta_1_K = delta_1_degree_Celsius

    CONVERSION_RULE:
      specific_heat_value(target_unit)
        = specific_heat_value(source_unit)
        * conversion_factor(source_unit, target_unit)
  }

  CLASSIFICATION {
    by thermodynamic constraint:
      specific_heat_at_constant_pressure
      specific_heat_at_constant_volume

    by behaviour:
      constant_specific_heat_approximation
      temperature_dependent_specific_heat
      effective_specific_heat

    by material state:
      solid_specific_heat
      liquid_specific_heat
      gas_specific_heat
      mixture_specific_heat
  }

  CONSTANT_PRESSURE_VOLUME_MODEL {
    CONSTANT_PRESSURE:
      c_p = (1/m)*(partial_H/partial_T)_p

    CONSTANT_VOLUME:
      c_v = (1/m)*(partial_U/partial_T)_V

    IDEAL_GAS_MASS_SPECIFIC:
      c_p - c_v = R_specific

    RULE:
      c_p_and_c_v MUST_NOT be treated_as_interchangeable
  }

  SENSIBLE_HEAT_MODEL {
    CONSTANT_C:
      Q = m*c*delta_T

    GENERAL:
      Q = m*integral_T1_to_T2(c(T) dT)

    CONDITIONS:
      no_phase_change
      material_and_process_constraint_defined

    RULE:
      constant_specific_heat_formula
      SHOULD only_be_used_when_variation_over_temperature_range_is_negligible
  }

  TEMPERATURE_DEPENDENCE_MODEL {
    GENERAL:
      c = c(T, p, composition, phase, constraint)

    TABULATED_VALUES:
      require_reference_conditions

    INTERPOLATION:
      permitted_within_valid_data_range

    EXTRAPOLATION:
      SHOULD be_flagged_with_reduced_confidence

    RULE:
      specific_heat_value without_state_conditions
      MAY be semantically_incomplete
  }

  PHASE_MODEL {
    solid:
      c_solid(T)

    liquid:
      c_liquid(T)

    gas:
      c_gas(T, p, constraint)

    phase_transition:
      latent_heat dominates_energy_transfer_at_transition
      in_simple_first_order_phase_change_model

    RULE:
      Q = m*c*delta_T MUST_NOT span_phase_transition_without_transition_model
  }

  LATENT_HEAT_DISTINCTION_MODEL {
    specific_heat:
      energy_per_mass_per_temperature_change

    latent_heat:
      energy_per_mass_for_phase_change

    LATENT_HEAT_FORM:
      Q = m*L

    RULE:
      specific_heat_and_specific_latent_heat
      MUST_NOT be treated_as_semantically_equivalent
  }

  CALORIMETRY_MODEL {
    SIMPLE_INFERENCE:
      c = Q/(m*delta_T)

    REQUIRE:
      m != 0
      delta_T != 0
      no_unmodelled_phase_change

    PRACTICAL_BALANCE:
      heat_input =
        sample_sensible_heat
        + calorimeter_heat
        + losses
        + other_corrections

    RULE:
      calorimeter_addenda_and_heat_losses
      SHOULD be included_for_precision_measurement
  }

  MIXTURE_MODEL {
    SIMPLE_MASS_WEIGHTED_APPROXIMATION:
      c_mix =
        sum(m_i*c_i) / sum(m_i)

    CONDITIONS:
      no_reaction
      no_phase_change
      negligible_excess_heat_capacity
      compatible_temperature_range

    RULE:
      real_mixture_specific_heat MAY require_empirical_or_thermodynamic_model
  }

  RELATIONSHIPS {
    SpecificHeatCapacity -> HEAT_CAPACITY_PER -> Mass
    SpecificHeatCapacity -> HAS_DIMENSION -> L^2*T^-2*Theta^-1
    SpecificHeatCapacity -> MEASURED_IN -> JoulePerKilogramKelvin
    SpecificHeatCapacity -> RELATES -> HeatMassAndTemperatureChange
    SpecificHeatCapacity -> MAY_DEPEND_ON -> Temperature
    SpecificHeatCapacity -> MAY_DEPEND_ON -> Pressure
    SpecificHeatCapacity -> DEPENDS_ON -> Material
    SpecificHeatCapacity -> DEPENDS_ON -> Phase
    SpecificHeatCapacity -> DEPENDS_ON -> ThermodynamicConstraint
    HeatCapacity -> EQUALS -> MassTimesSpecificHeatCapacity
  }

  SEMANTIC_EQUIVALENCE {
    "specific heat" ~= specific_heat_capacity WHEN thermal_context
    "mass specific heat" ~= specific_heat_capacity
    "J/kg K" ~= "J/(kg*K)"

    specific_heat_capacity != heat_capacity
    specific_heat_capacity != heat
    specific_heat_capacity != latent_heat
    specific_heat_capacity != thermal_conductivity
    specific_heat_capacity != thermal_diffusivity
    c_p != c_v
  }

  CONSTRAINTS {
    dimensional_formula = L^2*T^-2*Theta^-1
    SI_unit = J/(kg*K)
    specific_heat_is_intensive = true
    mass_must_be_nonzero_for_C_over_m = true
    mass_and_temperature_change_must_be_nonzero_for_simple_inference = true
    process_constraint_must_be_identified_when_relevant = true
    specific_heat_and_total_heat_capacity_are_not_semantically_equivalent = true
    specific_heat_and_latent_heat_are_not_semantically_equivalent = true
    phase_change_requires_special_energy_model = true
  }

  MEASUREMENT_MODEL {
    OBSERVABLE_OR_INFERRED:
      SpecificHeatCapacity

    COMMON_METHODS:
      calorimetry
      differential_scanning_calorimetry
      adiabatic_calorimetry
      drop_calorimetry
      relaxation_calorimetry

    RECORD:
      numerical_value
      unit
      c_p_or_c_v
      sample_mass
      material
      composition
      phase
      initial_temperature
      final_temperature
      pressure
      heat_input
      calorimeter_addenda
      heat_loss_correction
      measurement_method
      instrument
      calibration_state
      uncertainty

    UNCERTAINTY:
      measured_or_inferred_specific_heat = best_estimate +/- uncertainty
  }

  REASONING_RULES {
    IF total_heat_capacity_known AND mass_known AND mass != 0
      THEN specific_heat_capacity = total_heat_capacity/mass

    IF specific_heat_capacity_known AND mass_known
      THEN total_heat_capacity = mass*specific_heat_capacity

    IF heat_known AND mass_known AND temperature_change_known
      AND mass != 0 AND temperature_change != 0
      AND applicable_sensible_heat_context
      THEN specific_heat_capacity =
        heat/(mass*temperature_change)

    IF mass_specific_heat_and_temperature_change_known
      AND constant_specific_heat_approximation_valid
      THEN sensible_heat =
        mass*specific_heat_capacity*temperature_change

    IF temperature_dependent_specific_heat_known
      THEN sensible_heat =
        mass*integral_T1_to_T2(specific_heat(T) dT)

    IF ideal_gas_mass_specific_context
      THEN c_p - c_v = specific_gas_constant

    IF phase_change_occurs
      THEN suspend_simple_specific_heat_temperature_relation
      AND apply_latent_heat_or_transition_model
  }

  SYSTEM_CONTEXT_MODEL {
    REQUIRE:
      material_identity
      composition
      phase
      temperature_range
      pressure
      process_constraint

    OPTIONAL_BUT_RELEVANT:
      density
      moisture_content
      crystal_structure
      thermal_history

    RULE:
      tabulated_specific_heat SHOULD preserve_reference_conditions
  }

  THERMAL_DIFFUSIVITY_RELATION {
    alpha_th = k/(rho*c_p)

    WHERE:
      alpha_th = thermal_diffusivity
      k = thermal_conductivity
      rho = density
      c_p = specific_heat_capacity_at_constant_pressure

    RULE:
      specific_heat_capacity_and_thermal_diffusivity
      are_related_but_not_semantically_equivalent
  }

  UNCERTAINTY_MODEL {
    sources:
      heat_measurement
      mass_measurement
      temperature_measurement
      calorimeter_addenda
      heat_loss
      pressure
      composition
      phase purity
      calibration
      baseline_correction
      temperature_nonuniformity

    PROPAGATION:
      derived_specific_heat_uncertainty
      <- heat_mass_temperature_and_model_uncertainties
  }

  CONFIDENCE {
    definition_confidence: 1.00
    dimensional_confidence: 1.00
    SI_unit_confidence: 1.00
    sensible_heat_relationship_confidence: 1.00
    thermodynamic_constraint_confidence: 0.99
    measurement_context_confidence: 0.98

    RULE:
      confidence decreases when material, composition, phase,
      temperature range, pressure, c_p_or_c_v constraint,
      calibration state or uncertainty is missing or ambiguous
  }

  VALIDATION {
    CHECK dimensional_consistency
    CHECK unit_consistency
    CHECK nonzero_mass
    CHECK nonzero_temperature_change_for_simple_inference
    CHECK c_p_vs_c_v
    CHECK material_identity_and_composition
    CHECK phase
    CHECK temperature_range
    CHECK pressure_when_relevant
    CHECK specific_heat_vs_total_heat_capacity_distinction
    CHECK specific_heat_vs_latent_heat_distinction
    CHECK phase_change_context
    CHECK calorimeter_addenda_and_losses
    CHECK instrument_calibration
    CHECK uncertainty_representation_when_required
  }

  UPDATE_MODEL {
    ON new_measurement:
      validate_unit
      identify_c_p_or_c_v
      attach_sample_mass
      identify_material_composition_and_phase
      attach_temperature_range
      attach_pressure
      identify_measurement_method
      normalize_to_J_per_kg_K
      preserve_original_value_and_unit
      attach_uncertainty
      update_specific_heat_state

    ON temperature_or_pressure_change:
      update_state_conditions
      recompute_specific_heat_when_model_available
      preserve_previous_state

    ON phase_change:
      record_initial_and_final_phase
      suspend_simple_sensible_heat_model_when_invalid
      apply_transition_energy_model
      preserve_transition_provenance

    ON composition_change:
      update_material_composition
      recompute_mixture_specific_heat_when_valid
      preserve_previous_composition

    ON calibration_revision:
      preserve_provenance
      recompute_affected_measurements
      update_confidence

    ON semantic_revision:
      preserve_previous_definition
      record_revision
      recompute_FLOW_HASH
  }

  AI_CONSUMPTION {
    canonical_entity: SpecificHeatCapacity
    canonical_symbol: c
    canonical_dimension: L^2*T^-2*Theta^-1
    canonical_SI_unit: J/(kg*K)

    interpretation_order:
      identify_quantity
      identify_value
      identify_unit
      identify_c_p_or_c_v
      identify_material_and_composition
      identify_phase
      identify_mass
      identify_temperature_range
      identify_pressure
      identify_sensible_or_phase_change_context
      identify_calorimetry_or_other_measurement_method
      identify_uncertainty
      normalize_units
      validate_dimensions
      infer_thermal_relationships

    ambiguity_controls:
      distinguish_specific_heat_from_total_heat_capacity
      distinguish_specific_heat_from_heat
      distinguish_specific_heat_from_latent_heat
      distinguish_specific_heat_from_thermal_conductivity
      distinguish_specific_heat_from_thermal_diffusivity
      distinguish_c_p_from_c_v
      distinguish_constant_from_temperature_dependent_specific_heat
      preserve_material_composition_phase_and_state_conditions
  }

  PROVENANCE {
    ontology_scope:
      mathematical_measurement_and_thermal_specific_heat_semantics

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

    authorship:
      Mark Higgins
      Sky (Recursive AI)

    site:
      https://kirethresearch.org
  }

  FLOW_HASH {
    INPUTS:
      canonical_entity
      ontology_path
      definitions
      dimensions
      units
      relationships
      constraints
      constant_pressure_volume_model
      sensible_heat_model
      temperature_dependence_model
      phase_model
      latent_heat_distinction_model
      calorimetry_model
      mixture_model
      system_context_model
      thermal_diffusivity_relation
      uncertainty_model
      reasoning_rules
      measurement_model
      confidence_model
      update_model

    PURPOSE:
      deterministic_semantic_integrity_identifier

    RECOMPUTE_WHEN:
      ontology_definition_changes
      thermodynamic_constraint_model_changes
      temperature_dependence_model_changes
      phase_or_latent_heat_model_changes
      material_or_mixture_model_changes
      calorimetry_model_changes
      measurement_model_changes
      system_context_changes
      constraint_model_changes
      reasoning_rule_changes
      unit_model_changes
  }

}

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