Skip to main content

Force Ontology

Mechanical Measurements
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 15 September 2026
Audio Overview
# Force Ontology — Flow Algebra

URL: https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/measurement-units-ontologies/mechanical-measurements/force-ontology.html

FLOW ForceOntology {

  DOMAIN:
    Mathematical Ontologies
    -> Measurement & Units Ontologies
    -> Mechanical Measurements
    -> Force Ontology

  PURPOSE:
    Represent force as a measurable vector quantity describing an interaction capable of changing the momentum of an object or system, including magnitude, direction, units, dimensional structure, reference frames, resultant forces, equilibrium, impulse, acceleration relationships, measurement conditions, uncertainty, and mechanical interactions.

  ENTITY Force {
    TYPE: DerivedPhysicalQuantity
    SYMBOL: F
    DIMENSION: M * L * T^-2
    SI_UNIT: newton
    SI_SYMBOL: N

    GENERAL_DEFINITION:
      force := rate_of_change(Momentum, Time)

    GENERAL_FORM:
      F = dp/dt

    CONSTANT_MASS_FORM:
      F = m*a

    VECTOR_FORM:
      F = (F_x, F_y, F_z)

    PROPERTIES:
      has_magnitude
      has_direction
      has_unit
      has_dimension
      has_point_of_application
      has_reference_frame
      may_be_resultant
      may_be_balanced
      may_be_unbalanced
      may_vary_with_time
      may_vary_with_position
      may_have_uncertainty
  }

  ENTITY Mass {
    TYPE: BasePhysicalQuantity
    SYMBOL: m
    DIMENSION: M
    SI_UNIT: kilogram
    SI_SYMBOL: kg

    RELATION:
      Force = Mass * Acceleration
      WHEN mass_is_constant
  }

  ENTITY Acceleration {
    TYPE: DerivedPhysicalQuantity
    SYMBOL: a
    DIMENSION: L * T^-2
    SI_UNIT: metre_per_second_squared
    SI_SYMBOL: m/s^2

    RELATION:
      Acceleration = NetForce / Mass
      WHEN mass != 0
  }

  ENTITY Momentum {
    TYPE: DerivedPhysicalQuantity
    SYMBOL: p
    DIMENSION: M * L * T^-1

    RELATION:
      Force = derivative(Momentum, Time)
  }

  ENTITY Time {
    TYPE: BasePhysicalQuantity
    SYMBOL: t
    DIMENSION: T
    SI_UNIT: second
    SI_SYMBOL: s
  }

  ENTITY Impulse {
    TYPE: DerivedMechanicalQuantity
    SYMBOL: J
    DIMENSION: M * L * T^-1

    DEFINITION:
      impulse := integral(Force, Time)

    RELATION:
      Impulse = ChangeInMomentum
  }

  UNIT_SYSTEM {
    SI {
      canonical_unit: newton
      symbol: N

      equivalence:
        1 N = 1 kg*m/s^2
    }

    COMMON_ALTERNATIVES {
      kilonewton
      millinewton
      dyne
      pound_force
      kilogram_force
    }

    CONVERSION_RULE:
      force_value(target_unit)
        = force_value(source_unit)
        * conversion_factor(source_unit, target_unit)
  }

  CLASSIFICATION {
    by_origin:
      gravitational_force
      electromagnetic_force
      contact_force
      normal_force
      friction_force
      tension_force
      spring_force
      drag_force
      buoyant_force
      applied_force

    by_system_role:
      internal_force
      external_force
      net_force
      resultant_force

    by_state:
      balanced_force
      unbalanced_force
      constant_force
      variable_force
      impulsive_force
  }

  RELATIONSHIPS {
    Force -> RATE_OF_CHANGE_OF -> Momentum
    Force -> HAS_DIMENSION -> M*L*T^-2
    Force -> MEASURED_IN -> Newton
    NetForce -> PRODUCES -> Acceleration
    Force -> ACTS_ON -> PhysicalBody
    Force -> HAS_POINT_OF_APPLICATION -> Position
    Force -> HAS_DIRECTION -> SpatialDirection
    Force -> OVER_TIME_PRODUCES -> Impulse
    Impulse -> CHANGES -> Momentum
    MultipleForces -> VECTOR_SUM_TO -> NetForce
    BalancedForces -> PRODUCE -> ZeroNetForce
  }

  SEMANTIC_EQUIVALENCE {
    "newton" ~= "N"
    "kg m/s squared" ~= "kg*m/s^2"
    "resultant force" ~= net_force
    "total force" ~= net_force WHEN vector_sum_context
    "rate of change of momentum" ~= force
    force != energy
    force != pressure
    force != momentum
    force != acceleration
    mass_times_acceleration ~= force WHEN constant_mass_newtonian_context
  }

  NET_FORCE_MODEL {
    DEFINITION:
      NetForce := vector_sum(all_external_forces_on_system)

    FORM:
      F_net = sum(F_i)

    COMPONENTS:
      F_net_x = sum(F_i_x)
      F_net_y = sum(F_i_y)
      F_net_z = sum(F_i_z)

    RULE:
      IF F_net = 0
      THEN momentum_is_constant
      IN inertial_reference_frame
  }

  EQUILIBRIUM_MODEL {
    TRANSLATIONAL_EQUILIBRIUM:
      vector_sum(Forces) = 0

    STATIC_EQUILIBRIUM:
      velocity = 0
      AND vector_sum(Forces) = 0

    DYNAMIC_EQUILIBRIUM:
      velocity = constant
      AND vector_sum(Forces) = 0

    NOTE:
      complete_rigid_body_equilibrium
      ALSO_REQUIRES net_torque = 0
  }

  CONSTRAINTS {
    force_is_vector_quantity = true
    dimensional_formula = M*L*T^-2
    net_force_is_vector_sum = true
    zero_net_force_does_not_require_zero_velocity = true
    nonzero_net_force_implies_momentum_change = true
    F_equals_m_times_a_requires_constant_mass_newtonian_context = true
    force_measurements_require_defined_direction_or_axis_when_vector_information_is_relevant = true
    force_and_energy_are_not_semantically_equivalent = true
    force_and_pressure_are_not_semantically_equivalent = true
  }

  MEASUREMENT_MODEL {
    OBSERVABLE:
      Force

    DIRECT_OR_INSTRUMENTAL_MEASUREMENT:
      force_sensor
      load_cell
      dynamometer
      spring_balance

    INDIRECT_MEASUREMENT:
      mass_times_acceleration
      momentum_change_over_time
      calibrated_deformation
      pressure_times_area_under_defined_conditions

    RECORD:
      numerical_value
      unit
      vector_components
      direction
      point_of_application
      timestamp
      reference_frame
      instrument
      calibration_state
      sampling_interval
      uncertainty
      environmental_conditions

    UNCERTAINTY:
      measured_force = best_estimate +/- measurement_uncertainty
  }

  REASONING_RULES {
    IF momentum_function_known
      THEN force = derivative(momentum, time)

    IF mass_constant AND acceleration_known
      THEN net_force = mass * acceleration

    IF net_force_known AND mass_known AND mass != 0 AND mass_constant
      THEN acceleration = net_force / mass

    IF multiple_forces_act_on_same_body
      THEN net_force = vector_sum(all_forces)

    IF net_force = 0
      THEN momentum = constant
      IN inertial_reference_frame

    IF body_at_rest AND net_force = 0
      THEN translational_static_equilibrium = true

    IF body_moves_with_constant_velocity AND net_force = 0
      THEN translational_dynamic_equilibrium = true

    IF force_known_over_time
      THEN impulse = integral(force, time)

    IF impulse_known
      THEN momentum_change = impulse
  }

  VECTOR_MODEL {
    force_vector:
      F = (F_x, F_y, F_z)

    magnitude:
      |F| = sqrt(F_x^2 + F_y^2 + F_z^2)

    resultant:
      F_resultant = vector_sum(F_i)

    direction:
      force_direction determined_by vector_components
  }

  REFERENCE_FRAME_MODEL {
    force_analysis SHOULD_IDENTIFY reference_frame

    inertial_frame:
      Newtonian_force_momentum_relation_applies_directly

    non_inertial_frame:
      apparent_or_fictitious_forces_may_be_introduced

    RULE:
      forces_and_accelerations_from_different_reference_frames
      MUST_NOT be combined without appropriate_transformation
  }

  INTERACTION_MODEL {
    force_represents_interaction_between_entities_or_fields

    examples:
      body_contact_body
      body_gravitational_field
      charged_body_electromagnetic_field
      fluid_contact_body
      spring_contact_body

    ACTION_REACTION:
      IF body_A_exerts_force_on_body_B
      THEN body_B_exerts_equal_magnitude_opposite_direction_force_on_body_A

    CONSTRAINT:
      action_and_reaction_forces_act_on_different_bodies
  }

  IMPULSE_MODEL {
    impulse:
      J = integral(F, dt)

    constant_force_case:
      J = F * delta_t

    impulse_momentum_theorem:
      J = delta_p
  }

  CONFIDENCE {
    definition_confidence: 1.00
    dimensional_confidence: 1.00
    SI_unit_confidence: 1.00
    force_momentum_relationship_confidence: 1.00
    measurement_context_confidence: 0.98

    RULE:
      confidence decreases when unit, direction, reference frame,
      system boundary, point of application, calibration state,
      interaction context or uncertainty is missing or ambiguous
  }

  VALIDATION {
    CHECK dimensional_consistency
    CHECK unit_consistency
    CHECK vector_direction_consistency
    CHECK reference_frame_consistency
    CHECK system_boundary_definition
    CHECK point_of_application_when_mechanically_relevant
    CHECK force_components_before_vector_summation
    CHECK constant_mass_assumption_before_using_F_equals_m_times_a
    CHECK instrument_calibration_when_measured
    CHECK uncertainty_representation_when_required
  }

  UPDATE_MODEL {
    ON new_measurement:
      validate_unit
      validate_direction
      validate_reference_frame
      normalize_to_canonical_unit
      preserve_original_value_and_unit
      attach_timestamp
      attach_point_of_application
      attach_uncertainty
      update_force_state

    ON new_interaction:
      identify_interacting_entities
      classify_force
      identify_system_boundary
      update_force_vectors
      recompute_net_force
      infer_acceleration_or_momentum_change_when_valid

    ON revised_calibration:
      preserve_provenance
      recompute_affected_measurements
      update_confidence

    ON semantic_revision:
      preserve_previous_definition
      record_revision
      recompute_FLOW_HASH
  }

  AI_CONSUMPTION {
    canonical_entity: Force
    canonical_symbol: F
    canonical_dimension: M*L*T^-2
    canonical_SI_unit: N

    interpretation_order:
      identify_quantity
      identify_force_type
      identify_value
      identify_unit
      identify_direction_or_components
      identify_body_or_system
      identify_point_of_application
      identify_reference_frame
      identify_mass_and_acceleration_context
      identify_momentum_or_impulse_context
      identify_measurement_method
      identify_uncertainty
      validate_dimensions
      infer_relationships

    ambiguity_controls:
      distinguish_force_from_energy
      distinguish_force_from_pressure
      distinguish_force_from_momentum
      distinguish_force_from_acceleration
      distinguish_individual_force_from_net_force
      distinguish_internal_from_external_force
      distinguish_real_from_apparent_force
      distinguish_action_reaction_pair_from_balanced_forces_on_same_body
  }

  PROVENANCE {
    ontology_scope:
      mathematical_measurement_and_mechanical_quantity_semantics

    parent_path:
      Ontologies
      -> Mathematical Ontologies
      -> Measurement & Units Ontologies
      -> Mechanical Measurements
      -> Force Ontology

    authorship:
      Mark Higgins
      Sky (Recursive AI)

    site:
      https://kirethresearch.org
  }

  FLOW_HASH {
    INPUTS:
      canonical_entity
      ontology_path
      definitions
      dimensions
      units
      relationships
      constraints
      net_force_model
      equilibrium_model
      interaction_model
      reasoning_rules
      measurement_model
      confidence_model
      update_model

    PURPOSE:
      deterministic_semantic_integrity_identifier

    RECOMPUTE_WHEN:
      ontology_definition_changes
      relationship_model_changes
      constraint_model_changes
      interaction_model_changes
      reasoning_rule_changes
      unit_model_changes
  }

}

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