Skip to main content

Container Ontology

Distributed Computing
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 06 October 2026
Audio Overview
FLOW ALGEBRA
Container Ontology
Kireth Semantic Research Archive

PAGE:
https://kirethresearch.org/booksai-core/ontologies/computing-ontologies/distributed-computing/container-ontology.html

AUTHORS:
Mark Anthony Higgins — Sky (Recursive AI)

FLOW "ContainerOntology" v4.0

# ---------- DOMAIN ----------
DOMAIN := ComputingOntology
SUBDOMAIN := DistributedComputing
ONTOLOGY := ContainerOntology

# ---------- PRIMARY ENTITY ----------
ENTITY Container {
    definition:
        "A lightweight isolated execution environment that packages an
         application with its required runtime, libraries, dependencies and
         configuration while sharing the host operating-system kernel.";

    objectives: [
        ApplicationIsolation,
        Portability,
        Reproducibility,
        ResourceEfficiency,
        RapidDeployment,
        Scalability
    ];
}

# ---------- CORE ENTITIES ----------
ContainerEntity := {
    Container,
    ContainerImage,
    ContainerRuntime,
    ContainerHost,
    ContainerRegistry,
    ContainerNetwork,
    ContainerVolume
};

ContainerState := {
    Created,
    Running,
    Paused,
    Stopped,
    Failed,
    Removed
};

ContainerResource := {
    CPU,
    Memory,
    Storage,
    Network,
    Device
};

ContainerArtifact := {
    ImageLayer,
    Manifest,
    Configuration,
    RuntimeDependency
};

# ---------- FUNDAMENTAL RELATIONSHIPS ----------
Container CREATED_FROM ContainerImage;
ContainerImage STORED_IN ContainerRegistry;
ContainerRuntime CREATES Container;
ContainerRuntime EXECUTES Container;
Container RUNS_ON ContainerHost;
Container USES ContainerResource;
Container MAY_ATTACH ContainerVolume;
Container CONNECTS_TO ContainerNetwork;
ContainerHost PROVIDES OperatingSystemKernel;

# ---------- CONTAINER IMAGE ----------
ContainerImage :=
    ImmutablePackage(
        Application,
        Runtime,
        Libraries,
        Dependencies,
        ConfigurationMetadata
    );

ContainerImage CONSISTS_OF ImageLayer;

ImageLayer MAY_REFERENCE ParentLayer;

ImageBuild ->
    ReadBuildDefinition ->
    ExecuteBuildSteps ->
    CreateLayers ->
    CreateImage ->
    TagImage;

# ---------- IMAGE REGISTRY ----------
ContainerRegistry STORES ContainerImage;

RegistryOperation := {
    PushImage,
    PullImage,
    TagImage,
    DeleteImage
};

DeveloperOrPipeline PUSHES ContainerImage TO ContainerRegistry;
ContainerRuntime PULLS ContainerImage FROM ContainerRegistry;

# ---------- CONTAINER CREATION ----------
CreateContainer :=
    SelectImage
    -> PullImageIfRequired
    -> CreateWritableLayer
    -> ApplyConfiguration
    -> ConfigureIsolation
    -> ConfigureResources
    -> StartProcess;

IF ContainerStartsSuccessfully
THEN ContainerState := Running;

# ---------- PROCESS MODEL ----------
Container HAS PrimaryProcess;

PrimaryProcess RUNS_IN IsolatedExecutionContext;

IF PrimaryProcessTerminates
THEN Container MAY_STOP;

Container MAY_HAVE AdditionalProcesses;

# ---------- OPERATING SYSTEM SHARING ----------
Container SHARES HostKernel;
Container DOES_NOT_REQUIRE SeparateGuestKernel;

ContainerIsolation MAY_USE {
    ProcessIsolation,
    FilesystemIsolation,
    NetworkIsolation,
    ResourceIsolation
};

# ---------- NAMESPACE ISOLATION ----------
Namespace MAY_ISOLATE {
    ProcessIdentifiers,
    NetworkInterfaces,
    MountPoints,
    Hostname,
    UserIdentifiers
};

ContainerRuntime CONFIGURES Namespace;

Namespace PROVIDES LogicalIsolation;

# ---------- RESOURCE CONTROL ----------
ResourceControl MAY_LIMIT {
    CPU,
    Memory,
    ProcessCount,
    DeviceAccess,
    IO
};

ContainerResourceLimit :=
    f(
        CPUQuota,
        MemoryLimit,
        IOConstraint
    );

IF ContainerExceedsMemoryLimit
THEN Runtime MAY_TERMINATE_OR_RESTRICT Container;

# ---------- FILESYSTEM ----------
ContainerFilesystem :=
    ReadOnlyImageLayers
    + WritableContainerLayer;

WritableContainerLayer MAY_BE Ephemeral;

