Skip to main content

pH Ontology

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

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

FLOW pHOntology {

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

  PURPOSE:
    Represent pH as a logarithmic chemical quantity related to hydrogen-ion activity, including thermodynamic definition, practical measurement, activity coefficients, concentration approximations, acid-base equilibria, buffers, temperature dependence, electrode response, calibration, uncertainty, and distinctions from hydrogen-ion concentration, acidity, alkalinity and acid concentration.

  ENTITY pH {
    TYPE: DimensionlessLogarithmicChemicalQuantity
    SYMBOL: pH
    DIMENSION: dimensionless
    SI_UNIT: dimensionless

    THERMODYNAMIC_DEFINITION:
      pH = -log10(a_H_plus)

    PROPERTIES:
      is_scalar
      is_logarithmic
      is_activity_based
      depends_on_chemical_state
      may_depend_on_temperature
      may_depend_on_ionic_strength
      may_depend_on_solvent
      may_have_uncertainty
  }

  ENTITY HydrogenIonActivity {
    SYMBOL: a_H_plus
    DIMENSION: dimensionless

    RELATION:
      pH = -log10(a_H_plus)
  }

  ENTITY HydrogenIonConcentration {
    SYMBOL: c_H_plus
    SI_UNIT: mol/m^3
    COMMON_UNIT: mol/L

    RULE:
      hydrogen_ion_concentration != hydrogen_ion_activity
  }

  ENTITY ActivityCoefficient {
    SYMBOL: gamma_H_plus
    DIMENSION: dimensionless

    GENERIC_RELATION:
      a_H_plus =
        gamma_H_plus*(c_H_plus/c_standard)
      UNDER concentration_based_standard_state_convention
  }

  UNIT_AND_SCALE_MODEL {
    pH:
      dimensionless_logarithmic_quantity

    COMMON_REPORTING:
      pH_units_in_informal_usage

    RULE:
      formal_pH_value_is_dimensionless

    RULE:
      pH_scale_is_not_intrinsically_restricted_to_0_to_14
  }

  THERMODYNAMIC_MODEL {
    DEFINITION:
      pH = -log10(a_H_plus)

    INVERSE:
      a_H_plus = 10^(-pH)

    REQUIRE:
      activity_is_dimensionless_relative_to_defined_standard_state

    RULE:
      logarithm_argument MUST be dimensionless
  }

  CONCENTRATION_APPROXIMATION_MODEL {
    dilute_solution_approximation:
      a_H_plus approximately_equals c_H_plus/c_standard

    THEN:
      pH approximately_equals
        -log10(c_H_plus/c_standard)

    CONDITIONS:
      sufficiently_dilute_solution
      appropriate_activity_coefficient_approximation
      declared_standard_concentration

    RULE:
      pH MUST_NOT be defined_exactly_as_negative_log_of_dimensioned_H_plus_concentration
  }

  ACID_BASE_MODEL {
    acid_dissociation:
      HA <-> H_plus + A_minus

    acid_constant:
      K_a = a_H_plus*a_A_minus/a_HA

    pKa:
      pKa = -log10(K_a)

    base_relation:
      pOH = -log10(a_OH_minus)

    RULE:
      equilibrium_constants_require_declared_standard_state_and_temperature
  }

  WATER_AUTOPROTOLYSIS_MODEL {
    reaction:
      2H2O <-> H3O_plus + OH_minus

    ionic_product:
      K_w = a_H_plus*a_OH_minus

    logarithmic_relation:
      pK_w = pH + pOH

    neutral_condition:
      a_H_plus = a_OH_minus

    RULE:
      neutral_pH depends_on_temperature_and_solvent_conditions
      and_is_not_universally_exactly_7
  }

  TEMPERATURE_MODEL {
    dependencies:
      water_ionic_product
      acid_dissociation_constants
      base_dissociation_constants
      electrode_slope
      buffer_values
      activity_coefficients

    RULE:
      pH_measurement SHOULD preserve_sample_temperature
  }

  BUFFER_MODEL {
    Henderson_Hasselbalch_approximation:
      pH = pKa + log10(a_base/a_acid)

    concentration_approximation:
      pH approximately_equals
        pKa + log10(c_base/c_acid)
      UNDER appropriate_activity_cancellation_or_dilute_conditions

    REQUIRE:
      conjugate_acid_base_pair
      applicable_equilibrium
      temperature
      nonzero_positive_ratio

    RULE:
      Henderson_Hasselbalch_is_an_equilibrium_approximation
      and_MUST_NOT replace_full_equilibrium_model_when_invalid
  }

  STRONG_ACID_MODEL {
    ideal_dilute_monoprotic:
      c_H_plus approximately_equals c_acid

    approximate:
      pH approximately_equals -log10(c_acid/c_standard)

    CONDITIONS:
      complete_dissociation_approximation
      acid_concentration_not_so_low_that_water_autoionisation_dominates
      activity_effects_negligible

    RULE:
      strong_acid_concentration != pH
  }

  STRONG_BASE_MODEL {
    ideal_dilute:
      c_OH_minus approximately_equals stoichiometric_base_equivalent_concentration

    pOH:
      pOH approximately_equals -log10(c_OH_minus/c_standard)

    pH:
      pH = pK_w - pOH

    RULE:
      pH_plus_pOH_equals_14 ONLY under_conditions_where_pK_w_approximately_equals_14
  }

  WEAK_ACID_MODEL {
    monoprotic_equilibrium:
      K_a =
        a_H_plus*a_A_minus/a_HA

    approximate_concentration_solution:
      [H_plus] approximately_equals sqrt(K_a*C_acid)
      under_common_weak_dissociation_conditions

    RULE:
      approximation_requires_validation_against_degree_of_dissociation_and_activity_effects
  }

  POLYPROTIC_MODEL {
    acid:
      H_nA

    sequential_constants:
      K_a1
      K_a2
      K_a3
      ...

    RULE:
      polyprotic_pH_reasoning SHOULD account_for_relevant_sequential_equilibria
  }

  ACTIVITY_COEFFICIENT_MODEL {
    ionic_strength:
      I = 0.5*sum(c_i*z_i^2)
      under_concentration_basis

    dilute_limit:
      gamma_i -> 1
      as ionic_strength -> 0
      under suitable_solution_model

    possible_models:
      Debye_Huckel_limiting_law
      extended_Debye_Huckel
      Davies_equation
      Pitzer_model

    RULE:
      activity_model_validity_range MUST be preserved
  }

  ELECTRODE_MEASUREMENT_MODEL {
    glass_electrode:
      potential_response_related_to_hydrogen_activity

    ideal_Nernst_slope:
      E = E_0 - (R*T/F)*ln(a_H_plus)
      for appropriate electrode convention

    base_10_form:
      E = E_0 - (2.303*R*T/F)*log10(a_H_plus)

    slope_magnitude:
      proportional_to_absolute_temperature

    RULE:
      electrode_sign_and_reference_convention MUST be preserved
  }

  PH_METER_MODEL {
    system:
      glass_indicator_electrode
      reference_electrode
      high_impedance_voltmeter
      temperature_measurement_or_compensation

    practical_effects:
      electrode_offset
      slope_error
      junction_potential
      temperature
      drift
      hydration
      contamination
      sodium_error
      acid_error
      low_ionic_strength_instability

    RULE:
      pH_meter_reading_requires_calibration_and_electrode_condition_context
  }

  CALIBRATION_MODEL {
    common:
      two_point_calibration
      three_point_calibration

    standards:
      certified_buffer_solutions

    REQUIRE:
      buffer_pH_values
      buffer_temperature
      calibration_temperature
      electrode_slope
      electrode_offset
      calibration_date
      traceability
      uncertainty

    RULE:
      buffer_reference_value MUST correspond_to_actual_temperature_or_valid_correction
  }

  TEMPERATURE_COMPENSATION_MODEL {
    electrode_slope_compensation:
      adjusts_Nernst_slope_for_temperature

    sample_chemistry:
      actual_sample_pH_may_itself_change_with_temperature

    RULE:
      automatic_temperature_compensation_of_electrode_slope
      DOES_NOT generally_convert_sample_pH_to_a_different_reference_temperature
  }

  RELATIONSHIPS {
    pH -> NEGATIVE_LOGARITHM_OF -> HydrogenIonActivity
    HydrogenIonActivity -> DEPENDS_ON -> ActivityCoefficientAndComposition
    pH -> MAY_DEPEND_ON -> Temperature
    pH -> MAY_DEPEND_ON -> IonicStrength
    pH -> RELATES_TO -> AcidBaseEquilibria
    pH -> RELATES_TO -> BufferEquilibria
    pH -> MEASURED_BY -> CalibratedElectrochemicalSystem
    ElectrodePotential -> RELATES_TO -> HydrogenIonActivity
    CalibrationBuffer -> CALIBRATES -> pHElectrodeSystem
    pH -> RELATES_TO -> pOHThroughWaterIonicProduct
  }

  SEMANTIC_EQUIVALENCE {
    "pH" ~= negative_log10_hydrogen_activity

    pH != hydrogen_ion_concentration
    pH != acid_concentration
    pH != acidity
    pH != alkalinity
    pH != pOH
    pH != electrode_voltage
    neutral_pH != universally_7
  }

  CONSTRAINTS {
    pH_is_dimensionless = true
    logarithm_argument_must_be_dimensionless = true
    pH_is_activity_based = true
    concentration_based_formula_is_approximation = true
    pH_scale_is_not_strictly_bounded_0_to_14 = true
    neutral_pH_depends_on_temperature = true
    pH_plus_pOH_equals_pKw = true
    electrode_measurement_requires_reference_and_calibration = true
    sample_temperature_should_be_preserved = true
    activity_model_and_standard_state_should_be_preserved_when_relevant = true
  }

  MEASUREMENT_MODEL {
    OBSERVABLE_OR_INFERRED:
      pH

    COMMON_METHODS:
      glass_electrode_potentiometry
      hydrogen_electrode_reference_method
      spectrophotometric_indicator_method
      field_pH_probe
      microelectrode_measurement

    RECORD:
      numerical_value
      dimensionless
      sample
      matrix
      solvent
      temperature
      pressure_when_relevant
      ionic_strength_when_known
      measurement_method
      electrode_type
      reference_electrode
      instrument
      calibration_buffers
      calibration_temperature
      electrode_slope
      electrode_offset
      temperature_compensation
      timestamp
      replicate_information
      uncertainty

    UNCERTAINTY:
      measured_pH = best_estimate +/- uncertainty
  }

  SPECTROPHOTOMETRIC_PH_MODEL {
    indicator_equilibrium:
      HIn <-> H_plus + In_minus

    spectral_ratio:
      depends_on acid_and_base_indicator_forms

    inference:
      pH <- calibrated_absorbance_ratio_and_indicator_equilibrium

    REQUIRE:
      indicator_constants
      wavelength
      temperature
      optical_calibration
      activity_model_when_required

    RULE:
      indicator_perturbation_and_matrix_effects SHOULD be considered
  }

  UNCERTAINTY_MODEL {
    sources:
      buffer_standard_uncertainty
      calibration_fit
      electrode_slope
      electrode_offset
      reference_junction
      temperature
      drift
      repeatability
      sample_heterogeneity
      ionic_strength
      activity_model
      contamination
      instrument_resolution

    PROPAGATION:
      combined_pH_uncertainty
      <- calibration_electrode_temperature_sample_and_model_uncertainties
  }

  REASONING_RULES {
    IF hydrogen_activity_known AND hydrogen_activity > 0
      THEN pH = -log10(hydrogen_activity)

    IF pH_known
      THEN hydrogen_activity = 10^(-pH)

    IF hydrogen_concentration_known
      AND valid_dilute_activity_approximation
      THEN pH approximately_equals
        -log10(hydrogen_concentration/c_standard)

    IF pOH_known AND pKw_known
      THEN pH = pKw - pOH

    IF acid_and_conjugate_base_activities_known
      AND pKa_known
      THEN pH =
        pKa + log10(base_activity/acid_activity)
      UNDER Henderson_Hasselbalch_conditions

    IF calibrated_electrode_potential_known
      AND temperature_known
      THEN infer_pH_using_electrode_calibration_model

    IF ionic_composition_known
      THEN compute_ionic_strength
      AND MAY infer_activity_coefficients_using_valid_model

    IF sample_temperature_changes
      THEN reevaluate_pKw_equilibrium_constants_and_sample_pH
      when_models_available
  }

  SAMPLE_CONTEXT_MODEL {
    REQUIRE:
      sample_identity
      solvent_or_matrix
      temperature

    WHEN_RELEVANT:
      ionic_strength
      pressure
      salinity
      composition
      dissolved_gases
      redox_state

    RULE:
      pH_value_without_sample_and_temperature_context
      MAY be semantically_incomplete_for_precision_work
  }

  QUALITY_MODEL {
    repeatability:
      variation_under_same_measurement_conditions

    calibration_quality:
      buffer_fit_and_electrode_response

    electrode_slope:
      compare_to_expected_temperature_dependent_Nernst_response

    RULE:
      pH_resolution_accuracy_and_uncertainty
      MUST_NOT be treated_as_synonyms
  }

  CONFIDENCE {
    definition_confidence: 1.00
    logarithmic_relationship_confidence: 1.00
    activity_semantics_confidence: 1.00
    acid_base_relationship_confidence: 0.99
    electrode_measurement_confidence: 0.98
    measurement_context_confidence: 0.97

    RULE:
      confidence decreases when temperature, matrix,
      activity model, electrode reference, calibration,
      buffer values or uncertainty is missing or ambiguous
  }

  VALIDATION {
    CHECK pH_is_dimensionless
    CHECK activity_positive_for_logarithm
    CHECK activity_vs_concentration
    CHECK standard_state
    CHECK sample_temperature
    CHECK pKw_when_pOH_relation_used
    CHECK equilibrium_model
    CHECK approximation_validity
    CHECK electrode_type_and_reference
    CHECK calibration_buffers
    CHECK calibration_temperature
    CHECK electrode_slope_and_offset
    CHECK temperature_compensation_semantics
    CHECK ionic_strength_when_activity_effects_material
    CHECK uncertainty_representation
  }

  UPDATE_MODEL {
    ON new_measurement:
      identify_sample
      identify_matrix_or_solvent
      attach_temperature
      attach_ionic_strength_when_known
      identify_measurement_method
      identify_electrode_and_reference
      attach_calibration_buffers
      attach_slope_and_offset
      attach_temperature_compensation_state
      preserve_raw_electrode_signal_when_available
      attach_timestamp
      attach_uncertainty
      update_pH_state

    ON calibration_revision:
      preserve_previous_calibration
      update_buffer_values
      update_electrode_slope_and_offset
      recompute_affected_pH_results
      update_uncertainty
      update_confidence

    ON temperature_change:
      update_temperature
      update_Nernst_slope
      update_pKw_and_equilibrium_constants_when_model_available
      distinguish_electrode_compensation_from_actual_sample_pH_change
      preserve_previous_state

    ON composition_change:
      update_ionic_strength
      update_activity_coefficients
      update_acid_base_equilibria
      recompute_pH_when_model_available

    ON semantic_revision:
      preserve_previous_definition
      record_revision
      recompute_FLOW_HASH
  }

  AI_CONSUMPTION {
    canonical_entity: pH
    canonical_definition: negative_log10_hydrogen_ion_activity
    canonical_dimension: dimensionless

    interpretation_order:
      identify_pH_value
      identify_sample_and_matrix
      identify_temperature
      identify_activity_or_concentration_context
      identify_standard_state
      identify_ionic_strength
      identify_acid_base_or_buffer_equilibrium
      identify_measurement_method
      identify_electrode_and_reference
      identify_calibration_buffers_slope_and_offset
      identify_temperature_compensation
      identify_uncertainty
      validate_logarithmic_semantics
      infer_acid_base_relationships

    ambiguity_controls:
      distinguish_pH_from_hydrogen_ion_concentration
      distinguish_pH_from_acid_concentration
      distinguish_pH_from_acidity
      distinguish_pH_from_alkalinity
      distinguish_pH_from_pOH
      distinguish_activity_from_concentration
      distinguish_neutral_condition_from_fixed_pH_7
      distinguish_electrode_temperature_compensation_from_sample_temperature_correction
      preserve_sample_matrix_temperature_activity_calibration_and_reference_context
  }

  PROVENANCE {
    ontology_scope:
      mathematical_measurement_and_chemical_pH_semantics

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

    authorship:
      Mark Higgins
      Sky (Recursive AI)

    site:
      https://kirethresearch.org
  }

  FLOW_HASH {
    INPUTS:
      canonical_entity
      ontology_path
      thermodynamic_model
      concentration_approximation_model
      acid_base_model
      water_autoprotolysis_model
      temperature_model
      buffer_model
      strong_acid_model
      strong_base_model
      weak_acid_model
      polyprotic_model
      activity_coefficient_model
      electrode_measurement_model
      pH_meter_model
      calibration_model
      temperature_compensation_model
      spectrophotometric_pH_model
      relationships
      constraints
      measurement_model
      sample_context_model
      quality_model
      uncertainty_model
      reasoning_rules
      confidence_model
      update_model

    PURPOSE:
      deterministic_semantic_integrity_identifier

    RECOMPUTE_WHEN:
      ontology_definition_changes
      activity_or_standard_state_model_changes
      acid_base_equilibrium_model_changes
      temperature_model_changes
      electrode_model_changes
      calibration_model_changes
      measurement_model_changes
      sample_context_changes
      constraint_model_changes
      reasoning_rule_changes
  }

}

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