Skip to main content

Facts

A fact is an atomic, self-contained unit of knowledge extracted from a source. Facts are the substrate of the entire system — concepts, summaries, synthesis, and reports all derive from them.

What makes a fact

Each fact is a single sentence-scale statement that can be read and understood without its surrounding context. During fact decomposition, the extraction LLM is instructed to:

  • Resolve all references — replace every pronoun and demonstrative with the explicit entity. Never write "He proposed the theory"; write "Albert Einstein proposed the theory of general relativity."
  • Name the subject — the fact carries its own subject, not one implied by a prior sentence.
  • Include the topic — the fact is self-contained about what it is.
  • Reject incomplete fragments — unresolvable facts are discarded, not stored ambiguously.

There is no separate coreference-resolution module. Coreference is handled inline by the extraction prompt, which is what makes OKT facts self-contained.

Fact kinds

The extraction prompt defines a set of fact types: claim, account, measurement, formula, quote, procedure, reference, code, perspective, image. The fact_kind field records which type a fact is. Image facts carry an image_url and are produced by a separate multimodal extraction pass.

Provenance

Every fact links back to the sources it came from:

  • fact_sources — the junction table linking a fact to one or more sources. A fact has no source_id column; all source links live in this junction, so a fact can be supported by multiple sources after deduplication merges them.
  • fact_references — sentence-level provenance: one row per (fact_id, source_id, sentence_index), recording exactly which sentences the fact was derived from.

This means every fact can be traced back to the exact sentences in the exact sources that produced it.

Lifecycle

A fact moves through three statuses:

StatusMeaning
newJust extracted, not yet embedded or deduplicated
stableEmbedded and deduplicated; eligible for concept extraction, summaries, synthesis
to_deleteMarked for deletion (e.g. superseded by a duplicate merge)

After facts

Once facts are stable, downstream stages run:

  • Concept & alias extraction links each fact to one or more concepts, building the graph.
  • Summaries fold facts into per-concept slices.
  • Synthesis folds slices into one authoritative definition per concept group.
  • Reports are annotated with similar facts by embedding similarity.

See the Fact Decomposition and Deduplication process pages for the full mechanics.