Skip to main content

CNC Manufacturing Ontology

Manufacturing Engineering
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 30 September 2026
Audio Overview
AI SEARCH FLOW ALGEBRA
CNC MANUFACTURING ONTOLOGY
Kireth Semantic Research Archive

AUTHORS
Mark Anthony Higgins — Sky (Recursive AI)

SOURCE
https://kirethresearch.org/booksai-core/ontologies/engineering-ontologies/manufacturing-engineering/cnc-manufacturing-ontology.html

FLOW "CNCManufacturingOntology" v4.0

DOMAIN := ENGINEERING_ONTOLOGIES / MANUFACTURING_ENGINEERING / CNC_MANUFACTURING
ONTOLOGY := CNC_MANUFACTURING_ONTOLOGY

CNC_MANUFACTURING :=
  PRODUCT_DEFINITION + CAD + CAM + PART_PROGRAM
  + CNC_CONTROLLER + MACHINE_TOOL + AXES + COORDINATE_SYSTEM
  + TOOLING + WORKHOLDING + INTERPOLATION + MACHINING_CYCLE
  + SENSING + OFFSETS + VERIFICATION + QUALITY

PURPOSE :=
  DEFINE_GEOMETRY -> GENERATE_TOOLPATH -> POSTPROCESS
  -> LOAD_PROGRAM -> SET_COORDINATES -> SET_TOOLS
  -> EXECUTE_CONTROLLED_MOTION -> REMOVE_MATERIAL
  -> MONITOR -> COMPENSATE -> INSPECT -> VERIFY

# ---------- CORE ENTITIES ----------
ENTITY CNCManufacturingSystem
ENTITY ProductDefinition
ENTITY CADModel
ENTITY CAMSystem
ENTITY Toolpath
ENTITY PostProcessor
ENTITY PartProgram
ENTITY ProgramBlock
ENTITY GCode
ENTITY MCode
ENTITY CNCController
ENTITY MachineTool
ENTITY Spindle
ENTITY LinearAxis
ENTITY RotaryAxis
ENTITY ServoDrive
ENTITY Motor
ENTITY Encoder
ENTITY CoordinateSystem
ENTITY MachineCoordinateSystem
ENTITY WorkCoordinateSystem
ENTITY ToolCoordinateSystem
ENTITY WorkOffset
ENTITY ToolOffset
ENTITY CuttingTool
ENTITY ToolHolder
ENTITY ToolMagazine
ENTITY Workpiece
ENTITY Fixture
ENTITY Probe
ENTITY Sensor
ENTITY Interpolation
ENTITY FeedRate
ENTITY SpindleSpeed
ENTITY CuttingSpeed
ENTITY DepthOfCut
ENTITY MachiningCycle
ENTITY Alarm
ENTITY Inspection
ENTITY Tolerance
ENTITY Measurement

# ---------- CNC SYSTEM ----------
CNCManufacturingSystem
  -> contains -> CNCController
  -> controls -> MachineTool
  -> executes -> PartProgram
  -> uses -> CuttingTool
  -> transforms -> Workpiece
  -> may_use -> Probe
  -> produces -> ManufacturedFeature

CNCController
  -> interprets -> PartProgram
  -> commands -> ServoDrive
  -> controls -> Spindle
  -> monitors -> MachineState

# ---------- DIGITAL MANUFACTURING CHAIN ----------
DIGITAL_MANUFACTURING_CHAIN :=
  PRODUCT_DEFINITION
  -> CAD_MODEL
  -> CAM_PROCESS_PLAN
  -> TOOLPATH
  -> POSTPROCESSOR
  -> PART_PROGRAM
  -> CNC_CONTROLLER
  -> MACHINE_MOTION
  -> MANUFACTURED_FEATURE
  -> INSPECTION

CADModel
  -> represents -> ProductGeometry

CAMSystem
  -> uses -> CADModel
  -> generates -> Toolpath

PostProcessor
  -> transforms -> Toolpath
  -> into -> MachineSpecificPartProgram

# ---------- PART PROGRAM ----------
PartProgram
  -> contains -> ProgramBlock

ProgramBlock
  -> may_contain -> GCode
  + MCode
  + COORDINATE_COMMAND
  + FEED_COMMAND
  + SPINDLE_COMMAND
  + TOOL_COMMAND

