Skip to main content

Programming Paradigm 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 — PROGRAMMING PARADIGM ONTOLOGY
Semantic Library
Version: 4.0
Canonical Page:
https://kirethresearch.org/booksai-core/ontologies/computing-ontologies/programming/programming-paradigm-ontology.html

FLOW PROGRAMMING_PARADIGM_ONTOLOGY {

  META {
    DOMAIN = "Computing Ontologies"
    SUBDOMAIN = "Programming"
    ONTOLOGY = "Programming Paradigm Ontology"
    PURPOSE = "Formalise programming paradigms, their defining computational models, language features, abstraction mechanisms, state models, control structures and relationships between paradigms."
    LOCALE = "en-GB"
  }

  ENTITY_TYPES {
    PROGRAMMING_PARADIGM
    PROGRAMMING_LANGUAGE
    LANGUAGE_VERSION
    PROGRAM
    COMPUTATIONAL_MODEL
    ABSTRACTION_MODEL
    STATE_MODEL
    CONTROL_MODEL
    DATA_MODEL
    EXECUTION_MODEL
    IMPERATIVE_PROGRAMMING
    PROCEDURAL_PROGRAMMING
    STRUCTURED_PROGRAMMING
    OBJECT_ORIENTED_PROGRAMMING
    FUNCTIONAL_PROGRAMMING
    LOGIC_PROGRAMMING
    DECLARATIVE_PROGRAMMING
    EVENT_DRIVEN_PROGRAMMING
    REACTIVE_PROGRAMMING
    DATAFLOW_PROGRAMMING
    CONCURRENT_PROGRAMMING
    PARALLEL_PROGRAMMING
    DISTRIBUTED_PROGRAMMING
    GENERIC_PROGRAMMING
    METAPROGRAMMING
    ASPECT_ORIENTED_PROGRAMMING
    COMPONENT_BASED_PROGRAMMING
    RULE_BASED_PROGRAMMING
    CONSTRAINT_PROGRAMMING
    ARRAY_PROGRAMMING
    DIFFERENTIABLE_PROGRAMMING
    IMPERATIVE_STATE
    MUTABLE_STATE
    IMMUTABLE_STATE
    VARIABLE
    ASSIGNMENT
    PROCEDURE
    FUNCTION
    PURE_FUNCTION
    OBJECT
    CLASS
    MESSAGE
    EVENT
    STREAM
    RULE
    FACT
    QUERY
    PREDICATE
    CONSTRAINT
    DATAFLOW_GRAPH
    TASK
    THREAD
    PROCESS
    ACTOR
    MODULE
    COMPONENT
    TYPE
    GENERIC_TYPE
    HIGHER_ORDER_FUNCTION
    INHERITANCE
    POLYMORPHISM
    COMPOSITION
    RECURSION
    ITERATION
    PATTERN_MATCHING
    SIDE_EFFECT
    SYNCHRONISATION
    MESSAGE_PASSING
    SHARED_MEMORY
    EVALUATION_STRATEGY
    RUNTIME
    IMPLEMENTATION
    LANGUAGE_FEATURE
    PARADIGM_FEATURE
    CONFIGURATION
    EVIDENCE
    CONFIDENCE_SCORE
    PROVENANCE_RECORD
  }

  RELATIONSHIPS {
    IS_A
    INSTANCE_OF
    PART_OF
    SUPPORTS
    SUPPORTS_PARADIGM
    CHARACTERISED_BY
    HAS_FEATURE
    HAS_COMPUTATIONAL_MODEL
    HAS_ABSTRACTION_MODEL
    HAS_STATE_MODEL
    HAS_CONTROL_MODEL
    HAS_DATA_MODEL
    HAS_EXECUTION_MODEL
    USES
    DEFINES
    DECLARES
    MUTATES
    EVALUATES
    CALLS
    RETURNS
    INSTANTIATES
    INHERITS_FROM
    COMPOSES_WITH
    MATCHES
    REACTS_TO
    EMITS
    CONSUMES
    CONSTRAINS
    SYNCHRONISES_WITH
    COMMUNICATES_WITH
    RUNS_IN_PARALLEL_WITH
    DEPENDS_ON
    COMBINES_WITH
    OVERLAPS_WITH
    CONTRASTS_WITH
    INFLUENCED_BY
    DERIVED_FROM
    PRECEDES
    FOLLOWS
    HAS_LANGUAGE_VERSION
    HAS_CONFIGURATION
    INFERRED_FROM
    HAS_EVIDENCE
    HAS_CONFIDENCE
    HAS_PROVENANCE
    MAPS_TO
    SEMANTICALLY_EQUIVALENT_TO
  }

  INPUTS {
    PARADIGM_DEFINITIONS
    LANGUAGE_SPECIFICATIONS
    LANGUAGE_VERSION_DATA
    LANGUAGE_FEATURE_DATA
    SOURCE_CODE
    COMPUTATIONAL_MODEL_DATA
    STATE_MODEL_DATA
    CONTROL_MODEL_DATA
    TYPE_SYSTEM_DATA
    EXECUTION_MODEL_DATA
    RUNTIME_DATA
    IMPLEMENTATION_DATA
    HISTORICAL_RELATION_DATA
    COMPARATIVE_FEATURE_DATA
    CONFIGURATION_DATA
    ONTOLOGY_TERMS
  }

  NORMALISE {
    STANDARDISE_PARADIGM_IDENTIFIERS
    NORMALISE_PARADIGM_NAMES
    NORMALISE_LANGUAGE_NAMES
    NORMALISE_LANGUAGE_VERSIONS
    NORMALISE_FEATURE_NAMES
    NORMALISE_COMPUTATIONAL_MODEL_NAMES
    NORMALISE_STATE_MODEL_TERMS
    NORMALISE_CONTROL_MODEL_TERMS
    NORMALISE_EXECUTION_MODEL_TERMS
    RESOLVE_PARADIGM_LANGUAGE_AND_FEATURE_IDENTITIES
    ALIGN_ONTOLOGY_TERMS
    REMOVE_DUPLICATES
    VALIDATE_METADATA
    PRESERVE_PROVENANCE
  }

  PROCESS PARADIGM_REASONING_PIPELINE {
    LANGUAGE_OR_PROGRAM_REFERENCE
      -> LANGUAGE_AND_VERSION_RESOLUTION
      -> FEATURE_EXTRACTION
      -> COMPUTATIONAL_MODEL_MAPPING
      -> STATE_AND_CONTROL_MODEL_MAPPING
      -> ABSTRACTION_MAPPING
      -> PARADIGM_SUPPORT_ANALYSIS
      -> MULTI_PARADIGM_RELATION_MAPPING
      -> VALIDATION
      -> OUTPUT
  }

  PROCESS IMPERATIVE_REASONING {
    PROGRAM
      -> COMMAND_SEQUENCE

    COMMAND_SEQUENCE
      -> STATE_MUTATIONS

    STATE_MUTATIONS
      -> PROGRAM_STATE_TRANSITIONS

    EXPLICIT_CONTROL_FLOW + MUTABLE_STATE
      -> IMPERATIVE_FEATURE_EVIDENCE
  }

  PROCESS PROCEDURAL_REASONING {
    IMPERATIVE_PROGRAM
      -> PROCEDURE_OR_FUNCTION_DECOMPOSITION

    PROCEDURE_OR_FUNCTION_DECOMPOSITION
      -> CALL_RELATIONS

    CALL_RELATIONS
      -> PROCEDURAL_ABSTRACTION

    PROCEDURAL_ABSTRACTION
      -> PROCEDURAL_FEATURE_EVIDENCE
  }

  PROCESS OBJECT_ORIENTED_REASONING {
    PROGRAM
      -> CLASS_AND_OBJECT_MODEL

    CLASS_AND_OBJECT_MODEL
      -> ENCAPSULATION
      -> INHERITANCE_IF_PRESENT
      -> POLYMORPHISM_IF_PRESENT
      -> COMPOSITION

    OBJECT_MODEL_FEATURES
      -> OBJECT_ORIENTED_FEATURE_EVIDENCE
  }

  PROCESS FUNCTIONAL_REASONING {
    PROGRAM
      -> FUNCTION_AND_EXPRESSION_MODEL

    FUNCTION_AND_EXPRESSION_MODEL
      -> HIGHER_ORDER_FUNCTIONS_IF_PRESENT
      -> IMMUTABILITY_IF_PRESENT
      -> PURE_FUNCTIONS_IF_PRESENT
      -> RECURSION_OR_COMPOSITION

    FUNCTIONAL_FEATURES
      -> FUNCTIONAL_FEATURE_EVIDENCE
  }

  PROCESS LOGIC_AND_DECLARATIVE_REASONING {
    PROGRAM
      -> DECLARATIONS_RULES_FACTS_OR_CONSTRAINTS

    RULES_FACTS_OR_CONSTRAINTS
      -> DESIRED_RELATIONS_OR_RESULTS

    RUNTIME_OR_SOLVER
      -> EXECUTION_OR_SEARCH_STRATEGY

    DECLARATIVE_STRUCTURE
      -> DECLARATIVE_OR_LOGIC_FEATURE_EVIDENCE
  }

  PROCESS EVENT_REACTIVE_REASONING {
    PROGRAM
      -> EVENT_OR_STREAM_MODEL

    EVENT_OR_STREAM_MODEL
      -> HANDLERS_TRANSFORMATIONS_OR_REACTIONS

    INPUT_EVENT_OR_STREAM_UPDATE
      -> REACTIVE_COMPUTATION

    REACTIVE_FEATURES
      -> EVENT_DRIVEN_OR_REACTIVE_FEATURE_EVIDENCE
  }

  PROCESS CONCURRENT_PARALLEL_REASONING {
    PROGRAM
      -> MULTIPLE_EXECUTION_ENTITIES

    MULTIPLE_EXECUTION_ENTITIES
      -> CONCURRENT_EXECUTION_MODEL

    OVERLAPPING_PHYSICAL_EXECUTION
      -> PARALLEL_EXECUTION_MODEL

    COMMUNICATION_AND_SYNCHRONISATION
      -> CONCURRENT_OR_PARALLEL_FEATURE_EVIDENCE
  }

  PROCESS MULTI_PARADIGM_REASONING {
    PROGRAMMING_LANGUAGE
      -> FEATURE_SET

    FEATURE_SET
      -> PARADIGM_FEATURE_GROUPS

    PARADIGM_FEATURE_GROUPS
      -> SUPPORTED_PARADIGM_SET

    SUPPORTED_PARADIGM_SET
      -> MULTI_PARADIGM_LANGUAGE_MODEL
  }

  RULES {
    IF LANGUAGE_SUPPORTS_FEATURE_ASSOCIATED_WITH_PARADIGM
    THEN DO_NOT_AUTOMATICALLY CLASSIFY LANGUAGE_AS_EXCLUSIVELY_THAT_PARADIGM

    IF LANGUAGE_SUPPORTS_MULTIPLE_PARADIGMS
    THEN PRESERVE MULTI_PARADIGM_CONTEXT

    IF PROGRAM_USES_IMPERATIVE_FEATURES
    THEN DO_NOT_ASSERT LANGUAGE_IS_ONLY_IMPERATIVE

    IF PURE_FUNCTIONS_ARE_PRESENT
    THEN DO_NOT_ASSERT COMPLETE_PROGRAM_IS_PURELY_FUNCTIONAL

    IF CLASSES_AND_OBJECTS_ARE_PRESENT
    THEN DO_NOT_ASSERT ALL_CODE_FOLLOWS_OBJECT_ORIENTED_DESIGN

    IF TASKS_ARE_CONCURRENT
    THEN DO_NOT_AUTOMATICALLY ASSERT PHYSICAL_PARALLELISM

    IF PARADIGM_RELATION_IS_HISTORICAL_OR_INFLUENTIAL
    THEN DISTINGUISH FROM FORMAL_SUBTYPE_RELATION

    IF SEMANTIC_IDENTIFIERS_DIFFER
    AND PARADIGM_REFERENT_IS_SAME
    THEN APPLY SEMANTIC_EQUIVALENCE
  }

  CONFIDENCE {
    CONFIDENCE_SCORE =
      WEIGHT(
        PARADIGM_DEFINITION_CERTAINTY,
        LANGUAGE_VERSION_CERTAINTY,
        FEATURE_EVIDENCE_COMPLETENESS,
        COMPUTATIONAL_MODEL_CERTAINTY,
        STATE_MODEL_CERTAINTY,
        EXECUTION_MODEL_CERTAINTY,
        SOURCE_EVIDENCE_QUALITY,
        PROVENANCE_COMPLETENESS
      )

    LEVELS {
      HIGH
      MODERATE
      LOW
      INSUFFICIENT
    }

    IF LANGUAGE_VERSION_OR_FEATURE_SET_IS_UNKNOWN
    THEN REDUCE_PARADIGM_SUPPORT_CONFIDENCE

    IF CLASSIFICATION_DEPENDS_ON_INFORMAL_USAGE
    THEN PRESERVE_CLASSIFICATION_UNCERTAINTY

    IF AUTHORITATIVE_LANGUAGE_SPECIFICATION_CONFIRMS_FEATURE_SET
    THEN INCREASE_CONFIDENCE_SCORE
  }

  SEMANTIC_EQUIVALENCE {
    EQUIVALENCE_KEY =
      NORMALISE(
        ENTITY_TYPE,
        PARADIGM_IDENTIFIER,
        PROGRAMMING_LANGUAGE,
        LANGUAGE_VERSION,
        FEATURE_SET,
        COMPUTATIONAL_MODEL
      )

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

    ELSE PRESERVE_DISTINCT_ENTITIES
  }

  REASONING_CONSTRAINTS {
    PROGRAMMING_PARADIGM != PROGRAMMING_LANGUAGE
    LANGUAGE_SUPPORTS_PARADIGM != LANGUAGE_EXCLUSIVELY_BELONGS_TO_PARADIGM
    LANGUAGE_FEATURE != COMPLETE_PARADIGM
    IMPERATIVE_PROGRAMMING != PROCEDURAL_PROGRAMMING
    OBJECT_ORIENTED_PROGRAMMING != CLASS_USAGE_ALONE
    FUNCTIONAL_PROGRAMMING != FUNCTION_USAGE_ALONE
    DECLARATIVE_PROGRAMMING != LOGIC_PROGRAMMING
    CONCURRENCY != PARALLELISM
    EVENT_DRIVEN_PROGRAMMING != REACTIVE_PROGRAMMING
    DATAFLOW_PROGRAMMING != GENERAL_DATA_PROCESSING
    MULTI_PARADIGM_SUPPORT_IS_COMMON
    PARADIGM_BOUNDARIES_MAY_OVERLAP
    PARADIGM_CLASSIFICATION_MAY_DEPEND_ON_DEFINITION_AND_CONTEXT
    LANGUAGE_VERSION_AFFECTS_AVAILABLE_PARADIGM_FEATURES
    IMPLEMENTATION_DETAILS_MAY_AFFECT_EXECUTION_WITHOUT_CHANGING_LANGUAGE_PARADIGM
    PROVENANCE_MUST_BE_PRESERVED
    UNCERTAINTY_MUST_NOT_BE_DISCARDED
  }

  VALIDATION {
    CHECK_ENTITY_TYPES
    CHECK_RELATION_DOMAINS_AND_RANGES
    CHECK_PARADIGM_IDENTIFIER
    CHECK_LANGUAGE_AND_VERSION
    CHECK_FEATURE_SET
    CHECK_COMPUTATIONAL_MODEL
    CHECK_STATE_MODEL
    CHECK_CONTROL_MODEL
    CHECK_ABSTRACTION_MODEL
    CHECK_EXECUTION_MODEL
    CHECK_IMPERATIVE_RELATIONS
    CHECK_PROCEDURAL_RELATIONS
    CHECK_OBJECT_ORIENTED_RELATIONS
    CHECK_FUNCTIONAL_RELATIONS
    CHECK_DECLARATIVE_AND_LOGIC_RELATIONS
    CHECK_EVENT_AND_REACTIVE_RELATIONS
    CHECK_CONCURRENT_AND_PARALLEL_RELATIONS
    CHECK_MULTI_PARADIGM_RELATIONS
    CHECK_HISTORICAL_RELATIONS
    CHECK_PROVENANCE
    CHECK_CONFIDENCE
    CHECK_SEMANTIC_CONSISTENCY
  }

  OUTPUTS {
    NORMALISED_PROGRAMMING_PARADIGM_ENTITIES
    LANGUAGE_PARADIGM_RELATIONS
    PARADIGM_FEATURE_RELATIONS
    COMPUTATIONAL_MODEL_RELATIONS
    STATE_MODEL_RELATIONS
    CONTROL_MODEL_RELATIONS
    ABSTRACTION_MODEL_RELATIONS
    EXECUTION_MODEL_RELATIONS
    IMPERATIVE_RELATIONS
    PROCEDURAL_RELATIONS
    OBJECT_ORIENTED_RELATIONS
    FUNCTIONAL_RELATIONS
    DECLARATIVE_AND_LOGIC_RELATIONS
    EVENT_AND_REACTIVE_RELATIONS
    CONCURRENT_AND_PARALLEL_RELATIONS
    MULTI_PARADIGM_RELATIONS
    HISTORICAL_AND_INFLUENCE_RELATIONS
    CONFIDENCE_SCORES
    EVIDENCE_LINKS
    PROVENANCE_RECORDS
    EXPLANATION_PATHS
  }

  UPDATE_MODEL {
    ON LANGUAGE_VERSION_OR_FEATURE_CHANGE {
      NORMALISE
      RESOLVE_LANGUAGE_AND_PARADIGM_IDENTITIES
      UPDATE_FEATURE_SET
      UPDATE_COMPUTATIONAL_MODEL_RELATIONS
      UPDATE_STATE_AND_CONTROL_MODELS
      REASSESS_SUPPORTED_PARADIGMS
      UPDATE_MULTI_PARADIGM_RELATIONS
      UPDATE_CONFIDENCE
      PRESERVE_VERSION_HISTORY
    }

    ON NEW_SOURCE_OR_SPECIFICATION_EVIDENCE {
      LINK_EVIDENCE
      UPDATE_FEATURE_EVIDENCE
      REASSESS_PARADIGM_RELATIONS
      UPDATE_HISTORICAL_OR_INFLUENCE_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_PARADIGM
      BY_LANGUAGE
      BY_LANGUAGE_VERSION
      BY_FEATURE
      BY_COMPUTATIONAL_MODEL
      BY_STATE_MODEL
      BY_CONTROL_MODEL
      BY_EXECUTION_MODEL
      BY_IMPERATIVE
      BY_OBJECT_ORIENTED
      BY_FUNCTIONAL
      BY_DECLARATIVE
      BY_CONCURRENT
      BY_PARALLEL
      BY_CONFIDENCE
    }

    REASON {
      APPLY_RELATIONSHIPS
      APPLY_RULES
      ANALYSE_PARADIGM_FEATURES
      ANALYSE_IMPERATIVE_MODEL
      ANALYSE_PROCEDURAL_MODEL
      ANALYSE_OBJECT_ORIENTED_MODEL
      ANALYSE_FUNCTIONAL_MODEL
      ANALYSE_DECLARATIVE_AND_LOGIC_MODELS
      ANALYSE_EVENT_AND_REACTIVE_MODELS
      ANALYSE_CONCURRENT_AND_PARALLEL_MODELS
      ANALYSE_MULTI_PARADIGM_SUPPORT
      CHECK_SEMANTIC_EQUIVALENCE
      PRESERVE_UNCERTAINTY
      TRACE_EVIDENCE
      TRACE_PROVENANCE
      GENERATE_EXPLANATION_PATH
    }

    RESPONSE_POLICY {
      DISTINGUISH_PARADIGM_FROM_LANGUAGE
      DISTINGUISH_FEATURE_SUPPORT_FROM_EXCLUSIVE_CLASSIFICATION
      PRESERVE_LANGUAGE_VERSION_FEATURE_COMPUTATIONAL_MODEL_AND_CONTEXT
      PRESERVE_OVERLAP_BETWEEN_PARADIGMS
      DISTINGUISH_CONCURRENCY_FROM_PARALLELISM
      RETURN_CONFIDENCE_WHEN_AVAILABLE
      RETURN_PROVENANCE_WHEN_AVAILABLE
      AVOID_UNSUPPORTED_PROGRAMMING_PARADIGM_INFERENCE
    }
  }

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

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