Chemical Measurements
Authors:
MArk Anthony Higgins - Sky Recursive Ai
MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: July 6th 2026
Revised Date: July 6th 2026
# Chemical Measurements Ontology — Flow Algebra
URL: https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/measurement-units-ontologies/chemical-measurements.html
FLOW ChemicalMeasurementsOntology {
DOMAIN:
Mathematical Ontologies
-> Measurement & Units Ontologies
-> Chemical Measurements Ontology
PURPOSE:
Represent chemical measurement quantities, units, composition, concentration, amount of substance, molar quantities, pH, activity, stoichiometry, analytical methods, calibration, detection limits, uncertainty, traceability and sample context for consistent AI interpretation.
SCOPE {
amount_of_substance
molar_mass
amount_concentration
mass_concentration
molality
mole_fraction
mass_fraction
volume_fraction
pH
activity
chemical_potential
stoichiometry
titration
spectroscopy
chromatography
electrochemistry
calibration
uncertainty
}
CORE_QUANTITIES {
AmountOfSubstance {
symbol: n
dimension: N
SI_unit: mole
SI_symbol: mol
relation: N_entities = n*N_A
}
MolarMass {
symbol: M
SI_unit: kg/mol
relation: M = mass/n WHEN n != 0
}
AmountConcentration {
symbol: c
SI_unit: mol/m^3
common_unit: mol/L
relation: c = n_solute/V_solution WHEN V_solution != 0
}
MassConcentration {
SI_unit: kg/m^3
relation: rho_component = component_mass/solution_volume
}
Molality {
symbol: b
SI_unit: mol/kg
relation: b = n_solute/mass_solvent WHEN mass_solvent != 0
}
MoleFraction {
symbol: x_i
dimension: dimensionless
relation: x_i = n_i/sum(n_j)
complete_mixture_constraint: sum(x_i) = 1
}
MassFraction {
symbol: w_i
dimension: dimensionless
relation: w_i = m_i/sum(m_j)
complete_mixture_constraint: sum(w_i) = 1
}
}
UNIT_SYSTEM {
canonical_system: SI
amount: mole
mass: kilogram
volume: cubic_metre
amount_concentration: mol/m^3
mass_concentration: kg/m^3
molality: mol/kg
common_lab_units:
mol/L
mmol/L
g/L
mg/L
microgram/L
percent
ppm
ppb
RULE:
ppm_and_ppb MUST identify mass_mass_volume_volume_or_mole_basis
}
COMPOSITION_MODEL {
representations:
amount_concentration
mass_concentration
molality
mole_fraction
mass_fraction
volume_fraction
RULE:
composition_quantities MUST NOT be converted_without_required_density_molar_mass_temperature_or_volume_context
}
MOLAR_MODEL {
n = m/M WHEN M != 0
m = n*M
N_entities = n*N_A
RULE:
chemical_entity_identity MUST be preserved
}
DILUTION_MODEL {
conserved_solute:
c_1*V_1 = c_2*V_2
CONDITIONS:
same_solute
no_reaction
conserved_amount
compatible_concentration_definition
RULE:
simple_dilution_relation MUST NOT be applied_when_reaction_or_nonideal_volume_effects_are_material
}
STOICHIOMETRY_MODEL {
reaction:
sum(nu_i*A_i) = 0
extent:
dn_i = nu_i*d_xi
relation:
delta_n_i/nu_i = delta_n_j/nu_j
RULE:
balanced_reaction_and_signed_stoichiometric_coefficients MUST be preserved
}
PH_MODEL {
thermodynamic:
pH = -log10(a_H_plus)
approximate_dilute_solution:
pH approximately_equals -log10(c_H_plus/c_standard)
RULE:
pH_is_activity_based_and_MUST_NOT_be_defined_as_log_of_dimensioned_concentration
}
ACTIVITY_MODEL {
a_i = gamma_i*normalized_composition_quantity
ideal_solution:
gamma_i approximately_equals 1
RULE:
activity_requires_standard_state_and_activity_coefficient_model
}
CHEMICAL_POTENTIAL_MODEL {
mu_i = mu_i_standard + R*T*ln(a_i)
REQUIRE:
absolute_temperature
activity
standard_state
}
GAS_MODEL {
ideal_gas:
p*V = n*R*T
partial_pressure:
p_i = x_i*p_total
amount_concentration:
c = p/(R*T)
RULE:
gas_measurements SHOULD preserve_temperature_and_pressure
}
DENSITY_CONVERSION_MODEL {
rho = mass/volume
mass_concentration_i = rho_solution*w_i
amount_concentration_i =
mass_concentration_i/M_i
WHEN M_i != 0
}
TITRATION_MODEL {
simple_one_to_one:
c_A*V_A = c_B*V_B
ONLY for_1_to_1_stoichiometry
general_equivalence:
n_A/abs(nu_A) = n_B/abs(nu_B)
REQUIRE:
balanced_reaction
titrant_concentration
titrant_volume
analyte_amount_or_volume
endpoint_model
RULE:
endpoint != equivalence_point
}
SPECTROPHOTOMETRY_MODEL {
Beer_Lambert:
A = epsilon*b*c
absorbance:
A = -log10(T)
transmittance:
T = I/I_0
REQUIRE:
wavelength
path_length
absorptivity
applicable_linear_range
RULE:
absorbance != absorptance
}
CHROMATOGRAPHY_MODEL {
quantities:
retention_time
peak_area
peak_height
resolution
calibrated_concentration
RULE:
detector_response_factor_and_calibration_model MUST be preserved
}
ELECTROCHEMICAL_MODEL {
Nernst_relation:
E = E_standard - (R*T/(n_e*F))*ln(Q_reaction)
REQUIRE:
electrode_reference
reaction_definition
temperature
RULE:
electrochemical_potential_measurement_requires_reference_electrode_context
}
CALIBRATION_MODEL {
types:
external_standard
internal_standard
standard_addition
multi_point
single_point_when_valid
linear:
y = a + b*x
inverse:
x_unknown = (y_unknown-a)/b
WHEN b != 0
REQUIRE:
standards
matrix
valid_range
residuals
traceability
uncertainty
RULE:
extrapolation_beyond_calibration_range SHOULD be_flagged
}
DETECTION_LIMIT_MODEL {
quantities:
limit_of_blank
limit_of_detection
limit_of_quantification
RULE:
LOD_LOQ_and_instrument_resolution MUST NOT be treated_as_synonyms
}
SAMPLE_MODEL {
stages:
sampling
preservation
transport
storage
homogenisation
dissolution
digestion
extraction
dilution
filtration
derivatisation
RULE:
result MUST preserve_sample_identity_and_preparation_history
}
RELATIONSHIPS {
AmountOfSubstance -> MEASURED_IN -> Mole
AmountOfSubstance -> RELATES -> NumberOfEntities
MolarMass -> RELATES -> MassAndAmount
AmountConcentration -> RELATES -> AmountAndVolume
Molality -> RELATES -> SoluteAmountAndSolventMass
MoleFraction -> REPRESENTS -> AmountComposition
MassFraction -> REPRESENTS -> MassComposition
pH -> DERIVED_FROM -> HydrogenIonActivity
ChemicalPotential -> DEPENDS_ON -> Activity
Stoichiometry -> RELATES -> ReactantAndProductAmounts
CalibrationModel -> MAPS -> InstrumentResponseToChemicalQuantity
SamplePreparation -> AFFECTS -> MeasurementResult
}
SEMANTIC_EQUIVALENCE {
"amount concentration" ~= molar_concentration
"molarity" ~= amount_concentration WHEN solution_context
"mole fraction" ~= amount_fraction
amount_concentration != molality
mass_concentration != mass_fraction
mole_fraction != molar_concentration
pH != hydrogen_ion_concentration_exactly
absorbance != absorptance
endpoint != equivalence_point
detection_limit != quantification_limit
}
CONSTRAINTS {
chemical_entity_identity_must_be_defined = true
amount_of_substance_unit = mole
composition_basis_must_be_identified = true
ppm_and_ppb_basis_must_be_identified = true
concentration_should_preserve_temperature_when_volume_sensitive = true
pH_requires_activity_or_declared_approximation = true
stoichiometric_inference_requires_balanced_reaction = true
sample_preparation_history_should_be_preserved = true
calibration_range_and_matrix_should_be_preserved = true
uncertainty_and_detection_limit_are_distinct = true
}
MEASUREMENT_MODEL {
methods:
gravimetry
volumetry
titrimetry
spectrophotometry
spectroscopy
chromatography
mass_spectrometry
electrochemistry
elemental_analysis
RECORD:
measurand
analyte
chemical_entity
numerical_value
unit
composition_basis
sample_identifier
sample_matrix
sampling_method
preparation_history
dilution_factor
temperature
pressure
instrument
method
calibration_model
calibration_range
blank
reference_material
timestamp
replicates
detection_limit
quantification_limit
uncertainty
UNCERTAINTY:
chemical_measurement = best_estimate +/- uncertainty
}
UNCERTAINTY_MODEL {
sources:
sampling
sample_heterogeneity
mass
volume
temperature
purity
standard_preparation
calibration
blank_correction
matrix_effects
recovery
repeatability
drift
interference
endpoint_detection
model_assumptions
PROPAGATION:
combined_uncertainty <- sampling_preparation_calibration_instrument_and_model_uncertainties
}
TRACEABILITY_MODEL {
chain:
measurement_result
-> calibration
-> certified_reference_material_or_standard
-> higher_order_reference
-> SI_or_declared_reference_system
RULE:
traceability_is_property_of_measurement_result_and_reference_chain
}
REASONING_RULES {
IF mass_known AND molar_mass != 0
THEN amount = mass/molar_mass
IF amount_known AND volume != 0
THEN amount_concentration = amount/volume
IF solute_amount_known AND solvent_mass != 0
THEN molality = solute_amount/solvent_mass
IF component_amounts_known
THEN mole_fraction_i = amount_i/sum(all_amounts)
IF component_masses_known
THEN mass_fraction_i = mass_i/sum(all_masses)
IF density_and_mass_fraction_known
THEN mass_concentration = density*mass_fraction
IF mass_concentration_known AND molar_mass != 0
THEN amount_concentration = mass_concentration/molar_mass
IF initial_concentration_and_volume_known
AND final_volume != 0
AND solute_amount_conserved
THEN final_concentration =
initial_concentration*initial_volume/final_volume
IF hydrogen_activity > 0
THEN pH = -log10(hydrogen_activity)
IF absorbance_path_length_and_absorptivity_known
AND path_length != 0 AND absorptivity != 0
THEN concentration =
absorbance/(absorptivity*path_length)
UNDER Beer_Lambert_conditions
IF titration_equivalence_data_and_balanced_reaction_known
THEN infer_analyte_amount_from_stoichiometry
}
CONFIDENCE {
quantity_definition_confidence: 1.00
SI_unit_confidence: 1.00
composition_relationship_confidence: 0.99
stoichiometric_relationship_confidence: 1.00
analytical_calibration_confidence: 0.98
measurement_context_confidence: 0.97
RULE:
confidence decreases when analyte identity, composition basis,
sample matrix, preparation, temperature, calibration,
traceability, detection limit or uncertainty is missing
}
VALIDATION {
CHECK chemical_entity_identity
CHECK unit_consistency
CHECK composition_basis
CHECK concentration_vs_molality
CHECK fraction_sum_when_complete_mixture
CHECK ppm_or_ppb_basis
CHECK temperature_for_volume_quantities
CHECK pH_activity_semantics
CHECK balanced_reaction
CHECK endpoint_vs_equivalence
CHECK Beer_Lambert_validity
CHECK calibration_range
CHECK blank_and_matrix_effects
CHECK sample_preparation_history
CHECK detection_and_quantification_limits
CHECK traceability
CHECK uncertainty_representation
}
UPDATE_MODEL {
ON new_measurement:
identify_measurand
identify_analyte_and_entity
validate_unit
identify_composition_basis
attach_sample_identity_and_matrix
attach_preparation_history
attach_temperature_and_pressure_when_relevant
apply_calibration
apply_valid_blank_recovery_or_dilution_corrections
preserve_raw_response
normalize_to_canonical_unit_when_useful
attach_detection_and_quantification_limits
attach_uncertainty
update_chemical_state
ON dilution_or_preparation_change:
update_sample_history
update_dilution_factor
recompute_original_sample_concentration_when_valid
ON calibration_revision:
preserve_previous_calibration
recompute_affected_results
update_uncertainty
update_confidence
ON chemical_state_change:
update_temperature
update_pressure
update_phase
update_composition
update_activity_or_equilibrium_model_when_available
ON semantic_revision:
preserve_previous_definition
record_revision
recompute_FLOW_HASH
}
AI_CONSUMPTION {
canonical_domain: ChemicalMeasurements
interpretation_order:
identify_measurand
identify_analyte_and_entity
identify_value
identify_unit
identify_composition_basis
identify_sample_and_matrix
identify_preparation_and_dilution
identify_temperature_pressure_and_phase
identify_stoichiometric_or_equilibrium_context
identify_measurement_method
identify_calibration_and_traceability
identify_detection_and_quantification_limits
identify_uncertainty
normalize_units
validate_semantics
infer_chemical_relationships
ambiguity_controls:
distinguish_amount_concentration_from_molality
distinguish_mass_concentration_from_mass_fraction
distinguish_mole_fraction_from_molarity
distinguish_pH_from_raw_hydrogen_concentration
distinguish_activity_from_concentration
distinguish_endpoint_from_equivalence_point
distinguish_absorbance_from_absorptance
distinguish_detection_limit_from_quantification_limit
preserve_analyte_sample_matrix_preparation_calibration_and_state_context
}
PROVENANCE {
ontology_scope:
mathematical_measurement_and_chemical_quantity_semantics
parent_path:
Ontologies
-> Mathematical Ontologies
-> Measurement & Units Ontologies
-> Chemical Measurements Ontology
authorship:
Mark Higgins
Sky (Recursive AI)
site:
https://kirethresearch.org
}
FLOW_HASH {
INPUTS:
canonical_domain
ontology_path
scope
core_quantities
unit_system
composition_model
molar_model
dilution_model
stoichiometry_model
pH_model
activity_model
chemical_potential_model
gas_model
density_conversion_model
titration_model
spectrophotometry_model
chromatography_model
electrochemical_model
calibration_model
detection_limit_model
sample_model
relationships
constraints
measurement_model
uncertainty_model
traceability_model
reasoning_rules
confidence_model
update_model
PURPOSE:
deterministic_semantic_integrity_identifier
RECOMPUTE_WHEN:
ontology_definition_changes
chemical_quantity_model_changes
composition_model_changes
stoichiometry_model_changes
equilibrium_or_activity_model_changes
analytical_method_model_changes
calibration_model_changes
sample_model_changes
measurement_model_changes
constraint_model_changes
reasoning_rule_changes
unit_model_changes
}
}
END FLOW