# Concentration Ontology — Flow Algebra
URL: https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/measurement-units-ontologies/chemical-measurements/concentration-ontology.html
FLOW ConcentrationOntology {
DOMAIN:
Mathematical Ontologies
-> Measurement & Units Ontologies
-> Chemical Measurements
-> Concentration Ontology
PURPOSE:
Represent chemical concentration as a family of composition quantities describing the amount or mass of a specified component relative to solution volume, solvent mass, total mixture amount, or other declared basis, including amount concentration, mass concentration, molality, fractions, dilution, density conversion, temperature dependence, analytical measurement, calibration, uncertainty, and strict semantic distinction between concentration definitions.
ENTITY AmountConcentration {
TYPE: DerivedChemicalCompositionQuantity
SYMBOL: c_i
DIMENSION: N * L^-3
SI_UNIT: mole_per_cubic_metre
SI_SYMBOL: mol/m^3
COMMON_UNIT:
mol/L
DEFINITION:
c_i = n_i/V_solution
REQUIRE:
V_solution != 0
}
ENTITY MassConcentration {
TYPE: DerivedChemicalCompositionQuantity
SYMBOL: rho_i
DIMENSION: M * L^-3
SI_UNIT: kilogram_per_cubic_metre
SI_SYMBOL: kg/m^3
DEFINITION:
rho_i = m_i/V_solution
REQUIRE:
V_solution != 0
}
ENTITY Molality {
TYPE: DerivedChemicalCompositionQuantity
SYMBOL: b_i
DIMENSION: N * M^-1
SI_UNIT: mole_per_kilogram
SI_SYMBOL: mol/kg
DEFINITION:
b_i = n_i/m_solvent
REQUIRE:
m_solvent != 0
}
ENTITY MoleFraction {
TYPE: DimensionlessCompositionQuantity
SYMBOL: x_i
DEFINITION:
x_i = n_i/n_total
COMPLETE_MIXTURE:
sum(x_i) = 1
}
ENTITY MassFraction {
TYPE: DimensionlessCompositionQuantity
SYMBOL: w_i
DEFINITION:
w_i = m_i/m_total
COMPLETE_MIXTURE:
sum(w_i) = 1
}
ENTITY VolumeFraction {
TYPE: DimensionlessCompositionQuantity
SYMBOL: phi_i
DEFINITION:
phi_i = V_i/V_total
UNDER declared_volume_definition
}
TERMINOLOGY_MODEL {
phrase:
"concentration"
possible_meanings:
amount_concentration
mass_concentration
molality
mole_fraction
mass_fraction
volume_fraction
number_concentration
equivalent_concentration
activity_based_effective_concentration
RULE:
concentration_basis MUST be resolved_before_quantitative_reasoning
}
UNIT_SYSTEM {
amount_concentration:
SI: mol/m^3
common: mol/L, mmol/L, micromol/L
mass_concentration:
SI: kg/m^3
common: g/L, mg/L, microgram/L
molality:
SI: mol/kg
fractions:
dimensionless
common_ratio_units:
percent
ppm
ppb
ppt
RULE:
percent_ppm_ppb_and_ppt MUST identify_basis
such_as_mass_mass_volume_volume_mole_fraction_or_mass_volume
}
AMOUNT_CONCENTRATION_MODEL {
c_i = n_i/V_solution
amount:
n_i = c_i*V_solution
volume:
V_solution = n_i/c_i
WHEN c_i != 0
RULE:
solution_volume_not_solvent_volume MUST be used
unless_alternative_definition_explicitly_declared
}
MASS_CONCENTRATION_MODEL {
rho_i = m_i/V_solution
mass:
m_i = rho_i*V_solution
RULE:
mass_concentration != solution_density
unless_component_is_entire_solution_under_special_context
}
MOLALITY_MODEL {
b_i = n_i/m_solvent
PROPERTY:
based_on_solvent_mass
and_less_directly_temperature_sensitive_than_volume_based_molarity
RULE:
molality != amount_concentration
}
FRACTION_MODEL {
mole_fraction:
x_i = n_i/n_total
mass_fraction:
w_i = m_i/m_total
volume_fraction:
phi_i = V_i/V_total
UNDER declared_volume_basis
CONSTRAINT:
complete_component_fraction_sum = 1
RULE:
fraction_type MUST be preserved
}
DILUTION_MODEL {
conserved_solute_amount:
c_1*V_1 = c_2*V_2
CONDITIONS:
same_solute
no_reaction
no_precipitation_or_loss
compatible_amount_concentration
defined_volumes
dilution_factor:
DF = V_final/V_aliquot
under_simple_volumetric_dilution
original_concentration:
c_original = c_measured*DF
RULE:
dilution_factor_definition MUST be declared
}
DENSITY_CONVERSION_MODEL {
solution_density:
rho_solution = m_solution/V_solution
mass_fraction_to_mass_concentration:
rho_i = rho_solution*w_i
mass_concentration_to_amount_concentration:
c_i = rho_i/M_i
WHEN M_i != 0
mass_fraction_to_amount_concentration:
c_i = rho_solution*w_i/M_i
WHEN M_i != 0
RULE:
density_temperature_and_molar_mass MAY be required_for_basis_conversion
}
MOLARITY_MOLALITY_CONVERSION_MODEL {
REQUIRE:
solution_density
solute_molar_mass
composition_basis
temperature
RULE:
amount_concentration_and_molality
MUST NOT be converted_by_simple_unit_factor_alone
}
TEMPERATURE_MODEL {
volume_based_concentration:
may_change_with_temperature_due_to_thermal_expansion
mass_based_quantities:
mass_fraction_and_molality_less_directly_affected_by_volume_expansion
RULE:
precision_amount_or_mass_concentration SHOULD preserve_measurement_temperature
}
MIXTURE_MODEL {
multi_component_solution:
component_concentrations indexed_by_chemical_entity
REQUIRE:
analyte_identity
solvent_or_matrix_identity
composition_basis
RULE:
numerical_concentration_without_component_identity
is_semantically_incomplete
}
ACTIVITY_DISTINCTION_MODEL {
activity:
a_i = gamma_i*normalized_composition_quantity
ideal_dilute_context:
activity MAY approximate normalized_concentration
RULE:
concentration != thermodynamic_activity
}
SATURATION_MODEL {
solubility_limit:
maximum_equilibrium_concentration_under_defined_conditions
dependencies:
temperature
pressure
solvent
pH
ionic_strength
solid_phase
RULE:
concentration_above_equilibrium_solubility MAY indicate_supersaturation_or_non_equilibrium_state
}
ANALYTICAL_CALIBRATION_MODEL {
generic_response:
y = f(c)
linear:
y = a + b*c
inverse:
c_unknown = (y_unknown-a)/b
WHEN b != 0
REQUIRE:
calibration_standards
matrix
concentration_basis
valid_range
blank
response_model
uncertainty
RULE:
standards_and_unknown MUST use_compatible_concentration_basis
}
SPECTROPHOTOMETRIC_MODEL {
Beer_Lambert:
A = epsilon*l*c
inference:
c = A/(epsilon*l)
WHEN epsilon != 0 AND l != 0
REQUIRE:
analyte
wavelength
path_length
molar_absorptivity
applicable_linear_range
RULE:
inferred_c_basis MUST match_absorptivity_definition
}
CHROMATOGRAPHIC_MODEL {
detector_response:
peak_area_or_height -> concentration
REQUIRE:
response_factor_or_calibration_curve
injection_volume_when_relevant
sample_preparation
dilution
internal_standard_when_used
RULE:
chromatographic_response_is_not_concentration_without_calibration
}
SAMPLE_PREPARATION_MODEL {
operations:
weighing
volumetric_transfer
dilution
extraction
digestion
filtration
evaporation
reconstitution
derivatisation
cumulative_dilution:
DF_total = product(DF_i)
under_consistent_definition
RULE:
preparation_history MUST be preserved_for_back_calculation_to_original_sample
}
RELATIONSHIPS {
Concentration -> DESCRIBES -> ChemicalComposition
AmountConcentration -> RELATES -> AmountAndSolutionVolume
MassConcentration -> RELATES -> ComponentMassAndSolutionVolume
Molality -> RELATES -> SoluteAmountAndSolventMass
MoleFraction -> RELATES -> ComponentAmountAndTotalAmount
MassFraction -> RELATES -> ComponentMassAndTotalMass
Density -> ENABLES -> ConcentrationBasisConversion
MolarMass -> ENABLES -> MassToAmountConcentrationConversion
Dilution -> CHANGES -> Concentration
CalibrationModel -> MAPS -> AnalyticalResponseToConcentration
Temperature -> MAY_AFFECT -> VolumeBasedConcentration
}
SEMANTIC_EQUIVALENCE {
"molar concentration" ~= amount_concentration
"molarity" ~= amount_concentration WHEN solution_context
"mass per volume concentration" ~= mass_concentration
concentration != amount_concentration_without_basis
amount_concentration != molality
mass_concentration != mass_fraction
mole_fraction != amount_concentration
volume_fraction != mass_fraction
concentration != activity
concentration != density
}
CONSTRAINTS {
analyte_identity_must_be_defined = true
concentration_basis_must_be_defined = true
denominator_quantity_must_be_nonzero = true
amount_concentration_uses_solution_volume = true
molality_uses_solvent_mass = true
fractions_are_dimensionless = true
ppm_ppb_and_percent_basis_must_be_identified = true
temperature_should_be_preserved_for_precision_volume_based_concentration = true
concentration_and_activity_are_not_semantically_equivalent = true
calibration_basis_must_match_reported_basis = true
}
MEASUREMENT_MODEL {
OBSERVABLE_OR_INFERRED:
Concentration
COMMON_METHODS:
gravimetric_preparation
volumetric_preparation
titration
spectrophotometry
chromatography
mass_spectrometry
electrochemistry
elemental_analysis
RECORD:
analyte
chemical_entity
numerical_value
unit
concentration_basis
sample
matrix
solvent
sample_mass_or_volume
solution_volume
solvent_mass_when_relevant
molar_mass_when_relevant
density_when_relevant
temperature
pressure_when_relevant
dilution_factor
preparation_history
analytical_method
calibration_model
calibration_range
blank
recovery
detection_limit
quantification_limit
timestamp
uncertainty
UNCERTAINTY:
measured_or_inferred_concentration = best_estimate +/- uncertainty
}
UNCERTAINTY_MODEL {
sources:
sample_mass
solution_volume
solvent_mass
temperature
density
molar_mass_or_purity
volumetric_glassware
dilution
extraction_recovery
calibration
blank
matrix_effect
instrument_repeatability
drift
sample_heterogeneity
PROPAGATION:
derived_concentration_uncertainty
<- sampling_preparation_basis_conversion_calibration_and_measurement_uncertainties
}
REASONING_RULES {
IF solute_amount_known AND solution_volume != 0
THEN amount_concentration =
solute_amount/solution_volume
IF solute_mass_known AND solution_volume != 0
THEN mass_concentration =
solute_mass/solution_volume
IF solute_amount_known AND solvent_mass != 0
THEN molality =
solute_amount/solvent_mass
IF component_amount_and_total_amount_known AND total_amount != 0
THEN mole_fraction =
component_amount/total_amount
IF component_mass_and_total_mass_known AND total_mass != 0
THEN mass_fraction =
component_mass/total_mass
IF solution_density_and_mass_fraction_known
THEN mass_concentration =
solution_density*mass_fraction
IF mass_concentration_known AND molar_mass != 0
THEN amount_concentration =
mass_concentration/molar_mass
IF initial_amount_concentration_and_volume_known
AND final_volume != 0
AND solute_amount_conserved
THEN final_amount_concentration =
initial_concentration*initial_volume/final_volume
IF measured_concentration_and_dilution_factor_known
THEN original_concentration =
measured_concentration*dilution_factor
UNDER declared_dilution_factor_definition
IF analytical_response_and_valid_calibration_known
THEN infer_concentration =
inverse_calibration(analytical_response)
}
VALIDATION {
CHECK analyte_identity
CHECK concentration_basis
CHECK unit_consistency
CHECK denominator_nonzero
CHECK solution_volume_vs_solvent_mass
CHECK amount_concentration_vs_molality
CHECK mass_concentration_vs_mass_fraction
CHECK ppm_ppb_or_percent_basis
CHECK fraction_sum_when_complete_mixture
CHECK density_and_molar_mass_for_basis_conversion
CHECK temperature_when_volume_sensitive
CHECK dilution_factor_definition
CHECK preparation_history
CHECK calibration_basis_and_range
CHECK blank_and_recovery
CHECK detection_and_quantification_limits
CHECK uncertainty_representation
}
CONFIDENCE {
definition_confidence: 1.00
unit_confidence: 1.00
basis_relationship_confidence: 1.00
dilution_relationship_confidence: 0.99
analytical_calibration_confidence: 0.98
measurement_context_confidence: 0.97
RULE:
confidence decreases when analyte, basis, denominator,
sample matrix, temperature, density, dilution,
preparation, calibration or uncertainty is missing or ambiguous
}
UPDATE_MODEL {
ON new_measurement:
identify_analyte
identify_concentration_basis
validate_unit
identify_sample_matrix_and_solvent
attach_mass_volume_or_solvent_mass_inputs
attach_temperature
attach_density_and_molar_mass_when_relevant
attach_preparation_and_dilution_history
apply_valid_calibration
normalize_to_canonical_basis_when_requested_and_supported
preserve_original_value_unit_and_basis
attach_uncertainty
update_concentration_state
ON dilution:
preserve_pre_dilution_state
update_volume_and_dilution_factor
recompute_concentration
preserve_solute_amount_when_valid
ON temperature_change:
update_temperature
update_solution_volume_or_density_when_model_available
recompute_volume_based_concentration
preserve_mass_based_composition_quantities
ON basis_conversion:
validate_required_density_molar_mass_and_temperature
preserve_original_basis
compute_target_basis
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_domain: ChemicalConcentration
interpretation_order:
identify_analyte
resolve_concentration_basis
identify_value
identify_unit
identify_denominator_quantity
identify_sample_matrix_and_solvent
identify_temperature_and_pressure
identify_density_and_molar_mass_when_relevant
identify_dilution_and_preparation_history
identify_analytical_method
identify_calibration
identify_detection_and_quantification_limits
identify_uncertainty
normalize_units
validate_basis
infer_concentration_relationships
ambiguity_controls:
distinguish_generic_concentration_from_specific_basis
distinguish_amount_concentration_from_molality
distinguish_mass_concentration_from_mass_fraction
distinguish_mole_fraction_from_molarity
distinguish_volume_fraction_from_mass_fraction
distinguish_concentration_from_density
distinguish_concentration_from_activity
distinguish_ppm_ppb_and_percent_bases
preserve_analyte_matrix_temperature_preparation_dilution_and_calibration_context
}
PROVENANCE {
ontology_scope:
mathematical_measurement_and_chemical_concentration_semantics
parent_path:
Ontologies
-> Mathematical Ontologies
-> Measurement & Units Ontologies
-> Chemical Measurements
-> Concentration Ontology
authorship:
Mark Higgins
Sky (Recursive AI)
site:
https://kirethresearch.org
}
FLOW_HASH {
INPUTS:
canonical_domain
ontology_path
terminology_model
unit_system
amount_concentration_model
mass_concentration_model
molality_model
fraction_model
dilution_model
density_conversion_model
molarity_molality_conversion_model
temperature_model
mixture_model
activity_distinction_model
saturation_model
analytical_calibration_model
spectrophotometric_model
chromatographic_model
sample_preparation_model
relationships
constraints
measurement_model
uncertainty_model
reasoning_rules
confidence_model
update_model
PURPOSE:
deterministic_semantic_integrity_identifier
RECOMPUTE_WHEN:
ontology_definition_changes
concentration_basis_model_changes
unit_model_changes
dilution_model_changes
density_or_molar_mass_conversion_changes
temperature_model_changes
sample_preparation_model_changes
calibration_model_changes
measurement_model_changes
constraint_model_changes
reasoning_rule_changes
}
}
END FLOW
Download Code
Copy to Clipboard