Skip to main content

Automation Engineering 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
AUTOMATION ENGINEERING ONTOLOGY
Kireth Semantic Research Archive

AUTHORS
Mark Anthony Higgins — Sky (Recursive AI)

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

FLOW "AutomationEngineeringOntology" v4.0

DOMAIN := ENGINEERING_ONTOLOGIES / MANUFACTURING_ENGINEERING / AUTOMATION_ENGINEERING
ONTOLOGY := AUTOMATION_ENGINEERING_ONTOLOGY

AUTOMATION_ENGINEERING := SENSOR + ACTUATOR + CONTROLLER + PLC + CONTROL_LOOP + SEQUENCE + ROBOT + MACHINE + COMMUNICATION + HMI + SCADA + SAFETY + DIAGNOSTICS + PRODUCTION_INTEGRATION
PURPOSE := SENSE -> INTERPRET -> DECIDE -> CONTROL -> ACTUATE -> VERIFY -> COORDINATE -> MONITOR -> PROTECT -> OPTIMISE

# CORE ENTITIES
ENTITY AutomationSystem
ENTITY AutomatedMachine
ENTITY ProductionCell
ENTITY ProductionLine
ENTITY Sensor
ENTITY Measurement
ENTITY Actuator
ENTITY Motor
ENTITY ServoDrive
ENTITY Valve
ENTITY Cylinder
ENTITY Controller
ENTITY PLC
ENTITY IndustrialRobot
ENTITY RobotController
ENTITY ControlLoop
ENTITY SetPoint
ENTITY ProcessVariable
ENTITY ControlOutput
ENTITY MachineState
ENTITY StateMachine
ENTITY Sequence
ENTITY Interlock
ENTITY Alarm
ENTITY HMI
ENTITY SCADA
ENTITY CommunicationNetwork
ENTITY IndustrialProtocol
ENTITY IOModule
ENTITY SafetyPLC
ENTITY SafetySystem
ENTITY EmergencyStop
ENTITY GuardInterlock
ENTITY DiagnosticSystem
ENTITY MaintenanceSystem
ENTITY ProductionOrder

# AUTOMATION SYSTEM
AutomationSystem -> monitors -> ProcessOrMachine
AutomationSystem -> receives -> SensorData
AutomationSystem -> executes -> ControlLogic
AutomationSystem -> commands -> Actuator
AutomationSystem -> communicates_via -> CommunicationNetwork
AutomationSystem -> interfaces_with -> HMI
AutomationSystem -> protected_by -> SafetySystem
AUTOMATION_FLOW := PHYSICAL_STATE -> SENSOR -> INPUT -> CONTROLLER -> LOGIC -> OUTPUT -> ACTUATOR -> PHYSICAL_RESPONSE -> FEEDBACK

# SENSING
Sensor -> measures -> POSITION | SPEED | FORCE | PRESSURE | TEMPERATURE | FLOW | LEVEL | PROXIMITY | MACHINE_STATE | PRODUCT_STATE
Measurement -> has -> VALUE + UNIT + TIMESTAMP + QUALITY
Sensor -> generates -> Measurement
Measurement -> updates -> AutomationState
IF SensorQuality decreases THEN StateEstimateUncertainty -> INCREASES

# INPUT / OUTPUT
IOModule -> receives -> DIGITAL_INPUT + ANALOG_INPUT
IOModule -> transmits -> DIGITAL_OUTPUT + ANALOG_OUTPUT
INPUT_SIGNAL -> represents -> MEASURED_OR_DISCRETE_STATE
OUTPUT_SIGNAL -> commands -> ACTUATOR_OR_DEVICE
IF InputSignal invalid THEN ControlLogic -> APPLY_FAULT_HANDLING

# CONTROLLER / PLC
PLC -> subtype_of -> Controller
PLC -> executes -> CONTROL_PROGRAM
PLC_SCAN_CYCLE := READ_INPUTS -> EXECUTE_LOGIC -> UPDATE_OUTPUTS -> DIAGNOSTICS -> REPEAT
Controller -> maintains -> CONTROL_STATE + MACHINE_STATE + ALARM_STATE
IF ScanTime exceeds_required_response_time THEN ControlPerformance -> MAY_DEGRADE

# CONTROL LOOP
ControlLoop -> contains -> SetPoint + ProcessVariable + ControlOutput
CONTROL_ERROR := SetPoint - ProcessVariable
FEEDBACK_CONTROL := MEASURE -> COMPARE -> COMPUTE_CONTROL -> ACTUATE -> MEASURE
Controller -> computes -> ControlOutput
Actuator -> changes -> ProcessVariable
IF ControlError increases THEN CorrectiveControlAction -> MAY_INCREASE_WITHIN_LIMITS

