article: id: CA-UI-008 title: Atlas Query and Retrieval Runtime version: 1.0 status: canonical type: specification parent_protocol: CA-UI-001 depends_on: - CA-UI-002 - CA-UI-003 - CA-UI-004 - CA-UI-005 - CA-UI-006 - CA-UI-007
Purpose
purpose: > Define how human and machine questions are interpreted, routed through the Civilisation Atlas, resolved against coordinates, objects, relationships, dependencies, external research and evidence, and returned as traceable answers.
QUESTION ↓INTENT ↓SCOPE ↓ROUTE ↓RETRIEVE ↓COMPARE ↓SYNTHESISE ↓VALIDATE ↓ANSWER
Core rule
THE ATLAS DOES NOT SEARCH ONLY FOR WORDS.IT SEARCHES FOR:- objects- coordinates- mechanisms- dependencies- relationships- theories- evidence- motion- fractures- repairs
retrieval_principle: semantic_search: true identifier_search: true graph_traversal: true coordinate_search: true evidence_first: true crosswalk_aware: true uncertainty_visible: true
Query contract
query: query_id: required query_text: required submitted_at: required submitted_by: required requested_output: - explanation - coordinate - comparison - diagnosis - dependency_map - theory_crosswalk - evidence_trace - transition_path - repair_path - article_route - object_registration constraints: spatial_scope: optional temporal_scope: optional system_level: optional confidence_floor: optional source_types: optional maximum_depth: optional
Intent classes
intent_classes: IDENTIFY: question: What is this? LOCATE: question: Where does this belong in the Atlas? COORDINATE: question: What is its civilisation coordinate? EXPLAIN: question: How does this operate? COMPARE: question: How are these objects different or similar? DEPENDENCY: question: What does this depend on? FAILURE: question: What happens if this breaks? REPAIR: question: What could restore it? TRANSITION: question: How does it move from one state to another? CONTROL: question: Who controls this function or flow? THEORY: question: Which theories explain this? EVIDENCE: question: What supports this claim? HISTORY: question: How did this develop over time? FORECAST: question: Where may this system move next? NAVIGATE: question: Which Atlas articles should be read?
Intent detection
function detect_intent(query_text): intents = classify_against( IDENTIFY, LOCATE, COORDINATE, EXPLAIN, COMPARE, DEPENDENCY, FAILURE, REPAIR, TRANSITION, CONTROL, THEORY, EVIDENCE, HISTORY, FORECAST, NAVIGATE ) return ranked_intents( primary = highest_score, secondary = remaining_above_threshold )
ONE QUESTION MAY CONTAINMULTIPLE INTENTS.
Example:
query_intent: query: > Why did the Roman Empire weaken, and which theories explain it? primary_intent: FAILURE secondary_intents: - HISTORY - THEORY - DEPENDENCY
Scope resolution
scope_resolution: dimensions: - object - system_level - spatial_scope - temporal_scope - coordinate_dimension - mechanism - evidence_depth
function resolve_scope(query): objects = identify_named_and_implied_objects(query) time = detect_temporal_scope(query) space = detect_spatial_scope(query) level = detect_system_level(query) if level is missing: infer_level_from_objects(objects) return scope( objects, time, space, level )
Ambiguous scope rule
ambiguous_scope: preserve_multiple_candidates: true silently_choose_one: false actions: - infer_from_context - return_multiple_scales - state_assumption - request_clarification_when_material
Example:
"Why is education failing?"Possible scopes:- one student- one school- one national system- planetary education architecture
SAME WORDDOES NOT IMPLYSAME SYSTEM LEVEL.
Query plan
query_plan: query_id: required intent: required scope: required retrieval_steps: - step_id: required registry: required operation: required expected_output: required validation_steps: [] stopping_conditions: []
Example:
query_plan: query_id: CA-QUERY-ROMAN-COLLAPSE-001 intent: primary: FAILURE secondary: - HISTORY - THEORY scope: object: CA-HIS-CIV-ROMAN-EMPIRE temporal: late_imperial_period system_level: L7 retrieval_steps: - step_id: 1 registry: object_registry operation: retrieve_object expected_output: canonical_identity - step_id: 2 registry: coordinate_registry operation: retrieve_coordinate_history expected_output: lifecycle_motion - step_id: 3 registry: dependency_graph operation: retrieve_failure_paths expected_output: critical_dependencies - step_id: 4 registry: theory_crosswalk_registry operation: retrieve_applicable_theories expected_output: explanatory_models - step_id: 5 registry: evidence_registry operation: validate_claims expected_output: evidence_and_confidence
Retrieval registries
registries: object_registry: stores: - identities - aliases - object_types - scopes coordinate_registry: stores: - capability - lifecycle - habitat - state_vectors - coordinate_history relationship_graph: stores: - structural_edges - causal_edges - temporal_edges - comparative_edges dependency_graph: stores: - required_functions - providers - critical_paths - failure_propagation - redundancy theory_crosswalk_registry: stores: - disciplines - theories - models - mappings - conflicts evidence_registry: stores: - sources - evidence - claims - interpretations - provenance diagnostic_registry: stores: - fractures - repairs - transitions - control_geometry - signal_failures article_registry: stores: - article_ids - canonical_definitions - runtime_roles - reading_routes
Retrieval modes
retrieval_modes: EXACT: use_for: - canonical_ids - exact_names - registered_terms SEMANTIC: use_for: - natural_language_questions - concept_similarity - implied_topics GRAPH: use_for: - relationships - dependencies - propagation - control COORDINATE: use_for: - stage_comparison - lifecycle_location - habitat_independence - state_vectors TEMPORAL: use_for: - historical_change - transition - coordinate_motion CROSSWALK: use_for: - external_theories - discipline_depth - model_comparison EVIDENTIAL: use_for: - source_validation - confidence - disagreement
Hybrid retrieval runtime
function retrieve(query_plan): result_set = [] for step in query_plan.retrieval_steps: result = execute( registry = step.registry, operation = step.operation, scope = query_plan.scope ) result_set.append(result) result_set = deduplicate(result_set) result_set = rank_by_relevance( semantic_match, identifier_match, scale_match, temporal_match, evidence_quality, confidence, canonical_status ) return result_set
Graph traversal
graph_traversal: depth: direct: 1 local_context: 2 system_map: 3 extended_analysis: configurable edge_filters: relationship_class: optional predicate: optional confidence_floor: optional temporal_scope: optional system_level: optional
function traverse(start_object, filters, depth): visited = set() frontier = [start_object] results = [] for level in range(depth): next_frontier = [] for node in frontier: edges = retrieve_edges(node, filters) for edge in edges: if edge.target not in visited: results.append(edge) next_frontier.append(edge.target) visited.add(edge.target) frontier = next_frontier return results
Coordinate query runtime
query: "Where is civilisation X?"return: primary_coordinate(X) secondary_state_vector(X) observation_date confidence coordinate_history internal_variation
query: "Which systems are at C4?"return: objects_where( capability_stage = C4 )
query: "Which civilisations are repairing while descending?"return: objects_where( lifecycle_phase = DESCENT, lifecycle_condition = REPAIR )
query: "Which off-world settlements are truly independent?"return: objects_where( habitat_level >= H6 ) validated_by: staircase_removal_test
Comparison runtime
comparison_request: objects: required dimensions: - identity - coordinate - mechanisms - dependencies - control_geometry - lifecycle - evidence - theory_coverage
function compare(objects, dimensions): aligned = align_by_shared_schema(objects) for dimension in dimensions: calculate: similarities differences missing_data scale_mismatches temporal_mismatches return comparison_matrix
Example:
comparison_matrix: objects: - Roman_Empire - Han_Dynasty dimensions: administration: Roman_Empire: high Han_Dynasty: high transport: Roman_Empire: road_dominant Han_Dynasty: road_and_waterway lifecycle: Roman_Empire: descent_with_fragmentation Han_Dynasty: recurrent_fragmentation_and_reconstitution habitat: both: H0
Dependency query runtime
query: "What keeps system X alive?"return: existential_dependencies(X) critical_dependencies(X) substitute_providers(X) redundancy(X) recovery_constraints(X)
query: "What is the hidden floor beneath capability Y?"return: recursive_dependencies(Y) until: biological_floor ecological_floor energetic_floor material_floor institutional_floor
Failure query runtime
function analyse_failure(target_object, initiating_event): direct_effects = retrieve_direct_failure_edges( target_object, initiating_event ) cascading_effects = propagate_failure( direct_effects ) coordinate_effects = estimate_coordinate_change( cascading_effects ) return: origin critical_path cascade containment_points coordinate_effects confidence
Repair query runtime
function retrieve_repairs(target_object): fractures = retrieve_active_fractures(target_object) repair_objects = retrieve_edges( predicate in [ repairs, restores, reconnects, substitutes, regenerates ] ) rank repair_objects by: floor_priority leverage time_to_effect durability dependency_reduction evidence_quality return repair_path
Transition query runtime
query: "How does system X move from C4 to C5?"return: current_coordinate target_coordinate missing_capability_bundle adoption_requirements institutionalisation_requirements dependency_changes lower_floor_requirements transition_blockers evidence
transition_gap: target_object: required from_coordinate: required to_coordinate: required missing: capabilities: [] institutions: [] infrastructure: [] education: [] dependency_reduction: [] repair_capacity: [] blockers: [] enabling_conditions: []
Theory retrieval runtime
query: "Which theories explain event X?"return: theories_mapped_to(X) explanatory_scope mechanisms coverage_score limitations conflicts unmapped_dimensions
THEORY RETRIEVAL DOES NOT RETURNONE WINNER BY DEFAULT.IT RETURNS:- what each theory explains- what each theory misses- where theories overlap- where they conflict
External depth routing
function retrieve_depth(atlas_result, query): required_depth = detect_specialist_depth(query) if required_depth == none: return atlas_result crosswalks = retrieve_crosswalks(required_depth) external_routes = retrieve_source_disciplines( crosswalks ) return: atlas_location specialist_routes relevant_theories evidence_sources
THE ATLAS ANSWERSWHERE THE KNOWLEDGE BELONGS.SPECIALIST SOURCES ANSWERHOW DEEP THE KNOWLEDGE GOES.
Article routing runtime
function route_to_articles(query, result_set): candidate_articles = match_articles_by( object_ids, coordinate_ids, mechanism_ids, diagnostic_ids, theory_ids ) rank by: canonical_priority direct_relevance prerequisite_order scale_match temporal_match return reading_route
Example:
reading_route: query: > Why is planetary civilisation technically advanced but still fragile? articles: - CA-ARTICLE-THREE-AXES - CA-ARTICLE-LOWER-FLOOR-LAW - CA-ARTICLE-DEPENDENCY-FLOOR - CA-ARTICLE-FRACTURE-MAP - CA-ARTICLE-REPAIR-MAP
Answer composition contract
answer: answer_id: required query_id: required direct_answer: required atlas_location: objects: [] coordinates: [] mechanisms: [] dependencies: [] relationships: [] external_depth: theories: [] disciplines: [] evidence: claims: [] sources: [] confidence: required uncertainty: assumptions: [] disagreements: [] missing_data: [] routes: article_ids: [] object_ids: [] external_sources: []
Answer modes
answer_modes: COMPACT: includes: - direct_answer - primary_coordinate - key_relationships - confidence EXPLANATORY: includes: - compact - mechanisms - dependencies - historical_context ANALYTICAL: includes: - explanatory - competing_theories - failure_or_repair_paths - evidence_conflicts MACHINE: includes: - canonical_ids - schema_fields - route_manifest - provenance_chain
Synthesis runtime
function synthesise(results, query): facts = retrieve_supported_claims(results) interpretations = retrieve_interpretations(results) conflicts = detect_conflicts(results) gaps = detect_missing_dimensions(results) answer = compose_by_intent( query.intent, facts, interpretations, conflicts, gaps ) return answer
Fact–inference separation
answer_separation: observed: required inferred: required speculative: required normative: required_when_present
OBSERVEDMUST NOT BE MERGED WITHINFERRED.INFERREDMUST NOT BE PRESENTED ASCERTAIN.
Confidence propagation
function answer_confidence(answer): evidence_confidence = weighted_mean(answer.claim_confidences) inference_penalty = calculate_inference_distance(answer) conflict_penalty = calculate_unresolved_conflict(answer) missing_data_penalty = calculate_missing_data(answer) return: evidence_confidence - inference_penalty - conflict_penalty - missing_data_penalty
ANSWER CONFIDENCECANNOT EXCEEDTHE CONFIDENCE OF ITSWEAKEST LOAD-BEARING CLAIM.
Contradiction-aware retrieval
function retrieve_disputed_topic(topic): claims = retrieve_all_claims(topic) cluster = group_by_compatible_position(claims) for position in cluster: calculate: supporting_evidence source_independence scale temporal_scope confidence return: shared_ground competing_positions strongest_evidence unresolved_questions
Missing-data handling
missing_data: allowed: true silent_imputation: false outputs: - unknown - insufficient_evidence - scale_not_available - temporal_gap - schema_gap - disputed
UNKNOWN IS A VALID ATLAS OUTPUT.
Hallucination control
hallucination_controls: require_registered_object_for_canonical_claim: true require_evidence_for_coordinate: true require_mechanism_for_causal_claim: true require_source_trace_for_external_theory: true allow_provisional_output: true label_provisional_output: true
function validate_answer(answer): for claim in answer.claims: require(provenance_chain(claim)) if claim.type == causal: require(causal_mechanism) if claim.type == coordinate_assignment: require(observation_date) require(system_level) if claim.is_inferred: require(explicit_inference_label) reject(untraceable_canonical_claim) return VALID
Query examples
example_1: query: What is the printing press in the Atlas? route: intent: IDENTIFY object: technology role: - capability_enabler - information_multiplier coordinate_type: inherited_and_modifying civos: - memory - education - distribution - control
example_2: query: Why is modern humanity fragile? route: intent: - EXPLAIN - DEPENDENCY - FAILURE coordinate: capability: C4 lifecycle: - DRIFT - FRACTURE - REPAIR habitat: H1 diagnostics: - dependency_floor - lower_floor_law - fracture_map - control_geometry
example_3: query: Is Kardashev more complete than Civilisation Atlas? route: intent: - COMPARE - THEORY result: Kardashev: depth: energy_scale coverage: partial Civilisation_Atlas: role: interoperability_architecture coverage: - capability - lifecycle - habitat - dependencies - repair
Full runtime
function atlas_query(query_text): query = register_query(query_text) intent = detect_intent(query_text) scope = resolve_scope(query_text) plan = build_query_plan( intent, scope ) results = retrieve(plan) results = expand_graph_context(results) results = retrieve_external_depth( results, query ) results = validate_evidence(results) answer = synthesise( results, query ) answer.confidence = answer_confidence(answer) answer.provenance = build_answer_provenance(answer) answer.routes = route_to_articles( query, results ) validate_answer(answer) return answer
Control Tower response
control_tower_response: query_id: required answer_id: required orientation: what_it_is: required where_it_is: required how_it_operates: optional graph: key_objects: [] key_relationships: [] key_dependencies: [] coordinate: primary: optional secondary: optional date: optional depth_routes: theories: [] disciplines: [] evidence: [] diagnostics: fractures: [] repairs: [] transitions: [] control_nodes: [] confidence: required unresolved: [] next_routes: []
Canonical rule
canonical_rule: > Every Atlas answer must begin by identifying the query's intent, scale, objects and temporal scope. Retrieval must combine object identity, coordinates, graph relationships, dependencies, crosswalks and provenance. Answers must preserve uncertainty, competing interpretations and routes to deeper specialist knowledge.
Runtime summary
THE QUERY DEFINES THE INTENT.THE SCOPE DEFINES THE LEVEL.THE OBJECT REGISTRY DEFINES WHAT EXISTS.THE COORDINATE REGISTRY DEFINES WHERE IT IS.THE GRAPH DEFINES WHAT IT CONNECTS TO.THE DEPENDENCY MAP DEFINES WHAT IT REQUIRES.THE CROSSWALK DEFINES WHERE DEPTH LIVES.THE EVIDENCE REGISTRY DEFINES WHAT CAN BE TRUSTED.THE CONTROL TOWER RETURNSONE TRACEABLE ANSWERFROM THE WHOLE WEB.
