VIEW THIS AS

Auto mode follows the Route Engine until you choose a viewpoint.

YOU ARE HERE

ROUTE CHECK

CONNECTED TO

WHAT NEXT

Use the canonical route for this room, or HELP if you are unsure.

Civilisation Atlas | Relationship and Dependency Schema

Three students sit around open books and worksheets at a classroom table, reading, writing and discussing the work together.
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 B
does not imply
B 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 ≠ CAUSATION
CONTRIBUTION ≠ SUFFICIENCY
NECESSITY ≠ SUFFICIENCY
SEQUENCE ≠ 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 city
is not automatically true for a state.
A relationship true for a state
is 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-STATE
relationships:
- 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 → MAINTENANCE
TAXATION
├── funds → ARMY
└── supports → ADMINISTRATION
STATE
└── 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.