Skip to main content

Input Device Ontology

Computer Hardware
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 01 October 2026
Audio Overview
AI SEARCH

FLOW ALGEBRA — INPUT DEVICE ONTOLOGY
Semantic Library
Version: 4.0
Canonical Page:
https://kirethresearch.org/booksai-core/ontologies/computing-ontologies/computer-hardware/input-device-ontology.html

FLOW INPUT_DEVICE_ONTOLOGY {

  META {
    DOMAIN = "Computing Ontologies"
    SUBDOMAIN = "Computer Hardware"
    ONTOLOGY = "Input Device Ontology"
    PURPOSE = "Formalise hardware devices that capture user, environmental or machine input and transform physical actions or signals into data consumable by computing systems."
    LOCALE = "en-GB"
  }

  ENTITY_TYPES {
    INPUT_DEVICE
    HUMAN_INPUT_DEVICE
    SENSOR_INPUT_DEVICE
    POINTING_DEVICE
    KEYBOARD
    KEYPAD
    MOUSE
    TRACKBALL
    TOUCHPAD
    TOUCHSCREEN
    STYLUS
    GRAPHICS_TABLET
    JOYSTICK
    GAME_CONTROLLER
    MICROPHONE
    CAMERA
    WEBCAM
    SCANNER
    BARCODE_SCANNER
    CARD_READER
    BIOMETRIC_READER
    FINGERPRINT_SENSOR
    MOTION_SENSOR
    POSITION_SENSOR
    TEMPERATURE_SENSOR
    PRESSURE_SENSOR
    LIGHT_SENSOR
    ACCELEROMETER
    GYROSCOPE
    GPS_RECEIVER
    BUTTON
    SWITCH
    KEY
    SENSOR
    TRANSDUCER
    CONTROLLER
    MICROCONTROLLER
    INTERFACE
    USB
    BLUETOOTH
    WIRELESS_INTERFACE
    SERIAL_INTERFACE
    INPUT_PORT
    DEVICE_DRIVER
    FIRMWARE
    SIGNAL
    ANALOG_SIGNAL
    DIGITAL_SIGNAL
    EVENT
    INPUT_EVENT
    USER_ACTION
    PHYSICAL_QUANTITY
    SAMPLE
    DATA
    INPUT_DATA
    COORDINATE
    KEY_CODE
    SCAN_CODE
    BUTTON_STATE
    AXIS_VALUE
    IMAGE_DATA
    AUDIO_DATA
    SAMPLE_RATE
    RESOLUTION
    SENSITIVITY
    ACCURACY
    PRECISION
    LATENCY
    POLLING_RATE
    DEBOUNCE
    CALIBRATION
    STATE
    ERROR
    FAILURE
    CONFIGURATION
    HARDWARE_REVISION
    FIRMWARE_VERSION
    DRIVER_VERSION
    EVIDENCE
    CONFIDENCE_SCORE
    PROVENANCE_RECORD
  }

  RELATIONSHIPS {
    IS_A
    INSTANCE_OF
    PART_OF
    CONTAINS
    HAS_SENSOR
    HAS_CONTROLLER
    HAS_INTERFACE
    HAS_DRIVER
    HAS_FIRMWARE
    CONNECTED_TO
    INTERFACES_WITH
    DETECTS
    SENSES
    MEASURES
    CAPTURES
    SAMPLES
    CONVERTS_TO
    GENERATES
    SENDS
    RECEIVES
    REPORTS
    MAPS_TO
    CALIBRATES
    HAS_SAMPLE_RATE
    HAS_RESOLUTION
    HAS_SENSITIVITY
    HAS_ACCURACY
    HAS_PRECISION
    HAS_LATENCY
    HAS_POLLING_RATE
    HAS_STATE
    TRANSITIONS_TO
    HAS_CONFIGURATION
    HAS_HARDWARE_REVISION
    HAS_FIRMWARE_VERSION
    HAS_DRIVER_VERSION
    FAILS_WITH
    DEPENDS_ON
    PRECEDES
    FOLLOWS
    DERIVED_FROM
    INFERRED_FROM
    HAS_EVIDENCE
    HAS_CONFIDENCE
    HAS_PROVENANCE
    SEMANTICALLY_EQUIVALENT_TO
  }

  INPUTS {
    DEVICE_SPECIFICATIONS
    MANUFACTURER_DATA
    MODEL_DATA
    DEVICE_TYPE_DATA
    INTERFACE_DATA
    SENSOR_SPECIFICATIONS
    SIGNAL_DATA
    INPUT_EVENT_TRACES
    SAMPLE_DATA
    CALIBRATION_DATA
    RESOLUTION_DATA
    SAMPLE_RATE_DATA
    POLLING_RATE_DATA
    LATENCY_DATA
    ACCURACY_DATA
    DRIVER_DATA
    FIRMWARE_DATA
    CONFIGURATION_DATA
    HARDWARE_REVISION_DATA
    ERROR_LOGS
    ONTOLOGY_TERMS
  }

  NORMALISE {
    STANDARDISE_DEVICE_IDENTIFIERS
    NORMALISE_MANUFACTURER_NAMES
    NORMALISE_MODEL_NAMES
    NORMALISE_DEVICE_TYPES
    NORMALISE_INTERFACE_NAMES
    NORMALISE_SIGNAL_TYPES
    NORMALISE_EVENT_TYPES
    NORMALISE_SAMPLE_RATES
    NORMALISE_RESOLUTION
    NORMALISE_POLLING_RATES
    NORMALISE_LATENCY_UNITS
    NORMALISE_ACCURACY_AND_PRECISION_UNITS
    NORMALISE_DRIVER_VERSIONS
    NORMALISE_FIRMWARE_VERSIONS
    NORMALISE_HARDWARE_REVISIONS
    RESOLVE_DEVICE_IDENTITIES
    ALIGN_ONTOLOGY_TERMS
    REMOVE_DUPLICATES
    VALIDATE_METADATA
    PRESERVE_PROVENANCE
  }

  PROCESS INPUT_PIPELINE {
    PHYSICAL_ACTION_OR_SIGNAL
      -> DETECTION_OR_SENSING
      -> SIGNAL_CONVERSION
      -> SAMPLING_OR_EVENT_GENERATION
      -> DEVICE_PROCESSING
      -> ENCODING
      -> INTERFACE_TRANSFER
      -> DRIVER_INTERPRETATION
      -> SYSTEM_INPUT_EVENT_OR_DATA
  }

  PROCESS KEYBOARD_REASONING {
    KEY_PRESS_OR_RELEASE
      -> SWITCH_STATE_CHANGE

    SWITCH_STATE_CHANGE
      -> KEY_MATRIX_SCAN

    KEY_MATRIX_SCAN
      -> SCAN_CODE

    SCAN_CODE
      -> DEVICE_REPORT

    DEVICE_REPORT
      -> DRIVER_MAPPING
      -> KEY_EVENT
  }

  PROCESS POINTING_DEVICE_REASONING {
    PHYSICAL_MOVEMENT_OR_POSITION
      -> SENSOR_MEASUREMENT

    SENSOR_MEASUREMENT
      -> COORDINATE_OR_DELTA

    COORDINATE_OR_DELTA
      -> DEVICE_REPORT

    DEVICE_REPORT
      -> POINTER_EVENT
  }

  PROCESS SENSOR_REASONING {
    PHYSICAL_QUANTITY
      -> TRANSDUCER_RESPONSE

    TRANSDUCER_RESPONSE
      -> ANALOG_OR_DIGITAL_SIGNAL

    ANALOG_SIGNAL
      -> ANALOG_TO_DIGITAL_CONVERSION_IF_REQUIRED

    DIGITAL_SAMPLE
      -> CALIBRATION_TRANSFORM

    CALIBRATION_TRANSFORM
      -> MEASURED_VALUE
  }

  PROCESS CAMERA_REASONING {
    INCIDENT_LIGHT
      -> IMAGE_SENSOR

    IMAGE_SENSOR
      -> PIXEL_SIGNAL

    PIXEL_SIGNAL
      -> DIGITAL_IMAGE_DATA

    DIGITAL_IMAGE_DATA
      -> DEVICE_PROCESSING
      -> FRAME_OUTPUT
  }

  PROCESS MICROPHONE_REASONING {
    SOUND_PRESSURE
      -> TRANSDUCER

    TRANSDUCER
      -> ELECTRICAL_SIGNAL

    ELECTRICAL_SIGNAL
      -> SAMPLING

    SAMPLING
      -> DIGITAL_AUDIO_DATA
  }

  PROCESS CALIBRATION_REASONING {
    REFERENCE_INPUT
      -> OBSERVED_DEVICE_OUTPUT

    OBSERVED_DEVICE_OUTPUT + EXPECTED_OUTPUT
      -> CALIBRATION_ERROR

    CALIBRATION_ERROR
      -> CALIBRATION_PARAMETERS

    CALIBRATION_PARAMETERS
      -> CORRECTED_INPUT_MAPPING
  }

  PROCESS FAILURE_REASONING {
    EXPECTED_INPUT + OBSERVED_OUTPUT
      -> DIFFERENCE_ANALYSIS

    DIFFERENCE_ANALYSIS
      -> DEVICE_OR_INTERFACE_ERROR_CANDIDATES

    ERROR_CANDIDATES
      -> DRIVER_CHECK
      -> FIRMWARE_CHECK
      -> CALIBRATION_CHECK
      -> HARDWARE_CHECK

    EVIDENCE
      -> ROOT_CAUSE_HYPOTHESIS
      -> CONFIDENCE_SCORE
  }

  RULES {
    IF INPUT_DEVICE_GENERATES_EVENT
    THEN LINK {
      DEVICE
      SOURCE_ACTION_OR_SIGNAL
      EVENT
      TIME_CONTEXT
      INTERFACE_CONTEXT
    }

    IF SENSOR_VALUE_IS_INTERPRETED
    THEN PRESERVE UNIT_CALIBRATION_AND_RESOLUTION_CONTEXT

    IF DEVICE_IS_CONNECTED
    THEN DO_NOT_AUTOMATICALLY_ASSERT_DRIVER_OR_PROTOCOL_COMPATIBILITY

    IF POLLING_RATE_IS_HIGHER
    THEN DO_NOT_AUTOMATICALLY_ASSERT_LOWER_END_TO_END_INPUT_LATENCY

    IF RESOLUTION_IS_HIGHER
    THEN DO_NOT_AUTOMATICALLY_ASSERT_HIGHER_ACCURACY

    IF SAME_PHYSICAL_ACTION_GENERATES_DIFFERENT_CODES
    THEN PRESERVE_DEVICE_LAYOUT_DRIVER_AND_CONFIGURATION_CONTEXT

    IF FAILURE_IS_OBSERVED
    THEN DO_NOT_ASSERT_HARDWARE_ROOT_CAUSE_WITHOUT_DRIVER_FIRMWARE_AND_INTERFACE_CHECKS

    IF SEMANTIC_IDENTIFIERS_DIFFER
    AND INPUT_DEVICE_REFERENT_IS_SAME
    THEN APPLY SEMANTIC_EQUIVALENCE
  }

  CONFIDENCE {
    CONFIDENCE_SCORE =
      WEIGHT(
        DEVICE_SPECIFICATION_COMPLETENESS,
        MODEL_IDENTIFICATION_CERTAINTY,
        INTERFACE_CERTAINTY,
        DRIVER_AND_FIRMWARE_CERTAINTY,
        CALIBRATION_QUALITY,
        SIGNAL_QUALITY,
        EVENT_TRACE_COMPLETENESS,
        PROVENANCE_COMPLETENESS
      )

    LEVELS {
      HIGH
      MODERATE
      LOW
      INSUFFICIENT
    }

    IF CALIBRATION_IS_UNKNOWN
    THEN REDUCE_MEASUREMENT_INTERPRETATION_CONFIDENCE

    IF DRIVER_OR_FIRMWARE_CONTEXT_IS_UNKNOWN
    THEN REDUCE_EVENT_MAPPING_CONFIDENCE

    IF REPRODUCIBLE_INPUT_TESTS_CONFIRM_BEHAVIOUR
    THEN INCREASE CONFIDENCE_SCORE
  }

  SEMANTIC_EQUIVALENCE {
    EQUIVALENCE_KEY =
      NORMALISE(
        ENTITY_TYPE,
        MANUFACTURER,
        MODEL,
        HARDWARE_REVISION,
        INTERFACE,
        FIRMWARE_VERSION,
        DRIVER_VERSION
      )

    IF EQUIVALENCE_KEY(A) == EQUIVALENCE_KEY(B)
    THEN A SEMANTICALLY_EQUIVALENT_TO B

    ELSE PRESERVE_DISTINCT_ENTITIES
  }

  REASONING_CONSTRAINTS {
    INPUT_DEVICE != INPUT_EVENT
    PHYSICAL_ACTION != DIGITAL_EVENT
    SENSOR_SIGNAL != INTERPRETED_MEASUREMENT
    RESOLUTION != ACCURACY
    PRECISION != ACCURACY
    POLLING_RATE != END_TO_END_LATENCY
    SAMPLE_RATE != SIGNAL_BANDWIDTH_WITHOUT_CONTEXT
    CONNECTION != FUNCTIONAL_COMPATIBILITY
    DEVICE_DRIVER != HARDWARE_DEVICE
    RAW_INPUT != INTERPRETED_USER_INTENT
    CALIBRATION_AFFECTS_MEASUREMENT
    DRIVER_AND_CONFIGURATION_AFFECT_EVENT_MAPPING
    FAILURE_SYMPTOM != ROOT_CAUSE
    PROVENANCE_MUST_BE_PRESERVED
    UNCERTAINTY_MUST_NOT_BE_DISCARDED
  }

  VALIDATION {
    CHECK_ENTITY_TYPES
    CHECK_RELATION_DOMAINS_AND_RANGES
    CHECK_DEVICE_IDENTIFIER
    CHECK_DEVICE_TYPE
    CHECK_INTERFACE
    CHECK_SIGNAL_TYPE
    CHECK_EVENT_MAPPING
    CHECK_SAMPLE_RATE
    CHECK_RESOLUTION
    CHECK_ACCURACY_AND_PRECISION
    CHECK_POLLING_RATE
    CHECK_LATENCY_CONTEXT
    CHECK_CALIBRATION
    CHECK_DRIVER_VERSION
    CHECK_FIRMWARE_VERSION
    CHECK_HARDWARE_REVISION
    CHECK_CONFIGURATION
    CHECK_FAILURE_RELATIONS
    CHECK_PROVENANCE
    CHECK_CONFIDENCE
    CHECK_SEMANTIC_CONSISTENCY
  }

  OUTPUTS {
    NORMALISED_INPUT_DEVICE_ENTITIES
    DEVICE_TYPE_RELATIONS
    SENSOR_RELATIONS
    INTERFACE_RELATIONS
    PHYSICAL_TO_DIGITAL_MAPPINGS
    INPUT_EVENT_RELATIONS
    SAMPLE_RELATIONS
    CALIBRATION_RELATIONS
    DRIVER_AND_FIRMWARE_RELATIONS
    INPUT_STATE_TRANSITIONS
    ERROR_RELATIONS
    FAILURE_HYPOTHESES
    CONFIDENCE_SCORES
    EVIDENCE_LINKS
    PROVENANCE_RECORDS
    EXPLANATION_PATHS
  }

  UPDATE_MODEL {
    ON DEVICE_DRIVER_FIRMWARE_OR_CONFIGURATION_CHANGE {
      NORMALISE
      ENTITY_RESOLUTION
      UPDATE_INTERFACE_CONTEXT
      UPDATE_EVENT_MAPPING
      UPDATE_CALIBRATION
      UPDATE_DRIVER_AND_FIRMWARE_CONTEXT
      RECOMPUTE_AFFECTED_RELATIONS
      UPDATE_CONFIDENCE
      PRESERVE_VERSION_HISTORY
    }

    ON NEW_INPUT_EVENT_SENSOR_OR_ERROR_DATA {
      LINK_EVIDENCE
      UPDATE_INPUT_TRACE
      UPDATE_DEVICE_STATE
      REASSESS_CALIBRATION
      REASSESS_FAILURE_HYPOTHESES
      UPDATE_CONFIDENCE
      RECORD_PROVENANCE
    }

    ON ONTOLOGY_REVISION {
      REMAP_TERMS
      CHECK_SEMANTIC_EQUIVALENCE
      IDENTIFY_DEPRECATED_TERMS
      MIGRATE_RELATIONSHIPS
      PRESERVE_PRIOR_VERSION_REFERENCES
    }
  }

  FLOW_HASH {
    HASH_INPUT =
      CANONICALISE(
        ENTITY_TYPES,
        RELATIONSHIPS,
        RULES,
        CONFIDENCE,
        SEMANTIC_EQUIVALENCE,
        REASONING_CONSTRAINTS,
        UPDATE_MODEL
      )

    FLOW_HASH = SHA256(HASH_INPUT)
  }

  AI_CONSUMPTION {
    INDEX {
      ONTOLOGY
      ENTITY_TYPES
      RELATIONSHIPS
      RULES
      OUTPUTS
    }

    RETRIEVE {
      BY_INPUT_DEVICE
      BY_DEVICE_TYPE
      BY_SENSOR
      BY_INTERFACE
      BY_EVENT
      BY_SIGNAL
      BY_SAMPLE
      BY_CALIBRATION
      BY_DRIVER
      BY_FIRMWARE
      BY_ERROR
      BY_CONFIDENCE
    }

    REASON {
      APPLY_RELATIONSHIPS
      APPLY_RULES
      TRACE_INPUT_PIPELINE
      ANALYSE_KEYBOARD_INPUT
      ANALYSE_POINTING_INPUT
      ANALYSE_SENSOR_INPUT
      ANALYSE_CAMERA_INPUT
      ANALYSE_AUDIO_INPUT
      ANALYSE_CALIBRATION
      ANALYSE_FAILURES
      CHECK_SEMANTIC_EQUIVALENCE
      PRESERVE_UNCERTAINTY
      TRACE_EVIDENCE
      TRACE_PROVENANCE
      GENERATE_EXPLANATION_PATH
    }

    RESPONSE_POLICY {
      DISTINGUISH_PHYSICAL_INPUT_FROM_DIGITAL_EVENT
      DISTINGUISH_RESOLUTION_FROM_ACCURACY
      PRESERVE_CALIBRATION_INTERFACE_DRIVER_AND_FIRMWARE_CONTEXT
      DISTINGUISH_RAW_INPUT_FROM_INTERPRETED_INTENT
      DISTINGUISH_FAILURE_SYMPTOM_FROM_ROOT_CAUSE
      RETURN_CONFIDENCE_WHEN_AVAILABLE
      RETURN_PROVENANCE_WHEN_AVAILABLE
      AVOID_UNSUPPORTED_INPUT_DEVICE_INFERENCE
    }
  }

  TERMINAL {
    RESULT =
      VALIDATED(
        SEMANTICALLY_NORMALISED(
          EVIDENCE_LINKED(
            CONFIDENCE_AWARE(
              INPUT_DEVICE_KNOWLEDGE
            )
          )
        )
      )
  }
}

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