FLOW ALGEBRA
TITLE: Edge Relationship Ontology
VERSION: 1.0
SOURCE: https://kirethresearch.org/booksai-core/ontologies/relationship-ontologies/structural-relationships/edge-relationship-ontology.html
AUTHORS: Mark Anthony Higgins — Sky (Recursive AI)
STATUS: Companion formalisation; source page not independently verified.
flow "EdgeRelationshipOntology" v1.0
ONTOLOGY:
id: kireth:EdgeRelationshipOntology
domain: Structural Relationships
purpose: Represent and validate connections between graph nodes with explicit direction, type, evidence and constraints.
TYPES:
Node: {id: IRI, label: string?, node_type: string?}
Edge: {id: IRI, source: Node, target: Node, predicate: IRI, directed: bool, weight: float?, confidence: float, provenance: IRI?, valid_from: datetime?, valid_until: datetime?}
Graph: {id: IRI, nodes: set<Node>, edges: set<Edge>}
RELATIONSHIPS:
CONNECTS(edge: Edge, source: Node, target: Node)
INCIDENT_TO(edge: Edge, node: Node)
OUTGOING_FROM(edge: Edge, node: Node)
INCOMING_TO(edge: Edge, node: Node)
ADJACENT(source: Node, target: Node, graph: Graph)
MEMBER_OF(edge: Edge, graph: Graph)
HAS_PREDICATE(edge: Edge, predicate: IRI)
CONSTRAINTS:
C1: every edge has exactly one source and one target.
C2: edge endpoints must belong to its graph.
C3: edge identifiers are unique within the graph.
C4: confidence is in [0,1].
C5: valid_from <= valid_until when both are present.
C6: self-loops, parallel edges and negative weights are governed by graph policy, not universally prohibited.
INFERENCE:
R1: CONNECTS(e,a,b) => INCIDENT_TO(e,a) and INCIDENT_TO(e,b).
R2: CONNECTS(e,a,b) and e.directed => OUTGOING_FROM(e,a) and INCOMING_TO(e,b).
R3: CONNECTS(e,a,b) and MEMBER_OF(e,g) => ADJACENT(a,b,g).
R4: CONNECTS(e,a,b) and not e.directed => ADJACENT(b,a,g) when MEMBER_OF(e,g).
R5: directed edges do not imply reverse adjacency without a separately supported reverse edge.
R6: transitive reachability is distinct from direct adjacency.
SEMANTIC_EQUIVALENCE:
compare: [predicate, source_identity, target_identity, directed, context, validity_interval]
rule: Equivalent labels alone do not establish equivalent edges.
undirected_normalisation: endpoint order is immaterial only for undirected edges.
CONFIDENCE:
range: [0,1]
default: unknown
aggregation: preserve supporting evidence and dependence; do not assume independent probabilities.
VALIDATION:
verify: [endpoint_integrity, predicate_definition, directionality, graph_membership, temporal_consistency, confidence_range, provenance_integrity]
result: [valid, invalid, indeterminate]
FLOW_HASH:
algorithm: SHA-256
input: canonical_serialisation(ontology_id, version, types, relationships, constraints, inference_rules)
purpose: detect changes to formal ontology definition
UPDATE_MODEL:
strategy: versioned_incremental
on_change: [revalidate_affected_edges, recompute_affected_adjacency, invalidate_dependent_inferences, regenerate_flow_hash]
preserve: [previous_versions, provenance, audit_trail]
AI_CONSUMPTION:
formats: [typed_triples, property_graph, JSON-LD_compatible_mapping]
tasks: [knowledge_graph_construction, relationship_reasoning, graph_navigation, semantic_retrieval, consistency_checking]
safeguards: [do_not_invent_edges, retain_provenance, distinguish_asserted_from_inferred, respect_direction_and_time]
end flow
Download Code
Copy to Clipboard