Skip to main content

Object-Oriented Programming Ontology

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

FLOW ALGEBRA — OBJECT-ORIENTED PROGRAMMING ONTOLOGY
Semantic Library
Version: 4.0
Canonical Page:
https://kirethresearch.org/booksai-core/ontologies/computing-ontologies/programming/object-oriented-programming-ontology.html

FLOW OBJECT_ORIENTED_PROGRAMMING_ONTOLOGY {

  META {
    DOMAIN = "Computing Ontologies"
    SUBDOMAIN = "Programming"
    ONTOLOGY = "Object-Oriented Programming Ontology"
    PURPOSE = "Formalise object-oriented programming concepts including classes, objects, encapsulation, inheritance, polymorphism, abstraction, interfaces, composition, method dispatch and object lifecycle relationships."
    LOCALE = "en-GB"
  }

  ENTITY_TYPES {
    OBJECT_ORIENTED_PROGRAMMING
    PROGRAMMING_PARADIGM
    PROGRAMMING_LANGUAGE
    PROGRAM
    MODULE
    PACKAGE
    CLASS
    ABSTRACT_CLASS
    CONCRETE_CLASS
    BASE_CLASS
    DERIVED_CLASS
    SUPERCLASS
    SUBCLASS
    OBJECT
    INSTANCE
    INTERFACE
    TRAIT
    MIXIN
    PROTOCOL
    MEMBER
    FIELD
    PROPERTY
    ATTRIBUTE
    METHOD
    INSTANCE_METHOD
    STATIC_METHOD
    CLASS_METHOD
    ABSTRACT_METHOD
    CONSTRUCTOR
    DESTRUCTOR
    ACCESSOR
    MUTATOR
    PARAMETER
    ARGUMENT
    RETURN_VALUE
    MESSAGE
    METHOD_CALL
    METHOD_SIGNATURE
    METHOD_IMPLEMENTATION
    METHOD_DISPATCH
    STATIC_DISPATCH
    DYNAMIC_DISPATCH
    VIRTUAL_METHOD
    OVERRIDE
    OVERLOAD
    ENCAPSULATION
    ABSTRACTION
    INHERITANCE
    SINGLE_INHERITANCE
    MULTIPLE_INHERITANCE
    POLYMORPHISM
    SUBTYPE_POLYMORPHISM
    COMPOSITION
    AGGREGATION
    ASSOCIATION
    DEPENDENCY
    DELEGATION
    ACCESS_MODIFIER
    PUBLIC_ACCESS
    PROTECTED_ACCESS
    PRIVATE_ACCESS
    TYPE
    OBJECT_TYPE
    REFERENCE
    IDENTITY
    STATE
    BEHAVIOUR
    OBJECT_STATE
    CLASS_STATE
    INSTANCE_CREATION
    INITIALISATION
    LIFETIME
    MEMORY
    HEAP
    GARBAGE_COLLECTION
    EXCEPTION
    ERROR
    CONFIGURATION
    LANGUAGE_VERSION
    RUNTIME
    EVIDENCE
    CONFIDENCE_SCORE
    PROVENANCE_RECORD
  }

  RELATIONSHIPS {
    IS_A
    INSTANCE_OF
    PART_OF
    CONTAINS
    DEFINES
    DECLARES
    HAS_MEMBER
    HAS_FIELD
    HAS_PROPERTY
    HAS_METHOD
    HAS_CONSTRUCTOR
    HAS_DESTRUCTOR
    HAS_STATE
    HAS_BEHAVIOUR
    INHERITS_FROM
    EXTENDS
    IMPLEMENTS
    OVERRIDES
    OVERLOADS
    INSTANTIATES
    CONSTRUCTS
    INITIALISES
    DESTROYS
    CALLS
    INVOKES
    DISPATCHES_TO
    HAS_PARAMETER
    HAS_ARGUMENT
    RETURNS
    REFERENCES
    POINTS_TO
    COMPOSED_OF
    AGGREGATES
    ASSOCIATED_WITH
    DEPENDS_ON
    DELEGATES_TO
    ENCAPSULATES
    EXPOSES
    HIDES
    HAS_ACCESS_MODIFIER
    HAS_TYPE
    TRANSITIONS_TO
    ALLOCATES
    DEALLOCATES
    COLLECTS
    THROWS
    CATCHES
    HAS_CONFIGURATION
    HAS_LANGUAGE_VERSION
    DERIVED_FROM
    INFERRED_FROM
    HAS_EVIDENCE
    HAS_CONFIDENCE
    HAS_PROVENANCE
    MAPS_TO
    SEMANTICALLY_EQUIVALENT_TO
  }

  INPUTS {
    SOURCE_CODE
    LANGUAGE_SPECIFICATIONS
    LANGUAGE_VERSION_DATA
    CLASS_DEFINITIONS
    INTERFACE_DEFINITIONS
    METHOD_DEFINITIONS
    FIELD_AND_PROPERTY_DEFINITIONS
    TYPE_INFORMATION
    INHERITANCE_GRAPHS
    CALL_GRAPHS
    OBJECT_CREATION_TRACES
    RUNTIME_TYPE_DATA
    METHOD_DISPATCH_TRACES
    MEMORY_TRACES
    GARBAGE_COLLECTION_DATA
    EXCEPTION_TRACES
    CONFIGURATION_DATA
    ONTOLOGY_TERMS
  }

  NORMALISE {
    STANDARDISE_OOP_IDENTIFIERS
    NORMALISE_LANGUAGE_NAMES
    NORMALISE_LANGUAGE_VERSIONS
    NORMALISE_CLASS_NAMES
    NORMALISE_INTERFACE_NAMES
    NORMALISE_METHOD_SIGNATURES
    NORMALISE_FIELD_AND_PROPERTY_NAMES
    NORMALISE_ACCESS_MODIFIERS
    NORMALISE_TYPE_NAMES
    NORMALISE_INHERITANCE_RELATIONS
    NORMALISE_OBJECT_IDENTITIES
    NORMALISE_RUNTIME_TYPES
    RESOLVE_CLASS_METHOD_AND_OBJECT_IDENTITIES
    ALIGN_ONTOLOGY_TERMS
    REMOVE_DUPLICATES
    VALIDATE_METADATA
    PRESERVE_PROVENANCE
  }

  PROCESS OOP_REASONING_PIPELINE {
    SOURCE_OR_RUNTIME_DATA
      -> LANGUAGE_AND_VERSION_RESOLUTION
      -> CLASS_AND_INTERFACE_RESOLUTION
      -> MEMBER_RESOLUTION
      -> INHERITANCE_MAPPING
      -> OBJECT_AND_INSTANCE_MAPPING
      -> METHOD_CALL_AND_DISPATCH_MAPPING
      -> STATE_AND_LIFECYCLE_MAPPING
      -> VALIDATION
      -> OUTPUT
  }

  PROCESS CLASS_REASONING {
    CLASS_DEFINITION
      -> CLASS_IDENTITY

    CLASS_IDENTITY
      -> MEMBER_SET

    MEMBER_SET
      -> FIELDS
      -> PROPERTIES
      -> METHODS
      -> CONSTRUCTORS

    CLASS_IDENTITY
      -> BASE_CLASS_OR_INTERFACE_RELATIONS
  }

  PROCESS OBJECT_CREATION_REASONING {
    CONSTRUCTION_EXPRESSION
      -> CLASS_RESOLUTION

    CLASS_RESOLUTION
      -> MEMORY_ALLOCATION_IF_REQUIRED

    MEMORY_ALLOCATION_IF_REQUIRED
      -> OBJECT_IDENTITY

    OBJECT_IDENTITY
      -> CONSTRUCTOR_SELECTION

    CONSTRUCTOR_SELECTION
      -> INITIALISATION

    INITIALISATION
      -> INITIAL_OBJECT_STATE
  }

  PROCESS INHERITANCE_REASONING {
    DERIVED_CLASS
      -> BASE_CLASS_RESOLUTION

    BASE_CLASS_RESOLUTION
      -> INHERITED_MEMBER_SET

    INHERITED_MEMBER_SET
      -> ACCESSIBILITY_CHECK

    DERIVED_CLASS_MEMBERS
      -> OVERRIDE_OR_HIDE_ANALYSIS

    RESULT
      -> EFFECTIVE_CLASS_INTERFACE_AND_BEHAVIOUR
  }

  PROCESS INTERFACE_REASONING {
    CLASS + INTERFACE
      -> IMPLEMENTATION_RELATION

    INTERFACE
      -> REQUIRED_MEMBER_SET

    CLASS
      -> PROVIDED_MEMBER_SET

    REQUIRED_MEMBER_SET + PROVIDED_MEMBER_SET
      -> CONFORMANCE_CHECK
  }

  PROCESS METHOD_DISPATCH_REASONING {
    METHOD_CALL
      -> RECEIVER_EXPRESSION

    RECEIVER_EXPRESSION
      -> STATIC_TYPE
      -> RUNTIME_TYPE_IF_AVAILABLE

    METHOD_NAME_AND_SIGNATURE
      -> CANDIDATE_METHOD_SET

    DISPATCH_RULES
      -> SELECTED_METHOD_IMPLEMENTATION

    SELECTED_METHOD_IMPLEMENTATION
      -> INVOCATION
      -> RETURN_VALUE_OR_EXCEPTION
  }

  PROCESS POLYMORPHISM_REASONING {
    REFERENCE_WITH_BASE_OR_INTERFACE_TYPE
      -> RUNTIME_OBJECT

    RUNTIME_OBJECT
      -> CONCRETE_RUNTIME_TYPE

    VIRTUAL_OR_DYNAMIC_METHOD_CALL
      -> RUNTIME_DISPATCH

    RUNTIME_DISPATCH
      -> OVERRIDING_IMPLEMENTATION_IF_APPLICABLE
  }

  PROCESS ENCAPSULATION_REASONING {
    MEMBER_ACCESS
      -> ACCESS_MODIFIER

    ACCESS_MODIFIER
      -> CALLER_CONTEXT

    CALLER_CONTEXT
      -> ACCESSIBILITY_RULE

    ACCESSIBILITY_RULE
      -> ALLOW_OR_DENY
  }

  PROCESS COMPOSITION_REASONING {
    OWNER_OBJECT
      -> COMPONENT_OBJECT

    COMPONENT_OBJECT
      -> OWNERSHIP_OR_LIFETIME_RELATION

    OWNER_LIFECYCLE_EVENT
      -> COMPONENT_LIFECYCLE_EFFECT_IF_LANGUAGE_MODEL_REQUIRES
  }

  PROCESS OBJECT_STATE_REASONING {
    OBJECT_STATE(T1)
      + METHOD_OR_EVENT
      -> STATE_MUTATION

    STATE_MUTATION
      -> OBJECT_STATE(T2)

    OBJECT_STATE_SEQUENCE
      -> OBJECT_LIFECYCLE_TRACE
  }

  RULES {
    IF OBJECT_IS_CREATED
    THEN REQUIRE CLASS_OR_PROTOTYPE_CONTEXT_AND_OBJECT_IDENTITY

    IF METHOD_IS_CALLED
    THEN PRESERVE RECEIVER_STATIC_TYPE_RUNTIME_TYPE_AND_DISPATCH_CONTEXT

    IF CLASS_INHERITS_FROM_BASE
    THEN DO_NOT_ASSUME ALL_BASE_MEMBERS_ARE_ACCESSIBLE

    IF CLASS_IMPLEMENTS_INTERFACE
    THEN REQUIRE LANGUAGE_SPECIFIC_CONFORMANCE_RULES

    IF METHOD_NAME_MATCHES
    THEN DO_NOT_ASSERT SAME_METHOD_WITHOUT_SIGNATURE_SCOPE_AND_TYPE_CONTEXT

    IF OBJECTS_HAVE_EQUAL_STATE
    THEN DO_NOT_AUTOMATICALLY_ASSERT SAME_OBJECT_IDENTITY

    IF COMPOSITION_IS_ASSERTED
    THEN DISTINGUISH FROM GENERAL_ASSOCIATION_OR_AGGREGATION

    IF SEMANTIC_IDENTIFIERS_DIFFER
    AND OOP_REFERENT_IS_SAME
    THEN APPLY SEMANTIC_EQUIVALENCE
  }

  CONFIDENCE {
    CONFIDENCE_SCORE =
      WEIGHT(
        LANGUAGE_VERSION_CERTAINTY,
        CLASS_RESOLUTION_COMPLETENESS,
        TYPE_INFORMATION_COMPLETENESS,
        INHERITANCE_GRAPH_COMPLETENESS,
        METHOD_SIGNATURE_CERTAINTY,
        RUNTIME_TYPE_OBSERVABILITY,
        DISPATCH_TRACE_QUALITY,
        PROVENANCE_COMPLETENESS
      )

    LEVELS {
      HIGH
      MODERATE
      LOW
      INSUFFICIENT
    }

    IF RUNTIME_TYPE_IS_UNKNOWN
    THEN REDUCE_DYNAMIC_DISPATCH_CONFIDENCE

    IF LANGUAGE_VERSION_OR_DISPATCH_RULES_ARE_UNKNOWN
    THEN REDUCE_METHOD_RESOLUTION_CONFIDENCE

    IF COMPLETE_RUNTIME_TRACE_CONFIRMS_DISPATCH
    THEN INCREASE CONFIDENCE_SCORE
  }

  SEMANTIC_EQUIVALENCE {
    EQUIVALENCE_KEY =
      NORMALISE(
        ENTITY_TYPE,
        PROGRAMMING_LANGUAGE,
        LANGUAGE_VERSION,
        MODULE_OR_NAMESPACE,
        CLASS_OR_INTERFACE_IDENTIFIER,
        METHOD_SIGNATURE_OR_MEMBER_IDENTIFIER
      )

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

    ELSE PRESERVE_DISTINCT_ENTITIES
  }

  REASONING_CONSTRAINTS {
    CLASS != OBJECT
    OBJECT != REFERENCE
    OBJECT_IDENTITY != OBJECT_STATE
    INTERFACE != IMPLEMENTATION
    INHERITANCE != COMPOSITION
    COMPOSITION != AGGREGATION
    AGGREGATION != GENERAL_ASSOCIATION
    OVERRIDING != OVERLOADING
    STATIC_TYPE != RUNTIME_TYPE
    STATIC_DISPATCH != DYNAMIC_DISPATCH
    METHOD_SIGNATURE != METHOD_IMPLEMENTATION
    ENCAPSULATION != SECURITY_BOUNDARY
    POLYMORPHISM != DYNAMIC_TYPING
    EQUAL_OBJECT_VALUES != SAME_OBJECT_IDENTITY
    LANGUAGE_VERSION_AFFECTS_OOP_SEMANTICS
    RUNTIME_STATE_MAY_BE_REQUIRED_FOR_DYNAMIC_DISPATCH
    PROVENANCE_MUST_BE_PRESERVED
    UNCERTAINTY_MUST_NOT_BE_DISCARDED
  }

  VALIDATION {
    CHECK_ENTITY_TYPES
    CHECK_RELATION_DOMAINS_AND_RANGES
    CHECK_LANGUAGE_AND_VERSION
    CHECK_CLASS_IDENTITIES
    CHECK_OBJECT_IDENTITIES
    CHECK_INTERFACE_RELATIONS
    CHECK_MEMBER_RELATIONS
    CHECK_ACCESS_MODIFIERS
    CHECK_INHERITANCE_GRAPH
    CHECK_OVERRIDE_AND_OVERLOAD_RELATIONS
    CHECK_METHOD_SIGNATURES
    CHECK_STATIC_AND_RUNTIME_TYPES
    CHECK_METHOD_DISPATCH
    CHECK_COMPOSITION_AND_AGGREGATION
    CHECK_OBJECT_STATE_TRANSITIONS
    CHECK_MEMORY_AND_LIFETIME_CONTEXT
    CHECK_CONFIGURATION
    CHECK_PROVENANCE
    CHECK_CONFIDENCE
    CHECK_SEMANTIC_CONSISTENCY
  }

  OUTPUTS {
    NORMALISED_OOP_ENTITIES
    CLASS_RELATIONS
    OBJECT_AND_INSTANCE_RELATIONS
    INTERFACE_RELATIONS
    MEMBER_RELATIONS
    INHERITANCE_RELATIONS
    OVERRIDE_AND_OVERLOAD_RELATIONS
    ENCAPSULATION_RELATIONS
    COMPOSITION_AGGREGATION_AND_ASSOCIATION_RELATIONS
    METHOD_CALL_RELATIONS
    METHOD_DISPATCH_RELATIONS
    POLYMORPHISM_RELATIONS
    OBJECT_STATE_TRANSITIONS
    OBJECT_LIFECYCLE_RELATIONS
    CONFIDENCE_SCORES
    EVIDENCE_LINKS
    PROVENANCE_RECORDS
    EXPLANATION_PATHS
  }

  UPDATE_MODEL {
    ON SOURCE_OR_TYPE_CHANGE {
      NORMALISE
      RESOLVE_CLASSES_INTERFACES_AND_MEMBERS
      UPDATE_INHERITANCE_GRAPH
      UPDATE_TYPE_RELATIONS
      UPDATE_METHOD_SIGNATURES
      UPDATE_CALL_AND_DISPATCH_RELATIONS
      RECOMPUTE_AFFECTED_RELATIONS
      UPDATE_CONFIDENCE
      PRESERVE_VERSION_HISTORY
    }

    ON NEW_RUNTIME_OR_OBJECT_TRACE {
      LINK_EVIDENCE
      UPDATE_OBJECT_IDENTITIES
      UPDATE_RUNTIME_TYPES
      UPDATE_OBJECT_STATE
      UPDATE_DYNAMIC_DISPATCH_RELATIONS
      UPDATE_LIFECYCLE_RELATIONS
      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_CLASS
      BY_OBJECT
      BY_INTERFACE
      BY_METHOD
      BY_FIELD
      BY_PROPERTY
      BY_INHERITANCE
      BY_COMPOSITION
      BY_STATIC_TYPE
      BY_RUNTIME_TYPE
      BY_DISPATCH
      BY_OBJECT_STATE
      BY_LANGUAGE
      BY_CONFIDENCE
    }

    REASON {
      APPLY_RELATIONSHIPS
      APPLY_RULES
      RESOLVE_CLASSES_AND_OBJECTS
      ANALYSE_INHERITANCE
      ANALYSE_INTERFACE_CONFORMANCE
      TRACE_METHOD_CALLS
      ANALYSE_METHOD_DISPATCH
      ANALYSE_POLYMORPHISM
      ANALYSE_ENCAPSULATION
      ANALYSE_COMPOSITION_AND_AGGREGATION
      TRACE_OBJECT_STATE_AND_LIFECYCLE
      CHECK_SEMANTIC_EQUIVALENCE
      PRESERVE_UNCERTAINTY
      TRACE_EVIDENCE
      TRACE_PROVENANCE
      GENERATE_EXPLANATION_PATH
    }

    RESPONSE_POLICY {
      DISTINGUISH_CLASS_FROM_OBJECT
      DISTINGUISH_OBJECT_IDENTITY_FROM_STATE
      DISTINGUISH_INHERITANCE_COMPOSITION_AGGREGATION_AND_ASSOCIATION
      DISTINGUISH_OVERRIDE_FROM_OVERLOAD
      PRESERVE_LANGUAGE_VERSION_STATIC_TYPE_RUNTIME_TYPE_AND_DISPATCH_CONTEXT
      RETURN_CONFIDENCE_WHEN_AVAILABLE
      RETURN_PROVENANCE_WHEN_AVAILABLE
      AVOID_UNSUPPORTED_OOP_INFERENCE
    }
  }

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

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