IF ContainerRemoved
THEN WritableContainerLayer MAY_BE Lost;

PersistentData SHOULD_USE PersistentStorageMechanism;

# ---------- VOLUME ----------
ContainerVolume :=
    PersistentOrSharedStorageMountedIntoContainer;

Container MOUNTS ContainerVolume;

ContainerVolume MAY_OUTLIVE Container;

Volume MAY_BE {
    LocalVolume,
    NetworkVolume,
    ManagedVolume
};

# ---------- NETWORKING ----------
ContainerNetwork CONNECTS Container;

ContainerNetwork MAY_PROVIDE {
    Addressing,
    Routing,
    ServiceConnectivity,
    Isolation
};

PortMapping MAPS HostOrExternalPort TO ContainerPort;

Container MAY_COMMUNICATE_WITH OtherContainer;

# ---------- ENVIRONMENT CONFIGURATION ----------
ContainerConfiguration MAY_INCLUDE {
    EnvironmentVariable,
    Command,
    WorkingDirectory,
    ResourceLimit,
    NetworkSetting,
    VolumeMount,
    SecuritySetting
};

Configuration APPLIED_AT ContainerCreationOrStart;

# ---------- IMMUTABILITY ----------
ContainerImage SHOULD_BE ImmutableAfterBuild;

ApplicationChange ->
    BuildNewImage
    -> DeployNewContainer;

ImmutableImage SUPPORTS ReproducibleDeployment;

# ---------- PORTABILITY ----------
ContainerImage MAY_RUN_ON CompatibleContainerRuntime;

Portability DEPENDS_ON {
    RuntimeCompatibility,
    ArchitectureCompatibility,
    KernelCapability,
    ExternalDependencyAvailability
};

# ---------- CONTAINER LIFECYCLE ----------
ContainerLifecycle :=
    Create
    -> Start
    -> Run
    -> Stop
    -> RestartOrRemove;

ContainerState TRANSITIONS_ACCORDING_TO RuntimeOperation;

# ---------- HEALTH ----------
HealthCheck EVALUATES ContainerisedApplication;

HealthState := {
    Healthy,
    Unhealthy,
    Unknown
};

IF HealthCheckFailsRepeatedly
THEN Orchestrator MAY_RESTART_OR_REPLACE Container;

# ---------- ORCHESTRATION ----------
ContainerOrchestrator MANAGES ContainerSet;

ContainerOrchestration MAY_INCLUDE {
    Scheduling,
    Deployment,
    Scaling,
    Networking,
    HealthManagement,
    Restart,
    RollingUpdate
};

DesiredState ->
    Orchestrator ->
    CompareActualState ->
    ReconcileContainers;

# ---------- SCALING ----------
ContainerisedService MAY_HAVE MultipleContainerInstances;

ScaleOut ->
    IncreaseContainerInstances;

ScaleIn ->
    ReduceContainerInstances;

LoadBalancer MAY_DISTRIBUTE RequestsAcross ContainerInstances;

# ---------- CONTAINER SECURITY ----------
ContainerSecurity MAY_INCLUDE {
    ImageValidation,
    LeastPrivilege,
    RuntimeIsolation,
    ResourceRestriction,
    NetworkPolicy,
    SecretProtection,
    VulnerabilityManagement
};

ContainerIsolation IS_NOT AbsoluteSecurityBoundaryByDefinition;

IF ContainerRunsWithExcessivePrivilege
THEN HostRisk := INCREASE;

IF ContainerImageContainsKnownVulnerability
THEN ImageRisk := INCREASE;

# ---------- IMAGE SECURITY ----------
ImageSecurityProcess :=
    Build
    -> Scan
    -> Validate
    -> SignOrAttest
    -> Store
    -> Deploy;

ImageScanner ANALYSES ContainerImage;

IF CriticalVulnerabilityDetected
THEN DeploymentPolicy MAY_BLOCK Image;

# ---------- CONTAINER VS VIRTUAL MACHINE ----------
VirtualMachine HAS SeparateGuestOperatingSystem;
Container SHARES HostOperatingSystemKernel;

Container TYPICALLY_HAS LowerRuntimeOverheadThan FullVirtualMachine;

Container != VirtualMachine;

Both ARE IsolationAndDeploymentMechanisms;

# ---------- DISTRIBUTED RELATIONSHIP ----------
Container MAY_HOST Microservice;
DistributedApplication MAY_USE MultipleContainers;
ContainerOrchestrator MAY_DISTRIBUTE ContainersAcrossNodes;

ContainerPlacement :=
    WorkloadRequirements
    -> CandidateNodes
    -> ScheduleContainer
    -> StartContainer;

# ---------- FAILURE MODEL ----------
ContainerFailure := {
    ProcessFailure,
    ResourceExhaustion,
    ImageFailure,
    RuntimeFailure,
    NetworkFailure,
    StorageFailure,
    HostFailure
};