# ACTUATORS
Actuator -> converts -> CONTROL_SIGNAL -> PHYSICAL_ACTION
ACTUATOR_TYPE := ELECTRIC_MOTOR | SERVO | PNEUMATIC_CYLINDER | HYDRAULIC_CYLINDER | CONTROL_VALVE | SOLENOID
Motor -> produces -> ROTATIONAL_MOTION
ServoDrive -> controls -> POSITION + SPEED + TORQUE
Valve -> controls -> FLUID_FLOW
Cylinder -> produces -> LINEAR_MOTION

# STATE MACHINES
StateMachine -> represents -> MachineState
MACHINE_STATE := OFF | INITIALISING | READY | RUNNING | PAUSED | FAULTED | STOPPING | SAFE_STOP
STATE_TRANSITION := CURRENT_STATE + EVENT + GUARD_CONDITION -> NEXT_STATE
IF TransitionGuard unsatisfied THEN StateTransition -> PROHIBITED
AutomatedMachine -> governed_by -> StateMachine

# SEQUENCING
Sequence -> orders -> AUTOMATION_STEP
AUTOMATION_STEP := CONDITION -> ACTION -> COMPLETION_CRITERION
Sequence -> may_require -> PRECONDITION + INTERLOCK + RESOURCE_AVAILABILITY
IF PreviousStep incomplete THEN NextStep -> NOT_READY
IF SequenceFault occurs THEN Sequence -> PAUSE_OR_ABORT

# INTERLOCKS
Interlock -> prevents -> UNSAFE_OR_INVALID_ACTION
INTERLOCK_TYPE := PROCESS_INTERLOCK | MACHINE_INTERLOCK | SAFETY_INTERLOCK | RESOURCE_INTERLOCK
IF InterlockCondition false THEN ProtectedAction -> INHIBIT
Interlock -> has_priority_over -> NORMAL_CONTROL_COMMAND

# INDUSTRIAL ROBOTS
IndustrialRobot -> controlled_by -> RobotController
IndustrialRobot -> executes -> ROBOT_PROGRAM
ROBOT_MOTION := JOINT_MOTION | LINEAR_MOTION | CIRCULAR_MOTION | COORDINATED_MOTION
RobotController -> commands -> JOINT_POSITION + SPEED + ACCELERATION
IndustrialRobot -> may_use -> END_EFFECTOR + SENSOR + MACHINE_VISION
RobotCell -> may_coordinate_with -> AutomatedMachine

# MOTION CONTROL
MOTION_CONTROL := POSITION_COMMAND -> TRAJECTORY_GENERATION -> SERVO_CONTROL -> MOTOR -> AXIS -> ENCODER -> FEEDBACK
Trajectory -> constrained_by -> POSITION_LIMIT + VELOCITY_LIMIT + ACCELERATION_LIMIT + JERK_LIMIT
IF Command exceeds AxisLimit THEN MotionController -> REJECT_OR_LIMIT_COMMAND

# MACHINE VISION
MachineVisionSystem -> captures -> IMAGE
MachineVisionSystem -> may_detect -> POSITION + ORIENTATION + FEATURE + DEFECT + PRESENCE
VISION_FLOW := IMAGE_ACQUISITION -> PREPROCESSING -> FEATURE_EXTRACTION -> DECISION -> CONTROL_ACTION
VisionResult -> may_update -> RobotOrMachineCommand

# INDUSTRIAL COMMUNICATION
CommunicationNetwork -> transports -> SENSOR_DATA + CONTROL_COMMAND + STATUS + ALARM + PRODUCTION_DATA
IndustrialProtocol -> defines -> MESSAGE_FORMAT + ADDRESSING + TIMING + ERROR_HANDLING
COMMUNICATION_REQUIREMENT := LATENCY + DETERMINISM + RELIABILITY + AVAILABILITY + INTEROPERABILITY + SECURITY
IF Communication unavailable THEN DistributedControlCapability -> MAY_DECREASE

# HMI
HMI -> displays -> MACHINE_STATE + PROCESS_VALUE + ALARM + PRODUCTION_STATUS
HMI -> receives -> OPERATOR_COMMAND
OperatorCommand -> constrained_by -> AUTHORISATION + MACHINE_STATE + SAFETY_STATE
HMI -> supports -> MANUAL_CONTROL + SETPOINT_ENTRY + ALARM_ACKNOWLEDGEMENT + DIAGNOSTICS

# SCADA
SCADA -> supervises -> MULTIPLE_AUTOMATION_ASSETS
SCADA -> collects -> PROCESS_DATA + ALARM_DATA + EVENT_DATA
SCADA -> may_issue -> SUPERVISORY_COMMAND
SCADA_DATA_FLOW := FIELD_DEVICE -> PLC -> NETWORK -> SCADA -> HISTORIAN_OR_OPERATOR

