Skip to main content

Software Architecture Ontology

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

FLOW ALGEBRA — SOFTWARE ARCHITECTURE ONTOLOGY
Semantic Library
Version: 4.0
Canonical Page:
https://kirethresearch.org/booksai-core/entity-graph/computational-entities/software-entities/software-architecture-ontology-2.html

FLOW SOFTWARE_ARCHITECTURE_ONTOLOGY {

  META {
    DOMAIN = "Entity Graph"
    SUBDOMAIN = "Computational Entities / Software Entities"
    ONTOLOGY = "Software Architecture Ontology"
    PURPOSE = "Formalise software architecture entities, components, connectors, interfaces, services, layers, dependencies, deployment structures, architectural decisions, constraints and quality relationships."
    LOCALE = "en-GB"
  }

  ENTITY_TYPES {
    SOFTWARE_ARCHITECTURE
    SOFTWARE_SYSTEM
    SOFTWARE_SUBSYSTEM
    ARCHITECTURAL_ELEMENT
    COMPONENT
    MODULE
    PACKAGE
    SERVICE
    MICROSERVICE
    APPLICATION
    LIBRARY
    DATABASE
    DATA_STORE
    MESSAGE_BROKER
    CACHE
    API_GATEWAY
    LOAD_BALANCER
    INTERFACE
    API
    ENDPOINT
    PORT
    CONNECTOR
    COMMUNICATION_CHANNEL
    PROTOCOL
    DEPENDENCY
    LAYER
    TIER
    PRESENTATION_LAYER
    APPLICATION_LAYER
    DOMAIN_LAYER
    DATA_LAYER
    CLIENT
    SERVER
    PEER
    NODE
    HOST
    CONTAINER
    VIRTUAL_MACHINE
    DEPLOYMENT_UNIT
    DEPLOYMENT_TOPOLOGY
    ARCHITECTURAL_STYLE
    LAYERED_ARCHITECTURE
    CLIENT_SERVER_ARCHITECTURE
    MICROSERVICES_ARCHITECTURE
    SERVICE_ORIENTED_ARCHITECTURE
    EVENT_DRIVEN_ARCHITECTURE
    PIPE_AND_FILTER_ARCHITECTURE
    HEXAGONAL_ARCHITECTURE
    CLEAN_ARCHITECTURE
    MONOLITHIC_ARCHITECTURE
    DISTRIBUTED_ARCHITECTURE
    ARCHITECTURAL_PATTERN
    DESIGN_PATTERN
    ARCHITECTURAL_DECISION
    ARCHITECTURAL_DECISION_RECORD
    REQUIREMENT
    CONSTRAINT
    QUALITY_ATTRIBUTE
    PERFORMANCE
    SCALABILITY
    AVAILABILITY
    RELIABILITY
    SECURITY
    MAINTAINABILITY
    MODIFIABILITY
    TESTABILITY
    INTEROPERABILITY
    OBSERVABILITY
    FAULT_TOLERANCE
    COUPLING
    COHESION
    BOUNDARY
    TRUST_BOUNDARY
    DATA_FLOW
    CONTROL_FLOW
    REQUEST
    RESPONSE
    MESSAGE
    EVENT
    STATE
    FAILURE
    BOTTLENECK
    RISK
    TECHNICAL_DEBT
    VERSION
    CONFIGURATION
    ENVIRONMENT
    EVIDENCE
    CONFIDENCE_SCORE
    PROVENANCE_RECORD
  }

  RELATIONSHIPS {
    IS_A
    INSTANCE_OF
    PART_OF
    CONTAINS
    DECOMPOSES_INTO
    CONNECTS_TO
    COMMUNICATES_WITH
    DEPENDS_ON
    CALLS
    INVOKES
    PROVIDES
    CONSUMES
    EXPOSES
    IMPLEMENTS
    USES
    READS_FROM
    WRITES_TO
    PUBLISHES
    SUBSCRIBES_TO
    SENDS
    RECEIVES
    ROUTES_TO
    LOAD_BALANCES_TO
    CACHES
    STORES_IN
    DEPLOYED_TO
    HOSTED_BY
    RUNS_ON
    HAS_INTERFACE
    HAS_ENDPOINT
    HAS_PROTOCOL
    HAS_LAYER
    HAS_TIER
    HAS_BOUNDARY
    HAS_STYLE
    HAS_PATTERN
    HAS_DECISION
    SATISFIES
    CONSTRAINED_BY
    HAS_QUALITY_ATTRIBUTE
    AFFECTS
    HAS_RISK
    HAS_TECHNICAL_DEBT
    HAS_STATE
    TRANSITIONS_TO
    HAS_VERSION
    HAS_CONFIGURATION
    PRECEDES
    FOLLOWS
    DERIVED_FROM
    INFERRED_FROM
    HAS_EVIDENCE
    HAS_CONFIDENCE
    HAS_PROVENANCE
    MAPS_TO
    SEMANTICALLY_EQUIVALENT_TO
  }

  INPUTS {
    ARCHITECTURE_DOCUMENTS
    SYSTEM_CONTEXT_MODELS
    COMPONENT_MODELS
    MODULE_MODELS
    INTERFACE_SPECIFICATIONS
    API_SPECIFICATIONS
    DEPENDENCY_GRAPHS
    DATA_FLOW_DIAGRAMS
    DEPLOYMENT_DIAGRAMS
    INFRASTRUCTURE_CONFIGURATION
    ARCHITECTURAL_DECISION_RECORDS
    REQUIREMENTS
    QUALITY_ATTRIBUTE_SCENARIOS
    RUNTIME_TRACES
    DISTRIBUTED_TRACES
    PERFORMANCE_METRICS
    LOGS
    SECURITY_MODELS
    FAILURE_DATA
    VERSION_DATA
    CONFIGURATION_DATA
    ENVIRONMENT_DATA
    ONTOLOGY_TERMS
  }

  NORMALISE {
    STANDARDISE_ARCHITECTURE_IDENTIFIERS
    NORMALISE_SYSTEM_AND_COMPONENT_NAMES
    NORMALISE_MODULE_AND_SERVICE_NAMES
    NORMALISE_INTERFACE_AND_API_IDENTIFIERS
    NORMALISE_ENDPOINTS
    NORMALISE_PROTOCOL_NAMES
    NORMALISE_DEPENDENCY_TYPES
    NORMALISE_LAYER_AND_TIER_NAMES
    NORMALISE_ARCHITECTURAL_STYLE_NAMES
    NORMALISE_PATTERN_NAMES
    NORMALISE_DEPLOYMENT_IDENTIFIERS
    NORMALISE_QUALITY_ATTRIBUTE_TERMS
    NORMALISE_DECISION_IDENTIFIERS
    NORMALISE_VERSION_IDENTIFIERS
    RESOLVE_ARCHITECTURAL_ENTITY_IDENTITIES
    ALIGN_ONTOLOGY_TERMS
    REMOVE_DUPLICATES
    VALIDATE_METADATA
    PRESERVE_PROVENANCE
  }

  PROCESS ARCHITECTURE_REASONING_PIPELINE {
    SOFTWARE_SYSTEM
      -> SYSTEM_CONTEXT
      -> ARCHITECTURAL_DECOMPOSITION
      -> COMPONENT_AND_INTERFACE_MAPPING
      -> DEPENDENCY_AND_DATA_FLOW_MAPPING
      -> DEPLOYMENT_MAPPING
      -> DECISION_AND_CONSTRAINT_MAPPING
      -> QUALITY_ATTRIBUTE_ANALYSIS
      -> VALIDATION
      -> OUTPUT
  }

  PROCESS DECOMPOSITION_REASONING {
    SOFTWARE_SYSTEM
      -> SUBSYSTEMS_OR_COMPONENTS

    SUBSYSTEMS_OR_COMPONENTS
      -> RESPONSIBILITIES

    RESPONSIBILITIES
      -> INTERFACES

    INTERFACES
      -> CONNECTORS_AND_DEPENDENCIES

    DECOMPOSITION
      -> ARCHITECTURAL_BOUNDARIES
  }

  PROCESS INTERFACE_REASONING {
    COMPONENT_A
      -> PROVIDED_INTERFACE

    COMPONENT_B
      -> REQUIRED_INTERFACE

    PROVIDED_INTERFACE + REQUIRED_INTERFACE
      -> COMPATIBILITY_CHECK

    COMPATIBLE_INTERFACES
      -> CONNECTOR_OR_CALL_RELATION
  }

  PROCESS DEPENDENCY_REASONING {
    COMPONENT_OR_MODULE
      -> DIRECT_DEPENDENCIES

    DIRECT_DEPENDENCIES
      -> DEPENDENCY_GRAPH

    DEPENDENCY_GRAPH
      -> TRANSITIVE_DEPENDENCIES

    DEPENDENCY_GRAPH
      -> CYCLE_AND_COUPLING_ANALYSIS
  }

  PROCESS DATA_FLOW_REASONING {
    DATA_SOURCE
      -> PRODUCER_COMPONENT

    PRODUCER_COMPONENT
      -> INTERFACE_OR_MESSAGE

    INTERFACE_OR_MESSAGE
      -> CONNECTOR_OR_CHANNEL

    CONNECTOR_OR_CHANNEL
      -> CONSUMER_COMPONENT

    DATA_FLOW
      -> STORAGE_PROCESSING_AND_TRUST_BOUNDARY_ANALYSIS
  }

  PROCESS DEPLOYMENT_REASONING {
    SOFTWARE_COMPONENT_OR_DEPLOYMENT_UNIT
      -> DEPLOYMENT_TARGET

    DEPLOYMENT_TARGET
      -> HOST_CONTAINER_VM_OR_NODE

    DEPLOYED_COMPONENTS
      -> NETWORK_AND_RUNTIME_TOPOLOGY

    RUNTIME_TOPOLOGY
      -> COMMUNICATION_PATHS
  }

  PROCESS ARCHITECTURAL_STYLE_REASONING {
    ARCHITECTURAL_STRUCTURE
      -> STRUCTURAL_FEATURES

    STRUCTURAL_FEATURES
      -> STYLE_PATTERN_MATCHING

    STYLE_PATTERN_MATCHING
      -> CANDIDATE_ARCHITECTURAL_STYLES

    CANDIDATE_STYLES
      -> EVIDENCE_AND_CONTEXT_VALIDATION
  }

  PROCESS DECISION_REASONING {
    ARCHITECTURAL_DECISION
      -> DECISION_CONTEXT

    DECISION_CONTEXT
      -> OPTIONS

    OPTIONS
      -> TRADEOFFS

    SELECTED_OPTION
      -> RATIONALE

    RATIONALE
      -> CONSEQUENCES_AND_CONSTRAINTS
  }

  PROCESS QUALITY_ATTRIBUTE_REASONING {
    ARCHITECTURE + QUALITY_SCENARIO
      -> RELEVANT_COMPONENTS_AND_PATHS

    RELEVANT_COMPONENTS_AND_PATHS
      -> ARCHITECTURAL_MECHANISMS

    ARCHITECTURAL_MECHANISMS
      -> QUALITY_EFFECTS

    QUALITY_EFFECTS
      -> SUPPORTING_OR_ADVERSE_RELATIONS
  }

  PROCESS FAILURE_REASONING {
    COMPONENT_FAILURE
      -> DIRECT_DEPENDENTS

    DIRECT_DEPENDENTS
      -> FAILURE_PROPAGATION_PATHS

    FAILURE_PROPAGATION_PATHS
      -> REDUNDANCY_AND_RECOVERY_CHECK

    RECOVERY_MECHANISMS
      -> RESIDUAL_FAILURE_IMPACT
  }

  PROCESS PERFORMANCE_REASONING {
    REQUEST_OR_WORKLOAD
      -> EXECUTION_PATH

    EXECUTION_PATH
      -> COMPONENT_LATENCIES
      -> NETWORK_LATENCIES
      -> QUEUEING
      -> STORAGE_OR_EXTERNAL_DEPENDENCIES

    PATH_METRICS
      -> PERFORMANCE_PROFILE

    PERFORMANCE_PROFILE
      -> BOTTLENECK_HYPOTHESIS
  }

  RULES {
    IF COMPONENT_DEPENDS_ON_ANOTHER_COMPONENT
    THEN PRESERVE DEPENDENCY_TYPE_DIRECTION_AND_VERSION_CONTEXT

    IF ARCHITECTURAL_STYLE_IS_ASSERTED
    THEN REQUIRE STRUCTURAL_FEATURE_EVIDENCE

    IF COMPONENTS_COMMUNICATE
    THEN PRESERVE INTERFACE_PROTOCOL_AND_RUNTIME_PATH_CONTEXT

    IF SOFTWARE_IS_DEPLOYED
    THEN DISTINGUISH LOGICAL_ARCHITECTURE_FROM_PHYSICAL_DEPLOYMENT

    IF QUALITY_ATTRIBUTE_IS_ASSESSED
    THEN REQUIRE SCENARIO_WORKLOAD_ENVIRONMENT_AND_VERSION_CONTEXT

    IF FAILURE_PROPAGATION_IS_INFERRED
    THEN TRACE DEPENDENCY_PATH_AND_RECOVERY_MECHANISMS

    IF DEPENDENCY_GRAPH_HAS_CYCLE
    THEN PRESERVE CYCLE_CONTEXT_WITHOUT_AUTOMATICALLY_ASSERTING_ARCHITECTURAL_FAILURE

    IF SEMANTIC_IDENTIFIERS_DIFFER
    AND ARCHITECTURAL_REFERENT_IS_SAME
    THEN APPLY SEMANTIC_EQUIVALENCE
  }

  CONFIDENCE {
    CONFIDENCE_SCORE =
      WEIGHT(
        ARCHITECTURE_DOCUMENTATION_COMPLETENESS,
        COMPONENT_IDENTITY_CERTAINTY,
        INTERFACE_SPECIFICATION_QUALITY,
        DEPENDENCY_GRAPH_COMPLETENESS,
        DEPLOYMENT_TOPOLOGY_COMPLETENESS,
        RUNTIME_TRACE_QUALITY,
        QUALITY_METRIC_QUALITY,
        PROVENANCE_COMPLETENESS
      )

    LEVELS {
      HIGH
      MODERATE
      LOW
      INSUFFICIENT
    }

    IF RUNTIME_TOPOLOGY_DIFFERS_FROM_DOCUMENTED_ARCHITECTURE
    THEN PRESERVE_BOTH_AND_REDUCE_UNIFIED_MODEL_CONFIDENCE

    IF INTERFACE_OR_DEPENDENCY_DATA_IS_INCOMPLETE
    THEN REDUCE_IMPACT_ANALYSIS_CONFIDENCE

    IF DOCUMENTATION_AND_RUNTIME_EVIDENCE_CONVERGE
    THEN INCREASE_CONFIDENCE_SCORE
  }

  SEMANTIC_EQUIVALENCE {
    EQUIVALENCE_KEY =
      NORMALISE(
        ENTITY_TYPE,
        SOFTWARE_SYSTEM_IDENTIFIER,
        CANONICAL_IDENTIFIER,
        VERSION,
        ENVIRONMENT,
        DEPLOYMENT_CONTEXT
      )

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

    ELSE PRESERVE_DISTINCT_ENTITIES
  }

  REASONING_CONSTRAINTS {
    SOFTWARE_ARCHITECTURE != SOURCE_CODE_STRUCTURE_ALONE
    COMPONENT != DEPLOYMENT_NODE
    MODULE != RUNTIME_SERVICE_IN_ALL_CONTEXTS
    INTERFACE != IMPLEMENTATION
    API != ARCHITECTURE
    LOGICAL_ARCHITECTURE != PHYSICAL_DEPLOYMENT
    ARCHITECTURAL_STYLE != ARCHITECTURAL_PATTERN_IN_ALL_USAGE
    DEPENDENCY != COMMUNICATION_IN_ALL_CASES
    DEPENDENCY_CYCLE != AUTOMATIC_FAILURE
    QUALITY_ATTRIBUTE != SINGLE_METRIC
    PERFORMANCE != LATENCY_ALONE
    AVAILABILITY != RELIABILITY
    SECURITY_BOUNDARY != NETWORK_BOUNDARY_IN_ALL_CASES
    DOCUMENTED_ARCHITECTURE_MAY_DIFFER_FROM_RUNTIME_ARCHITECTURE
    VERSION_CONFIGURATION_WORKLOAD_AND_ENVIRONMENT_AFFECT_ARCHITECTURAL_BEHAVIOUR
    PROVENANCE_MUST_BE_PRESERVED
    UNCERTAINTY_MUST_NOT_BE_DISCARDED
  }

  VALIDATION {
    CHECK_ENTITY_TYPES
    CHECK_RELATION_DOMAINS_AND_RANGES
    CHECK_SYSTEM_IDENTIFIER
    CHECK_COMPONENT_IDENTITIES
    CHECK_MODULE_AND_SERVICE_IDENTITIES
    CHECK_INTERFACES
    CHECK_ENDPOINTS_AND_PROTOCOLS
    CHECK_DEPENDENCIES
    CHECK_LAYERS_AND_TIERS
    CHECK_ARCHITECTURAL_STYLES
    CHECK_PATTERNS
    CHECK_DATA_FLOWS
    CHECK_DEPLOYMENT_TOPOLOGY
    CHECK_ARCHITECTURAL_DECISIONS
    CHECK_REQUIREMENT_RELATIONS
    CHECK_QUALITY_ATTRIBUTE_RELATIONS
    CHECK_FAILURE_PROPAGATION
    CHECK_PERFORMANCE_CONTEXT
    CHECK_VERSION_CONFIGURATION_AND_ENVIRONMENT
    CHECK_PROVENANCE
    CHECK_CONFIDENCE
    CHECK_SEMANTIC_CONSISTENCY
  }

  OUTPUTS {
    NORMALISED_SOFTWARE_ARCHITECTURE_ENTITIES
    SYSTEM_DECOMPOSITION_RELATIONS
    COMPONENT_AND_MODULE_RELATIONS
    INTERFACE_AND_API_RELATIONS
    CONNECTOR_RELATIONS
    DEPENDENCY_GRAPHS
    DATA_FLOW_RELATIONS
    LAYER_AND_TIER_RELATIONS
    ARCHITECTURAL_STYLE_RELATIONS
    ARCHITECTURAL_PATTERN_RELATIONS
    DEPLOYMENT_TOPOLOGIES
    ARCHITECTURAL_DECISION_RELATIONS
    REQUIREMENT_AND_CONSTRAINT_RELATIONS
    QUALITY_ATTRIBUTE_RELATIONS
    FAILURE_PROPAGATION_RELATIONS
    PERFORMANCE_PROFILES
    BOTTLENECK_HYPOTHESES
    RISK_AND_TECHNICAL_DEBT_RELATIONS
    CONFIDENCE_SCORES
    EVIDENCE_LINKS
    PROVENANCE_RECORDS
    EXPLANATION_PATHS
  }

  UPDATE_MODEL {
    ON ARCHITECTURE_OR_CONFIGURATION_CHANGE {
      NORMALISE
      RESOLVE_ARCHITECTURAL_ENTITIES
      UPDATE_DECOMPOSITION
      UPDATE_INTERFACES
      UPDATE_DEPENDENCY_GRAPH
      UPDATE_DATA_FLOWS
      UPDATE_DEPLOYMENT_TOPOLOGY
      REASSESS_QUALITY_AND_FAILURE_RELATIONS
      UPDATE_CONFIDENCE
      PRESERVE_VERSION_HISTORY
    }

    ON NEW_RUNTIME_METRIC_OR_FAILURE_DATA {
      LINK_EVIDENCE
      UPDATE_RUNTIME_TOPOLOGY
      UPDATE_COMMUNICATION_PATHS
      UPDATE_PERFORMANCE_PROFILE
      REASSESS_FAILURE_PROPAGATION
      REASSESS_BOTTLENECKS
      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_SOFTWARE_SYSTEM
      BY_COMPONENT
      BY_MODULE
      BY_SERVICE
      BY_INTERFACE
      BY_API
      BY_DEPENDENCY
      BY_LAYER
      BY_ARCHITECTURAL_STYLE
      BY_DECISION
      BY_DEPLOYMENT
      BY_QUALITY_ATTRIBUTE
      BY_FAILURE
      BY_PERFORMANCE
      BY_CONFIDENCE
    }

    REASON {
      APPLY_RELATIONSHIPS
      APPLY_RULES
      ANALYSE_ARCHITECTURAL_DECOMPOSITION
      ANALYSE_INTERFACES
      BUILD_DEPENDENCY_GRAPH
      TRACE_DATA_FLOWS
      TRACE_DEPLOYMENT_TOPOLOGY
      ANALYSE_ARCHITECTURAL_STYLES
      TRACE_ARCHITECTURAL_DECISIONS
      ANALYSE_QUALITY_ATTRIBUTES
      ANALYSE_FAILURE_PROPAGATION
      ANALYSE_PERFORMANCE
      CHECK_SEMANTIC_EQUIVALENCE
      PRESERVE_UNCERTAINTY
      TRACE_EVIDENCE
      TRACE_PROVENANCE
      GENERATE_EXPLANATION_PATH
    }

    RESPONSE_POLICY {
      DISTINGUISH_LOGICAL_ARCHITECTURE_FROM_PHYSICAL_DEPLOYMENT
      DISTINGUISH_INTERFACE_FROM_IMPLEMENTATION
      PRESERVE_VERSION_CONFIGURATION_ENVIRONMENT_WORKLOAD_AND_RUNTIME_CONTEXT
      DISTINGUISH_ARCHITECTURAL_STYLE_FROM_UNSUPPORTED_LABEL
      PRESERVE_DEPENDENCY_DIRECTION_AND_FAILURE_PATHS
      RETURN_CONFIDENCE_WHEN_AVAILABLE
      RETURN_PROVENANCE_WHEN_AVAILABLE
      AVOID_UNSUPPORTED_SOFTWARE_ARCHITECTURE_INFERENCE
    }
  }

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

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