Skip to main content

Adjacency Ontology

Spatial Relationships
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 10 October 2026
Audio Overview
FLOW ALGEBRA
TITLE: Adjacency Ontology
DOMAIN: Relationship Ontologies / Spatial Relationships
SOURCE: https://kirethresearch.org/booksai-core/ontologies/relationship-ontologies/spatial-relationships/adjacency-ontology.html
VERSION: 1.0
AUTHORS: Mark Anthony Higgins — Sky (Recursive AI)
STATUS: Companion formalisation; source-page specification not independently verified.

flow "AdjacencyOntology" v1.0 {
  ontology:
    id: "adjacency-ontology"
    parent: "spatial-relationships"
    purpose: "Represent evidence-backed spatial adjacency between entities and regions while preserving topology, scale, time and reference systems."

  types:
    SpatialEntity: {id: string, kind: enum[point, line, polygon, volume, region, object, other], geometry_ref: string?, crs: string?, valid_time: string?}
    Boundary: {id: string, entity_id: string, geometry_ref: string, crs: string}
    Observation: {id: string, method: string, timestamp: datetime?, uncertainty: number?, provenance: string}
    AdjacencyRelation: {id: string, a: string, b: string, mode: enum[boundary_contact, edge_contact, vertex_contact, network_neighbour, asserted], tolerance: number?, tolerance_unit: string?, context: string?, confidence: number, evidence: string[]}

  predicates:
    adjacent_to(a: SpatialEntity, b: SpatialEntity, context: string)
    shares_boundary_with(a: SpatialEntity, b: SpatialEntity)
    touches_at_vertex(a: SpatialEntity, b: SpatialEntity)
    network_neighbour_of(a: SpatialEntity, b: SpatialEntity, network: string)
    disjoint_from(a: SpatialEntity, b: SpatialEntity)
    overlaps(a: SpatialEntity, b: SpatialEntity)

  constraints:
    - "Every relation endpoint must resolve to a typed spatial entity."
    - "Confidence must lie within [0, 1]."
    - "Specify adjacency semantics: shared boundary, vertex contact, network connection or explicit assertion."
    - "Compare geometries in compatible coordinate reference systems and compatible observation times."
    - "A tolerance-based adjacency test must declare tolerance units and method."
    - "Adjacency is not automatically transitive: A adjacent B and B adjacent C does not imply A adjacent C."
    - "Symmetry applies to undirected topological adjacency under the same context, not automatically to directed network relations."
    - "Proximity alone does not establish topological adjacency."
    - "Different spatial dimensions and topology conventions may produce different valid adjacency results."

  inference:
    rule symmetric_topological_adjacency:
      if adjacent_to(a,b,c) and undirected_topological_context(c)
      then adjacent_to(b,a,c)
      confidence: "retain original evidence and uncertainty"
    rule shared_boundary_adjacency:
      if shares_boundary_with(a,b) and valid_geometry(a,b)
      then adjacent_to(a,b,"boundary_contact")
      confidence: "dependent on geometry precision and topology model"
    rule vertex_contact_adjacency:
      if touches_at_vertex(a,b) and adjacency_model_allows_vertex_contact(a,b)
      then adjacent_to(a,b,"vertex_contact")
      confidence: "dependent on declared adjacency convention"

  SEMANTIC_EQUIVALENCE:
    - "Distinguish adjacency, proximity, overlap, containment and network connectivity."
    - "Map neighbouring, bordering and touching terms only when their spatial definitions match."
    - "Preserve reference system, topology convention, spatial resolution and time."

  CONFIDENCE:
    range: [0,1]
    factors: [geometry_accuracy, boundary_uncertainty, observation_quality, topology_convention, temporal_validity, provenance]
    policy: "Do not increase confidence solely through inference chaining."

  VALIDATION:
    - "Check endpoint identity, geometry validity, reference systems, timestamps and provenance."
    - "Reject unsupported transitive adjacency and unjustified proximity-to-adjacency conversions."
    - "Flag conflicts between adjacency assertions and independently verified topology."
    - "Retain alternate interpretations when boundary models or resolutions differ."

  FLOW_HASH:
    algorithm: "SHA-256"
    input: "canonicalised ontology version, typed assertions, topology conventions, rules and provenance"
    note: "Compute hash at execution; no hash value is claimed here."

  UPDATE_MODEL:
    strategy: "versioned, provenance-preserving incremental update"
    steps: [ingest, normalise, validate, reconcile_geometry, recompute_adjacency, compare, publish]
    rollback: true

  AI_CONSUMPTION:
    representation: "typed spatial knowledge graph with context-qualified adjacency edges"
    outputs: [adjacency_triples, geometry_references, topology_context, uncertainty_annotations, provenance_records]
    safeguards: [no_unsupported_transitivity, no_proximity_equivalence, preserve_crs_and_time, retain_topology_convention]
}

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