# ALARMS
Alarm -> represents -> ABNORMAL_CONDITION
ALARM_STATE := INACTIVE | ACTIVE_UNACKNOWLEDGED | ACTIVE_ACKNOWLEDGED | CLEARED
Alarm -> has -> PRIORITY + TIMESTAMP + SOURCE + MESSAGE
IF CriticalAlarm active THEN ProtectiveOrOperatorAction -> REQUIRED

# SAFETY AUTOMATION
SafetySystem -> independent_or_separated_from -> NORMAL_CONTROL_AS_REQUIRED
SafetyPLC -> executes -> SAFETY_LOGIC
EmergencyStop -> requests -> SAFE_STOP
GuardInterlock -> monitors -> GUARD_STATE
SAFETY_FUNCTION := DETECT_HAZARD -> REMOVE_OR_LIMIT_ENERGY -> ACHIEVE_SAFE_STATE -> PREVENT_UNEXPECTED_RESTART
IF EmergencyStop activated THEN HazardousMotion -> STOP_OR_REMOVE_ENERGY
IF GuardOpen AND hazardous_access_possible THEN HazardousOperation -> INHIBIT

# FAIL-SAFE / SAFE STATE
SAFE_STATE := CONDITION_WITH_ACCEPTABLE_RESIDUAL_RISK
FailSafeDesign -> seeks_to_move -> SYSTEM -> SAFE_STATE
IF SafetySensorFault detected THEN SafetyFunction -> APPLY_DEFINED_FAULT_RESPONSE
SafetyReset -> must_not_automatically_restart -> HAZARDOUS_MOTION

# DIAGNOSTICS
DiagnosticSystem -> monitors -> SENSOR + ACTUATOR + CONTROLLER + NETWORK + MACHINE
DIAGNOSTIC_FLOW := OBSERVE -> DETECT_DEVIATION -> ISOLATE_FAULT -> IDENTIFY_CAUSE -> RECOMMEND_ACTION
FaultCode -> identifies -> DIAGNOSTIC_CONDITION
IF Fault persists THEN MaintenanceRequirement -> INCREASES

# CONDITION MONITORING
ConditionMonitoring -> observes -> VIBRATION + TEMPERATURE + CURRENT + PRESSURE + CYCLE_COUNT + ERROR_RATE
ConditionIndicator -> may_predict -> DEGRADATION
IF ConditionIndicator exceeds_threshold THEN MaintenanceAction -> CONSIDER

# PRODUCTION INTEGRATION
ProductionOrder -> defines -> PRODUCT + QUANTITY + ROUTE + PRIORITY
AutomationSystem -> executes_or_supports -> ProductionOrder
ProductionCell -> contains -> AutomatedMachine + Robot + Sensor + Controller
ProductionLine -> contains -> ProductionCell
LINE_COORDINATION := ORDER -> RESOURCE_ASSIGNMENT -> SEQUENCE -> PROCESS -> INSPECTION -> COMPLETION

# TRACEABILITY
AUTOMATION_TRACEABILITY := PROGRAM_VERSION + CONTROLLER_ID + MACHINE_ID + SENSOR_DATA + ALARMS + OPERATOR_ACTIONS + PRODUCTION_ORDER + QUALITY_RESULTS
AutomatedProduct -> linked_to -> AUTOMATION_TRACEABILITY
EventLog -> records -> STATE_TRANSITION + ALARM + COMMAND + FAULT + RESET

# CYBERSECURITY
AUTOMATION_CYBERSECURITY := AUTHENTICATION + AUTHORISATION + NETWORK_SEGMENTATION + INTEGRITY + AVAILABILITY + LOGGING
ControlCommand -> must_pass -> AUTHORISATION
IF Command unauthorised THEN Command -> REJECT
IF ProgramIntegrity invalid THEN ControllerExecution -> INHIBIT_OR_ALERT

# PERFORMANCE
AUTOMATION_PERFORMANCE := CYCLE_TIME + THROUGHPUT + AVAILABILITY + REPEATABILITY + QUALITY + RESPONSE_TIME + FAULT_RATE + SAFETY_PERFORMANCE
AutomationSystem -> evaluated_by -> AUTOMATION_PERFORMANCE
OEE := AVAILABILITY * PERFORMANCE_RATE * QUALITY_RATE

# ENGINEERING REASONING
AUTOMATION_ENGINEERING_REASONING := DEFINE_PROCESS -> IDENTIFY_STATES -> IDENTIFY_SENSORS -> IDENTIFY_ACTUATORS -> DESIGN_IO -> DESIGN_CONTROL_LOOPS -> DESIGN_SEQUENCES -> DEFINE_INTERLOCKS -> DESIGN_HMI -> DESIGN_COMMUNICATION -> DESIGN_SAFETY_FUNCTIONS -> IMPLEMENT_CONTROL_LOGIC -> VERIFY_PROGRAM -> COMMISSION -> MONITOR -> DIAGNOSE -> OPTIMISE

