# Chemical Activity Ontology — Flow Algebra
URL: https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/measurement-units-ontologies/chemical-measurements/chemical-activity-ontology.html
FLOW ChemicalActivityOntology {
DOMAIN:
Mathematical Ontologies
-> Measurement & Units Ontologies
-> Chemical Measurements
-> Chemical Activity Ontology
PURPOSE:
Represent chemical activity as a dimensionless thermodynamic effective-composition quantity used to express the chemical potential and equilibrium behaviour of species in non-ideal systems, including activity coefficients, standard states, concentration, molality, mole-fraction and gas fugacity conventions, ionic activity, pH, equilibrium constants, chemical potential, temperature dependence, measurement inference, uncertainty, and distinctions from concentration and amount fraction.
ENTITY ChemicalActivity {
TYPE: DimensionlessThermodynamicCompositionQuantity
SYMBOL: a_i
DIMENSION: dimensionless
SI_UNIT: dimensionless
THERMODYNAMIC_RELATION:
mu_i = mu_i_standard + R*T*ln(a_i)
PROPERTIES:
is_scalar
is_dimensionless
is_species_specific
depends_on_standard_state
depends_on_composition
may_depend_on_temperature
may_depend_on_pressure
may_depend_on_ionic_strength
may_depend_on_phase
may_have_uncertainty
}
ENTITY ActivityCoefficient {
TYPE: DimensionlessNonidealityFactor
SYMBOL: gamma_i
DIMENSION: dimensionless
GENERIC_RELATION:
activity =
activity_coefficient
* normalized_composition_quantity
IDEAL_LIMIT:
gamma_i -> 1
under_defined_ideal_or_infinite_dilution_limit
}
ENTITY ChemicalPotential {
TYPE: PartialMolarThermodynamicQuantity
SYMBOL: mu_i
SI_UNIT: joule_per_mole
SI_SYMBOL: J/mol
RELATION:
mu_i = mu_i_standard + R*T*ln(a_i)
}
ENTITY StandardChemicalPotential {
SYMBOL: mu_i_standard
SI_UNIT: joule_per_mole
}
STANDARD_STATE_MODEL {
PURPOSE:
define_reference_state_for_dimensionless_activity
possible_conventions:
pure_substance_standard_state
ideal_gas_standard_pressure
molality_based_standard_state
amount_concentration_based_standard_state
mole_fraction_based_standard_state
Henry_law_standard_state
RULE:
activity_value_is_not_semantically_complete_without_standard_state_convention
}
CONCENTRATION_ACTIVITY_MODEL {
concentration_based:
a_i =
gamma_c_i*(c_i/c_standard)
WHERE:
c_standard = declared_standard_concentration
ideal_dilute_limit:
gamma_c_i approximately_equals 1
RULE:
activity != concentration
and_logarithmic_thermodynamic_relations_require_dimensionless_activity
}
MOLALITY_ACTIVITY_MODEL {
molality_based:
a_i =
gamma_b_i*(b_i/b_standard)
WHERE:
b_standard = declared_standard_molality
common_reference:
b_standard = 1 mol/kg
under_specific_convention
RULE:
molality_activity_coefficient_is_tied_to_molality_standard_state
}
MOLE_FRACTION_ACTIVITY_MODEL {
mole_fraction_based:
a_i = gamma_x_i*x_i
ideal_solution:
gamma_x_i = 1
pure_component_standard_state:
a_i -> 1
as x_i -> 1
for_appropriate_Raoult_standard_state
RULE:
mole_fraction_activity_coefficient
MUST preserve_standard_state_definition
}
GAS_ACTIVITY_MODEL {
ideal_gas:
a_i = p_i/p_standard
real_gas:
a_i = f_i/f_standard
fugacity:
f_i = phi_i*p_i
WHERE:
phi_i = fugacity_coefficient
RULE:
real_gas_activity SHOULD use_fugacity_or_equivalent_nonideality_model
}
SOLVENT_ACTIVITY_MODEL {
solvent_activity:
may_be_related_to_vapour_pressure
ideal_Raoult_context:
a_solvent approximately_equals x_solvent
vapour_pressure_relation:
a_solvent =
p_solvent/p_solvent_star
under_applicable_equilibrium_and_standard_state
RULE:
solvent_activity_and_solvent_mole_fraction_are_not_generally_identical
}
IONIC_ACTIVITY_MODEL {
ion_activity:
a_i =
gamma_i*(composition_i/standard_composition)
difficulty:
single_ion_activity_is_not_directly_measurable_independently
in_conventional_thermodynamic_treatment
measurable_combinations:
mean_ionic_activity
activity_products
electrochemical_cell_quantities
RULE:
single_ion_activity_values_require_extrathermodynamic_convention_when_reported
}
MEAN_IONIC_ACTIVITY_MODEL {
electrolyte:
M_nu_plus X_nu_minus
stoichiometric_total:
nu = nu_plus + nu_minus
mean_ionic_activity:
a_plus_minus =
(a_plus^nu_plus * a_minus^nu_minus)^(1/nu)
mean_activity_coefficient:
gamma_plus_minus =
(gamma_plus^nu_plus * gamma_minus^nu_minus)^(1/nu)
RULE:
electrolyte_stoichiometry_and_charge_balance MUST be preserved
}
IONIC_STRENGTH_MODEL {
concentration_basis:
I_c = 0.5*sum(c_i*z_i^2)
molality_basis:
I_b = 0.5*sum(b_i*z_i^2)
REQUIRE:
ionic_species
charge_numbers
declared_composition_basis
RULE:
concentration_based_and_molality_based_ionic_strength
MUST_NOT be numerically_interchanged_without_conversion
}
DEBYE_HUCKEL_MODEL {
limiting_law:
log10(gamma_i) =
-A*z_i^2*sqrt(I)
CONDITIONS:
sufficiently_low_ionic_strength
solvent_and_temperature_specific_A
compatible_ionic_strength_basis
RULE:
Debye_Huckel_limiting_law MUST NOT be extrapolated_to_high_ionic_strength
}
EXTENDED_ACTIVITY_MODELS {
possible_models:
extended_Debye_Huckel
Davies
SIT
Pitzer
specific_ion_interaction_models
REQUIRE:
model_parameters
temperature
solvent
ionic_strength
composition
RULE:
activity_coefficients_from_different_models
MUST preserve_model_identity_and_parameter_source
}
CHEMICAL_POTENTIAL_MODEL {
RELATION:
mu_i =
mu_i_standard + R*T*ln(a_i)
INVERSE:
a_i =
exp((mu_i-mu_i_standard)/(R*T))
WHEN T > 0
RULE:
standard_chemical_potential_and_activity_standard_state
MUST be mutually_consistent
}
EQUILIBRIUM_MODEL {
reaction:
sum(nu_i*A_i) = 0
reaction_quotient:
Q = product(a_i^nu_i)
equilibrium:
Q = K
at_chemical_equilibrium
standard_Gibbs_relation:
delta_r_G_standard =
-R*T*ln(K)
RULE:
thermodynamic_equilibrium_constant_is_dimensionless_when_defined_in_terms_of_activities
}
ACID_BASE_MODEL {
acid_dissociation:
HA <-> H_plus + A_minus
K_a:
K_a =
a_H_plus*a_A_minus/a_HA
pKa:
pKa = -log10(K_a)
pH:
pH = -log10(a_H_plus)
RULE:
pH_and_acid_dissociation_constants_are_activity_based
}
SOLUBILITY_MODEL {
dissolution_example:
MX(s) <-> M_plus + X_minus
solubility_product:
K_sp =
a_M_plus*a_X_minus
for_unit_stoichiometry_example
RULE:
precipitation_and_solubility_reasoning SHOULD use_activities_when_nonideality_is_material
}
REDOX_MODEL {
reaction_quotient:
Q = product(a_i^nu_i)
Nernst:
E =
E_standard - (R*T/(n_e*F))*ln(Q)
RULE:
activities_and_electrode_reference_conventions MUST be preserved
}
WATER_ACTIVITY_MODEL {
symbol:
a_w
relevance:
solution_thermodynamics
osmotic_properties
food_and_material_stability
humidity_equilibrium
relative_humidity_relation:
equilibrium_RH approximately_equals 100*a_w_percent
under_applicable_vapour_equilibrium_context
RULE:
water_activity != moisture_content
}
RELATIONSHIPS {
ChemicalActivity -> DETERMINES -> ChemicalPotential
ChemicalActivity -> DEPENDS_ON -> StandardState
ChemicalActivity -> RELATES_TO -> Composition
ActivityCoefficient -> CORRECTS -> NonidealComposition
IonicStrength -> INFLUENCES -> IonicActivityCoefficient
ChemicalActivity -> PARTICIPATES_IN -> ReactionQuotient
ChemicalActivity -> PARTICIPATES_IN -> EquilibriumConstant
HydrogenIonActivity -> DETERMINES -> pH
ChemicalActivity -> PARTICIPATES_IN -> NernstEquation
SolventActivity -> RELATES_TO -> VapourPressure
WaterActivity -> RELATES_TO -> EquilibriumHumidity
}
SEMANTIC_EQUIVALENCE {
"chemical activity" ~= thermodynamic_activity
"activity coefficient" ~= nonideality_factor_under_declared_standard_state
activity != concentration
activity != molality
activity != mole_fraction
activity != mass_fraction
activity_coefficient != activity
ionic_strength != activity
water_activity != water_content
fugacity != pressure_exactly_for_real_gas
}
CONSTRAINTS {
chemical_activity_is_dimensionless = true
activity_must_be_positive_for_logarithmic_chemical_potential_relation = true
species_identity_must_be_defined = true
standard_state_must_be_defined = true
activity_coefficient_convention_must_match_composition_basis = true
activity_and_concentration_are_not_semantically_equivalent = true
single_ion_activity_requires_special_convention = true
equilibrium_constant_activity_definition_must_preserve_stoichiometry = true
temperature_and_model_validity_should_be_preserved = true
}
MEASUREMENT_MODEL {
OBSERVABLE_OR_INFERRED:
ChemicalActivity
ActivityCoefficient
COMMON_INFERENCE_METHODS:
electrochemical_cell_measurement
vapour_pressure_measurement
osmotic_measurement
solubility_equilibrium
phase_equilibrium
spectroscopic_equilibrium
calibrated_thermodynamic_model
RECORD:
species
numerical_value
dimensionless
activity_or_activity_coefficient
standard_state
composition_basis
concentration_or_molality_or_mole_fraction
solvent
temperature
pressure
ionic_strength
phase
activity_model
model_parameters
measurement_or_inference_method
reference_data
calibration_state
timestamp
uncertainty
UNCERTAINTY:
measured_or_inferred_activity = best_estimate +/- uncertainty
}
CALIBRATION_AND_MODEL_MODEL {
REQUIRE:
composition_measurement
thermodynamic_model
model_parameters
reference_state
temperature
pressure_when_relevant
parameter_sources:
experimental_fit
certified_reference_data
literature_reference
equation_of_state
RULE:
inferred_activity MUST preserve_model_and_parameter_provenance
}
UNCERTAINTY_MODEL {
sources:
composition_measurement
temperature
pressure
ionic_strength
activity_coefficient_model
parameter_fit
standard_state
electrochemical_potential
vapour_pressure
equilibrium_data
numerical_solution
model_extrapolation
PROPAGATION:
derived_activity_uncertainty
<- composition_state_model_parameter_and_measurement_uncertainties
}
REASONING_RULES {
IF normalized_composition_known AND activity_coefficient_known
THEN activity =
activity_coefficient*normalized_composition
IF activity_known AND activity > 0
AND standard_chemical_potential_temperature_known
AND temperature > 0
THEN chemical_potential =
standard_chemical_potential + R*temperature*ln(activity)
IF chemical_potential_standard_potential_and_temperature_known
AND temperature > 0
THEN activity =
exp((chemical_potential-standard_chemical_potential)/(R*temperature))
IF ionic_composition_and_charges_known
THEN ionic_strength =
0.5*sum(composition_i*charge_i^2)
USING declared_basis
IF low_ionic_strength_and_Debye_Huckel_conditions_apply
THEN infer_activity_coefficient_from_ionic_strength
IF species_activities_and_stoichiometric_coefficients_known
THEN reaction_quotient =
product(activity_i^stoichiometric_coefficient_i)
IF reaction_at_equilibrium
THEN reaction_quotient = equilibrium_constant
IF hydrogen_ion_activity_known AND activity > 0
THEN pH = -log10(hydrogen_ion_activity)
IF ideal_gas_partial_pressure_known AND standard_pressure_known
THEN gas_activity =
partial_pressure/standard_pressure
}
VALIDATION {
CHECK species_identity
CHECK dimensionless_activity
CHECK activity_positive_when_logarithm_used
CHECK standard_state
CHECK composition_basis
CHECK activity_coefficient_basis
CHECK temperature
CHECK pressure_when_relevant
CHECK ionic_strength_basis
CHECK single_ion_vs_mean_ionic_activity
CHECK activity_model_validity_range
CHECK equilibrium_stoichiometry
CHECK activity_vs_concentration
CHECK water_activity_vs_moisture_content
CHECK model_parameter_provenance
CHECK uncertainty_representation
}
CONFIDENCE {
definition_confidence: 1.00
dimensionless_confidence: 1.00
chemical_potential_relationship_confidence: 1.00
equilibrium_relationship_confidence: 1.00
activity_coefficient_model_confidence: 0.97
measurement_context_confidence: 0.97
RULE:
confidence decreases when standard state, composition basis,
temperature, ionic strength, activity model,
parameter source or uncertainty is missing or ambiguous
}
UPDATE_MODEL {
ON new_activity_inference:
identify_species
identify_standard_state
identify_composition_basis
attach_composition_value
attach_temperature_and_pressure
attach_solvent_and_phase
identify_activity_coefficient_model
attach_model_parameters
calculate_dimensionless_activity
preserve_input_composition
attach_uncertainty
update_activity_state
ON composition_change:
update_composition
update_ionic_strength
recompute_activity_coefficients
recompute_activities
update_equilibrium_quantities_when_required
ON temperature_or_pressure_change:
update_state_conditions
update_model_parameters_when_available
recompute_activity_and_chemical_potential
preserve_previous_state
ON standard_state_change:
preserve_physical_chemical_potential
transform_activity_and_standard_chemical_potential_consistently
record_reference_revision
ON model_revision:
preserve_previous_model
attach_new_model_and_parameters
recompute_affected_activities
update_uncertainty
update_confidence
ON semantic_revision:
preserve_previous_definition
record_revision
recompute_FLOW_HASH
}
AI_CONSUMPTION {
canonical_entity: ChemicalActivity
canonical_symbol: a_i
canonical_dimension: dimensionless
interpretation_order:
identify_species
identify_activity_or_activity_coefficient
identify_value
identify_standard_state
identify_composition_basis
identify_concentration_molality_mole_fraction_or_fugacity_context
identify_solvent_and_phase
identify_temperature_and_pressure
identify_ionic_strength
identify_activity_coefficient_model
identify_equilibrium_or_chemical_potential_context
identify_measurement_or_inference_method
identify_model_parameter_provenance
identify_uncertainty
validate_dimensionless_semantics
infer_thermodynamic_relationships
ambiguity_controls:
distinguish_activity_from_concentration
distinguish_activity_from_molality
distinguish_activity_from_mole_fraction
distinguish_activity_from_activity_coefficient
distinguish_single_ion_from_mean_ionic_activity
distinguish_ionic_strength_from_activity
distinguish_fugacity_from_pressure
distinguish_water_activity_from_moisture_content
preserve_species_standard_state_composition_temperature_model_and_parameter_context
}
PROVENANCE {
ontology_scope:
mathematical_measurement_and_chemical_activity_semantics
parent_path:
Ontologies
-> Mathematical Ontologies
-> Measurement & Units Ontologies
-> Chemical Measurements
-> Chemical Activity Ontology
authorship:
Mark Higgins
Sky (Recursive AI)
site:
https://kirethresearch.org
}
FLOW_HASH {
INPUTS:
canonical_entity
ontology_path
standard_state_model
concentration_activity_model
molality_activity_model
mole_fraction_activity_model
gas_activity_model
solvent_activity_model
ionic_activity_model
mean_ionic_activity_model
ionic_strength_model
Debye_Huckel_model
extended_activity_models
chemical_potential_model
equilibrium_model
acid_base_model
solubility_model
redox_model
water_activity_model
relationships
constraints
measurement_model
calibration_and_model_model
uncertainty_model
reasoning_rules
confidence_model
update_model
PURPOSE:
deterministic_semantic_integrity_identifier
RECOMPUTE_WHEN:
ontology_definition_changes
standard_state_model_changes
composition_basis_model_changes
activity_coefficient_model_changes
ionic_strength_model_changes
equilibrium_model_changes
chemical_potential_model_changes
measurement_or_inference_model_changes
parameter_model_changes
constraint_model_changes
reasoning_rule_changes
}
}
END FLOW
Download Code
Copy to Clipboard