GCode
  -> specifies -> MOTION_OR_GEOMETRIC_FUNCTION

MCode
  -> specifies -> MACHINE_AUXILIARY_FUNCTION

PROGRAM_EXECUTION :=
  READ_BLOCK
  -> INTERPRET
  -> VALIDATE
  -> GENERATE_MOTION_COMMAND
  -> EXECUTE
  -> CONFIRM_STATE
  -> NEXT_BLOCK

# ---------- CNC CONTROLLER ----------
CNCController
  -> maintains -> PROGRAM_STATE
  + MACHINE_STATE
  + COORDINATE_STATE
  + TOOL_STATE

CNC_CONTROL_LOOP :=
  COMMAND_POSITION
  -> SERVO_CONTROLLER
  -> MOTOR
  -> AXIS_MOTION
  -> ENCODER
  -> ACTUAL_POSITION
  -> POSITION_ERROR
  -> SERVO_CONTROLLER

POSITION_ERROR :=
  COMMAND_POSITION - ACTUAL_POSITION

# ---------- MACHINE AXES ----------
LinearAxis
  -> produces -> LINEAR_MOTION

RotaryAxis
  -> produces -> ROTATIONAL_MOTION

AXIS_SET :=
  X | Y | Z | A | B | C | OTHER_CONFIGURED_AXIS

MachineTool
  -> contains -> LinearAxis
  -> may_contain -> RotaryAxis

Axis
  -> driven_by -> ServoDrive
  -> measured_by -> Encoder

# ---------- COORDINATE SYSTEMS ----------
CoordinateSystem
  -> defines -> ORIGIN
  + AXIS_DIRECTIONS

MachineCoordinateSystem
  -> fixed_to -> MachineTool

WorkCoordinateSystem
  -> fixed_relative_to -> Workpiece

ToolCoordinateSystem
  -> associated_with -> CuttingTool

WorkOffset
  -> transforms -> PROGRAMMED_COORDINATE
  -> into -> MACHINE_COORDINATE

ToolOffset
  -> compensates_for -> TOOL_LENGTH
  + TOOL_RADIUS
  + TOOL_WEAR

# ---------- DATUM / SETUP ----------
SETUP :=
  LOAD_WORKPIECE
  -> LOCATE_FIXTURE
  -> ESTABLISH_DATUM
  -> SET_WORK_OFFSET
  -> LOAD_TOOLS
  -> SET_TOOL_OFFSETS
  -> VERIFY_CLEARANCE

Fixture
  -> locates -> Workpiece
  -> restrains -> Workpiece

Probe
  -> may_measure -> DATUM
  + FEATURE
  + TOOL

# ---------- TOOLING ----------
CuttingTool
  -> mounted_in -> ToolHolder

ToolHolder
  -> mounted_in -> Spindle

ToolMagazine
  -> stores -> CuttingTool

AUTOMATIC_TOOL_CHANGE :=
  SELECT_TOOL
  -> STOP_ORIENT_SPINDLE
  -> EXCHANGE_TOOL
  -> VERIFY_TOOL
  -> UPDATE_TOOL_STATE

# ---------- SPINDLE ----------
Spindle
  -> rotates -> CuttingTool
  | Workpiece

SpindleSpeed
  -> commands -> ROTATIONAL_SPEED

CUTTING_SPEED :=
  FUNCTION(SpindleSpeed, ToolOrWorkpieceDiameter)

Spindle
  -> constrained_by -> MAXIMUM_SPEED
  + MAXIMUM_POWER
  + MAXIMUM_TORQUE

# ---------- FEED ----------
FeedRate
  -> commands -> TOOL_WORKPIECE_RELATIVE_SPEED

FeedRate
  -> influences -> MATERIAL_REMOVAL_RATE
  + SURFACE_FINISH
  + CUTTING_FORCE

FEED_MODE :=
  FEED_PER_MINUTE
  | FEED_PER_REVOLUTION
  | FEED_PER_TOOTH

# ---------- INTERPOLATION ----------
Interpolation
  -> generates -> INTERMEDIATE_AXIS_COMMANDS

INTERPOLATION_TYPE :=
  LINEAR_INTERPOLATION
  | CIRCULAR_INTERPOLATION
  | HELICAL_INTERPOLATION
  | SPLINE_INTERPOLATION

