Skip to main content

Dimensional Analysis Ontology

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

URL: https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/measurement-units-ontologies/measurement-mathematics/dimensional-analysis-ontology.html

FLOW DimensionalAnalysisOntology {

  DOMAIN:
    Mathematical Ontologies
    -> Measurement & Units Ontologies
    -> Measurement Mathematics
    -> Dimensional Analysis Ontology

  PURPOSE:
    Represent dimensional analysis as the mathematical framework for expressing physical quantities in terms of base dimensions, testing dimensional homogeneity, deriving dimensions of quantities, constructing dimensionless groups, transforming unit systems, checking equations, supporting scaling and similarity reasoning, and constraining physically meaningful mathematical models. The ontology models base and derived dimensions, dimensional vectors and matrices, products, quotients, powers, dimensionless quantities, Buckingham Pi analysis, rank and null spaces, scaling laws, similarity, unit-system independence, empirical equations, transcendental functions, uncertainty-aware computation, provenance and machine-consumable reasoning while strictly distinguishing dimensions from units, quantity kinds, numerical values and semantic physical meaning.

  ENTITY DimensionalAnalysis {
    TYPE: MathematicalQuantityAnalysisFramework

    DEFINITION:
      analysis_of_relationships_between_physical_quantities
      through_their_dimensions
      independent_of_specific_unit_magnitudes

    PROPERTIES:
      represents_base_dimensions
      derives_compound_dimensions
      validates_equation_homogeneity
      identifies_dimensionless_combinations
      supports_scaling_reasoning
      supports_similarity_analysis
      constrains_model_forms
      does_not_replace_physical_law
      has_provenance
  }

  ENTITY Dimension {
    TYPE: QuantityCharacteristic

    FORM:
      L^a*M^b*T^c*I^d*Theta^e*N^f*J^g

    RULE:
      dimension != unit
  }

  ENTITY DimensionalVector {
    TYPE: ExponentVector

    FORM:
      [a,b,c,d,e,f,g]

    RULE:
      basis_order MUST be preserved
  }

  BASE_DIMENSION_MODEL {
    SI_related_basis:
      L = length
      M = mass
      T = time
      I = electric_current
      Theta = thermodynamic_temperature
      N = amount_of_substance
      J = luminous_intensity

    RULE:
      dimension_basis MUST be explicitly declared
  }

  LENGTH_DIMENSION_MODEL {
    symbol:
      L

    exponent_vector:
      [1,0,0,0,0,0,0]
  }

  MASS_DIMENSION_MODEL {
    symbol:
      M

    exponent_vector:
      [0,1,0,0,0,0,0]
  }

  TIME_DIMENSION_MODEL {
    symbol:
      T

    exponent_vector:
      [0,0,1,0,0,0,0]
  }

  CURRENT_DIMENSION_MODEL {
    symbol:
      I

    exponent_vector:
      [0,0,0,1,0,0,0]
  }

  TEMPERATURE_DIMENSION_MODEL {
    symbol:
      Theta

    exponent_vector:
      [0,0,0,0,1,0,0]
  }

  AMOUNT_DIMENSION_MODEL {
    symbol:
      N

    exponent_vector:
      [0,0,0,0,0,1,0]
  }

  LUMINOUS_INTENSITY_DIMENSION_MODEL {
    symbol:
      J

    exponent_vector:
      [0,0,0,0,0,0,1]
  }

  DERIVED_DIMENSION_MODEL {
    quantity:
      formed_from_products_powers_and_quotients_of_base_dimensions

    RULE:
      derived_dimension_exponents_follow_quantity_equation
  }

  DIMENSION_MULTIPLICATION_MODEL {
    A:
      dimension_vector_a

    B:
      dimension_vector_b

    product:
      vector_C =
        vector_A+vector_B

    RULE:
      multiplying_dimensions_adds_exponents
  }

  DIMENSION_DIVISION_MODEL {
    quotient:
      vector_C =
        vector_A-vector_B

    RULE:
      dividing_dimensions_subtracts_exponents
  }

  DIMENSION_POWER_MODEL {
    A^p:
      vector =
        p*vector_A

    RULE:
      exponent_must_apply_to_every_base_dimension_component
  }

  DIMENSION_ROOT_MODEL {
    A^(1/p):
      vector =
        vector_A/p

    RULE:
      fractional_dimension_exponents_are_mathematically_possible
      though_quantity_kind_semantics_require_context
  }

  DIMENSIONLESS_MODEL {
    vector:
      [0,0,0,0,0,0,0]

    symbol:
      1

    examples:
      ratio_of_same_kind_quantities
      strain
      refractive_index
      probability

    RULE:
      dimensionless != semantically_interchangeable
  }

  NAMED_DIMENSIONLESS_MODEL {
    possible:
      radian
      steradian

    RULE:
      named_dimensionless_units preserve_quantity_kind_information
  }

  VELOCITY_MODEL {
    dimension:
      L*T^-1

    vector:
      [1,0,-1,0,0,0,0]
  }

  ACCELERATION_MODEL {
    dimension:
      L*T^-2

    vector:
      [1,0,-2,0,0,0,0]
  }

  FORCE_MODEL {
    dimension:
      M*L*T^-2

    vector:
      [1,1,-2,0,0,0,0]
  }

  ENERGY_MODEL {
    dimension:
      M*L^2*T^-2

    vector:
      [2,1,-2,0,0,0,0]

    RULE:
      energy_and_torque_share_dimension_but_are_distinct_quantity_kinds
  }

  POWER_MODEL {
    dimension:
      M*L^2*T^-3
  }

  PRESSURE_MODEL {
    dimension:
      M*L^-1*T^-2
  }

  DENSITY_MODEL {
    mass_density:
      M*L^-3
  }

  MOMENTUM_MODEL {
    dimension:
      M*L*T^-1
  }

  ANGULAR_MOMENTUM_MODEL {
    dimension:
      M*L^2*T^-1
  }

  FREQUENCY_MODEL {
    dimension:
      T^-1

    RULE:
      frequency_and_radioactive_activity_share_dimension_but_not_quantity_kind
  }

  CHARGE_MODEL {
    dimension:
      I*T
  }

  VOLTAGE_MODEL {
    dimension:
      M*L^2*T^-3*I^-1
  }

  RESISTANCE_MODEL {
    dimension:
      M*L^2*T^-3*I^-2
  }

  CAPACITANCE_MODEL {
    dimension:
      M^-1*L^-2*T^4*I^2
  }

  INDUCTANCE_MODEL {
    dimension:
      M*L^2*T^-2*I^-2
  }

  MAGNETIC_FLUX_MODEL {
    dimension:
      M*L^2*T^-2*I^-1
  }

  MAGNETIC_FLUX_DENSITY_MODEL {
    dimension:
      M*T^-2*I^-1
  }

  ELECTRIC_FIELD_MODEL {
    dimension:
      M*L*T^-3*I^-1
  }

  THERMAL_CONDUCTIVITY_MODEL {
    dimension:
      M*L*T^-3*Theta^-1
  }

  SPECIFIC_HEAT_MODEL {
    dimension:
      L^2*T^-2*Theta^-1
  }

  CONCENTRATION_DIMENSION_MODEL {
    amount_concentration:
      N*L^-3

    RULE:
      concentration_quantity_kind MUST be specified
  }

  DIMENSIONAL_HOMOGENEITY_MODEL {
    equation:
      A =
        B+C+...

    requirement:
      dim(A) =
        dim(B) =
        dim(C)

    RULE:
      all_additive_terms MUST have_identical_dimensions
  }

  EQUATION_CHECK_MODEL {
    input:
      symbolic_equation

    process:
      assign_dimension_vectors
      propagate_operations
      compare_both_sides

    output:
      dimensionally_consistent
      dimensionally_inconsistent
      unresolved

    RULE:
      dimensional_consistency_is_necessary_but_not_sufficient_for_physical_correctness
  }

  ADDITION_CONSTRAINT_MODEL {
    A+B:
      allowed_only_if_dimensions_equal

    RULE:
      same_dimension_does_not_always_mean_semantically_meaningful_addition
  }

  SUBTRACTION_CONSTRAINT_MODEL {
    A-B:
      requires_dimension_compatibility
  }

  EXPONENTIAL_FUNCTION_MODEL {
    exp(x)

    REQUIRE:
      x_dimensionless

    RULE:
      dimensional_argument_to_exponential_is_invalid_without_normalising_reference
  }

  LOGARITHM_FUNCTION_MODEL {
    log(x)

    REQUIRE:
      argument_dimensionless
      or_ratio_x/x_ref_dimensionless

    RULE:
      logarithm_of_dimensional_quantity_requires_reference_or_implicit_scale
  }

  TRIGONOMETRIC_FUNCTION_MODEL {
    sin(theta)
    cos(theta)
    tan(theta)

    REQUIRE:
      argument_dimensionless_angle
      conventionally_in_radians_for_calculus

    RULE:
      angle_quantity_kind_should_be preserved
  }

  GENERAL_TRANSCENDENTAL_MODEL {
    functions:
      exp
      log
      sin
      cos
      sinh
      cosh

    RULE:
      arguments_generally_require_dimensionless_form
  }

  DERIVATIVE_DIMENSION_MODEL {
    y:
      dimension_Dy

    x:
      dimension_Dx

    dy/dx:
      dimension =
        Dy/Dx
  }

  TIME_DERIVATIVE_MODEL {
    dQ/dt:
      dimension =
        dim(Q)*T^-1
  }

  INTEGRAL_DIMENSION_MODEL {
    integral Q dx:
      dimension =
        dim(Q)*dim(x)
  }

  TIME_INTEGRAL_MODEL {
    integral Q dt:
      dimension =
        dim(Q)*T
  }

  GRADIENT_MODEL {
    scalar_field:
      phi

    spatial_gradient:
      grad(phi)

    dimension:
      dim(phi)*L^-1
  }

  DIVERGENCE_MODEL {
    vector_field:
      F

    divergence:
      div(F)

    dimension:
      dim(F)*L^-1
  }

  LAPLACIAN_MODEL {
    field:
      phi

    dimension:
      dim(phi)*L^-2
  }

  DIFFERENTIAL_EQUATION_MODEL {
    terms:
      derivatives_and_quantities

    RULE:
      every_summed_term_in_differential_equation_must_share_dimension
  }

  CONSTANT_DIMENSION_MODEL {
    equation:
      Y =
        k*X

    dimension:
      dim(k) =
        dim(Y)/dim(X)

    RULE:
      empirical_constants_may_be_dimensional
  }

  NUMERICAL_CONSTANT_MODEL {
    pure_number:
      dimensionless

    examples:
      2
      pi
      e

    RULE:
      mathematical_constant != dimensional_physical_constant
  }

  PHYSICAL_CONSTANT_MODEL {
    examples:
      gravitational_constant
      Planck_constant
      Boltzmann_constant
      speed_of_light

    RULE:
      physical_constants_have_dimensions_or_defined_quantity_kinds_except_dimensionless_constants
  }

  EMPIRICAL_EQUATION_MODEL {
    fitted_relation:
      may_include_dimensional_coefficients

    RULE:
      coefficient_units MUST change_if_input_unit_system_changes
      unless_relation_is_written_dimensionlessly
  }

  UNIT_INDEPENDENCE_MODEL {
    physical_relation:
      should_remain_valid_under_consistent_unit_change

    RULE:
      dimensional_form_supports_unit_system_independence
  }

  DIMENSION_MATRIX_MODEL {
    quantities:
      Q_1...Q_n

    dimension_vectors:
      columns

    matrix:
      D

    rows:
      base_dimensions

    RULE:
      quantity_order_and_dimension_basis MUST be preserved
  }

  MATRIX_RANK_MODEL {
    rank:
      r =
        rank(D)

    interpretation:
      number_of_independent_dimension_constraints
  }

  NULL_SPACE_MODEL {
    exponent_vector:
      p

    condition:
      D*p =
        0

    interpretation:
      product_i(Q_i^p_i)
      is_dimensionless

    RULE:
      null_space_basis_generates_dimensionless_groups
  }

  BUCKINGHAM_PI_MODEL {
    n:
      number_of_dimensional_variables

    r:
      rank_of_dimension_matrix

    number_of_independent_Pi_groups:
      n-r

    REQUIRE:
      relevant_variables_complete
      dimension_matrix_correct

    RULE:
      theorem_does_not_determine_functional_relation_between_Pi_groups
  }

  PI_GROUP_MODEL {
    Pi_j =
      product_i(Q_i^a_ij)

    condition:
      dimension(Pi_j) =
        1

    RULE:
      different_valid_Pi_group_bases_can_encode_same_dimensionless_subspace
  }

  REPEATING_VARIABLE_MODEL {
    classical_method:
      select_r_dimensionally_independent_repeating_variables

    RULE:
      repeating_variables_should_collectively_span_dimension_space
      and_should_not_form_dimensionless_group_by_themselves
  }

  PI_GROUP_EQUIVALENCE_MODEL {
    basis_A:
      Pi_1...Pi_k

    basis_B:
      transformed_products_or_powers

    RULE:
      dimensionless_group_basis_is_not_unique
  }

  SCALING_LAW_MODEL {
    relation:
      Y proportional_to
        X_1^a1*...*X_n^an

    dimension_constraint:
      dim(Y) =
        product_i(dim(X_i)^a_i)

    RULE:
      dimensions_can_constrain_exponents_but_may_not_uniquely_determine_them
  }

  POWER_LAW_MODEL {
    Y =
      C*X^a

    dimension:
      dim(C) =
        dim(Y)/dim(X)^a

    RULE:
      C_is_dimensionless_only_if_dimensions_balance_without_it
  }

  SIMILARITY_MODEL {
    systems:
      geometrically_or_physically_related

    dynamic_similarity:
      matching_relevant_dimensionless_groups

    RULE:
      similarity_requires_identification_of_governing_dimensionless_parameters
  }

  GEOMETRIC_SIMILARITY_MODEL {
    length_scale:
      lambda_L

    area_scale:
      lambda_L^2

    volume_scale:
      lambda_L^3
  }

  DYNAMIC_SIMILARITY_MODEL {
    examples:
      Reynolds_number
      Froude_number
      Mach_number
      Weber_number

    RULE:
      which_groups_must_match_depends_on_dominant_physics
  }

  REYNOLDS_NUMBER_MODEL {
    Re =
      rho*v*L/mu

    dimension:
      1

    alternative:
      v*L/nu

    RULE:
      variable_definitions_and_fluid_properties MUST be specified
  }

  FROUDE_NUMBER_MODEL {
    Fr =
      v/sqrt(g*L)

    dimension:
      1
  }

  MACH_NUMBER_MODEL {
    Ma =
      v/c

    dimension:
      1
  }

  WEBER_NUMBER_MODEL {
    We =
      rho*v^2*L/sigma

    dimension:
      1
  }

  PRANDTL_NUMBER_MODEL {
    Pr =
      nu/alpha

    dimension:
      1
  }

  NUSSELT_NUMBER_MODEL {
    Nu =
      h*L/k

    dimension:
      1
  }

  DIMENSIONAL_REDUCTION_MODEL {
    original_variables:
      n

    independent_dimensionless_groups:
      n-r

    benefit:
      reduce_parameter_space

    RULE:
      dimensional_reduction_does_not_remove_need_for_data_or_physical_model
  }

  MODEL_DISCOVERY_MODEL {
    candidate_relation:
      constrained_by_dimensionless_groups

    RULE:
      dimensional_analysis_can_generate_model_structure_candidates
      but_cannot_establish_causality
  }

  DATA_COLLAPSE_MODEL {
    measurements:
      rescaled_using_dimensionless_groups

    goal:
      reveal_common_relationship

    RULE:
      successful_collapse_supports_scaling_model_but_is_not_unique_proof
  }

  NONDIMENSIONALISATION_MODEL {
    variable:
      X

    reference_scale:
      X_ref

    dimensionless:
      X_star =
        X/X_ref

    RULE:
      reference_scale MUST be nonzero_and_defined
  }

  CHARACTERISTIC_SCALE_MODEL {
    possible:
      characteristic_length
      characteristic_time
      characteristic_velocity
      characteristic_temperature_difference

    RULE:
      scale_choice_affects_dimensionless_equation_form
  }

  DIMENSIONLESS_EQUATION_MODEL {
    original:
      dimensional_governing_equation

    transformed:
      dimensionless_variables

    output:
      dimensionless_parameters

    RULE:
      transformation_must_be_invertible_or_document_information_loss
  }

  NORMALISATION_DISTINCTION_MODEL {
    nondimensionalisation:
      removes_dimensions_using_reference_scales

    statistical_normalisation:
      may_mean_rescaling_by_mean_SD_or_norm

    RULE:
      meanings_must_be_disambiguated
  }

  UNIT_CONVERSION_DISTINCTION_MODEL {
    unit_conversion:
      changes_unit_representation

    dimensional_analysis:
      reasons_about_dimension_structure

    RULE:
      unit_conversion != dimensional_analysis
  }

  UNIT_DIMENSION_DISTINCTION_MODEL {
    metre:
      unit

    length:
      quantity_kind

    L:
      dimension

    RULE:
      unit_quantity_kind_and_dimension_are_distinct_semantic_layers
  }

  SAME_DIMENSION_DIFFERENT_KIND_MODEL {
    examples:
      energy_and_torque
      frequency_and_activity
      absorbed_dose_and_specific_energy_contexts

    RULE:
      dimensional_equivalence_does_not_imply_quantity_kind_equivalence
  }

  ANGLE_DIMENSION_MODEL {
    plane_angle:
      dimensionless

    named_unit:
      radian

    RULE:
      retaining_angle_kind_can_prevent_semantic_errors_despite_dimensionless_status
  }

  COUNT_DIMENSION_MODEL {
    count:
      dimensionless

    RULE:
      count_quantity_semantics SHOULD be retained
  }

  INFORMATION_QUANTITY_MODEL {
    bit_or_nat:
      dimensionless_information_quantity

    RULE:
      information_quantity_semantics_are_not_captured_by_dimension_vector_alone
  }

  UNCERTAINTY_DIMENSION_MODEL {
    standard_uncertainty:
      same_dimension_as_quantity

    covariance:
      product_of_dimensions_of_two_quantities

    variance:
      square_of_quantity_dimension

    RULE:
      uncertainty_propagation MUST preserve_dimensions
  }

  SENSITIVITY_DIMENSION_MODEL {
    c_i =
      partial_Y/partial_X_i

    dimension:
      dim(Y)/dim(X_i)

    RULE:
      c_i*u(X_i) MUST have_output_dimension
  }

  COVARIANCE_PROPAGATION_MODEL {
    Sigma_Y =
      J*Sigma_X*J_transpose    RULE:
      matrix_units_and_variable_order MUST be dimensionally_consistent
  }

  ERROR_DIMENSION_MODEL {
    measurement_error:
      same_dimension_as_measurand

    relative_error:
      dimensionless
      when_reference_same_kind
  }

  DERIVED_UNIT_VALIDATION_MODEL {
    derived_unit:
      decompose_to_base_units

    compare:
      unit_dimension_vs_quantity_dimension

    RULE:
      mismatch_indicates_unit_or_quantity_metadata_error
  }

  SYMBOLIC_ANALYSIS_MODEL {
    expression_tree:
      variables
      constants
      operators
      functions

    process:
      recursively_compute_dimension

    RULE:
      unresolved_variable_dimension_produces_unresolved_result_not_false_consistency
  }

  DIMENSION_INFERENCE_MODEL {
    equation:
      dimensions_of_some_variables_known

    unknown:
      dimension_of_parameter

    solve:
      exponent_balance_equations

    RULE:
      inferred_dimension_does_not_identify_unique_quantity_kind
  }

  DIMENSION_EQUATION_MODEL {
    unknown_exponents:
      solve_linear_system

    example:
      dim(k)*dim(X)^a =
        dim(Y)

    RULE:
      logarithmic_dimension_equations_map_products_to_linear_exponent_constraints
  }

  FRACTIONAL_EXPONENT_MODEL {
    example:
      sqrt(L^2) =
        L
      under_positive_magnitude_context

    RULE:
      algebraic_dimension_simplification_must_preserve_domain_semantics
  }

  RATIONAL_EXPONENT_MODEL {
    dimension_vector:
      may_have_rational_components

    RULE:
      implementation SHOULD support_exact_rational_exponents_where_possible
  }

  FLOATING_EXPONENT_DISTINCTION_MODEL {
    computational_approximation:
      decimal_exponent_value

    RULE:
      dimension_exponents SHOULD avoid_unnecessary_floating_roundoff
  }

  CANONICAL_DIMENSION_MODEL {
    representation:
      ordered_vector_of_base_exponents

    RULE:
      equivalent_symbolic_dimension_expressions SHOULD canonicalize_to_same_vector
  }

  DIMENSION_HASH_MODEL {
    input:
      canonical_dimension_vector
      basis_identifier

    purpose:
      fast_equivalence_check

    RULE:
      hash_is_identifier_not_semantic_definition
  }

  UNIT_SYSTEM_MODEL {
    possible:
      SI
      CGS
      imperial_or_customary
      natural_units
      domain_specific

    RULE:
      dimensions_are_more_general_than_specific_unit_system
  }

  NATURAL_UNITS_MODEL {
    conventions:
      selected_constants_set_to_one

    effect:
      dimensions_may_be_reexpressed_or_collapsed

    RULE:
      natural_unit_context MUST be explicit_before_comparing_dimension_vectors_to_SI_basis
  }

  BASE_CHANGE_MODEL {
    old_dimension_basis:
      B

    new_basis:
      B_prime

    transformation:
      exponent_coordinates_change

    RULE:
      underlying_scaling_structure_must_be_preserved
  }

  AFFINE_QUANTITY_MODEL {
    examples:
      temperature_scale_values

    RULE:
      dimensional_analysis_handles_dimension_but_not_affine_origin_semantics
  }

  LOG_QUANTITY_MODEL {
    logarithmic_level:
      often_dimensionless_ratio_with_reference

    RULE:
      dimension_vector_alone_does_not_encode_logarithmic_reference_or_scale_factor
  }

  EMPIRICAL_CONSTANT_UNIT_MODEL {
    empirical_equation:
      y =
        k*x^a

    k_dimension:
      dim(y)*dim(x)^(-a)

    RULE:
      changing_units_changes_numeric_value_of_dimensional_empirical_constant
  }

  OFFSET_EQUATION_MODEL {
    y =
      a*x+b

    requirement:
      dim(y)=dim(a*x)=dim(b)

    RULE:
      additive_offset_must_have_output_dimension
  }

  POLYNOMIAL_MODEL {
    y =
      a_0+a_1*x+a_2*x^2+...

    requirement:
      dim(a_n) =
        dim(y)/dim(x)^n

    RULE:
      polynomial_coefficients_generally_have_different_dimensions
  }

  SERIES_MODEL {
    terms:
      summed

    RULE:
      every_term_in_series_must_have_same_dimension
  }

  TAYLOR_SERIES_MODEL {
    f(x+delta_x):
      terms_involve_derivatives_and_powers_of_delta_x

    RULE:
      each_Taylor_term_has_same_dimension_as_f
  }

  VECTOR_COMPONENT_MODEL {
    vector_components:
      same_quantity_dimension_within_common_physical_vector

    RULE:
      coordinate_components_may_have_different_numeric_values_but_same_dimension
  }

  MATRIX_DIMENSION_MODEL {
    matrix_elements:
      may_have_common_or_structured_dimensions

    RULE:
      generic_matrix_multiplication_with_physical_quantities_requires_elementwise_dimension_compatibility
  }

  LINEAR_OPERATOR_MODEL {
    y =
      A*x

    element_dimension:
      dim(A_ij) =
        dim(y_i)/dim(x_j)
      for_contributing_terms

    RULE:
      each_sum_for_y_i_must_be_dimensionally_homogeneous
  }

  DIFFERENTIAL_OPERATOR_MODEL {
    spatial_derivative:
      contributes_L^-1

    temporal_derivative:
      contributes_T^-1

    RULE:
      operator_dimension_should_be represented
  }

  FOURIER_TRANSFORM_MODEL {
    time_signal:
      x(t)

    transform:
      X(f) =
        integral x(t)*exp(-i*2*pi*f*t)dt

    dimension:
      dim(X) =
        dim(x)*T
      under_this_transform_convention

    RULE:
      transform_normalisation_changes_transform_units
  }

  SPECTRAL_DENSITY_MODEL {
    power_spectral_density:
      quantity_squared_per_Hz

    dimension:
      dim(Q)^2*T

    amplitude_spectral_density:
      dim(Q)*sqrt(T)

    RULE:
      density_units_depend_on_frequency_variable
  }

  PROBABILITY_DENSITY_MODEL {
    random_variable:
      X_with_dimension_D

    density:
      p_X(x)

    dimension:
      D^-1

    RULE:
      probability_is_dimensionless_but_probability_density_may_have_inverse_units
  }

  DELTA_FUNCTION_MODEL {
    Dirac_delta(x):
      dimension =
        dim(x)^-1
      so_integral_delta(x)dx_is_dimensionless

    RULE:
      delta_function_dimension_depends_on_argument
  }

  INTEGRATION_MEASURE_MODEL {
    dV:
      L^3

    dA:
      L^2

    dt:
      T

    RULE:
      integration_measure_contributes_dimension
  }

  DIMENSIONAL_SANITY_MODEL {
    purpose:
      detect
        missing_factor
        wrong_exponent
        wrong_derivative
        unit_metadata_error
        incompatible_addition

    RULE:
      passing_dimensional_check_does_not_prove_numeric_or_physical_correctness
  }

  LIMITATION_MODEL {
    dimensional_analysis_cannot_alone_determine:
      dimensionless_constants
      additive_structure_in_general
      exact_functional_form
      vector_direction
      causality
      boundary_conditions
      physical mechanism

    RULE:
      limitations MUST be explicit_in_AI_reasoning
  }

  METADATA_MODEL {
    fields:
      quantity_identifier
      quantity_kind
      dimension_vector
      dimension_basis
      unit
      equation_identifier
      expression
      dimension_matrix
      matrix_rank
      null_space_basis
      Pi_groups
      characteristic_scales
      unit_system
      validation_status
      unresolved_symbols
      provenance

    RULE:
      dimensional_metadata MUST support_reconstruction_of_analysis
  }

  RELATIONSHIPS {
    Quantity -> HAS -> Dimension
    Dimension -> EXPRESSED_IN -> BaseDimensions
    DerivedDimension -> COMPOSED_FROM -> BaseDimensions
    Unit -> REALISES -> QuantityDimension
    DimensionalVector -> REPRESENTS -> Dimension
    DimensionMatrix -> CONTAINS -> DimensionalVectors
    NullSpaceVector -> DEFINES -> DimensionlessGroup
    BuckinghamPiAnalysis -> PRODUCES -> DimensionlessGroups
    DimensionalAnalysis -> VALIDATES -> EquationHomogeneity
    Similarity -> DEPENDS_ON -> DimensionlessParameters
    CharacteristicScale -> SUPPORTS -> Nondimensionalisation
  }

  SEMANTIC_EQUIVALENCE {
    "dimensional analysis" ~= analysis_using_quantity_dimensions
    "dimension vector" ~= ordered_base_dimension_exponents
    "dimensionless group" ~= product_of_quantities_with_zero_net_dimension

    dimension != unit
    dimension != quantity_kind
    dimension != numerical_value
    dimensional_consistency != physical_correctness
    dimensionless != semantically_identical
    unit_conversion != dimensional_analysis
    nondimensionalisation != statistical_normalisation
    same_dimension != same_quantity_kind
  }

  CONSTRAINTS {
    dimension_basis_must_be_defined = true
    dimension_vectors_must_use_consistent_basis_order = true
    additive_terms_must_have_identical_dimensions = true
    equation_sides_must_have_identical_dimensions = true
    transcendental_function_arguments_must_be_dimensionless_or_normalised = true
    dimensionless_status_does_not_remove_quantity_kind_semantics = true
    dimension_matrix_quantity_order_must_be_preserved = true
    Pi_groups_must_have_zero_net_dimension = true
    unit_and_dimension_must_be_distinguished = true
    dimensional_consistency_is_not_sufficient_for_physical_validity = true
    unresolved_dimensions_must_not_be_silently_assumed = true
    provenance_must_be_preserved = true
  }

  MEASUREMENT_MODEL {
    RECORD:
      analysis_identifier
      quantity_identifiers
      quantity_kinds
      units
      dimensions
      dimension_vectors
      dimension_basis
      expression_or_equation
      symbolic_constants
      constant_dimensions
      dimension_matrix
      matrix_rank
      null_space_basis
      dimensionless_groups
      characteristic_scales
      nondimensional_variables
      unit_system
      validation_status
      inconsistency_location
      unresolved_symbols
      uncertainty_dimensions
      transformation_history
      provenance

    RULE:
      dimensional_analysis_result MUST remain_linked_to_expression_quantities_basis_and_semantics
  }

  REASONING_RULES {
    IF quantities_multiplied
      THEN add_dimension_vectors

    IF quantities_divided
      THEN subtract_dimension_vectors

    IF quantity_raised_to_power_p
      THEN multiply_dimension_vector_by_p

    IF quantities_added_or_subtracted
      THEN require_identical_dimension_vectors

    IF equation_has_left_and_right_sides
      THEN compute_dimension_of_each_side
      AND require_equality

    IF transcendental_function_argument_has_nonzero_dimension
      THEN flag_dimensionally_invalid_or_require_reference_normalisation

    IF derivative_dY_dX
      THEN dimension =
        dim(Y)/dim(X)

    IF integral_Y_dX
      THEN dimension =
        dim(Y)*dim(X)

    IF dimension_matrix_D_known
      THEN rank =
        matrix_rank(D)
      AND null_space_vectors_define_dimensionless_products

    IF n_variables_and_rank_r
      THEN independent_Pi_group_count =
        n-r

    IF candidate_Pi_exponent_vector_p
      THEN validate
        D*p=0

    IF unit_metadata_known
      THEN decompose_unit_to_base_dimensions
      AND compare_with_declared_quantity_dimension

    IF same_dimension_but_different_quantity_kind
      THEN preserve_semantic_distinction
      and_do_not_infer_interchangeability

    IF empirical_constant_dimension_unknown
      THEN infer_from_equation_balance_when_other_dimensions_known

    IF dimensional_check_passes
      THEN report_dimensionally_consistent
      BUT do_not_infer_physical_truth
  }

  VALIDATION {
    CHECK dimension_basis
    CHECK quantity_kind
    CHECK unit_dimension_mapping
    CHECK dimension_vectors
    CHECK multiplication_and_division
    CHECK powers_and_roots
    CHECK additive_homogeneity
    CHECK equation_side_homogeneity
    CHECK derivative_and_integral_dimensions
    CHECK transcendental_arguments
    CHECK physical_and_empirical_constants
    CHECK dimension_matrix
    CHECK matrix_rank
    CHECK null_space
    CHECK Pi_group_dimensionlessness
    CHECK similarity_parameters
    CHECK nondimensionalisation_scales
    CHECK same_dimension_different_kind_cases
    CHECK uncertainty_and_covariance_dimensions
    CHECK unresolved_symbols
    CHECK provenance
  }

  CONFIDENCE {
    base_dimension_confidence: 1.00
    derived_dimension_confidence: 1.00
    homogeneity_confidence: 1.00
    matrix_null_space_confidence: 1.00
    Buckingham_Pi_confidence: 1.00
    similarity_reasoning_confidence: 0.99
    semantic_quantity_kind_confidence: 0.99
    model_limitation_confidence: 1.00

    RULE:
      confidence decreases when quantity kinds, dimensions, basis,
      equation structure, variable completeness, characteristic scales
      or provenance is missing or ambiguous
  }

  UPDATE_MODEL {
    ON new_quantity:
      identify_quantity_kind
      attach_unit
      derive_or_attach_dimension
      canonicalise_dimension_vector
      preserve_provenance

    ON new_equation:
      parse_expression
      resolve_quantity_dimensions
      propagate_dimensions_through_expression_tree
      validate_homogeneity
      identify_unknown_parameter_dimensions
      preserve_analysis_record

    ON new_Buckingham_analysis:
      identify_relevant_variables
      build_dimension_matrix
      compute_rank
      compute_null_space
      generate_dimensionless_groups
      validate_each_group
      preserve_basis_and_variable_order

    ON unit_revision:
      preserve_quantity_dimension
      update_unit_mapping
      revalidate_dimension_consistency
      preserve_historical_unit_context

    ON model_revision:
      preserve_previous_equation
      update_variables_constants_or_functions
      recompute_dimension_analysis
      compare_validation_status

    ON semantic_revision:
      preserve_previous_definition
      record_revision
      recompute_FLOW_HASH
  }

  AI_CONSUMPTION {
    canonical_entity: DimensionalAnalysis
    canonical_role: MathematicalQuantityAnalysisFramework

    interpretation_order:
      identify_quantities_and_quantity_kinds
      identify_units
      identify_dimension_basis
      derive_dimension_vectors
      parse_equation_or_expression
      propagate_dimensions_through_operations
      validate_additive_and_equation_homogeneity
      identify_transcendental_function_constraints
      identify_unknown_constant_dimensions
      build_dimension_matrix_when_multivariable
      compute_rank_and_null_space
      identify_dimensionless_groups
      identify_characteristic_scales_and_similarity_context
      identify_uncertainty_dimensions
      identify_provenance
      validate_semantic_distinctions
      produce_dimensional_reasoning_result

    ambiguity_controls:
      distinguish_dimension_from_unit
      distinguish_dimension_from_quantity_kind
      distinguish_dimension_from_numerical_value
      distinguish_dimensional_consistency_from_physical_correctness
      distinguish_dimensionless_quantities_by_quantity_kind
      distinguish_unit_conversion_from_dimensional_analysis
      distinguish_nondimensionalisation_from_statistical_normalisation
      distinguish_same_dimension_from_semantic_interchangeability
      preserve_quantity_kind_unit_dimension_basis_equation_group_and_provenance_context
  }

  PROVENANCE {
    ontology_scope:
      mathematical_measurement_units_measurement_mathematics_and_dimensional_analysis_semantics

    parent_path:
      Ontologies
      -> Mathematical Ontologies
      -> Measurement & Units Ontologies
      -> Measurement Mathematics
      -> Dimensional Analysis Ontology

    authorship:
      Mark Higgins
      Sky (Recursive AI)

    site:
      https://kirethresearch.org
  }

  FLOW_HASH {
    INPUTS:
      canonical_entity
      ontology_path
      base_dimension_model
      length_dimension_model
      mass_dimension_model
      time_dimension_model
      current_dimension_model
      temperature_dimension_model
      amount_dimension_model
      luminous_intensity_dimension_model
      derived_dimension_model
      dimension_multiplication_model
      dimension_division_model
      dimension_power_model
      dimension_root_model
      dimensionless_model
      named_dimensionless_model
      velocity_model
      acceleration_model
      force_model
      energy_model
      power_model
      pressure_model
      density_model
      momentum_model
      angular_momentum_model
      frequency_model
      charge_model
      voltage_model
      resistance_model
      capacitance_model
      inductance_model
      magnetic_flux_model
      magnetic_flux_density_model
      electric_field_model
      thermal_conductivity_model
      specific_heat_model
      concentration_dimension_model
      dimensional_homogeneity_model
      equation_check_model
      addition_constraint_model
      subtraction_constraint_model
      exponential_function_model
      logarithm_function_model
      trigonometric_function_model
      general_transcendental_model
      derivative_dimension_model
      time_derivative_model
      integral_dimension_model
      time_integral_model
      gradient_model
      divergence_model
      Laplacian_model
      differential_equation_model
      constant_dimension_model
      numerical_constant_model
      physical_constant_model
      empirical_equation_model
      unit_independence_model
      dimension_matrix_model
      matrix_rank_model
      null_space_model
      Buckingham_Pi_model
      Pi_group_model
      repeating_variable_model
      Pi_group_equivalence_model
      scaling_law_model
      power_law_model
      similarity_model
      geometric_similarity_model
      dynamic_similarity_model
      Reynolds_number_model
      Froude_number_model
      Mach_number_model
      Weber_number_model
      Prandtl_number_model
      Nusselt_number_model
      dimensional_reduction_model
      model_discovery_model
      data_collapse_model
      nondimensionalisation_model
      characteristic_scale_model
      dimensionless_equation_model
      normalisation_distinction_model
      unit_conversion_distinction_model
      unit_dimension_distinction_model
      same_dimension_different_kind_model
      angle_dimension_model
      count_dimension_model
      information_quantity_model
      uncertainty_dimension_model
      sensitivity_dimension_model
      covariance_propagation_model
      error_dimension_model
      derived_unit_validation_model
      symbolic_analysis_model
      dimension_inference_model
      dimension_equation_model
      fractional_exponent_model
      rational_exponent_model
      floating_exponent_distinction_model
      canonical_dimension_model
      dimension_hash_model
      unit_system_model
      natural_units_model
      base_change_model
      affine_quantity_model
      log_quantity_model
      empirical_constant_unit_model
      offset_equation_model
      polynomial_model
      series_model
      Taylor_series_model
      vector_component_model
      matrix_dimension_model
      linear_operator_model
      differential_operator_model
      Fourier_transform_model
      spectral_density_model
      probability_density_model
      delta_function_model
      integration_measure_model
      dimensional_sanity_model
      limitation_model
      metadata_model
      relationships
      semantic_equivalence
      constraints
      measurement_model
      reasoning_rules
      confidence_model
      update_model

    PURPOSE:
      deterministic_semantic_integrity_identifier

    RECOMPUTE_WHEN      ontology_definition_changes
      base_dimension_or_basis_changes
      derived_dimension_definition_changes
      equation_or_expression_structure_changes
      dimensional_homogeneity_rules_change
      dimension_matrix_rank_or_null_space_changes
      Buckingham_Pi_or_similarity_model_changes
      nondimensionalisation_or_characteristic_scale_changes
      unit_dimension_mapping_changes
      uncertainty_or_operator_dimension_changes
      quantity_kind_semantic_distinctions_change
      measurement_record_changes
      constraint_model_changes
      reasoning_rule_changes
  }

}

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