FLOW ALGEBRA
TITLE: Boundary Relationship Ontology
DOMAIN: Spatial Relationships / Boundary Topology
SOURCE: https://kirethresearch.org/booksai-core/ontologies/relationship-ontologies/spatial-relationships/boundary-relationship-ontology.html
VERSION: 1.0
AUTHORS: Mark Anthony Higgins — Sky (Recursive AI)
STATUS: Companion formalisation; source-page specification not independently verified.
flow "BoundaryRelationshipOntology" v1.0 {
ontology:
id: "boundary-relationship-ontology"
parent: "spatial-relationships"
purpose: "Represent and validate boundaries, boundary contact, separation and topological relationships among spatial entities."
types:
SpatialEntity: {id: string, geometry_id: string, dimension: integer, crs: string, valid_time: string?}
Boundary: {id: string, owner_id: string, geometry_id: string, dimension: integer, kind: enum[interior, exterior, administrative, physical, conceptual, other], crs: string}
Geometry: {id: string, type: enum[point, line, polygon, multipolygon, surface, solid, other], coordinates_ref: string, crs: string, precision: number?}
Observation: {id: string, method: string, timestamp: datetime?, uncertainty: number?, provenance: string}
Relationship: {id: string, subject: string, predicate: string, object: string, context: string?, confidence: number, evidence: string[]}
predicates:
boundary_of(b: Boundary, e: SpatialEntity)
touches(a: SpatialEntity, b: SpatialEntity)
shares_boundary_with(a: SpatialEntity, b: SpatialEntity)
intersects_boundary_of(a: SpatialEntity, b: SpatialEntity)
inside(a: SpatialEntity, b: SpatialEntity)
contains(a: SpatialEntity, b: SpatialEntity)
disjoint_from(a: SpatialEntity, b: SpatialEntity)
separates(b: Boundary, a: SpatialEntity, c: SpatialEntity)
derived_from(b: Boundary, o: Observation)
constraints:
- "All relationship endpoints must resolve to typed spatial entities or boundaries."
- "Confidence must lie within [0, 1]."
- "Geometry comparisons require compatible coordinate reference systems and dimensional models."
- "Specify boundary convention and tolerance before classifying contact or intersection."
- "Boundary contact alone does not imply overlap of interiors."
- "Administrative and conceptual boundaries must not be treated as physical barriers."
- "Temporal validity must be preserved when boundaries change."
- "Do not infer containment solely from shared boundary contact."
inference:
rule touch_symmetry:
if touches(a,b)
then touches(b,a)
confidence: "retain source evidence and geometry context"
rule shared_boundary_symmetry:
if shares_boundary_with(a,b)
then shares_boundary_with(b,a)
confidence: "retain source evidence and boundary convention"
rule containment_inverse:
if contains(a,b)
then inside(b,a)
confidence: "preserve containment definition and temporal context"
rule disjoint_symmetry:
if disjoint_from(a,b)
then disjoint_from(b,a)
confidence: "retain original evidence"
rule no_contact_transitivity:
if touches(a,b) and touches(b,c)
then do_not_infer(touches(a,c))
confidence: "topological contact is not transitive"
SEMANTIC_EQUIVALENCE:
- "Normalise equivalent boundary and topology terms against versioned spatial vocabularies."
- "Distinguish touches, overlaps, intersects, contains and shares_boundary_with."
- "Preserve geometry model, CRS, precision, temporal validity and boundary convention."
CONFIDENCE:
range: [0,1]
factors: [geometry_accuracy, measurement_uncertainty, source_reliability, crs_transform_quality, boundary_definition, temporal_validity]
policy: "Do not increase confidence solely by chaining spatial inferences."
VALIDATION:
- "Check entity and geometry identifiers, geometry validity, coordinate systems and provenance."
- "Check dimensional compatibility and topological consistency under the selected boundary model."
- "Flag conflicting boundary definitions and uncertain or disputed boundaries."
- "Retain competing boundary interpretations where evidence is inconclusive."
FLOW_HASH:
algorithm: "SHA-256"
input: "canonicalised ontology version, typed assertions, geometry references, 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, transform_crs, validate, compare, reconcile, recompute_inferences, publish]
rollback: true
AI_CONSUMPTION:
representation: "typed spatial knowledge graph with geometry-backed boundary relationships"
outputs: [boundary_entities, spatial_relation_triples, topology_annotations, uncertainty_annotations, inferred_edges, provenance_records]
safeguards: [no_unqualified_topological_inference, preserve_crs_and_precision, distinguish_legal_and_physical_boundaries, retain_temporal_context]
}
END FLOW ALGEBRA
Download Code
Copy to Clipboard