Semantic context graph
How the second brain is stored, in three layers.
The second brain is stored as a graph of nodes (things) and edges (how they relate). Every node and edge links to the evidence it came from and carries a trust level. The graph is versioned, so every change creates a new version and any past answer can be replayed on the version that produced it.
You can browse the graph in Context → Studio.
Three layers
Each layer builds on the one before it.
Ontology: what things are
Entities, such as customers or orders, with the tables they live in, their key and their grain. Columns, each with a role: identifier, measure, dimension, time, foreign key or personal. And the words people use for all of these.
A column's role decides how Doram may use it. Measures are added up, dimensions are used to split, and personal columns are masked.
Context: how things connect, and why
Every link between nodes, and the knowledge around the data that no schema records: joins, rules, access policies, events and decisions. Joins carry their keys and a weight from how often they're used.
Every edge has a validity window, so the graph can be read as of any past date.
Semantic: how numbers are counted
One approved definition for each metric: the entity, the measure, how it's aggregated, its grain, the rules that apply, the dimensions it can be split by, and whether it can be added up across them. Because the definition is fixed, the same metric, split and filters always produce the same SQL.
Why a graph
One question touches several things at once: a metric, the tables behind it, the rules that apply to it and what happened last quarter. Edges let Doram reach all of them from one starting point, within fixed limits.