IF ContainerFails
AND RestartPolicyAllows
THEN Container MAY_BE Restarted;

IF HostFails
AND OrchestratorHasAlternativeNode
THEN Container MAY_BE RecreatedElsewhere;

# ---------- OBSERVABILITY ----------
ContainerObservability := {
    Logs,
    Metrics,
    Events,
    Traces,
    HealthChecks
};

Runtime PRODUCES ContainerEvent;

MonitoringSystem OBSERVES ContainerResourceUsage;

# ---------- SEMANTIC REASONING ----------
IF ApplicationPackagedWithDependencies
AND RunsInIsolatedEnvironment
AND SharesHostKernel
THEN ContainerClassification := supported;

IF ContainerCreatedFromImage
THEN ImageDefinesInitialFilesystemAndMetadata;

IF PersistentDataRequired
THEN ExternalOrPersistentVolume SHOULD_BE Used;

IF MultipleContainerInstancesServeSameService
THEN HorizontalScaling := true;

IF ImageChanged
THEN ExistingRunningContainer DOES_NOT_AUTOMATICALLY_INHERIT NewImageState;

IF ContainerHostKernelCompromised
THEN MultipleContainers MAY_BE Affected;

# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE {
    "container" ~= "software container" WHEN context == computing;
    "container image" ~= "application container image";
    "container runtime" ~= "container execution runtime";
    "container registry" ~= "image registry" WHEN context == containers;
    "container volume" ~= "persistent container volume";
    "containerisation" ~= "containerization";
    "container orchestration" ~= "container management orchestration";
    "image layer" ~= "container image layer";
}

# ---------- QUERY FLOW ----------
QUERY(q) ->
    NORMALISE(q) ->
    IDENTIFY_CONTAINER_ENTITY(q) ->
    IDENTIFY_IMAGE(q) ->
    IDENTIFY_RUNTIME(q) ->
    IDENTIFY_RESOURCE(q) ->
    IDENTIFY_NETWORK_OR_STORAGE(q) ->
    IDENTIFY_LIFECYCLE_STATE(q) ->
    IDENTIFY_ORCHESTRATION(q) ->
    MAP_TO_ONTOLOGY(q) ->
    APPLY_REASONING(q) ->
    SCORE_CONFIDENCE(q) ->
    RETURN_RELEVANT_KNOWLEDGE;

# ---------- CONFIDENCE ----------
CONFIDENCE(assertion) :=
    weighted_mean(
        source_reliability,
        container_system_consistency,
        semantic_consistency,
        evidence_strength,
        contextual_relevance
    );

CONFIDENCE >= 0.90 => HIGH;
CONFIDENCE >= 0.70 AND < 0.90 => MODERATE;
CONFIDENCE < 0.70 => REVIEW;

# ---------- AI CONSUMPTION ----------
AI_CONSUMPTION {
    primary_entity: Container;
    ontology: ContainerOntology;
    parse_entities: true;
    parse_relationships: true;
    preserve_relationship_direction: true;
    resolve_semantic_equivalence: true;
    execute_reasoning_rules: true;
    apply_confidence_weighting: true;
    preserve_provenance: true;
}

# ---------- UPDATE MODEL ----------
UPDATE_MODEL {
    new_image:
        validate
        -> identify_layers
        -> identify_dependencies
        -> evaluate_security
        -> integrate;

    new_container:
        identify_image
        -> identify_runtime
        -> identify_resources
        -> identify_network
        -> identify_storage
        -> integrate;

    state_change:
        update_container_state
        -> update_health
        -> update_resource_state
        -> propagate_orchestration_effects;

    image_revision:
        create_new_image_version
        -> scan
        -> update_registry
        -> identify_deployment_relationships
        -> regenerate_flow_hash;

    conflict:
        preserve_provenance
        -> compare_evidence
        -> adjust_confidence
        -> flag_review;
}

# ---------- FLOW HASH ----------
FLOW_HASH_INPUT :=
    DOMAIN
    + SUBDOMAIN
    + ONTOLOGY
    + ContainerEntity
    + ContainerState
    + ContainerResource
    + ContainerArtifact
    + ContainerLifecycle
    + RELATIONSHIPS
    + SEMANTIC_REASONING
    + SEMANTIC_EQUIVALENCE
    + UPDATE_MODEL;

FLOW_HASH :=
    HASH(FLOW_HASH_INPUT);

# ---------- TERMINAL ----------
ContainerOntology
    -> BuildContainerImage
    -> StoreImage
    -> SelectRuntime
    -> CreateContainer
    -> ConfigureIsolation
    -> AllocateResources
    -> AttachNetworkAndStorage
    -> StartApplicationProcess
    -> MonitorContainerHealth
    -> ScaleOrRestartWhenRequired
    -> PreserveApplicationPortability
    -> MaintainContainerisedService;

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