Skip to main content

ROM 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 — ROM ONTOLOGY
Semantic Library
Version: 4.0
Canonical Page:
https://kirethresearch.org/booksai-core/ontologies/computing-ontologies/computer-hardware/rom-ontology.html

FLOW ROM_ONTOLOGY {

  META {
    DOMAIN = "Computing Ontologies"
    SUBDOMAIN = "Computer Hardware"
    ONTOLOGY = "ROM Ontology"
    PURPOSE = "Formalise read-only and non-volatile memory technologies, stored firmware, addressing, programming, erasure, read operations, persistence and reliability relationships."
    LOCALE = "en-GB"
  }

  ENTITY_TYPES {
    ROM
    READ_ONLY_MEMORY
    NON_VOLATILE_MEMORY
    MASK_ROM
    PROM
    EPROM
    EEPROM
    FLASH_MEMORY
    NOR_FLASH
    NAND_FLASH
    MEMORY_CHIP
    MEMORY_CELL
    MEMORY_ARRAY
    MEMORY_BLOCK
    MEMORY_PAGE
    WORD
    BYTE
    BIT
    ADDRESS
    MEMORY_LOCATION
    DATA
    STORED_VALUE
    FIRMWARE
    BOOT_FIRMWARE
    BIOS
    UEFI
    MICROCODE
    READ_OPERATION
    PROGRAM_OPERATION
    WRITE_OPERATION
    ERASE_OPERATION
    VERIFY_OPERATION
    PROGRAMMER
    MEMORY_CONTROLLER
    ADDRESS_BUS
    DATA_BUS
    CONTROL_BUS
    CHIP_SELECT
    READ_ENABLE
    WRITE_ENABLE
    ERASE_ENABLE
    CAPACITY
    ACCESS_TIME
    LATENCY
    DATA_RATE
    VOLTAGE
    PROGRAMMING_VOLTAGE
    POWER
    TEMPERATURE
    RETENTION_TIME
    ENDURANCE
    PROGRAM_ERASE_CYCLE
    BIT_ERROR
    ERROR_CORRECTION
    ECC
    STATE
    EVENT
    LOCK_STATE
    WRITE_PROTECTION
    CONFIGURATION
    HARDWARE_REVISION
    VERSION
    EVIDENCE
    CONFIDENCE_SCORE
    PROVENANCE_RECORD
  }

  RELATIONSHIPS {
    IS_A
    INSTANCE_OF
    PART_OF
    CONTAINS
    HAS_CELL
    HAS_ARRAY
    HAS_BLOCK
    HAS_PAGE
    HAS_ADDRESS
    STORES
    HOLDS
    READS
    PROGRAMS
    WRITES
    ERASES
    VERIFIES
    ADDRESSES
    SELECTS
    ENABLES
    PROTECTS
    LOCKS
    UNLOCKS
    PERSISTS_WITHOUT
    CONTAINS_FIRMWARE
    HAS_CAPACITY
    HAS_ACCESS_TIME
    HAS_LATENCY
    HAS_DATA_RATE
    HAS_VOLTAGE
    HAS_PROGRAMMING_VOLTAGE
    HAS_POWER
    HAS_TEMPERATURE
    HAS_RETENTION_TIME
    HAS_ENDURANCE
    HAS_ECC
    DETECTS_ERROR
    CORRECTS_ERROR
    HAS_STATE
    TRANSITIONS_TO
    HAS_CONFIGURATION
    HAS_HARDWARE_REVISION
    HAS_VERSION
    DEPENDS_ON
    PRECEDES
    FOLLOWS
    DERIVED_FROM
    INFERRED_FROM
    HAS_EVIDENCE
    HAS_CONFIDENCE
    HAS_PROVENANCE
    MAPS_TO
    SEMANTICALLY_EQUIVALENT_TO
  }

  INPUTS {
    ROM_SPECIFICATIONS
    MEMORY_TECHNOLOGY_DATA
    CHIP_DATA
    CAPACITY_DATA
    ADDRESS_MAPS
    FIRMWARE_IMAGES
    FIRMWARE_VERSION_DATA
    READ_TRACES
    PROGRAMMING_DATA
    ERASE_DATA
    ACCESS_TIME_DATA
    VOLTAGE_DATA
    POWER_DATA
    TEMPERATURE_DATA
    RETENTION_DATA
    ENDURANCE_DATA
    ECC_DATA
    ERROR_LOGS
    WRITE_PROTECTION_DATA
    CONFIGURATION_DATA
    HARDWARE_REVISION_DATA
    VERSION_DATA
    ONTOLOGY_TERMS
  }

  NORMALISE {
    STANDARDISE_ROM_IDENTIFIERS
    NORMALISE_MEMORY_TECHNOLOGY_NAMES
    NORMALISE_CAPACITY_UNITS
    NORMALISE_ADDRESS_FORMATS
    NORMALISE_ACCESS_TIME_UNITS
    NORMALISE_VOLTAGE_UNITS
    NORMALISE_POWER_UNITS
    NORMALISE_TEMPERATURE_UNITS
    NORMALISE_RETENTION_UNITS
    NORMALISE_ENDURANCE_MEASURES
    NORMALISE_FIRMWARE_VERSIONS
    NORMALISE_ERROR_TYPES
    NORMALISE_HARDWARE_REVISIONS
    NORMALISE_VERSION_IDENTIFIERS
    RESOLVE_MEMORY_IDENTITIES
    ALIGN_ONTOLOGY_TERMS
    REMOVE_DUPLICATES
    VALIDATE_METADATA
    PRESERVE_PROVENANCE
  }

  PROCESS ROM_READ_PIPELINE {
    READ_REQUEST
      -> ADDRESS_SELECTION
      -> MEMORY_LOCATION_RESOLUTION
      -> CHIP_OR_ARRAY_SELECTION
      -> STORED_STATE_SENSE
      -> DATA_DECODE
      -> DATA_RETURN
  }

  PROCESS PROGRAMMING_REASONING {
    PROGRAM_DATA + TARGET_ADDRESS
      -> TECHNOLOGY_PROGRAMMABILITY_CHECK

    PROGRAMMABLE_MEMORY
      -> WRITE_PROTECTION_CHECK

    WRITE_ALLOWED
      -> PROGRAM_OPERATION

    PROGRAM_OPERATION
      -> VERIFY_OPERATION

    VERIFY_OPERATION
      -> PROGRAM_SUCCESS_OR_FAILURE
  }

  PROCESS ERASE_REASONING {
    ERASE_REQUEST
      -> MEMORY_TECHNOLOGY_CHECK

    ERASABLE_MEMORY
      -> ERASE_GRANULARITY_SELECTION

    ERASE_GRANULARITY_SELECTION
      -> CHIP_OR_BLOCK_OR_PAGE_ERASE

    ERASE_OPERATION
      -> ERASED_STATE

    ERASED_STATE
      -> VERIFY_OPERATION
  }

  PROCESS FIRMWARE_REASONING {
    ROM_OR_NON_VOLATILE_MEMORY
      -> STORED_FIRMWARE

    STORED_FIRMWARE
      -> FIRMWARE_VERSION

    SYSTEM_START_OR_DEVICE_INITIALISATION
      -> FIRMWARE_READ

    FIRMWARE_READ
      -> EXECUTION_OR_CONFIGURATION_HANDOFF
  }

  PROCESS RETENTION_REASONING {
    STORED_STATE + TIME + TEMPERATURE_CONTEXT
      -> RETENTION_ASSESSMENT

    RETENTION_ASSESSMENT
      -> STABLE_STATE
      OR -> DEGRADATION_RISK

    DEGRADATION_RISK
      -> ERROR_PROBABILITY_INCREASE
  }

  PROCESS ENDURANCE_REASONING {
    PROGRAM_ERASE_CYCLES
      -> ENDURANCE_USAGE

    ENDURANCE_USAGE + TECHNOLOGY_LIMIT
      -> REMAINING_ENDURANCE_ESTIMATE

    EXCESSIVE_CYCLING
      -> WEAR_RISK
  }

  PROCESS ERROR_REASONING {
    STORED_DATA
      -> READ_AND_INTEGRITY_CHECK

    INTEGRITY_CHECK
      -> NO_ERROR
      OR -> CORRECTABLE_ERROR
      OR -> UNCORRECTABLE_ERROR

    CORRECTABLE_ERROR
      -> ECC_CORRECTION
      -> CORRECTED_DATA

    UNCORRECTABLE_ERROR
      -> ERROR_REPORT
  }

  RULES {
    IF ENTITY == MASK_ROM
    THEN DO_NOT_ASSERT_FIELD_REPROGRAMMABILITY

    IF ENTITY == PROM
    THEN PRESERVE ONE_TIME_PROGRAMMABLE_CONTEXT

    IF ENTITY == EPROM
    THEN PRESERVE ERASE_METHOD_AND_REPROGRAMMING_CONTEXT

    IF ENTITY == EEPROM_OR_FLASH_MEMORY
    THEN PRESERVE PROGRAM_ERASE_GRANULARITY_AND_ENDURANCE_CONTEXT

    IF READ_OPERATION_OCCURS
    THEN DO_NOT_INFER_MEMORY_STATE_CHANGE_FROM_READ_ALONE

    IF FIRMWARE_VERSION_DIFFERS
    THEN DO_NOT_ASSUME_IDENTICAL_DEVICE_BEHAVIOUR

    IF WRITE_PROTECTION_IS_ACTIVE
    THEN BLOCK_OR_FLAG_PROGRAM_OPERATION

    IF SEMANTIC_IDENTIFIERS_DIFFER
    AND ROM_REFERENT_IS_SAME
    THEN APPLY SEMANTIC_EQUIVALENCE
  }

  CONFIDENCE {
    CONFIDENCE_SCORE =
      WEIGHT(
        ROM_SPECIFICATION_COMPLETENESS,
        TECHNOLOGY_CERTAINTY,
        ADDRESS_MAPPING_CERTAINTY,
        FIRMWARE_VERSION_CERTAINTY,
        PROGRAM_ERASE_HISTORY_QUALITY,
        RETENTION_CONTEXT_QUALITY,
        ERROR_LOG_QUALITY,
        PROVENANCE_COMPLETENESS
      )

    LEVELS {
      HIGH
      MODERATE
      LOW
      INSUFFICIENT
    }

    IF MEMORY_TECHNOLOGY_IS_UNKNOWN
    THEN REDUCE_PROGRAMMABILITY_AND_ENDURANCE_CONFIDENCE

    IF FIRMWARE_VERSION_IS_UNKNOWN
    THEN REDUCE_FIRMWARE_BEHAVIOUR_CONFIDENCE

    IF VERIFIED_READBACK_CONFIRMS_PROGRAMMED_DATA
    THEN INCREASE CONFIDENCE_SCORE
  }

  SEMANTIC_EQUIVALENCE {
    EQUIVALENCE_KEY =
      NORMALISE(
        ENTITY_TYPE,
        CANONICAL_IDENTIFIER,
        MEMORY_TECHNOLOGY,
        CAPACITY,
        FIRMWARE_VERSION,
        HARDWARE_REVISION,
        CONFIGURATION
      )

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

    ELSE PRESERVE_DISTINCT_ENTITIES
  }

  REASONING_CONSTRAINTS {
    ROM != RAM
    READ_ONLY != NECESSARILY_FACTORY_IMMUTABLE_FOR_ALL_ROM_FAMILIES
    NON_VOLATILE != INFINITE_RETENTION
    READ_OPERATION != PROGRAM_OPERATION
    PROGRAM_OPERATION != ERASE_OPERATION
    PROM != EEPROM
    EPROM != EEPROM
    FLASH_MEMORY != MASK_ROM
    FIRMWARE != MEMORY_DEVICE
    CAPACITY != PERFORMANCE
    RETENTION_DEPENDS_ON_TECHNOLOGY_AND_CONDITIONS
    ENDURANCE_DEPENDS_ON_PROGRAM_ERASE_HISTORY
    ECC_DETECTION != ALWAYS_CORRECTION
    FIRMWARE_VERSION_AFFECTS_SYSTEM_BEHAVIOUR
    PROVENANCE_MUST_BE_PRESERVED
    UNCERTAINTY_MUST_NOT_BE_DISCARDED
  }

  VALIDATION {
    CHECK_ENTITY_TYPES
    CHECK_RELATION_DOMAINS_AND_RANGES
    CHECK_ROM_IDENTIFIER
    CHECK_MEMORY_TECHNOLOGY
    CHECK_CAPACITY
    CHECK_ADDRESS_MAPPING
    CHECK_READ_RELATIONS
    CHECK_PROGRAMMABILITY
    CHECK_ERASE_METHOD
    CHECK_WRITE_PROTECTION
    CHECK_FIRMWARE_VERSION
    CHECK_RETENTION_CONTEXT
    CHECK_ENDURANCE_CONTEXT
    CHECK_ECC_AND_ERROR_RELATIONS
    CHECK_VOLTAGE_AND_TEMPERATURE_CONTEXT
    CHECK_HARDWARE_REVISION
    CHECK_VERSION_CONTEXT
    CHECK_PROVENANCE
    CHECK_CONFIDENCE
    CHECK_SEMANTIC_CONSISTENCY
  }

  OUTPUTS {
    NORMALISED_ROM_ENTITIES
    MEMORY_TECHNOLOGY_RELATIONS
    ADDRESS_MAPPING_RELATIONS
    READ_RELATIONS
    PROGRAMMING_RELATIONS
    ERASE_RELATIONS
    WRITE_PROTECTION_RELATIONS
    FIRMWARE_RELATIONS
    RETENTION_RELATIONS
    ENDURANCE_RELATIONS
    ECC_AND_ERROR_RELATIONS
    MEMORY_STATE_TRANSITIONS
    CONFIDENCE_SCORES
    EVIDENCE_LINKS
    PROVENANCE_RECORDS
    EXPLANATION_PATHS
  }

  UPDATE_MODEL {
    ON ROM_FIRMWARE_OR_CONFIGURATION_CHANGE {
      NORMALISE
      ENTITY_RESOLUTION
      UPDATE_ADDRESS_MAPPING
      UPDATE_FIRMWARE_CONTEXT
      UPDATE_WRITE_PROTECTION_STATE
      UPDATE_ENDURANCE_STATE
      RECOMPUTE_AFFECTED_RELATIONS
      UPDATE_CONFIDENCE
      PRESERVE_VERSION_HISTORY
    }

    ON NEW_READ_PROGRAM_ERASE_OR_ERROR_DATA {
      LINK_EVIDENCE
      UPDATE_MEMORY_STATE
      UPDATE_PROGRAM_ERASE_HISTORY
      UPDATE_ERROR_PROFILE
      REASSESS_RETENTION_AND_ENDURANCE
      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_ROM
      BY_MEMORY_TECHNOLOGY
      BY_CHIP
      BY_ADDRESS
      BY_FIRMWARE
      BY_PROGRAM_OPERATION
      BY_ERASE_OPERATION
      BY_RETENTION
      BY_ENDURANCE
      BY_WRITE_PROTECTION
      BY_ERROR
      BY_CONFIDENCE
    }

    REASON {
      APPLY_RELATIONSHIPS
      APPLY_RULES
      TRACE_ROM_READS
      TRACE_PROGRAMMING
      TRACE_ERASURE
      ANALYSE_FIRMWARE
      ANALYSE_RETENTION
      ANALYSE_ENDURANCE
      ANALYSE_ERRORS_AND_ECC
      CHECK_SEMANTIC_EQUIVALENCE
      PRESERVE_UNCERTAINTY
      TRACE_EVIDENCE
      TRACE_PROVENANCE
      GENERATE_EXPLANATION_PATH
    }

    RESPONSE_POLICY {
      DISTINGUISH_ROM_TECHNOLOGIES
      DISTINGUISH_READ_FROM_PROGRAM_AND_ERASE
      PRESERVE_FIRMWARE_VERSION_CONTEXT
      PRESERVE_RETENTION_AND_ENDURANCE_CONTEXT
      PRESERVE_WRITE_PROTECTION_CONTEXT
      RETURN_CONFIDENCE_WHEN_AVAILABLE
      RETURN_PROVENANCE_WHEN_AVAILABLE
      AVOID_UNSUPPORTED_ROM_INFERENCE
    }
  }

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

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