FLOW ALGEBRA
TITLE: Recursive Hierarchy Ontology
DOMAIN: Relationship Ontologies / Recursive Relationships
SOURCE: https://kirethresearch.org/booksai-core/ontologies/relationship-ontologies/recursive-relationships/recursive-hierarchy-ontology.html
VERSION: 1.0
AUTHORS: Mark Anthony Higgins — Sky (Recursive AI)
STATUS: Companion formalisation; source-page specification not independently verified.
flow "RecursiveHierarchyOntology" v1.0 {
ontology:
id: "recursive-hierarchy-ontology"
parent: "recursive-relationships"
purpose: "Represent nested hierarchies and recursive parent-child structures while distinguishing finite trees, directed acyclic hierarchies and cyclic graphs."
types:
Hierarchy: {id: string, kind: enum[tree, dag, recursive_graph], root_ids: string[], version: string}
Node: {id: string, kind: string, label: string?, metadata: map?}
HierarchyEdge: {id: string, parent_id: string, child_id: string, hierarchy_id: string, evidence: string[], confidence: number}
Traversal: {id: string, hierarchy_id: string, start_id: string, visited: string[], max_depth: integer}
Assertion: {id: string, subject: string, predicate: string, object: string, provenance: string, confidence: number}
predicates:
direct_parent(parent: Node, child: Node, hierarchy: Hierarchy)
direct_child(child: Node, parent: Node, hierarchy: Hierarchy)
ancestor_of(ancestor: Node, descendant: Node, hierarchy: Hierarchy)
descendant_of(descendant: Node, ancestor: Node, hierarchy: Hierarchy)
member_of(node: Node, hierarchy: Hierarchy)
reachable_from(target: Node, source: Node, hierarchy: Hierarchy)
has_cycle(hierarchy: Hierarchy)
constraints:
- "Every hierarchy edge must resolve to existing nodes and one hierarchy."
- "Confidence values must be in [0,1]."
- "Tree hierarchies have at most one direct parent per non-root node and no directed cycles."
- "DAG hierarchies permit multiple parents but prohibit directed cycles."
- "Recursive graphs may contain cycles; cyclic reachability must not imply strict ancestry."
- "An edge is not an identity assertion, and sharing a parent does not establish equivalence."
- "Ancestor and descendant inference is scoped to a single hierarchy and its version."
- "Traversal must maintain a visited set and enforce depth or resource bounds."
inference:
rule inverse_parent:
if direct_parent(p,c,h)
then direct_child(c,p,h)
confidence: "retain original evidence and context"
rule direct_ancestry:
if direct_parent(p,c,h) and acyclic(h)
then ancestor_of(p,c,h)
confidence: "inherit supporting evidence"
rule transitive_ancestry:
if ancestor_of(a,b,h) and direct_parent(b,c,h) and acyclic(h)
then ancestor_of(a,c,h)
confidence: "propagate provenance; avoid artificial certainty"
rule inverse_ancestry:
if ancestor_of(a,d,h)
then descendant_of(d,a,h)
confidence: "retain source inference trace"
rule cycle_warning:
if reachable_from(a,b,h) and direct_parent(a,b,h)
then flag_cycle(h,a,b)
confidence: "structural check, subject to edge validity"
SEMANTIC_EQUIVALENCE:
- "Normalise node identifiers within a versioned namespace."
- "Distinguish alias, identity, hierarchical membership and structural similarity."
- "Do not merge nodes solely because labels or paths match."
CONFIDENCE:
range: [0,1]
factors: [edge_provenance, source_reliability, structural_consistency, version_validity, independent_evidence]
policy: "Do not increase confidence merely by recursively chaining edges."
VALIDATION:
- "Validate endpoint types, hierarchy membership and evidence references."
- "Check parent cardinality, root conditions and cycle policy for hierarchy kind."
- "Check transitive closure against direct-edge provenance and current version."
- "Report orphaned nodes, unreachable components and conflicting parent assignments."
- "Bound recursive evaluation and preserve diagnostic traces."
FLOW_HASH:
algorithm: "SHA-256"
input: "canonicalised ontology version, hierarchy nodes, edges, 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, detect_cycles, reconcile, recompute_reachability, publish]
rollback: true
AI_CONSUMPTION:
representation: "typed recursive hierarchy graph with evidence-backed edges"
outputs: [hierarchy_nodes, direct_edges, ancestor_paths, cycle_warnings, confidence_annotations, provenance_records]
safeguards: [bounded_traversal, cycle_aware_inference, no_unsupported_identity_merges, preserve_version_context]
}
END FLOW ALGEBRA
Download Code
Copy to Clipboard