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