# INFERENCE RULES
IF SensorState changes THEN ControllerInputState -> UPDATE
IF ControlError increases THEN ControlOutput -> MAY_CHANGE
IF Interlock not_satisfied THEN ProtectedAction -> INHIBIT
IF SafetyCondition violated THEN SafetyFunction -> ACTIVATE
IF CommunicationLatency increases THEN DistributedControlPerformance -> MAY_DECREASE
IF ActuatorFault occurs THEN RequestedPhysicalAction -> MAY_NOT_OCCUR
IF MachineState = FAULTED THEN AutomaticSequence -> PAUSE_OR_ABORT
IF CycleTime decreases AND quality maintained THEN Throughput -> MAY_INCREASE

# SEMANTIC RELATIONSHIPS
RELATION measures(Sensor, ProcessState)
RELATION commands(Controller, Actuator)
RELATION executes(PLC, ControlProgram)
RELATION controls(ControlLoop, ProcessVariable)
RELATION governs(StateMachine, MachineState)
RELATION orders(Sequence, AutomationStep)
RELATION inhibits(Interlock, ProtectedAction)
RELATION controls(RobotController, IndustrialRobot)
RELATION transports(CommunicationNetwork, ControlData)
RELATION displays(HMI, MachineState)
RELATION supervises(SCADA, AutomationAssets)
RELATION protects(SafetySystem, AutomationSystem)
RELATION diagnoses(DiagnosticSystem, Fault)
RELATION records(EventLog, AutomationEvent)

# SEMANTIC EQUIVALENCE
SEMANTIC_EQUIVALENCE:
  "automation engineering" ~= "industrial automation engineering"
  "PLC" ~= "programmable logic controller"
  "HMI" ~= "human-machine interface"
  "SCADA" ~= "supervisory control and data acquisition"
  "industrial robot" ~= "manufacturing robot"
  "interlock" ~= "automation permissive or inhibit condition"
  "machine state" ~= "equipment operating state"
  "safety PLC" ~= "safety programmable logic controller"
  "servo drive" ~= "servo motor drive"
  "control loop" ~= "feedback control loop"

# CONFIDENCE
CONFIDENCE:
  ontology_domain: 0.99
  sensing_actuation_mapping: 0.99
  plc_control_mapping: 0.99
  sequencing_mapping: 0.99
  robotics_mapping: 0.99
  communication_mapping: 0.99
  hmi_scada_mapping: 0.99
  safety_mapping: 0.99
  diagnostics_mapping: 0.99
  semantic_relationships: 0.99

# UPDATE MODEL
UPDATE_MODEL:
  ON new_automation_system:
    MAP sensors
    MAP actuators
    MAP controllers
    MAP states
    MAP sequences
    MAP interlocks
    MAP safety_functions
    UPDATE confidence
    RECOMPUTE FLOW_HASH
  ON new_measurement:
    UPDATE process_state
    UPDATE machine_state
    UPDATE control_state
    PRESERVE provenance
  ON fault_event:
    UPDATE alarm_state
    UPDATE diagnostic_state
    UPDATE machine_state
    REASSESS maintenance
    REASSESS safety
  ON program_change:
    UPDATE program_version
    REVERIFY logic
    REVERIFY interlocks
    REVERIFY safety_dependencies

# AI CONSUMPTION
AI_CONSUMPTION:
  parse_as: FORMAL_AUTOMATION_ENGINEERING_ONTOLOGY
  reasoning_mode: CYBER_PHYSICAL_CONTROL_RELATIONAL
  preserve: [typed_entities, sensor_data_paths, actuator_paths, control_logic, machine_states, sequences, interlocks, safety_functions, confidence, provenance]
  infer: [state_transition_dependencies, control_action_dependencies, sequence_readiness, interlock_effects, communication_dependencies, fault_impacts, safety_requirements]
  prohibit: [invented_sensor_measurements, assumed_safe_state, bypassed_interlocks, unauthorised_control_actions, fabricated_diagnostics, unsupported_machine_state]

# FLOW HASH
FLOW_HASH_INPUT := DOMAIN + ONTOLOGY + CORE_ENTITIES + AUTOMATION_SYSTEM + SENSING + IO + PLC + CONTROL_LOOP + ACTUATORS + STATE_MACHINES + SEQUENCING + INTERLOCKS + ROBOTS + MOTION_CONTROL + MACHINE_VISION + COMMUNICATION + HMI + SCADA + ALARMS + SAFETY_AUTOMATION + FAIL_SAFE + DIAGNOSTICS + CONDITION_MONITORING + PRODUCTION_INTEGRATION + TRACEABILITY + CYBERSECURITY + 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