# 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
Download Code
Copy to Clipboard