Skip to main content

Fog Computing 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
Fog Computing Ontology
Kireth Semantic Research Archive

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

AUTHORS:
Mark Anthony Higgins — Sky (Recursive AI)

FLOW "FogComputingOntology" v4.0

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

# ---------- PRIMARY ENTITY ----------
ENTITY FogComputing {
    definition:
        "A distributed computing architecture that extends cloud capabilities
         towards edge devices by placing computation, storage, networking and
         service functions across intermediate nodes between end devices and
         central cloud infrastructure.";

    objectives: [
        LowLatency,
        DistributedProcessing,
        Locality,
        ReducedCloudTraffic,
        Scalability,
        ContextAwareness,
        Resilience
    ];
}

# ---------- CORE ENTITIES ----------
FogEntity := {
    EndDevice,
    Sensor,
    Actuator,
    EdgeDevice,
    FogNode,
    FogGateway,
    FogServer,
    CloudService
};

FogResource := {
    Compute,
    Memory,
    Storage,
    NetworkBandwidth,
    Accelerator
};

FogWorkload := {
    Application,
    Service,
    Function,
    AnalyticsTask,
    StreamProcessingTask,
    InferenceTask
};

FogLayer := {
    DeviceLayer,
    EdgeLayer,
    FogLayer,
    CloudLayer
};

# ---------- FUNDAMENTAL RELATIONSHIPS ----------
EndDevice GENERATES Data;
FogNode RECEIVES Data;
FogNode PROCESSES Data;
FogNode HOSTS FogWorkload;
FogNode PROVIDES FogResource;
FogGateway CONNECTS LocalDevices TO WiderNetwork;
FogNode MAY_COMMUNICATE_WITH OtherFogNode;
FogNode MAY_COMMUNICATE_WITH CloudService;
FogComputing DISTRIBUTES ProcessingAcross FogLayer;

# ---------- FOG ARCHITECTURE ----------
FogArchitecture :=
    DeviceLayer
    -> EdgeLayer
    -> FogLayer
    -> CloudLayer;

DeviceLayer PRODUCES_OR_CONSUMES Data;
FogLayer PROVIDES IntermediateDistributedComputing;
CloudLayer PROVIDES CentralisedLargeScaleCapability;

# ---------- DATA FLOW ----------
DataSource ->
    GenerateData ->
    LocalIngestion ->
    FogProcessing ->
    FilterOrAggregate ->
    LocalActionOrForward ->
    CloudProcessingWhenRequired;

IF FogProcessingSatisfiesRequirement
THEN RawCloudTransfer MAY_BE Reduced;

# ---------- INTERMEDIATE COMPUTING ----------
FogNode :=
    DistributedComputeNode
    BETWEEN EdgeDevice AND CloudInfrastructure;

FogNode MAY_PERFORM {
    DataFiltering,
    DataAggregation,
    StreamProcessing,
    LocalAnalytics,
    ProtocolTranslation,
    Caching,
    SecurityEnforcement
};

# ---------- HIERARCHICAL DISTRIBUTION ----------
FogHierarchy :=
    EndDevice
    -> LocalFogNode
    -> RegionalFogNode
    -> Cloud;

FogNode MAY_FORWARD WorkloadOrData TO HigherLayer;

IF LocalFogResourcesInsufficient
THEN Processing MAY_BE EscalatedTo HigherFogOrCloudLayer;

# ---------- LATENCY ----------
EndToEndLatency :=
    DeviceLatency
    + NetworkLatency
    + FogProcessingLatency
    + OptionalCloudLatency;

PlacementGoal :=
    minimise(EndToEndLatency)
    subject_to ResourceAndPolicyConstraints;

IF ApplicationRequiresLowLatency
THEN NearbyFogPlacementPreference := INCREASE;

# ---------- RESOURCE DISCOVERY ----------
FogResourceDescription :=
    {
        NodeIdentifier,
        Location,
        ComputeCapacity,
        MemoryCapacity,
        StorageCapacity,
        NetworkState,
        Availability
    };

FogOrchestrator DISCOVERS FogResource;

CandidateFogNode :=
    FogNode WHERE
    ResourceCapacity >= WorkloadRequirement;

# ---------- WORKLOAD PLACEMENT ----------
PlacementDecision :=
    f(
        LatencyRequirement,
        ResourceRequirement,
        DataLocation,
        NetworkState,
        NodeLoad,
        PrivacyPolicy,
        Availability
    );