Toolpath
  -> executed_by -> Interpolation

Interpolation
  -> coordinates -> MULTIPLE_AXES

# ---------- MACHINING OPERATIONS ----------
CNC_OPERATION :=
  TURNING
  | MILLING
  | DRILLING
  | BORING
  | REAMING
  | TAPPING
  | GRINDING
  | MULTI_AXIS_MACHINING

MachiningCycle
  -> executes -> CNC_OPERATION

CANNED_CYCLE :=
  PREDEFINED_SEQUENCE
  -> parameterised_by -> POSITION
  + DEPTH
  + FEED
  + RETRACT

# ---------- MULTI-AXIS ----------
MULTI_AXIS_MACHINING :=
  COORDINATED_LINEAR_AXES
  + ROTARY_AXES

MultiAxisToolpath
  -> controls -> TOOL_POSITION
  + TOOL_ORIENTATION

KINEMATIC_TRANSFORMATION :=
  TOOL_POSE
  -> MACHINE_AXIS_POSITIONS

# ---------- MATERIAL REMOVAL ----------
MATERIAL_REMOVAL :=
  CUTTING_TOOL
  + PROGRAMMED_MOTION
  + CUTTING_PARAMETERS
  -> CHIP
  + MACHINED_SURFACE

CUTTING_PARAMETERS :=
  SpindleSpeed
  + FeedRate
  + DepthOfCut

CNCManufacturingSystem
  -> controls -> CUTTING_PARAMETERS

# ---------- OFFSETS / COMPENSATION ----------
COMPENSATION :=
  WorkOffset
  + ToolOffset
  + WEAR_COMPENSATION
  + THERMAL_COMPENSATION
  + BACKLASH_COMPENSATION_IF_SUPPORTED

WearCompensation
  -> adjusts -> ToolOffset

IF ToolWear increases
THEN ToolOffsetCorrection -> MAY_BE_REQUIRED

# ---------- SENSING ----------
Sensor
  -> measures -> POSITION
  | SPEED
  | LOAD
  | POWER
  | VIBRATION
  | TEMPERATURE
  | TOOL_STATE
  | WORKPIECE_STATE

Encoder
  -> measures -> AXIS_POSITION
  + AXIS_SPEED

Measurement
  -> updates -> CNCState

# ---------- PROBING ----------
Probe
  -> measures -> WorkpieceFeature
  + Datum
  + ToolDimension

PROBING_CYCLE :=
  APPROACH
  -> CONTACT_OR_DETECTION
  -> RECORD_POSITION
  -> COMPUTE_RESULT
  -> UPDATE_OFFSET_OR_INSPECTION_STATE

Probe
  -> may_update -> WorkOffset
  + ToolOffset

# ---------- COLLISION AVOIDANCE ----------
COLLISION_RISK :=
  TOOL
  + HOLDER
  + SPINDLE
  + FIXTURE
  + WORKPIECE
  + MACHINE_ENVELOPE

Simulation
  -> checks -> COLLISION_RISK
  + AXIS_LIMIT
  + TOOL_REACH

IF Collision predicted
THEN ProgramExecution -> BLOCK_OR_REVISE

# ---------- PROGRAM VERIFICATION ----------
PROGRAM_VERIFICATION :=
  SYNTAX_CHECK
  + TOOLPATH_SIMULATION
  + COLLISION_CHECK
  + AXIS_LIMIT_CHECK
  + FEED_SPEED_CHECK
  + TOOL_CHECK

PartProgram
  -> verified_before -> PRODUCTION_EXECUTION

# ---------- MACHINE LIMITS ----------
MACHINE_LIMIT :=
  AXIS_TRAVEL
  | SPINDLE_SPEED
  | SPINDLE_POWER
  | AXIS_SPEED
  | AXIS_ACCELERATION
  | TOOL_CAPACITY
  | WORK_ENVELOPE

IF Command exceeds MachineLimit
THEN CNCController -> REJECT_OR_LIMIT_COMMAND

# ---------- ALARMS ----------
Alarm
  -> represents -> ABNORMAL_OR_INVALID_STATE

