Skip to main content

Molality Ontology

Chemical Measurements
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 16 September 2026
Audio Overview
# Molality Ontology — Flow Algebra

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

FLOW MolalityOntology {

  DOMAIN:
    Mathematical Ontologies
    -> Measurement & Units Ontologies
    -> Chemical Measurements
    -> Molality Ontology

  PURPOSE:
    Represent molality as a chemical composition quantity defined by the amount of a specified solute per unit mass of solvent, including SI units, solution preparation, conversion to and from molarity and mole fraction, temperature behaviour, colligative-property relationships, analytical measurement, calibration, uncertainty, and strict distinction from amount concentration, mass fraction and mass concentration.

  ENTITY Molality {
    TYPE: DerivedChemicalCompositionQuantity
    SYMBOL: b
    ALTERNATE_SYMBOL: m_molal
    DIMENSION: N * M^-1
    SI_UNIT: mole_per_kilogram
    SI_SYMBOL: mol/kg

    DEFINITION:
      molality := amount_of_solute / mass_of_solvent

    FORM:
      b_i = n_i/m_solvent

    PROPERTIES:
      is_scalar
      is_component_specific
      is_mass_based
      is_intensive
      depends_on_solvent_mass
      comparatively_insensitive_to_temperature_induced_volume_change
      may_depend_on_composition_definition
      may_have_uncertainty
  }

  ENTITY SoluteAmount {
    SYMBOL: n_i
    SI_UNIT: mole
    SI_SYMBOL: mol
  }

  ENTITY SolventMass {
    SYMBOL: m_solvent
    SI_UNIT: kilogram
    SI_SYMBOL: kg
  }

  ENTITY MolarMass {
    SYMBOL: M_i
    SI_UNIT: kilogram_per_mole
    SI_SYMBOL: kg/mol
  }

  UNIT_SYSTEM {
    SI {
      canonical_unit: mole_per_kilogram
      symbol: mol/kg
    }

    COMMON:
      mmol/kg
      micromol/kg

    CONVERSIONS:
      1 mmol/kg = 1e-3 mol/kg
      1 micromol/kg = 1e-6 mol/kg

    RULE:
      molality_denominator_is_mass_of_solvent_not_mass_of_solution
  }

  TERMINOLOGY_MODEL {
    "molality" ~= amount_of_solute_per_mass_of_solvent

    SYMBOL_AMBIGUITY:
      "m" MAY mean:
        mass
        metre
        molality_in_some_chemistry_notation

    RULE:
      symbol_m MUST be disambiguated_by_context

    RULE:
      molality_and_molarity MUST_NOT be confused_despite_similar_names
  }

  DEFINITION_MODEL {
    FORM:
      b = n_solute/m_solvent

    SOLUTE_AMOUNT:
      n_solute = b*m_solvent

    SOLVENT_MASS:
      m_solvent = n_solute/b
      WHEN b != 0

    REQUIRE:
      solute_identity
      solvent_identity
      solvent_mass != 0
  }

  MASS_PREPARATION_MODEL {
    FROM_SOLUTE_MASS:
      n_solute = m_solute/M_solute
      WHEN M_solute != 0

    MOLALITY:
      b =
        m_solute/(M_solute*m_solvent)

    REQUIRED_SOLUTE_MASS:
      m_solute =
        b_target*M_solute*m_solvent

    PURITY_CORRECTION:
      weighed_mass =
        required_pure_solute_mass/purity_fraction
      WHEN purity_fraction > 0

    RULE:
      solvent_mass MUST exclude_solute_mass
      unless_alternative_basis_explicitly_defined
  }

  TEMPERATURE_MODEL {
    PROPERTY:
      molality_uses_mass_denominator

    CONSEQUENCE:
      molality_is_not_directly_changed_by_thermal_expansion
      when_solute_and_solvent_masses_remain_constant

    RULE:
      molality_is_generally_less_temperature_sensitive_than_molarity
      but_chemical_state_and_equilibrium_properties_may_still_change_with_temperature
  }

  MOLARITY_DISTINCTION_MODEL {
    molality:
      b = n_solute/m_solvent

    molarity:
      c = n_solute/V_solution

    BASIS:
      molality -> solvent_mass
      molarity -> solution_volume

    RULE:
      molality != molarity
  }

  MOLARITY_CONVERSION_MODEL {
    FROM_MOLALITY_TO_MOLARITY:
      c =
        (rho_solution*b) /
        (1 + b*M_solute)
      under_consistent_SI_mass_units_for_single_solute_solution

    WHERE:
      rho_solution = solution_density
      b = molality
      M_solute = solute_molar_mass

    REQUIRE:
      solution_density
      solute_molar_mass
      compatible_units
      defined_temperature_and_composition

    RULE:
      molality_to_molarity_conversion_requires_density
      and_is_not_simple_unit_conversion
  }

  MOLE_FRACTION_MODEL {
    binary_solution:
      n_solute = b*m_solvent

    solvent_amount:
      n_solvent = m_solvent/M_solvent

    solute_mole_fraction:
      x_solute =
        n_solute/(n_solute+n_solvent)

    simplified_per_1kg_solvent:
      x_solute =
        b/(b + 1/M_solvent)

    REQUIRE:
      solvent_molar_mass

    RULE:
      mole_fraction_conversion_requires_complete_composition_context
  }

  MASS_FRACTION_MODEL {
    per_defined_solvent_mass:
      m_solute = b*M_solute*m_solvent

    mass_fraction:
      w_solute =
        m_solute/(m_solute+m_solvent)
      FOR binary_solution

    simplified:
      w_solute =
        b*M_solute/(1 + b*M_solute)

    CONDITIONS:
      single_solute_binary_solution
      compatible_mass_units

    RULE:
      multicomponent_solution_requires_all_component_masses
  }

  DILUTION_MODEL {
    dilution_by_adding_solvent:
      solute_amount_constant
      solvent_mass_increases

    final_molality:
      b_2 =
        b_1*m_solvent_1/m_solvent_2

    REQUIRE:
      no_solute_loss
      no_reaction
      final_solvent_mass

    RULE:
      c1V1_equals_c2V2_is_a_molarity_relation
      and_MUST_NOT be_used_as_general_molality_dilution_formula
  }

  MIXTURE_MODEL {
    same_solute_same_solvent:
      total_solute_amount =
        sum(b_i*m_solvent_i)

      total_solvent_mass =
        sum(m_solvent_i)

      final_molality =
        total_solute_amount/total_solvent_mass

    CONDITIONS:
      no_reaction
      no_precipitation
      same_solute_basis
      same_solvent_identity

    RULE:
      mixing_model_requires_mass_and_entity_conservation
  }

  COLLIGATIVE_PROPERTY_MODEL {
    freezing_point_depression:
      delta_T_f = i*K_f*b

    boiling_point_elevation:
      delta_T_b = i*K_b*b

    PARAMETERS:
      i = van_t_Hoff_factor
      K_f = cryoscopic_constant
      K_b = ebullioscopic_constant

    CONDITIONS:
      dilute_solution_approximation
      applicable_solute_and_solvent
      defined_effective_particle_factor

    RULE:
      ideal_colligative_relations MAY require_activity_or_nonideality_corrections
  }

  OSMOTIC_CONTEXT_MODEL {
    osmotic_pressure_common_dilute_relation:
      Pi approximately_equals i*c*R*T

    RULE:
      osmotic_pressure_standard_relation_uses_amount_concentration
      not_molality_directly

    CONVERSION:
      molality_may_be_related_to_osmotic_properties
      through_solution_model_and_density
  }

  ACTIVITY_MODEL {
    solvent_or_solute_activity:
      depends_on molality_and_activity_coefficient
      under_molality_standard_state_convention

    generic:
      a_i = gamma_i*(b_i/b_standard)
      for_declared_molality_based_standard_state

    RULE:
      molality != activity
  }

  ELECTROLYTE_MODEL {
    ionic_molalities:
      b_i

    molal_ionic_strength:
      I_m =
        0.5*sum(b_i*z_i^2)

    WHERE:
      z_i = ionic_charge_number

    RULE:
      electrolyte_species_and_charge_numbers MUST be preserved
  }

  RELATIONSHIPS {
    Molality -> RELATES -> SoluteAmountAndSolventMass
    Molality -> MEASURED_IN -> MolePerKilogram
    Molality -> DEPENDS_ON -> SoluteIdentity
    Molality -> DEPENDS_ON -> SolventIdentity
    MolarMass -> ENABLES -> SoluteMassToMolalityConversion
    Density -> ENABLES -> MolalityMolarityConversion
    Molality -> CONTRIBUTES_TO -> ColligativeProperties
    Molality -> MAY_RELATE_TO -> ChemicalActivity
    IonicMolality -> CONTRIBUTES_TO -> MolalIonicStrength
  }

  SEMANTIC_EQUIVALENCE {
    "molality" ~= moles_of_solute_per_kilogram_of_solvent
    "mol/kg" ~= mole_per_kilogram

    molality != molarity
    molality != amount_concentration
    molality != mass_concentration
    molality != mass_fraction
    molality != mole_fraction
    molality != activity
    solvent_mass != solution_mass
  }

  CONSTRAINTS {
    solute_identity_must_be_defined = true
    solvent_identity_must_be_defined = true
    solvent_mass_must_be_nonzero = true
    molality_denominator_is_solvent_mass = true
    SI_unit = mol/kg
    molality_and_molarity_are_not_semantically_equivalent = true
    molality_and_mass_fraction_are_not_semantically_equivalent = true
    conversion_to_molarity_requires_density_and_molar_mass = true
    electrolyte_reasoning_requires_species_and_charge_identity = true
  }

  MEASUREMENT_MODEL {
    OBSERVABLE_OR_INFERRED:
      Molality

    COMMON_METHODS:
      gravimetric_solution_preparation
      analytical_concentration_measurement_plus_basis_conversion
      colligative_property_inference
      composition_analysis

    RECORD:
      solute
      solvent
      numerical_value
      unit
      solute_amount
      solute_mass
      solvent_mass
      molar_mass
      purity
      solution_density_when_relevant
      temperature
      pressure_when_relevant
      composition
      preparation_history
      measurement_method
      calibration_model
      timestamp
      uncertainty

    UNCERTAINTY:
      measured_or_prepared_molality = best_estimate +/- uncertainty
  }

  CALIBRATION_MODEL {
    gravimetric_preparation:
      mass_measurements_traceable_to_mass_standards

    analytical_inference:
      response -> composition_quantity -> molality

    REQUIRE:
      calibrated_balance
      purity_or_reference_material
      conversion_model_when_indirect
      uncertainty

    RULE:
      indirect_molality_measurement MUST preserve_intermediate_basis_and_conversion_model
  }

  UNCERTAINTY_MODEL {
    sources:
      solute_mass
      solvent_mass
      molar_mass
      purity
      sample_transfer
      evaporation
      hygroscopicity
      composition
      density_when_conversion_used
      calibration
      analytical_response
      model_assumptions

    PROPAGATION:
      derived_molality_uncertainty
      <- amount_mass_purity_conversion_and_measurement_uncertainties
  }

  REASONING_RULES {
    IF solute_amount_known AND solvent_mass != 0
      THEN molality =
        solute_amount/solvent_mass

    IF molality_known AND solvent_mass_known
      THEN solute_amount =
        molality*solvent_mass

    IF solute_mass_known AND molar_mass != 0
      AND solvent_mass != 0
      THEN molality =
        solute_mass/(molar_mass*solvent_mass)

    IF target_molality_solvent_mass_and_molar_mass_known
      THEN required_solute_mass =
        target_molality*solvent_mass*molar_mass

    IF molality_density_and_solute_molar_mass_known
      AND valid_single_solute_solution_conversion
      THEN molarity =
        density*molality/(1 + molality*solute_molar_mass)

    IF molality_and_solvent_molar_mass_known
      AND binary_solution_context
      THEN solute_mole_fraction =
        molality/(molality + 1/solvent_molar_mass)

    IF molality_and_solute_molar_mass_known
      AND binary_solution_context
      THEN solute_mass_fraction =
        molality*solute_molar_mass/(1 + molality*solute_molar_mass)

    IF initial_molality_and_solvent_mass_known
      AND final_solvent_mass != 0
      AND solute_amount_conserved
      THEN final_molality =
        initial_molality*initial_solvent_mass/final_solvent_mass

    IF van_t_Hoff_factor_cryoscopic_constant_and_molality_known
      THEN freezing_point_depression =
        van_t_Hoff_factor*cryoscopic_constant*molality
      UNDER ideal_dilute_conditions

    IF ionic_molalities_and_charge_numbers_known
      THEN molal_ionic_strength =
        0.5*sum(b_i*z_i^2)
  }

  VALIDATION {
    CHECK solute_identity
    CHECK solvent_identity
    CHECK unit_consistency
    CHECK solvent_mass_nonzero
    CHECK solvent_mass_vs_solution_mass
    CHECK molality_vs_molarity
    CHECK molality_vs_mass_fraction
    CHECK molality_vs_mole_fraction
    CHECK molality_vs_activity
    CHECK molar_mass_and_purity_when_mass_prepared
    CHECK density_for_molarity_conversion
    CHECK binary_or_multicomponent_context
    CHECK solute_conservation_for_dilution
    CHECK colligative_model_validity
    CHECK electrolyte_species_and_charge
    CHECK uncertainty_representation
  }

  CONFIDENCE {
    definition_confidence: 1.00
    dimensional_confidence: 1.00
    SI_unit_confidence: 1.00
    mass_preparation_relationship_confidence: 1.00
    molarity_conversion_confidence: 0.98
    colligative_relationship_confidence: 0.97
    measurement_context_confidence: 0.98

    RULE:
      confidence decreases when solute, solvent, solvent mass,
      molar mass, purity, density, composition,
      conversion model or uncertainty is missing or ambiguous
  }

  UPDATE_MODEL {
    ON new_measurement_or_preparation:
      identify_solute
      identify_solvent
      validate_unit
      attach_solute_amount_or_mass
      attach_solvent_mass
      attach_molar_mass_and_purity_when_relevant
      attach_temperature_and_pressure
      attach_density_when_relevant
      attach_composition_and_preparation_history
      normalize_to_mol_per_kg
      preserve_original_value_and_unit
      attach_uncertainty
      update_molality_state

    ON solvent_addition_or_loss:
      preserve_solute_amount
      update_solvent_mass
      recompute_molality
      preserve_previous_state

    ON composition_change:
      update_component_amounts_and_masses
      recompute_mole_or_mass_fraction_when_valid
      update_activity_model_when_available

    ON basis_conversion:
      validate_density_molar_masses_and_composition
      preserve_original_molality
      compute_target_composition_quantity
      propagate_uncertainty

    ON calibration_revision:
      preserve_previous_calibration
      recompute_affected_results
      update_uncertainty
      update_confidence

    ON semantic_revision:
      preserve_previous_definition
      record_revision
      recompute_FLOW_HASH
  }

  AI_CONSUMPTION {
    canonical_entity: Molality
    canonical_symbol: b
    canonical_dimension: N*M^-1
    canonical_SI_unit: mol/kg

    interpretation_order:
      identify_solute
      identify_solvent
      identify_value
      identify_unit
      confirm_solvent_mass_basis
      identify_solute_amount_or_mass
      identify_solvent_mass
      identify_molar_mass_and_purity
      identify_temperature_and_pressure
      identify_density_when_conversion_required
      identify_binary_or_multicomponent_composition
      identify_colligative_or_activity_context
      identify_measurement_method
      identify_uncertainty
      normalize_units
      validate_basis
      infer_solution_relationships

    ambiguity_controls:
      distinguish_molality_from_molarity
      distinguish_molality_from_amount_concentration
      distinguish_molality_from_mass_concentration
      distinguish_molality_from_mass_fraction
      distinguish_molality_from_mole_fraction
      distinguish_molality_from_activity
      distinguish_solvent_mass_from_solution_mass
      distinguish_symbol_m_as_molality_from_mass_or_metre
      preserve_solute_solvent_composition_preparation_and_conversion_context
  }

  PROVENANCE {
    ontology_scope:
      mathematical_measurement_and_chemical_molality_semantics

    parent_path:
      Ontologies
      -> Mathematical Ontologies
      -> Measurement & Units Ontologies
      -> Chemical Measurements
      -> Molality Ontology

    authorship:
      Mark Higgins
      Sky (Recursive AI)

    site:
      https://kirethresearch.org
  }

  FLOW_HASH {
    INPUTS:
      canonical_entity
      ontology_path
      terminology_model
      definition_model
      unit_system
      mass_preparation_model
      temperature_model
      molarity_distinction_model
      molarity_conversion_model
      mole_fraction_model
      mass_fraction_model
      dilution_model
      mixture_model
      colligative_property_model
      osmotic_context_model
      activity_model
      electrolyte_model
      relationships
      constraints
      measurement_model
      calibration_model
      uncertainty_model
      reasoning_rules
      confidence_model
      update_model

    PURPOSE:
      deterministic_semantic_integrity_identifier

    RECOMPUTE_WHEN:
      ontology_definition_changes
      molality_basis_model_changes
      unit_model_changes
      mass_preparation_model_changes
      molarity_conversion_model_changes
      composition_model_changes
      dilution_or_mixture_model_changes
      colligative_or_activity_model_changes
      electrolyte_model_changes
      calibration_model_changes
      measurement_model_changes
      constraint_model_changes
      reasoning_rule_changes
  }

}

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