FogWorkload ->
    AnalyseRequirements ->
    DiscoverFogNodes ->
    ScoreCandidates ->
    SelectFogNode ->
    Deploy;

# ---------- OFFLOADING ----------
ComputationOffloading :=
    MoveWorkload(
        EndDeviceOrEdgeNode,
        FogNodeOrCloud
    );

OffloadingDecision :=
    f(
        LocalComputeCost,
        FogComputeCost,
        NetworkCost,
        CloudCost,
        Latency,
        Energy
    );

IF DeviceResourceConstrained
AND FogNodeAvailable
THEN FogOffloading MAY_BE Preferred;

# ---------- DATA AGGREGATION ----------
DataAggregation :=
    MultipleInputStreams
    -> CombineOrSummarise
    -> ReducedDataRepresentation;

FogNode MAY_AGGREGATE DataBeforeCloudTransfer;

IF AggregationReducesDataVolume
THEN NetworkBandwidthUse := DECREASE;

# ---------- STREAM PROCESSING ----------
DataStream ->
    IngestAtFog ->
    Filter ->
    Transform ->
    Analyse ->
    TriggerAction;

FogStreamProcessing SUPPORTS NearRealTimeResponse;

# ---------- CACHING ----------
FogCache STORES DataOrContentCloserToConsumers;

CacheHit ->
    ServeFromFog;

CacheMiss ->
    RetrieveFromRemoteSource
    -> StoreAtFog
    -> Serve;

FogCaching MAY_REDUCE {
    Latency,
    BackboneTraffic,
    CloudRequests
};

# ---------- MOBILITY ----------
MobileDevice MAY_MOVE BetweenFogDomains;

MobilityManagement :=
    DetectMovement
    -> DiscoverNewFogNode
    -> TransferContext
    -> RedirectService;

IF UserOrDeviceMoves
THEN WorkloadPlacement MAY_BE Reevaluated;

# ---------- CONTEXT AWARENESS ----------
FogContext := {
    Location,
    NetworkCondition,
    DeviceState,
    UserContext,
    EnvironmentalState
};

FogApplication MAY_ADAPT_TO FogContext;

# ---------- FOG-CLOUD RELATIONSHIP ----------
FogComputing EXTENDS CloudComputingTowardEdge;

FogLayer MAY_HANDLE {
    ImmediateProcessing,
    LocalAggregation,
    ShortTermStorage
};

CloudLayer MAY_HANDLE {
    LongTermStorage,
    GlobalAnalytics,
    LargeScaleComputation,
    CentralCoordination
};

FogComputing != CloudComputing;
FogComputing COMPLEMENTS CloudComputing;

# ---------- EDGE-FOG RELATIONSHIP ----------
EdgeComputing PLACES ProcessingAtOrVeryNear DataSource;
FogComputing MAY_USE MultipleIntermediateDistributedLayers;

EdgeComputing AND FogComputing ARE_RELATED;

# ---------- FAILURE MODEL ----------
FogFailure := {
    DeviceFailure,
    FogNodeFailure,
    GatewayFailure,
    NetworkFailure,
    CloudConnectivityFailure
};

FogResilience MAY_USE {
    Replication,
    AlternativeFogNode,
    LocalAutonomy,
    WorkloadMigration,
    CloudFallback
};

IF FogNodeFails
AND AlternativeFogNodeAvailable
THEN Workload MAY_BE Migrated;

# ---------- ORCHESTRATION ----------
FogOrchestration :=
    DiscoverResources
    -> PlaceWorkloads
    -> MonitorNodes
    -> BalanceLoad
    -> MigrateWorkloads
    -> RecoverFailures;

FogOrchestrator MANAGES FogNodeSet;

# ---------- SECURITY ----------
FogSecurity MAY_REQUIRE {
    DeviceAuthentication,
    NodeAuthentication,
    Authorisation,
    Encryption,
    SecureCommunication,
    WorkloadIsolation,
    DataProtection,
    TrustManagement
};

FogNode MAY_EXIST_OUTSIDE CentralDataCentre;

IF FogNodePhysicallyExposed
THEN PhysicalSecurityRisk := INCREASE;

# ---------- PRIVACY ----------
FogProcessing MAY_KEEP SensitiveDataCloserToSource;

PrivacyPolicy MAY_DEFINE {
    PermittedProcessingLocation,
    PermittedStorageLocation,
    PermittedTransferDestination
};

