Every edge in the knowledge graph should have a computed trust score reflecting how much
confidence we should place in that relationship. Trust propagates through the graph —
downstream conclusions inherit diminished trust from upstream evidence. Users and agents
can see at a glance which parts of the knowledge graph are well-supported and which are
speculative.
knowledge_edges has evidence_strength (REAL) and evidence_sources (TEXT, unstructured)/graphevidence_validator.py scores PMID relevance but doesn't feed into KG edge trusttrust_score (REAL 0-1), trust_confidence_lower (REAL), trust_confidence_upper (REAL) to knowledge_edgestrust_computation_details (JSON) explaining how trust was computedlast_trust_update timestampGET /api/graph/trust-map returns trust distribution/graph visualization shows trust via edge color/thickness (green=high, red=low)-- Add to knowledge_edges
ALTER TABLE knowledge_edges ADD COLUMN trust_score REAL DEFAULT 0.5;
ALTER TABLE knowledge_edges ADD COLUMN trust_confidence_lower REAL DEFAULT 0.3;
ALTER TABLE knowledge_edges ADD COLUMN trust_confidence_upper REAL DEFAULT 0.7;
ALTER TABLE knowledge_edges ADD COLUMN trust_computation TEXT DEFAULT '{}';
ALTER TABLE knowledge_edges ADD COLUMN last_trust_update TEXT;
ALTER TABLE knowledge_edges ADD COLUMN independent_confirmations INTEGER DEFAULT 0;
ALTER TABLE knowledge_edges ADD COLUMN contradiction_count INTEGER DEFAULT 0;
CREATE INDEX idx_knowledge_edges_trust ON knowledge_edges(trust_score);trust(edge) = base_source_trust
* depth_decay(chain_depth) -- 0.9^depth
* confirmation_boost(n_independent) -- 1 + 0.1*n, capped at 1.5
* contradiction_penalty(n_contra) -- 1 / (1 + 0.3*n)
* recency_factor(age_days) -- max(0.5, 1 - age/365)Use Wilson score interval based on number of supporting vs contradicting evidence:
lower = wilson_lower(n_for, n_total, z=1.96)
upper = wilson_upper(n_for, n_total, z=1.96)014_trust_scores.py — add columns to knowledge_edgestrust_engine.py module:compute_edge_trust(edge_id) — single edge trust from evidencepropagate_trust(source_node_id) — BFS propagation from a nodebatch_recompute_trust() — full graph recomputationget_trust_map(min_trust, max_trust) — filtered view
/graph:gate_low_trust_edges() — flag edges with trust < 0.2b5298ea7 — Evidence chain provenance (evidence trust feeds into KG trust)08c73de3 — Knowledge units (trust scores on composable blocks)4bb367b9 — Epistemic dashboard (trust distribution visualization)