Skip to main content

Data Structure Ontology

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

FLOW ALGEBRA — DATA STRUCTURE ONTOLOGY
Semantic Library
Version: 4.0
Canonical Page:
https://kirethresearch.org/booksai-core/ontologies/computing-ontologies/data-structures/data-structure-ontology.html

FLOW DATA_STRUCTURE_ONTOLOGY {

  META {
    DOMAIN = "Computing Ontologies"
    SUBDOMAIN = "Data Structures"
    ONTOLOGY = "Data Structure Ontology"
    PURPOSE = "Formalise data structures as computational entities, including their elements, organisation, operations, invariants, abstract interfaces, concrete representations, complexity and memory relationships."
    LOCALE = "en-GB"
  }

  ENTITY_TYPES {
    DATA_STRUCTURE
    ABSTRACT_DATA_TYPE
    CONCRETE_DATA_STRUCTURE
    LINEAR_DATA_STRUCTURE
    NONLINEAR_DATA_STRUCTURE
    STATIC_DATA_STRUCTURE
    DYNAMIC_DATA_STRUCTURE
    MUTABLE_DATA_STRUCTURE
    IMMUTABLE_DATA_STRUCTURE
    PERSISTENT_DATA_STRUCTURE
    CONCURRENT_DATA_STRUCTURE
    ELEMENT
    VALUE
    KEY
    INDEX
    NODE
    EDGE
    POINTER
    REFERENCE
    COLLECTION
    SEQUENCE
    ARRAY
    DYNAMIC_ARRAY
    MATRIX
    LINKED_LIST
    SINGLY_LINKED_LIST
    DOUBLY_LINKED_LIST
    CIRCULAR_LIST
    STACK
    QUEUE
    DEQUE
    PRIORITY_QUEUE
    SET
    MULTISET
    MAP
    DICTIONARY
    HASH_TABLE
    TREE
    BINARY_TREE
    BINARY_SEARCH_TREE
    BALANCED_TREE
    AVL_TREE
    RED_BLACK_TREE
    B_TREE
    B_PLUS_TREE
    HEAP
    TRIE
    GRAPH
    DIRECTED_GRAPH
    UNDIRECTED_GRAPH
    WEIGHTED_GRAPH
    DAG
    DISJOINT_SET
    UNION_FIND
    BLOOM_FILTER
    SKIP_LIST
    BUFFER
    RING_BUFFER
    RECORD
    TUPLE
    OPERATION
    CREATE
    INSERT
    DELETE
    ACCESS
    LOOKUP
    SEARCH
    UPDATE
    TRAVERSE
    ITERATE
    SORT
    MERGE
    SPLIT
    PUSH
    POP
    ENQUEUE
    DEQUEUE
    PEEK
    RESIZE
    ROTATE
    REBALANCE
    INVARIANT
    ORDERING_INVARIANT
    STRUCTURAL_INVARIANT
    BALANCE_INVARIANT
    CAPACITY
    SIZE
    LOAD_FACTOR
    COMPLEXITY
    TIME_COMPLEXITY
    SPACE_COMPLEXITY
    BEST_CASE
    AVERAGE_CASE
    WORST_CASE
    MEMORY_LAYOUT
    CONTIGUOUS_MEMORY
    LINKED_MEMORY
    STRUCTURAL_SHARING
    IMPLEMENTATION
    CONFIGURATION
    LANGUAGE_CONTEXT
    RUNTIME_CONTEXT
    EVIDENCE
    CONFIDENCE_SCORE
    PROVENANCE_RECORD
  }

  RELATIONSHIPS {
    IS_A
    INSTANCE_OF
    IMPLEMENTS
    REPRESENTS
    PART_OF
    CONTAINS
    HAS_ELEMENT
    HAS_KEY
    HAS_VALUE
    HAS_INDEX
    HAS_NODE
    HAS_EDGE
    POINTS_TO
    REFERENCES
    PRECEDES
    FOLLOWS
    PARENT_OF
    CHILD_OF
    CONNECTED_TO
    ADJACENT_TO
    MAPS_TO
    HASHES_TO
    STORED_IN
    SUPPORTS_OPERATION
    INSERTS
    DELETES
    ACCESSES
    LOOKS_UP
    SEARCHES
    UPDATES
    TRAVERSES
    ITERATES
    SORTS
    MERGES
    SPLITS
    PUSHES
    POPS
    ENQUEUES
    DEQUEUES
    RESIZES
    ROTATES
    REBALANCES
    PRESERVES
    HAS_INVARIANT
    HAS_ORDERING
    HAS_SIZE
    HAS_CAPACITY
    HAS_LOAD_FACTOR
    HAS_TIME_COMPLEXITY
    HAS_SPACE_COMPLEXITY
    HAS_MEMORY_LAYOUT
    HAS_IMPLEMENTATION
    HAS_CONFIGURATION
    DEPENDS_ON
    DERIVED_FROM
    INFERRED_FROM
    HAS_EVIDENCE
    HAS_CONFIDENCE
    HAS_PROVENANCE
    SEMANTICALLY_EQUIVALENT_TO
  }

  INPUTS {
    DATA_STRUCTURE_SPECIFICATIONS
    ABSTRACT_DATA_TYPE_SPECIFICATIONS
    IMPLEMENTATION_DEFINITIONS
    SOURCE_CODE
    ELEMENT_AND_VALUE_DATA
    KEY_AND_INDEX_DATA
    NODE_AND_EDGE_DATA
    OPERATION_TRACES
    INVARIANT_DEFINITIONS
    COMPLEXITY_ANALYSES
    MEMORY_LAYOUT_DATA
    BENCHMARK_DATA
    LANGUAGE_CONTEXT
    RUNTIME_CONTEXT
    CONFIGURATION_DATA
    ONTOLOGY_TERMS
  }

  NORMALISE {
    STANDARDISE_STRUCTURE_IDENTIFIERS
    NORMALISE_STRUCTURE_NAMES
    NORMALISE_ABSTRACT_DATA_TYPE_NAMES
    NORMALISE_IMPLEMENTATION_NAMES
    NORMALISE_ELEMENT_KEY_AND_VALUE_TYPES
    NORMALISE_OPERATION_NAMES
    NORMALISE_NODE_AND_EDGE_IDENTIFIERS
    NORMALISE_ORDERING_TERMS
    NORMALISE_COMPLEXITY_NOTATION
    NORMALISE_MEMORY_UNITS
    NORMALISE_SIZE_CAPACITY_AND_LOAD_FACTOR
    NORMALISE_LANGUAGE_AND_RUNTIME_CONTEXT
    RESOLVE_STRUCTURE_AND_ELEMENT_IDENTITIES
    ALIGN_ONTOLOGY_TERMS
    REMOVE_DUPLICATES
    VALIDATE_METADATA
    PRESERVE_PROVENANCE
  }

  PROCESS DATA_STRUCTURE_PIPELINE {
    STRUCTURE_REFERENCE
      -> STRUCTURE_IDENTIFICATION
      -> ABSTRACT_DATA_TYPE_MAPPING
      -> CONCRETE_IMPLEMENTATION_MAPPING
      -> ELEMENT_AND_RELATION_MAPPING
      -> OPERATION_MAPPING
      -> INVARIANT_ANALYSIS
      -> COMPLEXITY_ANALYSIS
      -> MEMORY_REPRESENTATION_ANALYSIS
      -> VALIDATION
      -> OUTPUT
  }

  PROCESS ABSTRACT_TYPE_REASONING {
    ABSTRACT_DATA_TYPE
      -> REQUIRED_OPERATIONS

    REQUIRED_OPERATIONS
      -> BEHAVIOURAL_CONTRACT

    CONCRETE_DATA_STRUCTURE
      -> PROVIDED_OPERATIONS

    PROVIDED_OPERATIONS + BEHAVIOURAL_CONTRACT
      -> IMPLEMENTATION_CONFORMANCE
  }

  PROCESS ELEMENT_REASONING {
    DATA_STRUCTURE
      -> ELEMENT_SET

    ELEMENT
      -> VALUE_OR_KEY_VALUE_PAIR_OR_NODE

    ELEMENT_RELATIONS
      -> STRUCTURAL_OR_ORDERING_RELATIONS

    STRUCTURAL_RELATIONS
      -> STRUCTURE_STATE
  }

  PROCESS OPERATION_REASONING {
    DATA_STRUCTURE_STATE(T1)
      + OPERATION
      -> PRECONDITION_CHECK

    VALID_OPERATION
      -> STATE_TRANSFORMATION

    STATE_TRANSFORMATION
      -> DATA_STRUCTURE_STATE(T2)

    DATA_STRUCTURE_STATE(T2)
      -> INVARIANT_CHECK
  }

  PROCESS ARRAY_REASONING {
    ARRAY
      -> INDEX_DOMAIN

    INDEX
      -> OFFSET_OR_LOCATION

    LOCATION
      -> ELEMENT

    DYNAMIC_ARRAY_RESIZE
      -> NEW_CAPACITY
      -> ELEMENT_RELOCATION_IF_REQUIRED
  }

  PROCESS LINKED_STRUCTURE_REASONING {
    NODE
      -> VALUE

    NODE
      -> LINK_REFERENCE

    LINK_REFERENCE
      -> NEXT_OR_PREVIOUS_NODE

    INSERT_OR_DELETE
      -> LINK_REWRITING

    LINK_REWRITING
      -> STRUCTURAL_INVARIANT_CHECK
  }

  PROCESS HASH_STRUCTURE_REASONING {
    KEY
      -> HASH_FUNCTION

    HASH_FUNCTION
      -> HASH_VALUE

    HASH_VALUE
      -> BUCKET_OR_SLOT

    COLLISION
      -> COLLISION_RESOLUTION_STRATEGY

    LOOKUP
      -> KEY_COMPARISON
      -> VALUE_OR_NOT_FOUND
  }

  PROCESS TREE_REASONING {
    TREE
      -> ROOT

    ROOT
      -> CHILD_RELATIONS

    CHILD_RELATIONS
      -> SUBTREES

    SEARCH_TREE
      -> ORDERING_INVARIANT

    BALANCED_TREE
      -> BALANCE_INVARIANT

    UPDATE
      -> REBALANCING_IF_REQUIRED
  }

  PROCESS GRAPH_REASONING {
    GRAPH
      -> VERTEX_SET

    GRAPH
      -> EDGE_SET

    EDGE
      -> ENDPOINTS

    DIRECTED_EDGE
      -> SOURCE_AND_TARGET

    GRAPH_REPRESENTATION
      -> ADJACENCY_LIST_OR_MATRIX_OR_OTHER
  }

  PROCESS COMPLEXITY_REASONING {
    DATA_STRUCTURE + OPERATION
      -> INPUT_SIZE_MODEL

    INPUT_SIZE_MODEL
      -> COST_FUNCTION

    COST_FUNCTION
      -> BEST_AVERAGE_OR_WORST_CASE

    COST_FUNCTION
      -> ASYMPTOTIC_TIME_COMPLEXITY

    MEMORY_REQUIREMENTS
      -> SPACE_COMPLEXITY
  }

  PROCESS PERSISTENCE_REASONING {
    PERSISTENT_DATA_STRUCTURE_STATE(T1)
      + UPDATE
      -> NEW_STATE(T2)

    NEW_STATE(T2)
      -> PRESERVE_STATE(T1)

    T1 + T2
      -> STRUCTURAL_SHARING_IF_IMPLEMENTED
  }

  RULES {
    IF CONCRETE_STRUCTURE_IMPLEMENTS_ABSTRACT_DATA_TYPE
    THEN REQUIRE OPERATIONAL_CONTRACT_COMPATIBILITY

    IF OPERATION_CHANGES_STRUCTURE
    THEN CHECK POST_OPERATION_INVARIANTS

    IF COMPLEXITY_IS_ASSERTED
    THEN PRESERVE OPERATION_INPUT_MODEL_CASE_IMPLEMENTATION_AND_CONFIGURATION_CONTEXT

    IF HASH_TABLE_IS_ANALYSED
    THEN PRESERVE HASH_FUNCTION_LOAD_FACTOR_AND_COLLISION_STRATEGY

    IF BALANCED_TREE_IS_ASSERTED
    THEN REQUIRE DEFINED_BALANCE_INVARIANT

    IF GRAPH_IS_DIRECTED
    THEN PRESERVE EDGE_DIRECTION

    IF PERSISTENT_STRUCTURE_IS_UPDATED
    THEN PRESERVE OLD_AND_NEW_STATES

    IF SEMANTIC_IDENTIFIERS_DIFFER
    AND DATA_STRUCTURE_REFERENT_IS_SAME
    THEN APPLY SEMANTIC_EQUIVALENCE
  }

  CONFIDENCE {
    CONFIDENCE_SCORE =
      WEIGHT(
        STRUCTURE_IDENTITY_CERTAINTY,
        ABSTRACT_TYPE_CERTAINTY,
        IMPLEMENTATION_CERTAINTY,
        ELEMENT_AND_RELATION_COMPLETENESS,
        OPERATION_TRACE_COMPLETENESS,
        INVARIANT_EVIDENCE_QUALITY,
        COMPLEXITY_ANALYSIS_QUALITY,
        PROVENANCE_COMPLETENESS
      )

    LEVELS {
      HIGH
      MODERATE
      LOW
      INSUFFICIENT
    }

    IF IMPLEMENTATION_OR_CONFIGURATION_IS_UNKNOWN
    THEN REDUCE_OPERATION_COMPLEXITY_AND_MEMORY_CONFIDENCE

    IF INVARIANT_EVIDENCE_IS_PARTIAL
    THEN REDUCE_STRUCTURE_VALIDITY_CONFIDENCE

    IF COMPLETE_OPERATION_TRACE_CONFIRMS_STATE_AND_INVARIANTS
    THEN INCREASE_CONFIDENCE_SCORE
  }

  SEMANTIC_EQUIVALENCE {
    EQUIVALENCE_KEY =
      NORMALISE(
        ENTITY_TYPE,
        ABSTRACT_DATA_TYPE,
        IMPLEMENTATION,
        ELEMENT_TYPE,
        KEY_TYPE,
        CONFIGURATION,
        LANGUAGE_RUNTIME_CONTEXT
      )

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

    ELSE PRESERVE_DISTINCT_ENTITIES
  }

  REASONING_CONSTRAINTS {
    ABSTRACT_DATA_TYPE != CONCRETE_DATA_STRUCTURE
    DATA_STRUCTURE != ELEMENT
    KEY != VALUE_IN_GENERAL
    INDEX != KEY_IN_ALL_STRUCTURES
    ARRAY != LINKED_LIST
    STACK != QUEUE
    SET != MULTISET
    MAP != HASH_TABLE
    TREE != BINARY_TREE
    BINARY_TREE != BINARY_SEARCH_TREE
    BINARY_SEARCH_TREE != BALANCED_TREE
    HEAP != FULLY_SORTED_STRUCTURE
    GRAPH != TREE
    HASH_COLLISION != DUPLICATE_KEY
    TIME_COMPLEXITY != WALL_CLOCK_TIME
    SPACE_COMPLEXITY != RAW_OBJECT_SIZE_WITHOUT_INPUT_MODEL
    BEST_CASE != AVERAGE_CASE
    AVERAGE_CASE != WORST_CASE
    PERSISTENT != IMMUTABLE_AS_IDENTICAL_CONCEPT
    COMPLEXITY_AND_MEMORY_BEHAVIOUR_DEPEND_ON_IMPLEMENTATION_AND_CONTEXT
    PROVENANCE_MUST_BE_PRESERVED
    UNCERTAINTY_MUST_NOT_BE_DISCARDED
  }

  VALIDATION {
    CHECK_ENTITY_TYPES
    CHECK_RELATION_DOMAINS_AND_RANGES
    CHECK_STRUCTURE_IDENTIFIER
    CHECK_ABSTRACT_DATA_TYPE
    CHECK_CONCRETE_IMPLEMENTATION
    CHECK_ELEMENT_KEY_AND_VALUE_TYPES
    CHECK_INDEX_RELATIONS
    CHECK_NODE_AND_EDGE_RELATIONS
    CHECK_SUPPORTED_OPERATIONS
    CHECK_PRECONDITIONS_AND_POSTCONDITIONS
    CHECK_INVARIANTS
    CHECK_ORDERING
    CHECK_SIZE_CAPACITY_AND_LOAD_FACTOR
    CHECK_COMPLEXITY_CONTEXT
    CHECK_MEMORY_LAYOUT
    CHECK_MUTABILITY_IMMUTABILITY_AND_PERSISTENCE
    CHECK_LANGUAGE_RUNTIME_AND_CONFIGURATION
    CHECK_PROVENANCE
    CHECK_CONFIDENCE
    CHECK_SEMANTIC_CONSISTENCY
  }

  OUTPUTS {
    NORMALISED_DATA_STRUCTURE_ENTITIES
    ABSTRACT_DATA_TYPE_RELATIONS
    IMPLEMENTATION_RELATIONS
    ELEMENT_KEY_VALUE_AND_INDEX_RELATIONS
    NODE_AND_EDGE_RELATIONS
    OPERATION_RELATIONS
    STRUCTURE_STATE_TRANSITIONS
    ARRAY_RELATIONS
    LINKED_STRUCTURE_RELATIONS
    HASH_STRUCTURE_RELATIONS
    TREE_RELATIONS
    GRAPH_RELATIONS
    INVARIANT_RELATIONS
    TIME_COMPLEXITY_RELATIONS
    SPACE_COMPLEXITY_RELATIONS
    MEMORY_LAYOUT_RELATIONS
    PERSISTENCE_AND_STRUCTURAL_SHARING_RELATIONS
    CONFIDENCE_SCORES
    EVIDENCE_LINKS
    PROVENANCE_RECORDS
    EXPLANATION_PATHS
  }

  UPDATE_MODEL {
    ON DATA_STRUCTURE_OPERATION {
      NORMALISE
      RESOLVE_STRUCTURE_AND_ELEMENT_IDENTITIES
      UPDATE_STRUCTURE_STATE
      UPDATE_ELEMENT_AND_RELATION_STATE
      UPDATE_SIZE_CAPACITY_AND_LOAD_FACTOR
      RECHECK_INVARIANTS
      UPDATE_OPERATION_RELATIONS
      UPDATE_CONFIDENCE
    }

    ON IMPLEMENTATION_CONFIGURATION_OR_RUNTIME_CHANGE {
      UPDATE_IMPLEMENTATION_CONTEXT
      REASSESS_COMPLEXITY
      REASSESS_MEMORY_LAYOUT
      RECHECK_SEMANTIC_EQUIVALENCE
      RECOMPUTE_AFFECTED_RELATIONS
      UPDATE_CONFIDENCE
      PRESERVE_VERSION_HISTORY
    }

    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_DATA_STRUCTURE
      BY_ABSTRACT_DATA_TYPE
      BY_IMPLEMENTATION
      BY_ELEMENT
      BY_KEY
      BY_INDEX
      BY_OPERATION
      BY_INVARIANT
      BY_ARRAY
      BY_LINKED_STRUCTURE
      BY_HASH_STRUCTURE
      BY_TREE
      BY_GRAPH
      BY_COMPLEXITY
      BY_MEMORY_LAYOUT
      BY_CONFIDENCE
    }

    REASON {
      APPLY_RELATIONSHIPS
      APPLY_RULES
      ANALYSE_ABSTRACT_TYPE_CONFORMANCE
      ANALYSE_ELEMENTS_AND_RELATIONS
      TRACE_STRUCTURE_OPERATIONS
      ANALYSE_ARRAYS
      ANALYSE_LINKED_STRUCTURES
      ANALYSE_HASH_STRUCTURES
      ANALYSE_TREES
      ANALYSE_GRAPHS
      ANALYSE_COMPLEXITY
      ANALYSE_PERSISTENCE
      CHECK_INVARIANTS
      CHECK_SEMANTIC_EQUIVALENCE
      PRESERVE_UNCERTAINTY
      TRACE_EVIDENCE
      TRACE_PROVENANCE
      GENERATE_EXPLANATION_PATH
    }

    RESPONSE_POLICY {
      DISTINGUISH_ABSTRACT_DATA_TYPE_FROM_CONCRETE_IMPLEMENTATION
      PRESERVE_STRUCTURE_OPERATION_ELEMENT_IMPLEMENTATION_LANGUAGE_RUNTIME_AND_CONFIGURATION_CONTEXT
      DISTINGUISH_COMPLEXITY_CASES
      DISTINGUISH_HASH_COLLISION_FROM_DUPLICATE_KEY
      PRESERVE_STRUCTURE_INVARIANTS_AND_VERSIONED_STATES
      RETURN_CONFIDENCE_WHEN_AVAILABLE
      RETURN_PROVENANCE_WHEN_AVAILABLE
      AVOID_UNSUPPORTED_DATA_STRUCTURE_INFERENCE
    }
  }

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

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