Relata

Store what you know. Find out how it connects.

Relata stores arbitrary information, discovers evidence-backed relationships between items, and retrieves related knowledge with an explanation of why each result was returned.

Sign in with Blackwall How it works

Three numbers, never mixed up

Most systems collapse "these documents read alike", "these documents are connected" and "this document answers your question" into a single relevance figure. They are three different claims with three different meanings, and Relata keeps them apart in storage, in the API and on screen.

Semantic similarity

How alike are these two pieces of text?

Cosine distance between embeddings. Nothing more. Two incident reports written by the same team in the same house style will score highly and describe entirely different events.

Relationship strength

How well evidenced is a link between two items?

A weighted sum of named signals, each stored with its own value and weight, so the arithmetic is always inspectable. Not a probability.

Query relevance

How well does this item answer this question?

Several retrieval paths fused by rank. Comparable within one result set, not across queries — and it says so.

Similarity is not a relationship

This is the distinction the whole design exists to preserve. Two documents that share wording are not thereby connected; two documents that mention the same company are not thereby about the same thing. Relata records what it actually found:

contradicts strength 0.72 suggested by analysis — not yet reviewed
SignalValueStrengthWeight
claim_contradictioncost: 42,000 and 51,5001.000.22
shared_entityExample Ltd1.000.25
semantic_similarity0.89 cosine0.760.30

Both figures are named. Relata does not decide which is correct.

What a language model is allowed to do

A model may classify a relationship's type or describe a connection. Its opinion is one signal, weighted 0.15 — below the threshold at which a relationship is stored at all. A model cannot create a connection on its own, however confident it is. That is a property of the arithmetic, not a promise, and there is a test asserting it.

Signal weights in relationship-score-v1
SignalWeightWhat it means
content_hash_match 0.45 Byte-identical content.
semantic_similarity 0.30 How alike the wording is, rebased so that ordinary similarity counts for little.
shared_entity 0.25 An exact entity match, discounted by how common that entity is.
claim_support 0.22 Two statements agree about the same subject.
claim_contradiction 0.22 Two statements disagree about the same subject.
model_classification 0.15 A language model's opinion. One signal, weighted below the storage threshold, so it can never create a relationship on its own.
shared_concept 0.12 Overlapping concept vocabulary.
alias_entity 0.10 A match through an alias a person confirmed. Unconfirmed candidates count for nothing.
temporal_proximity 0.10 Created close together in time.
shared_metadata 0.08 Matching metadata you supplied.
user_confirmation 1.00 A person confirmed it. This dominates everything else.
user_rejection -1.00 A person rejected it. This drives the score to zero.

What it will not do

Honest about the limits

Relationship scores are heuristic strengths, not calibrated probabilities — the weights were chosen by judgement, not fitted to labelled data. A 0.7 does not mean "70% likely to be real". Deterministic extraction is deliberately narrow. There is no OCR. Prompt-injection defences make injection much harder and bound its effect; they are not a proof.

The full account is on the how-it-works page, including what is verified and what is merely intended.