Skip to main content

Directed Edge Ontology

Graph and Network Entities
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 14 October 2026
Audio Overview
FLOW ALGEBRA
DIRECTED EDGE ONTOLOGY
Kireth Semantic Library | Entity Graph | Mathematical Entities | Graph and Network Entities
Source: https://kirethresearch.org/booksai-core/entity-graph/mathematical-entities/graph-and-network-entities/directed-edge-ontology.html
Version: 1.0 | Date: 2026-10-14 | Language: en-GB
Authors: Mark Higgins — Sky (Recursive AI)
Site: https://kirethresearch.org
Status: Proposed formalisation; source page wording not independently verified.

1. PURPOSE
Represent directed edges (arcs) as typed, ordered incidence relations in directed graphs and networks, supporting rigorous graph reasoning and AI consumption.

2. TYPE SYSTEM
TYPE Vertex = identifiable node
TYPE DirectedEdge = identifiable arc
TYPE DirectedGraph = (V: Set[Vertex], E: Set[DirectedEdge], source: E -> V, target: E -> V)
TYPE Weight = Real | Vector | StructuredValue
TYPE EdgeAttribute = (key: String, value: TypedValue)
TYPE Path = ordered sequence of composable directed edges
TYPE Confidence = Real in [0,1]

3. ENTITY SCHEMA
ENTITY DirectedEdge {
  id: Identifier
  graph_id: Identifier
  source_vertex: VertexID
  target_vertex: VertexID
  weight: Optional[Weight]
  attributes: Map[String, TypedValue]
  provenance: Optional[SourceRecord]
  confidence: Optional[Confidence]
}

4. AXIOMS AND INVARIANTS
A1: For every e in E, source(e) in V and target(e) in V.
A2: An edge e is ordered: (u,v) is generally distinct from (v,u).
A3: Directed adjacency u -> v holds iff there exists e with source(e)=u and target(e)=v.
A4: Parallel edges are permitted only if graph schema allows a directed multigraph.
A5: Self-loops (u,u) are permitted only if graph schema allows loops.
A6: Edge identity is distinct from endpoint pair identity in multigraphs.
A7: An edge weight does not by itself reverse or imply direction.
A8: An inverse edge must be explicitly present or derived under a declared reversible-relation rule.

5. CORE OPERATIONS
OP source(e: DirectedEdge) -> Vertex
OP target(e: DirectedEdge) -> Vertex
OP outgoing(u: Vertex) -> Set[DirectedEdge] = {e in E | source(e)=u}
OP incoming(v: Vertex) -> Set[DirectedEdge] = {e in E | target(e)=v}
OP out_degree(u) -> Integer = |outgoing(u)|
OP in_degree(u) -> Integer = |incoming(u)|
OP adjacent(u,v) -> Boolean = exists e in E: source(e)=u and target(e)=v
OP reverse_candidate(e) -> OrderedPair = (target(e), source(e))
OP compose(e1,e2) -> Path when target(e1)=source(e2)

6. MATHEMATICAL RULES
R1: Sum_{v in V} in_degree(v) = |E|.
R2: Sum_{v in V} out_degree(v) = |E|.
R3: A directed walk follows source-to-target orientation at every step.
R4: A directed path is a directed walk with no repeated vertices (under the standard simple-path convention).
R5: A directed cycle is a nonempty closed directed walk with no repeated vertices except its initial/final vertex (under the simple-cycle convention).
R6: Reachability(u,v) holds if there is a directed path from u to v; allow zero-length path for u=v by convention.
R7: Strong connectivity requires directed reachability in both directions for every vertex pair.
R8: For a simple directed graph without loops, |E| <= |V|(|V|-1).

7. TYPED RELATIONSHIPS
DirectedEdge --IS_A--> GraphEdge
DirectedEdge --HAS_SOURCE--> Vertex
DirectedEdge --HAS_TARGET--> Vertex
DirectedEdge --BELONGS_TO--> DirectedGraph
DirectedEdge --MAY_HAVE--> Weight
DirectedEdge --MAY_HAVE--> EdgeAttribute
DirectedEdge --COMPOSES_INTO--> DirectedPath
DirectedEdge --CONTRIBUTES_TO--> InDegree
DirectedEdge --CONTRIBUTES_TO--> OutDegree
DirectedEdge --REPRESENTS--> OrderedRelationship

