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
Download Code
Copy to Clipboard