Files
noema/docs/beliefs.md
T
Andy Dixon 73e5753a91 feat: add beliefs with evidence-derived confidence, contradictions and corrections
Phase 6. Beliefs are propositions with a prior set by epistemic kind and a
confidence computed from typed evidence: sigmoid(logit(prior) + slope ×
(support × diversity − opposition)), where support from a single source
is discounted so repetition cannot manufacture certainty, and bounds keep
the mind away from absolute certainty. Every evaluation stores its
breakdown and appends a version row protected by the append-only
trigger; the belief page shows the arithmetic, evidence for and against,
alternatives, contradictions and history.

Contradiction detection is deterministic first (negation plus token
overlap): a hit emits contradiction_detected, links both beliefs and
makes each counter-evidence for the other so both trend to contested.
Operators can assert beliefs (their statement is the evidence), add
evidence, mark a belief wrong (pinned rejected, history kept) and forbid
an inference; do-not-infer corrections block matching hypotheses.
Retracting a memory retracts the evidence that cited it and re-evaluates
the beliefs concerned.

The associate process proposes low-confidence causal hypotheses from
co-occurring notable observations, and the hypothesis handler turns
admitted ones into beliefs with automatic alternatives, closing demo
scenarios 1 and 2 without any model call.
2026-06-21 22:14:12 +01:00

3.7 KiB
Raw Blame History

Belief system

A belief is a proposition the mind holds with an explicit, evidence-derived confidence and a status. Beliefs are never edited in place: every change appends a belief_versions row (append-only trigger) and an event.

Structure

Table Contents
beliefs proposition, optional subject, epistemic kind, status, confidence, prior, version, source, origin event, operator-pinned status
belief_evidence typed references (event, memory, belief, prediction, operator, note) with direction for/against, weight (how much it bears on the proposition), credibility (trust in the source), retracted flag
belief_alternatives competing explanations kept alongside (open, dismissed, promoted)
belief_links contradicts / supports / alternative_to / derived_from between beliefs
belief_versions append-only history with the confidence breakdown and the event that caused each change
corrections operator statements: belief wrong, memory inaccurate, do not infer, entity same/different

Confidence arithmetic

Confidence is never typed in by a person or produced by a model. It is:

for      = Σ weight × credibility over supporting evidence
against  = Σ weight × credibility over opposing evidence
diversity = 0.6 + 0.4 × min(1, (distinct supporting sources − 1) / 2)
confidence = sigmoid( logit(prior) + 1.5 × (for × diversity − against) )   clamped to [0.02, 0.98]
  • The prior depends on the epistemic kind: hypothesis 0.25, assumption/opinion 0.4, claim 0.5, observation/memory 0.6, fact 0.8.
  • Diversity discounts support that all comes from one source, so repetition from a single feed cannot manufacture certainty (threat T4).
  • Absolute certainty is unreachable; the bounds are deliberate (spec §10).

The breakdown (prior, for, against, sources, diversity, log-odds, formula, notes) is stored with every version and shown on the belief page.

Status

Derived from the breakdown unless an operator pinned it:

  • contested when both sides carry real weight (against ≥ half of the discounted support) and confidence is mid-range;
  • rejected below 0.15; hypothesis for hypotheses without support or below 0.5; tentative below 0.7; likely below 0.85; accepted above;
  • superseded when replaced by a newer proposition.

Contradictions

On creation and on gaining support, a belief is compared with the mind's live beliefs. The deterministic pass detects the same content with flipped polarity (negation words plus token Jaccard ≥ 0.6). A hit emits contradiction_detected, links both beliefs, and makes each counter-evidence for the other weighted by the other's confidence, so both move towards contested until more evidence arrives. Paraphrase-level judgement is added by an LLM-assisted process once providers exist; it can only propose, and the same arithmetic applies.

Hypothesis generation

The associate process proposes causal hypotheses when two notable observations occur within a window ("deployment … may have caused: latency alert"). Each observation is weak evidence (weight 0.15) so the belief starts as a hypothesis around 0.3–0.4; independent support is needed to move it. Alternatives ("coincidence", "a third factor") are recorded automatically.

Corrections

  • This belief is wrong pins the status to rejected, adds operator counter-evidence, records a belief_wrong correction and a belief_retracted event. History is kept.
  • Do not infer this again stores a do_not_infer correction; future creations of a matching proposition (token Jaccard ≥ 0.7) are refused and logged as metacognition.
  • This memory is inaccurate retracts the memory and marks belief evidence citing it as retracted; affected beliefs are re-evaluated with a belief_updated event.