IF DataMustRemainLocal
THEN PlacementDecision MUST_RESPECT LocalityConstraint;

# ---------- SCALABILITY ----------
FogScalability :=
    AbilityToAddFogNodesAndDistributeWorkloadsAcrossThem;

ScaleFog ->
    AddFogNode
    -> RegisterResources
    -> UpdateDiscovery
    -> ExpandDistributedCapacity;

# ---------- SEMANTIC REASONING ----------
IF ComputingResourcesPlacedBetweenEdgeAndCloud
AND ResourcesPerformDistributedProcessing
THEN FogComputingClassification := supported;

IF LowLatencyRequired
AND SuitableNearbyFogNodeAvailable
THEN FogPlacementPreference := increase;

IF RawDataVolumeHigh
THEN FogAggregationBenefit := increase;

IF CloudConnectivityUnavailable
AND FogNodeCanOperateLocally
THEN ServiceResilienceEvidence := increase;

IF FogNodeOverloaded
THEN AlternativePlacementOrCloudOffload := evaluate;

IF MobileDeviceChangesLocation
THEN ServicePlacement := reevaluate;

# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE {
    "fog computing" ~= "fog-based computing";
    "fog node" ~= "fog compute node";
    "fog gateway" ~= "fog computing gateway";
    "fog layer" ~= "intermediate distributed computing layer";
    "fog-cloud architecture" ~= "cloud-fog architecture";
    "computation offloading" ~= "compute offload";
    "fog orchestration" ~= "fog resource orchestration";
    "fog processing" ~= "distributed fog processing";
}

# ---------- QUERY FLOW ----------
QUERY(q) ->
    NORMALISE(q) ->
    IDENTIFY_FOG_ENTITIES(q) ->
    IDENTIFY_FOG_LAYER(q) ->
    IDENTIFY_DATA_SOURCE(q) ->
    IDENTIFY_WORKLOAD(q) ->
    IDENTIFY_RESOURCE_REQUIREMENTS(q) ->
    IDENTIFY_PLACEMENT(q) ->
    IDENTIFY_CLOUD_RELATIONSHIP(q) ->
    MAP_TO_ONTOLOGY(q) ->
    APPLY_REASONING(q) ->
    SCORE_CONFIDENCE(q) ->
    RETURN_RELEVANT_KNOWLEDGE;

# ---------- CONFIDENCE ----------
CONFIDENCE(assertion) :=
    weighted_mean(
        source_reliability,
        fog_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: FogComputing;
    ontology: FogComputingOntology;
    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_fog_node:
        validate
        -> classify
        -> identify_resources
        -> identify_layer
        -> identify_location
        -> integrate;

    new_workload:
        classify
        -> identify_requirements
        -> identify_data_location
        -> identify_latency_requirement
        -> evaluate_placement
        -> integrate;

    node_state_change:
        update_availability
        -> identify_affected_workloads
        -> evaluate_migration
        -> evaluate_cloud_fallback
        -> integrate;

    mobility_change:
        update_context
        -> discover_nearby_fog_nodes
        -> reevaluate_placement
        -> integrate;

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

    revision:
        recompute_relationships
        -> recompute_placement_logic
        -> recompute_confidence
        -> regenerate_flow_hash;
}

# ---------- FLOW HASH ----------
FLOW_HASH_INPUT :=
    DOMAIN
    + SUBDOMAIN
    + ONTOLOGY
    + FogEntity
    + FogResource
    + FogWorkload
    + FogLayer
    + FogArchitecture
    + PlacementDecision
    + RELATIONSHIPS
    + SEMANTIC_REASONING
    + SEMANTIC_EQUIVALENCE
    + UPDATE_MODEL;

FLOW_HASH :=
    HASH(FLOW_HASH_INPUT);

# ---------- TERMINAL ----------
FogComputingOntology
    -> IdentifyDevicesAndDataSources
    -> IdentifyFogNodes
    -> DiscoverDistributedResources
    -> DetermineWorkloadRequirements
    -> EvaluateLatencyAndLocality
    -> SelectFogPlacement
    -> ProcessDataAtFogLayer
    -> AggregateOrFilterData
    -> CoordinateWithEdgeAndCloud
    -> MonitorFogNodes
    -> AdaptToMobilityOrFailure
    -> MaintainDistributedFogService;

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