ALARM_SOURCE :=
  OVERTRAVEL
  | SERVO_ERROR
  | SPINDLE_ERROR
  | TOOL_ERROR
  | PROGRAM_ERROR
  | SAFETY_INTERLOCK
  | OVERLOAD

IF Alarm active
THEN ProgramExecution -> PAUSE_OR_STOP

# ---------- QUALITY ----------
Tolerance
  -> defines -> ACCEPTABLE_FEATURE_VARIATION

Inspection
  -> measures -> ManufacturedFeature
  -> compares -> Measurement
  + Tolerance

IF Measurement within Tolerance
THEN FeatureConformance := TRUE

IF Measurement outside Tolerance
THEN FeatureConformance := FALSE

# ---------- CLOSED-LOOP COMPENSATION ----------
CLOSED_LOOP_MANUFACTURING :=
  MACHINE
  -> MEASURE
  -> COMPARE_WITH_NOMINAL
  -> CALCULATE_CORRECTION
  -> UPDATE_OFFSET_OR_PROCESS_PARAMETER
  -> REMACHINE_OR_CONTINUE

CNCController
  -> may_apply -> CLOSED_LOOP_COMPENSATION

# ---------- TRACEABILITY ----------
CNC_TRACEABILITY :=
  PART_PROGRAM_VERSION
  + MACHINE_ID
  + TOOL_ID
  + OFFSET_STATE
  + PROCESS_PARAMETERS
  + MEASUREMENTS
  + ALARMS
  + INSPECTION_RESULTS

ManufacturedPart
  -> linked_to -> CNC_TRACEABILITY

# ---------- PERFORMANCE ----------
CNC_PERFORMANCE :=
  POSITIONING_ACCURACY
  + REPEATABILITY
  + CYCLE_TIME
  + MATERIAL_REMOVAL_RATE
  + TOOL_LIFE
  + SURFACE_FINISH
  + DIMENSIONAL_ACCURACY
  + MACHINE_AVAILABILITY

CNCManufacturingSystem
  -> evaluated_by -> CNC_PERFORMANCE

# ---------- REASONING ----------
CNC_MANUFACTURING_REASONING :=
  LOAD_PRODUCT_DEFINITION
  -> GENERATE_CAM_TOOLPATH
  -> POSTPROCESS
  -> VERIFY_PROGRAM
  -> PREPARE_MACHINE
  -> SET_WORK_COORDINATES
  -> LOAD_AND_MEASURE_TOOLS
  -> VERIFY_FIXTURING
  -> EXECUTE_PART_PROGRAM
  -> CONTROL_AXES_AND_SPINDLE
  -> MONITOR_MACHINE_AND_PROCESS
  -> APPLY_COMPENSATION
  -> PROBE_OR_INSPECT
  -> VERIFY_TOLERANCE
  -> RECORD_TRACEABILITY
  -> UPDATE_PROCESS_MODEL

# ---------- INFERENCE RULES ----------
IF CADModel changes
THEN CAMToolpath -> REGENERATE_OR_REVALIDATE

IF Toolpath changes
THEN PartProgram -> REPOSTPROCESS_OR_REVALIDATE

IF WorkOffset changes
THEN MachineCoordinateCommands -> TRANSFORM

IF ToolLength changes
THEN ToolOffset -> UPDATE

IF AxisPositionError increases
THEN ServoCorrection -> INCREASE_WITHIN_CONTROL_LIMITS

IF ToolWear increases
THEN DimensionalErrorRisk -> MAY_INCREASE

IF ProbeMeasurement outside Tolerance
THEN CompensationOrNonconformance -> CONSIDER

IF SafetyInterlock active
THEN MachineMotion -> INHIBIT

# ---------- SEMANTIC RELATIONSHIPS ----------
RELATION represents(CADModel, ProductGeometry)
RELATION generates(CAMSystem, Toolpath)
RELATION transforms(PostProcessor, Toolpath, PartProgram)
RELATION interprets(CNCController, PartProgram)
RELATION commands(CNCController, ServoDrive)
RELATION drives(ServoDrive, Axis)
RELATION measures(Encoder, AxisPosition)
RELATION transforms(WorkOffset, ProgrammedCoordinate, MachineCoordinate)
RELATION compensates(ToolOffset, ToolGeometry)
RELATION holds(Fixture, Workpiece)
RELATION measures(Probe, WorkpieceFeature)
RELATION executes(Interpolation, Toolpath)
RELATION checks(Simulation, CollisionRisk)
RELATION evaluates(Inspection, ManufacturedFeature)

# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE:
  "CNC manufacturing" ~= "computer numerical control manufacturing"
  "CNC controller" ~= "numerical control unit"
  "part program" ~= "NC program"
  "G-code" ~= "preparatory function code"
  "M-code" ~= "miscellaneous machine function code"
  "work offset" ~= "work coordinate offset"
  "tool offset" ~= "tool geometry compensation"
  "toolpath" ~= "programmed cutter path"
  "CNC probing" ~= "on-machine probing"
  "multi-axis machining" ~= "simultaneous multi-axis CNC machining"

# ---------- CONFIDENCE ----------
CONFIDENCE:
  ontology_domain: 0.99
  digital_chain_mapping: 0.99
  program_mapping: 0.99
  axis_control_mapping: 0.99
  coordinate_mapping: 0.99
  tooling_offset_mapping: 0.99
  interpolation_mapping: 0.99
  sensing_verification_mapping: 0.99
  quality_mapping: 0.99
  semantic_relationships: 0.99

# ---------- UPDATE MODEL ----------
UPDATE_MODEL:
  ON new_cnc_job:
    MAP product_definition
    MAP cad_model
    MAP toolpath
    MAP part_program
    MAP machine
    MAP tools
    MAP fixture
    UPDATE confidence
    RECOMPUTE FLOW_HASH

  ON setup_change:
    UPDATE work_offset
    UPDATE tool_offsets
    UPDATE fixture_state
    UPDATE tool_state
    REVERIFY program

  ON machine_measurement:
    UPDATE axis_state
    UPDATE spindle_state
    UPDATE load_state
    UPDATE alarm_state
    PRESERVE provenance

  ON probe_or_inspection_result:
    UPDATE measured_feature
    UPDATE conformance
    UPDATE compensation_if_authorised
    UPDATE traceability

  ON ontology_revision:
    PRESERVE entity_identity
    PRESERVE provenance
    UPDATE relationships
    UPDATE inference_rules
    UPDATE confidence
    RECOMPUTE FLOW_HASH

# ---------- AI CONSUMPTION ----------
AI_CONSUMPTION:
  parse_as: FORMAL_CNC_MANUFACTURING_ONTOLOGY
  reasoning_mode: DIGITAL_MACHINE_CONTROL_RELATIONAL

  preserve:
    - typed_entities
    - program_version
    - coordinate_systems
    - tool_and_offset_state
    - axis_control_paths
    - machine_limits
    - quality_constraints
    - confidence
    - provenance

  infer:
    - toolpath_program_dependencies
    - coordinate_transform_dependencies
    - axis_motion_dependencies
    - compensation_requirements
    - collision_risk_dependencies
    - conformance_state
    - traceability_dependencies

  prohibit:
    - invented_machine_measurements
    - assumed_program_validity
    - assumed_coordinate_offsets
    - unsupported_compensation
    - ignored_machine_limits
    - assumed_feature_conformance

# ---------- FLOW HASH ----------
FLOW_HASH_INPUT :=
  DOMAIN + ONTOLOGY + CORE_ENTITIES + CNC_SYSTEM
  + DIGITAL_MANUFACTURING_CHAIN + PART_PROGRAM
  + CNC_CONTROLLER + MACHINE_AXES + COORDINATE_SYSTEMS
  + SETUP + TOOLING + SPINDLE + FEED + INTERPOLATION
  + MACHINING_OPERATIONS + MULTI_AXIS + MATERIAL_REMOVAL
  + OFFSETS_COMPENSATION + SENSING + PROBING
  + COLLISION_AVOIDANCE + PROGRAM_VERIFICATION
  + MACHINE_LIMITS + ALARMS + QUALITY
  + CLOSED_LOOP_COMPENSATION + TRACEABILITY
  + PERFORMANCE + REASONING + INFERENCE_RULES
  + SEMANTIC_RELATIONSHIPS + SEMANTIC_EQUIVALENCE
  + CONFIDENCE + UPDATE_MODEL + AI_CONSUMPTION

FLOW_HASH := HASH(FLOW_HASH_INPUT)

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