8. INFERENCE FLOW
FLOW DirectedEdgeValidation:
  INPUT graph G, edge e
  REQUIRE e.graph_id = G.id
  REQUIRE source(e) in G.V AND target(e) in G.V
  CHECK graph_policy for loops and parallel arcs
  OUTPUT ValidDirectedEdge | ValidationError

FLOW DirectedReachability:
  INPUT graph G, start u, destination v
  REQUIRE u in G.V AND v in G.V
  TRAVERSE outgoing edges only using BFS or DFS
  OUTPUT reachable: Boolean, witness_path: Optional[Path]

FLOW DegreeAccounting:
  INPUT graph G
  COMPUTE in_degree and out_degree for each vertex
  ASSERT sum(in_degree) = sum(out_degree) = |E|
  OUTPUT DegreeSummary

9. SEMANTIC DISTINCTIONS
DirectedEdge != UndirectedEdge: orientation is part of the former's semantics.
DirectedEdge != BidirectionalConnection: two-way traversal requires two arcs or an explicit separate model.
DirectedEdge != Path: a path is a sequence of compatible arcs.
DirectedEdge != CausalRelationship: direction alone does not establish causality.
DirectedEdge != Dependency: dependency semantics require an explicit relation type.
DirectedEdge != SemanticLink: a semantic link may have richer predicates and qualifications.

10. SEMANTIC_EQUIVALENCE
Canonical label: Directed Edge
Accepted aliases: directed arc; oriented edge; digraph arc
Equivalence scope: graph-theoretic ordered incidence
Do not collapse with: undirected edge; reciprocal pair; directed path; causal arrow

11. CONFIDENCE
CONFIDENCE.range = [0,1]
CONFIDENCE.policy = confidence describes evidence supporting an asserted edge, not mathematical certainty of graph axioms.
CONFIDENCE.missing = unknown; never silently replace with 1.0.

12. VALIDATION
V1: Every arc has one valid source and one valid target.
V2: Edge IDs are unique within the declared identity scope.
V3: Loop and parallel-edge policy is explicit.
V4: Traversal respects direction.
V5: Weights and attributes meet declared types.
V6: Graph degree identities hold.
V7: Reversal is not inferred without supporting rules.
V8: Provenance and uncertainty are preserved when present.

13. FLOW_HASH
FLOW_HASH.algorithm = SHA-256
FLOW_HASH.input = canonical UTF-8 serialisation of ontology version, type definitions, axioms, relationship declarations and rules
FLOW_HASH.canonicalisation = stable field ordering, normalised line endings and explicit versioning
FLOW_HASH.value = COMPUTE_AT_INGESTION (not precomputed)

14. UPDATE_MODEL
UPDATE_MODEL.strategy = versioned append-or-revise with provenance
UPDATE_MODEL.triggers = graph schema change | new edge type | amended inference rule | corrected mathematical statement
UPDATE_MODEL.requirements = preserve prior version, record timestamp, author, rationale and affected dependencies

15. AI_CONSUMPTION
AI_CONSUMPTION.format = typed entity-relationship flow
AI_CONSUMPTION.operations = parse | validate | traverse | infer | compare | explain
AI_CONSUMPTION.safety = do not infer reciprocal, causal or semantic equivalence solely from edge orientation
AI_CONSUMPTION.output = graph-aware assertions with evidence, confidence where supplied and traceable rule IDs

16. EXAMPLE
V = {A,B,C}
E = {e1: A -> B, e2: B -> C}
INFER reachable(A,C) via [e1,e2].
DO_NOT_INFER reachable(C,A) absent reverse arcs or another directed route.
in_degree(A)=0; in_degree(B)=1; in_degree(C)=1.
out_degree(A)=1; out_degree(B)=1; out_degree(C)=0.

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