ThinkingRoot Docs
Core Concepts

Claims, witnesses & entities

The units of knowledge — and the graph they form.

Claim

A claim is the fundamental unit of knowledge: an atomic, source-locked, typed, timestamped statement of fact. Every claim carries:

  • the statement text,
  • a confidence score (0.0–1.0),
  • the source span it was extracted from (so it can always be traced back),
  • an extraction tier and an optional grounding score from the admission (rooting) phase.

Because a claim is locked to its source, "where did this come from?" always has a concrete answer. This is what makes grounded answers auditable.

Witness

A witness is a typed, content-addressed unit derived from primary bytes by a named rule from a fixed catalog. A witness is identified by BLAKE3(rule ‖ canonical_spans), which means the same bytes processed by the same rule produce the same witness — so knowledge dedupes across packs and workspaces automatically.

Witnesses are the evidentiary substrate beneath claims: where a claim is the statement, the witness is the content-addressed proof it was derived from. In the Console and Playground, the witnesses behind an answer show up as witness chips.

Entity

An entity is a named thing in the graph — a person, system, concept, team, API, database, library, file, module, function, config, or organization. Each entity has a canonical name, a type, and a description, and is referenced by the claims that mention it.

Relation

A relation is a typed, directed edge between two entities, backed by the claims that evidence it and carrying a strength (0.0–1.0). Relation types include depends_on, owned_by, replaces, contradicts, implements, uses, contains, created_by, part_of, calls, configured_by, tested_by, and related_to.

Entities + relations are what turn a list of facts into a graph you can walk — e.g. "what depends on this service?" or "who owns this module?"

It's all in CozoDB

Claims, witnesses, entities, and relations live in the engine's embedded CozoDB graph (one per project). You query them through the engine's REST endpoints (/entities, /claims, /witnesses, /relations) or visually in the Brain Graph tab.

How they connect

witness  ──derived-from──▶  primary bytes (a source span)

  └──evidences──▶  claim  ──mentions──▶  entity
                     │                     │
                     └──evidences──▶  relation (entity → entity)