Skip to main content

Significant Figures Ontology

Measurement Mathematics
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 16 September 2026
Audio Overview
# Significant Figures Ontology — Flow Algebra

URL: https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/measurement-units-ontologies/measurement-mathematics/significant-figures-ontology-2.html

FLOW SignificantFiguresOntology {

  DOMAIN:
    Mathematical Ontologies
    -> Measurement & Units Ontologies
    -> Measurement Mathematics
    -> Significant Figures Ontology

  PURPOSE:
    Represent significant figures as a reporting and numerical-expression convention used to communicate meaningful digits in measured, calculated and stated quantity values. The ontology models significant digits, leading and trailing zeros, decimal notation, scientific notation, exact quantities, measured quantities, uncertainty-aware reporting, rounding, guard digits, arithmetic rules, logarithmic and exponential transformations, unit conversion, resolution, precision, computational precision, provenance and machine-consumable reasoning while strictly distinguishing significant figures from measurement uncertainty, accuracy, precision, resolution and the intrinsic information content of a measurement.

  ENTITY SignificantFigures {
    TYPE: NumericalReportingConvention

    DEFINITION:
      digits_in_a_reported_numerical_value
      regarded_as_carrying_meaningful_information
      according_to_declared_measurement_reporting_or_calculation_context

    PROPERTIES:
      depends_on_notation
      depends_on_reporting_context
      includes_all_certain_digits_and_relevant_uncertain_digit_under_common_measurement_convention
      may_be_preserved_by_scientific_notation
      is_not_measurement_uncertainty
      is_not_accuracy
      is_not_precision
      is_not_resolution
  }

  ENTITY SignificantDigit {
    TYPE: DigitRole

    POSSIBLE:
      nonzero_digit
      interior_zero
      significant_trailing_zero
      declared_zero_in_scientific_notation
  }

  ENTITY NumericalRepresentation {
    TYPE: QuantityValueRepresentation

    COMPONENTS:
      sign
      coefficient
      decimal_position
      exponent
      unit
      significant_digit_count
  }

  TERMINOLOGY_MODEL {
    terms:
      significant_figures
      significant_digits
      sig_figs
      decimal_places
      precision
      resolution
      uncertainty
      rounding
      exact_number

    RULE:
      significant_figures != decimal_places
      and_significant_figures != measurement_precision
  }

  DIGIT_COUNT_MODEL {
    value:
      represented_number

    significant_count:
      number_of_digits_declared_significant

    RULE:
      counting_requires_notation_and_zero_semantics
  }

  NONZERO_DIGIT_MODEL {
    digits:
      1_to_9

    RULE:
      all_nonzero_digits_in_declared_numeric_coefficient_are_significant
  }

  INTERIOR_ZERO_MODEL {
    example:
      1002

    interpretation:
      zeros_between_nonzero_significant_digits_are_significant

    significant_figures:
      4
  }

  LEADING_ZERO_MODEL {
    example:
      0.00452

    interpretation:
      leading_zeros_position_decimal_point
      and_are_not_significant

    significant_figures:
      3
  }

  TRAILING_DECIMAL_ZERO_MODEL {
    example:
      2.500

    interpretation:
      trailing_zeros_after_decimal_point_are_significant_when_notation_is_intended_to_convey_precision

    significant_figures:
      4

    RULE:
      context_can_override_when_value_is_identifier_or_nonmeasurement_number
  }

  TRAILING_INTEGER_ZERO_MODEL {
    example:
      1500

    ambiguity:
      may_have_2_3_or_4_significant_figures_without_additional_notation

    RULE:
      plain_integer_trailing_zeros_are_semantically_ambiguous
      and_scientific_notation_or_explicit_metadata_is_preferred
  }

  EXPLICIT_DECIMAL_MODEL {
    example:
      1500.

    conventional_interpretation:
      decimal_marker_may_signal_trailing_zeros_are_significant

    RULE:
      machine_representation SHOULD prefer_explicit_significant_digit_metadata_or_scientific_notation
  }

  SCIENTIFIC_NOTATION_MODEL {
    form:
      a*10^n

    normalized:
      1 <= abs(a) < 10
      for_nonzero_decimal_scientific_notation

    significant_figures:
      digits_explicitly_written_in_coefficient

    examples:
      1.5e3 -> 2_significant_figures
      1.50e3 -> 3_significant_figures
      1.500e3 -> 4_significant_figures

    RULE:
      exponent_does_not_change_significant_figure_count
  }

  ENGINEERING_NOTATION_MODEL {
    exponent:
      multiple_of_3

    RULE:
      significant_figures_are_counted_in_coefficient
  }

  ZERO_VALUE_MODEL {
    value:
      zero

    ambiguity:
      numeric_zero_alone_does_not_encode_measurement_resolution_or_significant_digit_count

    examples:
      0
      0.0
      0.00

    RULE:
      zero_measurement_requires_explicit_resolution_uncertainty_or_digit_metadata_for_unambiguous_information_content
  }

  EXACT_NUMBER_MODEL {
    exact:
      defined_or_counted_quantity_with_no_relevant_rounding_uncertainty

    examples:
      number_of_objects_when_exactly_counted
      defined_conversion_factor
      mathematical_constant_when_symbolically_exact

    RULE:
      exact_numbers_do_not_limit_significant_figures_in_arithmetic
  }

  DEFINED_CONSTANT_MODEL {
    exact_conversion:
      e.g._defined_unit_relation

    RULE:
      exact_defined_constant MUST not_be_treated_as_measured_limited_sig_fig_input
  }

  MEASURED_VALUE_MODEL {
    measured_quantity:
      finite_information_and_uncertainty

    reporting:
      significant_figures_should_be_consistent_with_uncertainty_and_resolution

    RULE:
      significant_digit_count_alone_does_not_define_measurement_uncertainty
  }

  DECIMAL_PLACE_MODEL {
    decimal_places:
      digits_to_right_of_decimal_separator

    example:
      0.00450
      has_5_decimal_places
      and_3_significant_figures

    RULE:
      decimal_places != significant_figures
  }

  ORDER_OF_MAGNITUDE_MODEL {
    nonzero_value:
      x

    decimal_order:
      floor(log10(abs(x)))

    RULE:
      order_of_magnitude_supports_rounding_position
  }

  SIGNIFICANT_PLACE_MODEL {
    n_significant_figures:
      p

    decimal_rounding_position:
      order_of_magnitude-(p-1)

    RULE:
      valid_for_nonzero_finite_decimal_value
  }

  ROUNDING_MODEL {
    input:
      x

    target:
      p_significant_figures

    process:
      determine_rounding_position
      apply_declared_rounding_mode

    RULE:
      rounding_mode MUST be defined_for_ties
  }

  ROUND_TO_NEAREST_MODEL {
    common:
      inspect_first_discarded_digit

    RULE:
      exact_tie_handling_depends_on_declared_rounding_rule
  }

  HALF_UP_MODEL {
    tie:
      increment_retained_digit_away_from_lower_magnitude_under_positive_decimal_context

    RULE:
      sign_semantics MUST be defined_for_negative_values
  }

  HALF_EVEN_MODEL {
    tie:
      choose_result_with_even_last_retained_digit

    purpose:
      reduce_systematic_rounding_bias_over_many_ties

    RULE:
      half_even != half_up
  }

  TRUNCATION_MODEL {
    process:
      discard_digits_without_rounding_increment

    RULE:
      truncation != rounding_to_nearest
  }

  GUARD_DIGIT_MODEL {
    internal_calculation:
      retain_more_digits_than_final_report

    purpose:
      reduce_intermediate_rounding_error

    RULE:
      round_final_result_once_when_practical
  }

  DOUBLE_ROUNDING_MODEL {
    process:
      value_rounded_to_intermediate_precision
      then_rounded_again

    risk:
      final_result_may_differ_from_direct_rounding

    RULE:
      avoid_unnecessary_intermediate_rounding
  }

  ADDITION_RULE_MODEL {
    conventional_sig_fig_rule:
      addition_or_subtraction_result_rounded_to_least_precise_decimal_place_among_inexact_inputs

    RULE:
      uncertainty_propagation_is_preferred_when_uncertainties_are_available
  }

  SUBTRACTION_RULE_MODEL {
    conventional:
      use_decimal_place_limit

    cancellation:
      subtraction_of_nearly_equal_values_can_reduce_relative_information

    RULE:
      significant_fig_rule_does_not_replace_numerical_conditioning_analysis
  }

  MULTIPLICATION_RULE_MODEL {
    conventional:
      product_reported_with_same_number_of_significant_figures_as_least_sig_fig_inexact_factor

    RULE:
      exact_factors_do_not_limit_count
      and_uncertainty_propagation_is_more_informative_when_available
  }

  DIVISION_RULE_MODEL {
    conventional:
      quotient_reported_with_same_number_of_significant_figures_as_least_sig_fig_inexact_input

    REQUIRE:
      denominator != 0
  }

  MIXED_OPERATION_MODEL {
    expression:
      multiple_operations

    RULE:
      carry_guard_digits_through_intermediate_steps
      and_round_at_final_stage_according_to_limiting_information
  }

  POWER_MODEL {
    y =
      x^a

    conventional_reporting:
      depends_on_uncertainty_and_context

    RULE:
      blanket_sig_fig_rule_for_general_powers_is_less_reliable_than_uncertainty_propagation
  }

  LOGARITHM_MODEL {
    y =
      log10(x)

    traditional_rule:
      significant_figures_in_x_correspond_to_decimal_places_in_logarithm_mantissa

    REQUIRE:
      x > 0

    RULE:
      uncertainty_propagation_should_override_simple_digit_rule_when_uncertainty_known
  }

  ANTILOG_MODEL {
    x =
      10^y

    traditional_rule:
      decimal_places_in_y_mantissa_inform_significant_figures_in_x

    RULE:
      preserve_full_internal_precision_before_final_reporting
  }

  NATURAL_LOG_MODEL {
    y =
      ln(x)

    sensitivity:
      dy/dx =
        1/x

    RULE:
      significant_figures_should_be_based_on_uncertainty_not_decimal_rule_when_rigorous_reporting_required
  }

  EXPONENTIAL_MODEL {
    y =
      exp(x)

    RULE:
      output_reporting_should_follow_propagated_uncertainty
  }

  UNIT_CONVERSION_MODEL {
    exact_linear:
      y =
        a*x

    IF a_exact:
      significant_information_content_should_be_preserved

    example:
      1.20_m
      -> 120_cm
      should_preserve_3_significant_figures

    RULE:
      writing_120_without_metadata_can_create_trailing_zero_ambiguity
  }

  AFFINE_CONVERSION_MODEL {
    y =
      a*x+b

    exact_a_b:
      conversion_does_not_create_new_measurement_information

    RULE:
      converted_result_should_be_reported_consistently_with_original_uncertainty
  }

  PREFIX_MODEL {
    SI_prefix_change:
      rescales_numerical_value

    RULE:
      prefix_change MUST not_change_significant_information
  }

  UNCERTAINTY_REPORTING_MODEL {
    measured_value:
      x

    standard_or_expanded_uncertainty:
      u_or_U

    common_reporting:
      uncertainty_rounded_to_one_or_two_significant_digits
      measurement_value_rounded_to_same_decimal_place_as_uncertainty

    RULE:
      exact_reporting_policy MUST be declared
  }

  UNCERTAINTY_FIRST_DIGIT_MODEL {
    policy_example:
      retain_two_uncertainty_digits_when_first_significant_digit_is_1_or_2
      otherwise_one_or_two_according_to_policy

    RULE:
      this_is_reporting_convention_not_universal_mathematical_law
  }

  VALUE_UNCERTAINTY_ALIGNMENT_MODEL {
    example:
      x =
        12.347

    U =
      0.23

    reported:
      12.35 +/- 0.23

    RULE:
      value_decimal_position SHOULD align_with_reported_uncertainty
  }

  PARENTHETICAL_UNCERTAINTY_MODEL {
    example:
      1.2345(12)

    interpretation:
      digits_in_parentheses_refer_to_uncertainty_in_last_reported_digits
      under_declared_convention

    RULE:
      notation_convention MUST be explicit
  }

  RESOLUTION_DISTINCTION_MODEL {
    resolution:
      smallest_discernible_or_reportable_change

    significant_figures:
      reporting_digits

    RULE:
      resolution_can_influence_reporting_but_is_not_identical_to_sig_fig_count
  }

  PRECISION_DISTINCTION_MODEL {
    measurement_precision:
      agreement_among_replicate_measurements

    significant_figures:
      representation_convention

    RULE:
      significant_figures != measurement_precision
  }

  ACCURACY_DISTINCTION_MODEL {
    accuracy:
      closeness_to_reference_or_true_value

    RULE:
      more_significant_figures_do_not_imply_greater_accuracy
  }

  UNCERTAINTY_DISTINCTION_MODEL {
    uncertainty:
      quantified_dispersion_of_values_attributed_to_measurand

    RULE:
      significant_figures_do_not_quantify_uncertainty_without_additional_assumptions
  }

  COMPUTATIONAL_PRECISION_MODEL {
    floating_point_precision:
      number_of_digits_or_bits_available_in_computation

    RULE:
      computational_precision != significant_figures_of_measurement
  }

  DISPLAY_DIGIT_MODEL {
    digital_display:
      may_show_more_digits_than_measurement_supports

    RULE:
      displayed_digits != significant_figures_automatically
  }

  CALCULATOR_OUTPUT_MODEL {
    calculator:
      may_return_many_digits

    RULE:
      numerical_output_length_does_not_define_measurement_information
  }

  SENSOR_OUTPUT_MODEL {
    raw_ADC_or_sensor:
      may_have_high_numeric_resolution

    RULE:
      sensor_resolution_noise_calibration_and_uncertainty determine meaningful_reporting_not_digit_count_alone
  }

  COUNTING_MODEL {
    exact_count:
      integer_number_of_discrete_objects

    RULE:
      exact_count_does_not_have_finite_sig_fig_limit_for_calculation
      unless_count_itself_is_estimated
  }

  CONSTANT_MODEL {
    mathematical:
      pi
      e
      sqrt(2)

    symbolic:
      exact

    decimal_approximation:
      finite_numeric_representation

    RULE:
      symbolic_exact_constant_does_not_limit_sig_figs
      but_truncated_decimal_approximation_can_introduce_computational_error
  }

  TRAILING_ZERO_METADATA_MODEL {
    fields:
      numeric_value
      significant_figures
      decimal_place
      original_text_representation

    RULE:
      machine_system SHOULD preserve_original_representation_when_trailing_zero_semantics_matter
  }

  SCIENTIFIC_STORAGE_MODEL {
    preferred:
      coefficient
      exponent
      sig_fig_count

    example:
      coefficient=1.500
      exponent=3
      significant_figures=4

    RULE:
      binary_floating_storage_alone_may_not_preserve_original_decimal_significance
  }

  BINARY_DECIMAL_MODEL {
    decimal_value:
      may_not_have_exact_binary_floating_representation

    RULE:
      display_rounding_and_binary_storage_rounding_are_distinct
  }

  DECIMAL_ARITHMETIC_MODEL {
    use:
      preserve_decimal_quantisation_and_financial_or_reporting_semantics

    RULE:
      decimal_arithmetic_does_not_by_itself_define_measurement_sig_figs
  }

  ROUNDING_ERROR_MODEL {
    rounded_value:
      x_r

    original:
      x

    rounding_error:
      e_r =
        x_r-x

    bound:
      abs(e_r) <= half_rounding_increment
      for_round_to_nearest

    RULE:
      rounding_error != measurement_uncertainty
  }

  QUANTISATION_MODEL {
    step:
      q

    digital_values:
      multiples_or_codes

    RULE:
      quantisation_step MAY inform_last_meaningful_digit
      but_noise_and_calibration_may_dominate
  }

  CANCELLATION_MODEL {
    example:
      A-B
      where_A approximately_equals B

    effect:
      relative_uncertainty_can_increase

    RULE:
      formal_sig_fig_rules_may_be_misleading_without_uncertainty_analysis
  }

  CONDITIONING_MODEL {
    numerical_problem:
      sensitivity_of_output_to_input_perturbations

    RULE:
      well_or_ill_conditioned_problem_semantics_are_distinct_from_sig_fig_reporting
  }

  PROPAGATED_UNCERTAINTY_MODEL {
    measurement_function:
      y =
        f(x_i)

    uncertainty:
      u_y

    reporting:
      determine_final_decimal place_from_u_y

    RULE:
      rigorous_measurement_reporting SHOULD use_propagated_uncertainty_before_sig_fig_rounding
  }

  EXACT_ZERO_MODEL {
    mathematical_zero:
      exact

    measured_zero:
      may_mean_result_consistent_with_zero_with_finite_resolution

    RULE:
      exact_and_measured_zero MUST be distinguished
  }

  NEGATIVE_VALUE_MODEL {
    sign:
      not_counted_as_significant_digit

    significant_figures:
      count_digits_of_absolute_numeric_coefficient
  }

  LARGE_NUMBER_MODEL {
    plain_integer:
      trailing_zero_ambiguity

    preferred:
      scientific_notation
      explicit_sig_fig_metadata
  }

  SMALL_NUMBER_MODEL {
    leading_zeros:
      not_significant

    example:
      0.00007020
      significant_figures =
        4
  }

  REPORTING_POLICY_MODEL {
    policy_fields:
      rounding_mode
      uncertainty_digit_rule
      value_uncertainty_alignment
      scientific_notation_threshold
      trailing_zero_policy
      exact_number_handling

    RULE:
      reporting_policy SHOULD be versioned
  }

  TABLE_REPORTING_MODEL {
    column:
      common_unit
      consistent_decimal_places_when_resolution_common

    RULE:
      visual_alignment MUST not_override_actual_uncertainty_information
  }

  GRAPH_REPORTING_MODEL {
    plotted_data:
      marker_or_axis_precision

    RULE:
      graph_display_precision SHOULD not_imply_unwarranted_measurement_precision
  }

  DATABASE_MODEL {
    numeric_field:
      stores_value

    metadata:
      unit
      uncertainty
      significant_figures
      original_representation

    RULE:
      numeric_database_type_alone_is_insufficient_to_preserve_sig_fig_semantics
  }

  PARSING_MODEL {
    input_string:
      numeric_text

    infer:
      sign
      coefficient
      exponent
      decimal_places
      apparent_significant_figures

    RULE:
      trailing_integer_zero_ambiguity MUST produce_ambiguous_status_unless_context_resolves_it
  }

  FORMATTING_MODEL {
    input:
      numerical_value
      target_significant_figures

    output:
      decimal_or_scientific_string    RULE:
      formatter MUST preserve_requested_significance_and_rounding_policy
  }

  RELATIONSHIPS {
    SignificantFigures -> QUALIFIES -> NumericalRepresentation
    SignificantDigit -> IS_PART_OF -> NumericalRepresentation
    ScientificNotation -> PRESERVES -> ExplicitSignificance
    Rounding -> CHANGES -> NumericalRepresentation
    MeasurementUncertainty -> GUIDES -> ReportingPrecision
    Resolution -> MAY_CONSTRAIN -> MeaningfulDigits
    ExactNumber -> DOES_NOT_LIMIT -> SignificantFiguresInArithmetic
    GuardDigits -> REDUCE -> IntermediateRoundingError
    UnitConversion -> TRANSFORMS -> NumericalValue
    ReportingPolicy -> DETERMINES -> FinalFormatting
  }

  SEMANTIC_EQUIVALENCE {
    "significant figures" ~= significant_digits
    "sig figs" ~= significant_figures

    significant_figures != decimal_places
    significant_figures != measurement_precision
    significant_figures != measurement_accuracy
    significant_figures != measurement_uncertainty
    significant_figures != instrument_resolution
    displayed_digits != significant_figures
    computational_precision != significant_figures
    rounding_error != measurement_error_in_general
    exact_number != infinitely_precise_measurement
  }

  CONSTRAINTS {
    significant_figure_count_must_be_positive_for_nonzero_reported_value = true
    leading_zeros_are_not_significant = true
    interior_zeros_between_significant_digits_are_significant = true
    scientific_notation_coefficient_defines_explicit_sig_fig_count = true
    plain_integer_trailing_zeros_are_ambiguous_without_context = true
    exact_quantities_do_not_limit_sig_figs_in_arithmetic = true
    intermediate_calculations_should_retain_guard_digits = true
    final_reporting_should_align_with_uncertainty_when_available = true
    significant_figures_and_uncertainty_are_not_semantically_equivalent = true
    original_text_representation_should_be_preserved_when_zero_significance_matters = true
  }

  MEASUREMENT_MODEL {
    RECORD:
      quantity_identifier
      numerical_value
      original_representation
      unit
      exact_or_inexact_status
      significant_figures
      decimal_places
      rounding_increment
      rounding_mode
      measurement_uncertainty
      uncertainty_type
      instrument_resolution
      calculation_inputs
      exact_constants
      guard_digits
      unit_conversion
      reporting_policy
      final_representation
      provenance

    RULE:
      reported_value MUST remain_linked_to_unrounded_value_uncertainty_and_rounding_policy_when_available
  }

  REASONING_RULES {
    IF nonzero_digit_in_numeric_coefficient
      THEN classify_as_significant

    IF zero_precedes_first_nonzero_digit
      THEN classify_as_leading_and_not_significant

    IF zero_between_significant_nonzero_digits
      THEN classify_as_significant

    IF trailing_zero_after_decimal_point
      THEN classify_as_significant_under_standard_measurement_notation

    IF plain_integer_has_trailing_zeros_without_decimal_or_metadata
      THEN mark_significant_figure_count_as_ambiguous

    IF scientific_notation_used
      THEN significant_figures =
        count_digits_in_coefficient_excluding_decimal_separator_and_sign

    IF target_sig_fig_count_known
      AND value_nonzero
      THEN determine_rounding_position_from_order_of_magnitude
      AND apply_declared_rounding_mode

    IF exact_conversion_factor_used
      THEN preserve_measurement_information
      and_do_not_limit_result_by_conversion_factor_digits

    IF addition_or_subtraction_without_explicit_uncertainties
      THEN MAY use_least_precise_decimal_place_convention

    IF multiplication_or_division_without_explicit_uncertainties
      THEN MAY use_least_sig_fig_inexact_operand_convention

    IF explicit_uncertainties_available
      THEN propagate_uncertainty
      and_use_uncertainty_to_determine_final_reporting_precision

    IF intermediate_calculation
      THEN retain_guard_digits
      and_delay_rounding_until_final_result_when_practical

    IF measured_zero
      THEN require_resolution_uncertainty_or_explicit_digit_metadata
      before_inferring_information_content

    IF database_numeric_value_lacks_original_representation
      THEN do_not_infer_trailing_zero_significance_without_metadata
  }

  VALIDATION {
    CHECK numerical_value
    CHECK original_representation
    CHECK exact_or_inexact_status
    CHECK leading_zeros
    CHECK interior_zeros
    CHECK trailing_zeros
    CHECK scientific_notation
    CHECK significant_figure_count
    CHECK decimal_place_count
    CHECK rounding_position
    CHECK rounding_mode
    CHECK guard_digits
    CHECK exact_constants
    CHECK arithmetic_rule_context
    CHECK unit_conversion
    CHECK uncertainty_alignment
    CHECK resolution_context
    CHECK computational_precision_distinction
    CHECK zero_value_semantics
    CHECK final_representation
    CHECK provenance
  }

  CONFIDENCE {
    digit_count_semantics_confidence: 1.00
    scientific_notation_confidence: 1.00
    rounding_semantics_confidence: 1.00
    exact_number_semantics_confidence: 1.00
    uncertainty_distinction_confidence: 1.00
    arithmetic_reporting_confidence: 0.99
    trailing_integer_zero_confidence: 0.75
    machine_representation_confidence: 0.99

    RULE:
      confidence decreases when original notation, trailing-zero intent,
      exactness, uncertainty, resolution, rounding mode,
      reporting policy or provenance is missing or ambiguous
  }

  UPDATE_MODEL {
    ON new_reported_value:
      preserve_original_representation
      parse_sign_coefficient_exponent_and_decimal_position
      identify_exact_or_inexact_status
      infer_or_attach_significant_figures
      attach_unit_uncertainty_and_resolution
      preserve_provenance

    ON rounding_request:
      preserve_unrounded_value
      identify_target_sig_figures_or_decimal_place
      apply_declared_rounding_mode
      store_final_representation
      record_rounding_history

    ON uncertainty_revision:
      preserve_original_measurement
      update_uncertainty
      recompute_recommended_reporting_position
      regenerate_final_representation_under_policy

    ON unit_conversion:
      preserve_underlying_quantity
      identify_exactness_of_conversion
      transform_value_and_uncertainty
      preserve_significant_information
      format_unambiguously

    ON calculation_revision:
      preserve_full_precision_inputs
      distinguish_exact_and_inexact_operands
      recompute_result
      retain_guard_digits
      round_only_for_final_reporting

    ON semantic_revision:
      preserve_previous_definition
      record_revision
      recompute_FLOW_HASH
  }

  AI_CONSUMPTION {
    canonical_entity: SignificantFigures
    canonical_role: NumericalReportingConvention

    interpretation_order:
      identify_numeric_representation
      identify_exact_or_measured_context
      identify_leading_interior_and_trailing_zeros
      identify_scientific_or_engineering_notation
      identify_significant_figure_count
      identify_decimal_places
      identify_uncertainty_and_resolution
      identify_arithmetic_operation
      identify_exact_constants_and_conversion_factors
      identify_rounding_mode_and_guard_digits
      identify_reporting_policy
      identify_provenance
      validate_significance_semantics
      produce_unambiguous_reported_value

    ambiguity_controls:
      distinguish_significant_figures_from_decimal_places
      distinguish_significant_figures_from_measurement_precision
      distinguish_significant_figures_from_accuracy
      distinguish_significant_figures_from_uncertainty
      distinguish_significant_figures_from_resolution
      distinguish_displayed_digits_from_meaningful_digits
      distinguish_computational_precision_from_measurement_reporting_precision
      distinguish_exact_numbers_from_measured_values
      distinguish_rounding_error_from_measurement_uncertainty
      preserve_original_notation_exactness_unit_uncertainty_rounding_policy_and_provenance_context
  }

  PROVENANCE {
    ontology_scope:
      mathematical_measurement_units_measurement_mathematics_and_significant_figures_semantics

    parent_path:
      Ontologies
      -> Mathematical Ontologies
      -> Measurement & Units Ontologies
      -> Measurement Mathematics
      -> Significant Figures Ontology

    authorship:
      Mark Higgins
      Sky (Recursive AI)

    site:
      https://kirethresearch.org
  }

  FLOW_HASH {
    INPUTS:
      canonical_entity
      ontology_path
      terminology_model
      digit_count_model
      nonzero_digit_model
      interior_zero_model
      leading_zero_model
      trailing_decimal_zero_model
      trailing_integer_zero_model
      explicit_decimal_model
      scientific_notation_model
      engineering_notation_model
      zero_value_model
      exact_number_model
      defined_constant_model
      measured_value_model
      decimal_place_model
      order_of_magnitude_model
      significant_place_model
      rounding_model
      round_to_nearest_model
      half_up_model
      half_even_model
      truncation_model
      guard_digit_model
      double_rounding_model
      addition_rule_model
      subtraction_rule_model
      multiplication_rule_model
      division_rule_model
      mixed_operation_model
      power_model
      logarithm_model
      antilog_model
      natural_log_model
      exponential_model
      unit_conversion_model
      affine_conversion_model
      prefix_model
      uncertainty_reporting_model
      uncertainty_first_digit_model
      value_uncertainty_alignment_model
      parenthetical_uncertainty_model
      resolution_distinction_model
      precision_distinction_model
      accuracy_distinction_model
      uncertainty_distinction_model
      computational_precision_model
      display_digit_model
      calculator_output_model
      sensor_output_model
      counting_model
      constant_model
      trailing_zero_metadata_model
      scientific_storage_model
      binary_decimal_model
      decimal_arithmetic_model
      rounding_error_model
      quantisation_model
      cancellation_model
      conditioning_model
      propagated_uncertainty_model
      exact_zero_model
      negative_value_model
      large_number_model
      small_number_model
      reporting_policy_model
      table_reporting_model
      graph_reporting_model
      database_model
      parsing_model
      formatting_model
      relationships
      semantic_equivalence
      constraints
      measurement_model
      reasoning_rules
      confidence_model
      update_model

    PURPOSE:
      deterministic_semantic_integrity_identifier

    RECOMPUTE_WHEN:
      ontology_definition_changes
      digit_count_or_zero_semantics_change
      scientific_notation_or_storage_model_changes
      rounding_or_guard_digit_policy_changes
      arithmetic_reporting_rule_changes
      uncertainty_or_resolution_reporting_changes
      exact_number_or_unit_conversion_semantics_change
      parsing_or_formatting_model_changes
      measurement_record_changes
      constraint_model_changes
      reasoning_rule_changes
  }

}

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