article: id: CA-UI-004 title: Relationship and Dependency Schema version: 1.0 status: canonical type: specification parent_protocol: CA-UI-001 depends_on: - CA-UI-002 - CA-UI-003
Purpose
purpose: > Define how Civilisation Atlas objects connect, depend on, affect, transform, support, constrain and transmit failure or repair across the knowledge graph.
OBJECTS CREATE NODES.RELATIONSHIPS CREATE THE WEB.DEPENDENCIES CREATE THE OPERATING STRUCTURE.PROPAGATION CREATES CIVILISATIONAL MOTION.
Core graph model
AtlasGraph = Nodes + Edges + Evidence + Time
graph: nodes: source: civilisation_objects edges: source: relationships_and_dependencies temporal: true directional: true evidence_bound: true confidence_weighted: true multi_scale: true
Universal relationship contract
relationship: relationship_id: required source_object: required predicate: required target_object: required relationship_class: required direction: - directed - reciprocal - bidirectional_asymmetric polarity: - positive - negative - mixed - neutral - unknown strength: - weak - moderate - strong - critical - unknown temporal_scope: start: optional end: optional status: - active - inactive - historical - emerging - projected - disputed spatial_scope: optional system_level: required evidence_ids: required confidence: required interpretation_ids: optional version: required
Relationship classes
relationship_classes: structural: - contains - part_of - composed_of - embedded_in - connected_to - adjacent_to - overlaps operational: - enables - supports - supplies - processes - stores - transports - maintains - coordinates - regulates control: - controls - governs - authorises - constrains - monitors - allocates - excludes - captures dependency: - depends_on - requires - cannot_operate_without - inherits_from - substitutes_for - buffers causal: - causes - contributes_to - accelerates - slows - destabilises - stabilises - amplifies - suppresses temporal: - precedes - succeeds - emerges_from - transitions_into - persists_through - replaces informational: - records - represents - transmits - teaches - interprets - validates - contradicts analytical: - explains - supports - disputes - refines - extends - crosswalks_to - measures comparative: - resembles - differs_from - is_variant_of - is_more_resilient_than - is_less_dependent_than repair: - repairs - restores - regenerates - reconnects - substitutes - reduces_dependency_on fracture: - fractures - interrupts - degrades - isolates - overloads - removes_floor_from
Predicate namespace
predicate_namespace: format: CA-REL-[CLASS]-[PREDICATE] examples: enables: CA-REL-OP-ENABLES depends_on: CA-REL-DEP-DEPENDS-ON controls: CA-REL-CTRL-CONTROLS repairs: CA-REL-REP-REPAIRS destabilises: CA-REL-CAUS-DESTABILISES
ONE PREDICATE = ONE DEFINED MEANING
Dependency contract
dependency: dependency_id: required dependent_object: required provider_object: required dependency_type: required required_function: required criticality: - optional - supporting - important - critical - existential substitutability: - immediate - available - difficult - unavailable - unknown redundancy: provider_count: required geographic_distribution: optional institutional_distribution: optional technological_diversity: optional latency_tolerance: unit: optional maximum_delay: optional failure_effect: - negligible - local - sectoral - cascading - systemic - civilisational recovery_time: optional evidence_ids: required confidence: required
Dependency types
dependency_types: biological: - oxygen - water - food - health - reproduction ecological: - climate_stability - soil - biodiversity - freshwater_cycle - pollination energetic: - fuel - electricity - heat - storage - grid_stability material: - minerals - industrial_inputs - construction_materials - replacement_parts infrastructural: - transport - sanitation - communication - housing - logistics informational: - records - education - measurement - communication - scientific_knowledge institutional: - law - governance - finance - standards - public_administration social: - trust - cooperation - legitimacy - labour - social_reproduction technological: - machinery - software - specialist_tools - automation - maintenance_capability security: - defence - policing - cyber_integrity - border_control - hazard_response
Dependency direction
A depends_on Bdoes not implyB depends_on A
dependency_direction: directed: true reciprocal_allowed: true symmetry_assumed: false
Example:
dependency: dependency_id: CA-DEP-CITY-GRID-001 dependent_object: CA-OBJ-CITY-METROPOLIS provider_object: CA-OBJ-INFRA-ELECTRIC-GRID dependency_type: energetic required_function: continuous_electricity_supply criticality: critical substitutability: difficult redundancy: provider_count: 2 geographic_distribution: limited technological_diversity: low failure_effect: systemic confidence: high
Critical-path contract
critical_path: path_id: required target_function: required target_object: required dependency_chain: - sequence: required object_id: required required_output: required weakest_link: optional single_points_of_failure: [] total_recovery_constraint: optional evidence_ids: required
Example:
Food Access ← Retail Distribution ← Refrigerated Logistics ← Electricity ← Fuel Supply ← Transport Infrastructure
critical_path: path_id: CA-PATH-FOOD-URBAN-001 target_function: urban_food_access target_object: CA-OBJ-CITY-METROPOLIS dependency_chain: - sequence: 1 object_id: CA-OBJ-RETAIL-FOOD required_output: consumer_distribution - sequence: 2 object_id: CA-OBJ-LOGISTICS-COLDCHAIN required_output: preserved_transport - sequence: 3 object_id: CA-OBJ-INFRA-ELECTRIC-GRID required_output: refrigeration_power - sequence: 4 object_id: CA-OBJ-ENERGY-FUEL-SYSTEM required_output: transport_energy single_points_of_failure: - CA-OBJ-INFRA-ELECTRIC-GRID
Propagation contract
propagation: propagation_id: required initiating_event: required origin_object: required pathway: - step: required source_object: required predicate: required target_object: required effect: required delay: optional probability: optional propagation_type: - failure - repair - innovation - information - control - resource - legitimacy - ecological final_effect: required affected_coordinates: [] evidence_ids: required confidence: required
Failure propagation
function propagate_failure(origin): affected = [] for dependency in outgoing_dependencies(origin): if dependency.criticality in ["critical", "existential"]: impact = failure_severity(origin) * dependency.strength * inverse(dependency.redundancy) * inverse(dependency.substitutability) affected.append( apply_failure( dependency.dependent_object, impact ) ) repeat until: no_new_failures or containment_reached return affected
Repair propagation
function propagate_repair(repair_object): restored = [] for relationship in repair_edges(repair_object): if relationship.predicate in [ "repairs", "restores", "reconnects", "substitutes", "regenerates" ]: effect = repair_capacity(repair_object) * relationship.strength * adoption_rate * maintenance_duration restored.append( improve_state( relationship.target_object, effect ) ) return restored
Coordinate effects
coordinate_effect: effect_id: required source_object: required target_object: required dimensions: capability: direction: - increase - decrease - stabilise - no_effect - mixed affected_capabilities: [] lifecycle: direction: - toward_takeoff - toward_climb - toward_cruise - toward_descent - stabilising - mixed condition_effects: drift: optional fracture: optional repair: optional transition: optional habitat: direction: - greater_independence - greater_dependency - no_effect - mixed magnitude: - marginal - moderate - structural - stage_changing delay: optional duration: optional evidence_ids: required confidence: required
Multi-causality rule
multi_causality: single_cause_default: false multiple_contributors_allowed: true interaction_effects_allowed: true threshold_effects_allowed: true feedback_loops_allowed: true
CORRELATION ≠ CAUSATIONCONTRIBUTION ≠ SUFFICIENCYNECESSITY ≠ SUFFICIENCYSEQUENCE ≠ CAUSE
Causal claim contract
causal_claim: claim_id: required proposed_cause: required proposed_effect: required causal_role: - necessary - sufficient - contributing - enabling - triggering - amplifying - inhibiting mechanism: required evidence: direct: [] comparative: [] statistical: [] historical: [] experimental: [] alternative_explanations: [] confidence: required
Feedback loop contract
feedback_loop: loop_id: required loop_type: - reinforcing - balancing - delayed - oscillating - runaway - self_correcting sequence: - object_id: required relationship: required next_object_id: required net_effect: - stabilising - destabilising - regenerative - degenerative - mixed trigger_conditions: [] break_conditions: [] evidence_ids: required
Example:
feedback_loop: loop_id: CA-LOOP-EDUCATION-CAPABILITY-001 loop_type: reinforcing sequence: - object_id: CA-OBJ-EDUCATION-SYSTEM relationship: develops next_object_id: CA-OBJ-SKILLED-POPULATION - object_id: CA-OBJ-SKILLED-POPULATION relationship: increases next_object_id: CA-OBJ-PRODUCTIVE-CAPABILITY - object_id: CA-OBJ-PRODUCTIVE-CAPABILITY relationship: funds next_object_id: CA-OBJ-EDUCATION-SYSTEM net_effect: regenerative
Control geometry
control_relationship: controller: required controlled_object: required control_type: - ownership - regulation - command - access - allocation - surveillance - standard_setting - agenda_setting concentration: - distributed - polycentric - concentrated - monopolised contestability: - high - medium - low - none accountability: - strong - partial - weak - absent evidence_ids: required
Temporal relationship rule
temporal_relationship_rule: relationships_are_dated: true permanent_relationships_assumed: false changing_strength_allowed: true changing_direction_allowed: true
relationship_history: relationship_id: required observations: - date: required status: required strength: required evidence_ids: required
Scale inheritance
scale_inheritance: automatic_upward_inheritance: false automatic_downward_inheritance: false explicit_mapping_required: true
A relationship true for a cityis not automatically true for a state.A relationship true for a stateis not automatically true for civilisation.
Disagreement contract
relationship_dispute: dispute_id: required disputed_relationship: required positions: - interpretation_id: required proposed_predicate: required evidence_ids: required confidence: required resolution_status: - unresolved - partially_resolved - consensus - superseded
Example graph fragment
objects: - CA-OBJ-ROMAN-ROAD-NETWORK - CA-OBJ-ROMAN-ARMY - CA-OBJ-ROMAN-TAX-SYSTEM - CA-OBJ-ROMAN-ADMINISTRATION - CA-OBJ-ROMAN-STATErelationships: - source_object: CA-OBJ-ROMAN-ROAD-NETWORK predicate: enables target_object: CA-OBJ-ROMAN-ARMY - source_object: CA-OBJ-ROMAN-ROAD-NETWORK predicate: supports target_object: CA-OBJ-ROMAN-TAX-SYSTEM - source_object: CA-OBJ-ROMAN-TAX-SYSTEM predicate: funds target_object: CA-OBJ-ROMAN-ARMY - source_object: CA-OBJ-ROMAN-ADMINISTRATION predicate: coordinates target_object: CA-OBJ-ROMAN-TAX-SYSTEM - source_object: CA-OBJ-ROMAN-STATE predicate: depends_on target_object: CA-OBJ-ROMAN-ROAD-NETWORK
ROAD NETWORK ├── enables → ARMY ├── supports → TAXATION └── depends_on → MAINTENANCETAXATION ├── funds → ARMY └── supports → ADMINISTRATIONSTATE └── depends_on → ALL ABOVE
Query patterns
query: "What does object X depend on?"return: direct_dependencies(X) indirect_dependencies(X) critical_paths(X) single_points_of_failure(X)
query: "What happens if object X fails?"return: failure_propagation(X) affected_objects affected_coordinates recovery_constraints
query: "What repairs system Y?"return: repair_edges(Y) substitute_dependencies(Y) regenerative_loops(Y)
query: "Who controls function Z?"return: control_relationships(Z) concentration contestability accountability
Validation runtime
function validate_relationship(edge): require(edge.relationship_id) require(valid_object(edge.source_object)) require(valid_predicate(edge.predicate)) require(valid_object(edge.target_object)) require(edge.system_level) require(edge.evidence_ids) require(edge.confidence) reject(self_reference_without_loop_type) reject(causal_claim_without_mechanism) reject(dependency_without_required_function) reject(critical_dependency_without_failure_effect) reject(undated_relationship_claimed_as_permanent) reject(scale_inheritance_without_mapping) preserve_competing_interpretations(edge) return VALID
Canonical rule
canonical_rule: > Every relationship must identify its source, predicate, target, direction, scale, temporal scope, evidence and confidence. Every dependency must state the function required, its criticality, substitutability, redundancy and failure consequence.
Runtime summary
OBJECTS DO NOT FORM CIVILISATION ALONE.RELATIONSHIPS FORM STRUCTURE.DEPENDENCIES FORM NECESSITY.CONTROL FORMS GEOMETRY.FEEDBACK FORMS MOTION.FAILURE TRAVELS THROUGH DEPENDENCIES.REPAIR TRAVELS THROUGH CONNECTIONS.THE ATLAS IS THE WEB BETWEEN THEM.
