# 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
Download Code
Copy to Clipboard