Skip to main content

IP Address Ontology

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

FLOW ALGEBRA — IP ADDRESS ONTOLOGY
Semantic Library
Version: 4.0
Canonical Page:
https://kirethresearch.org/booksai-core/ontologies/computing-ontologies/networking/ip-address-ontology.html

FLOW IP_ADDRESS_ONTOLOGY {

META {
DOMAIN = "Computing Ontologies"
SUBDOMAIN = "Networking"
ONTOLOGY = "IP Address Ontology"
PURPOSE = "Formalise Internet Protocol addresses, address families, prefixes, subnets, host identifiers, scopes, allocation, assignment, routing, translation, resolution and address-state relationships."
LOCALE = "en-GB"
}

ENTITY_TYPES {
IP_ADDRESS
INTERNET_PROTOCOL_ADDRESS
IPV4_ADDRESS
IPV6_ADDRESS
ADDRESS_FAMILY
IPV4
IPV6
ADDRESS_BITS
NETWORK_PREFIX
PREFIX_LENGTH
SUBNET_MASK
HOST_IDENTIFIER
SUBNET
NETWORK_ADDRESS
BROADCAST_ADDRESS
HOST_ADDRESS
UNICAST_ADDRESS
MULTICAST_ADDRESS
ANYCAST_ADDRESS
LOOPBACK_ADDRESS
LINK_LOCAL_ADDRESS
PRIVATE_ADDRESS
PUBLIC_ADDRESS
UNSPECIFIED_ADDRESS
DOCUMENTATION_ADDRESS
RESERVED_ADDRESS
SPECIAL_USE_ADDRESS
GLOBAL_UNICAST_ADDRESS
UNIQUE_LOCAL_ADDRESS
IPV4_MAPPED_IPV6_ADDRESS
INTERFACE_IDENTIFIER
NETWORK_INTERFACE
HOST
ENDPOINT
ROUTER
GATEWAY
DEFAULT_GATEWAY
NETWORK
NETWORK_SEGMENT
VLAN
ADDRESS_BLOCK
CIDR_BLOCK
ADDRESS_RANGE
ADDRESS_POOL
ADDRESS_ALLOCATION
ADDRESS_ASSIGNMENT
STATIC_ADDRESS
DYNAMIC_ADDRESS
DHCP_LEASE
DHCP
SLAAC
IPAM
REGISTRY
REGIONAL_INTERNET_REGISTRY
AUTONOMOUS_SYSTEM
AS_NUMBER
ROUTE
ROUTING_TABLE
ROUTING_PREFIX
NEXT_HOP
LONGEST_PREFIX_MATCH
FORWARDING
ARP
NEIGHBOUR_DISCOVERY
MAC_ADDRESS
ADDRESS_RESOLUTION
NAT
PAT
CGNAT
TRANSLATED_ADDRESS
ORIGINAL_ADDRESS
SOURCE_ADDRESS
DESTINATION_ADDRESS
SOCKET
PORT_NUMBER
DNS
DOMAIN_NAME
DNS_RECORD
A_RECORD
AAAA_RECORD
REVERSE_DNS
PTR_RECORD
REACHABILITY
PING
ICMP
PACKET
IP_PACKET
IP_HEADER
SOURCE_PREFIX
DESTINATION_PREFIX
TTL
HOP_LIMIT
CONFIGURATION
ADDRESS_STATE
ASSIGNMENT_STATE
EVIDENCE
CONFIDENCE_SCORE
PROVENANCE_RECORD
}

RELATIONSHIPS {
IS_A
INSTANCE_OF
HAS_ADDRESS_FAMILY
HAS_BIT_LENGTH
HAS_PREFIX
HAS_PREFIX_LENGTH
HAS_SUBNET_MASK
HAS_HOST_IDENTIFIER
BELONGS_TO_SUBNET
HAS_NETWORK_ADDRESS
HAS_BROADCAST_ADDRESS
HAS_SCOPE
HAS_ADDRESS_TYPE
ASSIGNED_TO
ASSIGNED_BY
ALLOCATED_TO
ALLOCATED_BY
MEMBER_OF
CONTAINED_IN
CONTAINS_ADDRESS
CONTAINS_PREFIX
HAS_ADDRESS_RANGE
HAS_ADDRESS_POOL
LEASED_BY
CONFIGURED_BY
HAS_INTERFACE
HAS_IP_ADDRESS
HAS_DEFAULT_GATEWAY
ROUTES
HAS_ROUTE
HAS_ROUTING_TABLE
HAS_NEXT_HOP
MATCHES_PREFIX
FORWARDS_TO
RESOLVES_TO
RESOLVED_BY
HAS_MAC_ADDRESS
TRANSLATES_TO
TRANSLATED_FROM
HAS_SOURCE_ADDRESS
HAS_DESTINATION_ADDRESS
USES_ADDRESS
HAS_SOCKET
HAS_PORT
HAS_DOMAIN_NAME
HAS_DNS_RECORD
REVERSE_RESOLVES_TO
ORIGINATED_BY
ANNOUNCED_BY
HAS_REACHABILITY
TESTED_BY
HAS_CONFIGURATION
HAS_STATE
TRANSITIONS_TO
DERIVED_FROM
INFERRED_FROM
HAS_EVIDENCE
HAS_CONFIDENCE
HAS_PROVENANCE
SEMANTICALLY_EQUIVALENT_TO
}

INPUTS {
IP_ADDRESS_DATA
IPV4_ADDRESS_DATA
IPV6_ADDRESS_DATA
PREFIX_DATA
SUBNET_MASK_DATA
CIDR_DATA
INTERFACE_METADATA
HOST_METADATA
NETWORK_METADATA
VLAN_DATA
ROUTING_TABLES
DHCP_DATA
SLAAC_DATA
IPAM_DATA
ADDRESS_ALLOCATION_DATA
REGISTRY_DATA
AUTONOMOUS_SYSTEM_DATA
ARP_DATA
NEIGHBOUR_DISCOVERY_DATA
NAT_AND_PAT_DATA
DNS_DATA
REVERSE_DNS_DATA
PACKET_CAPTURES
ICMP_DATA
REACHABILITY_DATA
CONFIGURATION_DATA
ONTOLOGY_TERMS
}

NORMALISE {
STANDARDISE_IP_ADDRESS_IDENTIFIERS
NORMALISE_IPV4_NOTATION
NORMALISE_IPV6_NOTATION
NORMALISE_IPV6_COMPRESSION
NORMALISE_PREFIX_LENGTHS
NORMALISE_SUBNET_MASKS
NORMALISE_CIDR_BLOCKS
NORMALISE_ADDRESS_RANGES
NORMALISE_ADDRESS_SCOPES
NORMALISE_SPECIAL_USE_CLASSIFICATIONS
NORMALISE_INTERFACE_IDENTIFIERS
NORMALISE_HOST_IDENTIFIERS
NORMALISE_ADDRESS_POOL_IDENTIFIERS
NORMALISE_REGISTRY_IDENTIFIERS
NORMALISE_ROUTING_PREFIXES
NORMALISE_NAT_MAPPINGS
NORMALISE_DNS_RECORDS
RESOLVE_ADDRESS_PREFIX_INTERFACE_AND_HOST_IDENTITIES
ALIGN_ONTOLOGY_TERMS
REMOVE_DUPLICATES
VALIDATE_METADATA
PRESERVE_PROVENANCE
}

PROCESS IP_ADDRESS_REASONING_PIPELINE {
IP_ADDRESS_REFERENCE
-> ADDRESS_IDENTIFICATION
-> ADDRESS_FAMILY_RESOLUTION
-> PREFIX_AND_SUBNET_RESOLUTION
-> ADDRESS_TYPE_AND_SCOPE_CLASSIFICATION
-> INTERFACE_HOST_AND_ASSIGNMENT_MAPPING
-> ROUTING_AND_RESOLUTION_ANALYSIS
-> NAT_DNS_AND_REACHABILITY_CONTEXT
-> VALIDATION
-> OUTPUT
}

PROCESS IPV4_REASONING {
IPV4_ADDRESS
-> 32_BIT_ADDRESS

IPV4_ADDRESS + PREFIX_LENGTH
-> NETWORK_PREFIX + HOST_IDENTIFIER

NETWORK_PREFIX
-> NETWORK_ADDRESS

SUBNET_CONTEXT
-> BROADCAST_ADDRESS_IF_APPLICABLE

HOST_BITS
-> HOST_ADDRESS_SPACE
}

PROCESS IPV6_REASONING {
IPV6_ADDRESS
-> 128_BIT_ADDRESS

IPV6_ADDRESS + PREFIX_LENGTH
-> NETWORK_PREFIX + INTERFACE_IDENTIFIER_CONTEXT

IPV6_TEXT
-> CANONICAL_OR_COMPRESSED_REPRESENTATION

IPV6_SCOPE
-> GLOBAL_LINK_LOCAL_UNIQUE_LOCAL_MULTICAST_OR_SPECIAL_USE
}

PROCESS CIDR_REASONING {
IP_ADDRESS + PREFIX_LENGTH
-> CIDR_BLOCK

CIDR_BLOCK
-> ADDRESS_RANGE

SHORTER_PREFIX
-> LARGER_ADDRESS_BLOCK

LONGER_PREFIX
-> SMALLER_ADDRESS_BLOCK

PREFIX_A + PREFIX_B
-> CONTAINMENT_OR_DISJOINTNESS_ANALYSIS
}

PROCESS SUBNET_REASONING {
NETWORK_PREFIX
-> SUBNET

SUBNET
-> ADDRESS_RANGE

IP_ADDRESS
-> PREFIX_MEMBERSHIP_TEST

MATCHING_PREFIX
-> SUBNET_MEMBERSHIP
}

PROCESS ADDRESS_CLASSIFICATION_REASONING {
IP_ADDRESS
-> ADDRESS_FAMILY

ADDRESS_FAMILY + ADDRESS_VALUE
-> ADDRESS_SCOPE

ADDRESS_SCOPE
-> PUBLIC_PRIVATE_LINK_LOCAL_LOOPBACK_MULTICAST_ANYCAST_OR_SPECIAL_USE_CONTEXT
}

PROCESS ASSIGNMENT_REASONING {
ADDRESS_POOL
-> AVAILABLE_ADDRESS

AVAILABLE_ADDRESS
-> ADDRESS_ASSIGNMENT

STATIC_CONFIGURATION
-> STATIC_ADDRESS

DHCP
-> DYNAMIC_ADDRESS + DHCP_LEASE

IPV6_AUTOCONFIGURATION
-> SLAAC_ASSIGNMENT

ASSIGNMENT
-> NETWORK_INTERFACE
}

PROCESS ROUTING_REASONING {
DESTINATION_IP_ADDRESS
-> ROUTING_TABLE

ROUTING_TABLE
-> MATCHING_PREFIXES

MATCHING_PREFIXES
-> LONGEST_PREFIX_MATCH

SELECTED_ROUTE
-> NEXT_HOP + OUTGOING_INTERFACE
}

PROCESS ADDRESS_RESOLUTION_REASONING {
IPV4_LOCAL_DESTINATION
-> ARP
-> MAC_ADDRESS

IPV6_LOCAL_DESTINATION
-> NEIGHBOUR_DISCOVERY
-> LINK_LAYER_NEIGHBOUR

RESOLVED_ADDRESS
-> LINK_LAYER_DELIVERY_CONTEXT
}

PROCESS NAT_REASONING {
ORIGINAL_ADDRESS
-> NAT_OR_PAT_MAPPING
-> TRANSLATED_ADDRESS

OUTBOUND_PACKET
-> SOURCE_ADDRESS_TRANSLATION

INBOUND_REPLY
-> REVERSE_MAPPING
-> ORIGINAL_DESTINATION

CGNAT
-> SHARED_PUBLIC_ADDRESS_CONTEXT
}

PROCESS DNS_REASONING {
DOMAIN_NAME
-> A_RECORD_OR_AAAA_RECORD
-> IP_ADDRESS

IP_ADDRESS
-> REVERSE_DNS
-> PTR_RECORD
-> DOMAIN_NAME_CANDIDATE
}

PROCESS REACHABILITY_REASONING {
SOURCE_ADDRESS + DESTINATION_ADDRESS
-> ROUTING_AND_PATH_CONTEXT

ICMP_ECHO_REQUEST
-> DESTINATION

ICMP_ECHO_REPLY
-> OBSERVED_REACHABILITY

NO_REPLY
-> INCONCLUSIVE_WITHOUT_ADDITIONAL_CONTEXT
}

RULES {
IF IP_ADDRESS_IS_IDENTIFIED
THEN PRESERVE ADDRESS_FAMILY_PREFIX_INTERFACE_SCOPE_AND_TIME_CONTEXT

IF IPV4_ADDRESS_IS_INTERPRETED
THEN REQUIRE 32_BIT_ADDRESS_SEMANTICS

IF IPV6_ADDRESS_IS_INTERPRETED
THEN REQUIRE 128_BIT_ADDRESS_SEMANTICS

IF SUBNET_MEMBERSHIP_IS_ASSERTED
THEN REQUIRE ADDRESS_AND_PREFIX_CONTEXT

IF PUBLIC_OR_PRIVATE_CLASSIFICATION_IS_ASSERTED
THEN PRESERVE ADDRESS_FAMILY_AND_SPECIAL_USE_RANGE_CONTEXT

IF NAT_TRANSLATION_IS_ASSERTED
THEN PRESERVE ORIGINAL_TRANSLATED_ADDRESS_PORT_AND_MAPPING_CONTEXT

IF ROUTE_MATCH_IS_ASSERTED
THEN PRESERVE DESTINATION_PREFIX_ROUTE_AND_LONGEST_PREFIX_MATCH_CONTEXT

IF SEMANTIC_IDENTIFIERS_DIFFER
AND IP_ADDRESS_REFERENT_IS_SAME
THEN APPLY SEMANTIC_EQUIVALENCE
}

CONFIDENCE {
CONFIDENCE_SCORE =
WEIGHT(
ADDRESS_IDENTITY_CERTAINTY,
ADDRESS_FAMILY_CERTAINTY,
PREFIX_AND_SUBNET_CERTAINTY,
INTERFACE_AND_ASSIGNMENT_EVIDENCE,
ROUTING_EVIDENCE,
RESOLUTION_AND_NAT_EVIDENCE,
DNS_AND_REACHABILITY_EVIDENCE,
PROVENANCE_COMPLETENESS
)

LEVELS {
HIGH
MODERATE
LOW
INSUFFICIENT
}

IF PREFIX_LENGTH_IS_UNKNOWN
THEN REDUCE_SUBNET_AND_NETWORK_CONFIDENCE

IF ADDRESS_ASSIGNMENT_TIME_OR_INTERFACE_IS_UNKNOWN
THEN REDUCE_HOST_ASSOCIATION_CONFIDENCE

IF CONFIGURATION_ROUTING_AND_PACKET_EVIDENCE_CONVERGE
THEN INCREASE_CONFIDENCE_SCORE
}

SEMANTIC_EQUIVALENCE {
EQUIVALENCE_KEY =
NORMALISE(
ENTITY_TYPE,
ADDRESS_FAMILY,
CANONICAL_IP_ADDRESS,
PREFIX_LENGTH,
INTERFACE_IDENTIFIER,
ASSIGNMENT_CONTEXT,
OBSERVATION_TIME
)

IF EQUIVALENCE_KEY_A == EQUIVALENCE_KEY_B
THEN A SEMANTICALLY_EQUIVALENT_TO B
ELSE PRESERVE_DISTINCT_ENTITIES
}

REASONING_CONSTRAINTS {
IP_ADDRESS != MAC_ADDRESS
IPV4_ADDRESS != IPV6_ADDRESS
IP_ADDRESS != DOMAIN_NAME
IP_ADDRESS != HOST_AS_IDENTICAL_CONCEPT
NETWORK_PREFIX != IP_ADDRESS_AS_IDENTICAL_CONCEPT
PREFIX_LENGTH != SUBNET_MASK_AS_IDENTICAL_REPRESENTATION
SUBNET != VLAN
PUBLIC_ADDRESS != GLOBALLY_REACHABLE_IN_ALL_CONTEXTS
PRIVATE_ADDRESS != SECURITY_BOUNDARY
LOOPBACK_ADDRESS != LINK_LOCAL_ADDRESS
MULTICAST_ADDRESS != BROADCAST_ADDRESS
ANYCAST_ADDRESS != UNICAST_ADDRESS_AS_IDENTICAL_ROUTING_SEMANTICS
NAT != ROUTING
DNS_RESOLUTION != ADDRESS_ASSIGNMENT
REVERSE_DNS != AUTHORITATIVE_IDENTITY_PROOF
PING_FAILURE != DEFINITIVE_UNREACHABILITY
IP_ADDRESS_ASSIGNMENT_CAN_CHANGE_OVER_TIME
PROVENANCE_MUST_BE_PRESERVED
UNCERTAINTY_MUST_NOT_BE_DISCARDED
}

VALIDATION {
CHECK_ENTITY_TYPES
CHECK_RELATION_DOMAINS_AND_RANGES
CHECK_ADDRESS_FAMILY
CHECK_IPV4_SYNTAX_AND_RANGE
CHECK_IPV6_SYNTAX_AND_RANGE
CHECK_PREFIX_LENGTH
CHECK_SUBNET_MASK
CHECK_CIDR_BLOCK
CHECK_NETWORK_PREFIX
CHECK_ADDRESS_RANGE
CHECK_ADDRESS_SCOPE
CHECK_SPECIAL_USE_CLASSIFICATION
CHECK_INTERFACE_ASSIGNMENT
CHECK_DHCP_OR_SLAAC_CONTEXT
CHECK_ROUTING_PREFIXES
CHECK_LONGEST_PREFIX_MATCH
CHECK_ARP_OR_NEIGHBOUR_DISCOVERY
CHECK_NAT_AND_PAT_MAPPINGS
CHECK_DNS_RECORDS
CHECK_REVERSE_DNS
CHECK_REACHABILITY_EVIDENCE
CHECK_CONFIGURATION
CHECK_PROVENANCE
CHECK_CONFIDENCE
CHECK_SEMANTIC_CONSISTENCY
}

OUTPUTS {
NORMALISED_IP_ADDRESS_ENTITIES
ADDRESS_FAMILY_RELATIONS
IPV4_RELATIONS
IPV6_RELATIONS
PREFIX_AND_CIDR_RELATIONS
SUBNET_RELATIONS
ADDRESS_SCOPE_AND_TYPE_RELATIONS
INTERFACE_AND_HOST_ASSIGNMENT_RELATIONS
ADDRESS_POOL_AND_LEASE_RELATIONS
ROUTING_AND_PREFIX_MATCH_RELATIONS
ADDRESS_RESOLUTION_RELATIONS
NAT_AND_PAT_RELATIONS
DNS_AND_REVERSE_DNS_RELATIONS
REACHABILITY_RELATIONS
ADDRESS_STATE_TRANSITIONS
CONFIDENCE_SCORES
EVIDENCE_LINKS
PROVENANCE_RECORDS
EXPLANATION_PATHS
}

UPDATE_MODEL {
ON ADDRESS_PREFIX_ASSIGNMENT_OR_CONFIGURATION_CHANGE {
NORMALISE
RESOLVE_ADDRESS_PREFIX_INTERFACE_AND_HOST_IDENTITIES
UPDATE_ADDRESS_FAMILY_AND_SCOPE
UPDATE_PREFIX_AND_SUBNET_RELATIONS
UPDATE_INTERFACE_AND_HOST_ASSIGNMENTS
UPDATE_ROUTING_AND_RESOLUTION_CONTEXT
UPDATE_NAT_AND_DNS_CONTEXT
UPDATE_CONFIDENCE
PRESERVE_VERSION_HISTORY
}

ON NEW_ROUTING_PACKET_OR_REACHABILITY_EVIDENCE {
LINK_EVIDENCE
UPDATE_ADDRESS_STATE
UPDATE_ROUTE_AND_PREFIX_MATCH_RELATIONS
UPDATE_RESOLUTION_AND_NAT_RELATIONS
UPDATE_REACHABILITY_CONTEXT
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_IP_ADDRESS
BY_ADDRESS_FAMILY
BY_PREFIX
BY_SUBNET
BY_INTERFACE
BY_HOST
BY_ADDRESS_SCOPE
BY_ASSIGNMENT
BY_ROUTE
BY_NAT_MAPPING
BY_DOMAIN_NAME
BY_REACHABILITY
BY_CONFIDENCE
}

REASON {
APPLY_RELATIONSHIPS
APPLY_RULES
ANALYSE_IPV4_ADDRESSES
ANALYSE_IPV6_ADDRESSES
ANALYSE_CIDR_AND_PREFIXES
ANALYSE_SUBNET_MEMBERSHIP
CLASSIFY_ADDRESS_SCOPE
TRACE_ADDRESS_ASSIGNMENT
ANALYSE_ROUTING
ANALYSE_ADDRESS_RESOLUTION
ANALYSE_NAT_AND_PAT
ANALYSE_DNS_MAPPING
ANALYSE_REACHABILITY
CHECK_SEMANTIC_EQUIVALENCE
PRESERVE_UNCERTAINTY
TRACE_EVIDENCE
TRACE_PROVENANCE
GENERATE_EXPLANATION_PATH
}

RESPONSE_POLICY {
DISTINGUISH_IP_ADDRESS_FROM_HOST_INTERFACE_DOMAIN_AND_MAC_ADDRESS
DISTINGUISH_IPV4_FROM_IPV6
PRESERVE_ADDRESS_FAMILY_PREFIX_SCOPE_INTERFACE_ASSIGNMENT_ROUTE_NAT_DNS_AND_TIME_CONTEXT
DISTINGUISH_ADDRESS_ASSIGNMENT_FROM_DNS_RESOLUTION
PRESERVE_REACHABILITY_UNCERTAINTY_AND_PROVENANCE
RETURN_CONFIDENCE_WHEN_AVAILABLE
RETURN_PROVENANCE_WHEN_AVAILABLE
AVOID_UNSUPPORTED_IP_ADDRESS_INFERENCE
}
}

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

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