The Story You Told Is Not the Story That Happened
That’s not an accusation. It’s a century-old insight. In 1925, the Russian formalists gave it a name: the gap between fabula—what happened in the story world—and syuzhet—the order in which the audience encounters it. Every flashback exploits that gap. Every cold open depends on it. Every non-linear narrative is an argument about which gap matters most. And for a hundred years, nobody built the infrastructure to represent both sides computationally. We did.
Fabula and Syuzhet: The Oldest Problem in Narrative Theory
This matters for production because the questions showrunners actually ask are questions about this gap. “What did the audience know at this point in the story?” is a syuzhet query. “What had actually happened by this point in the timeline?” is a fabula query. They sound similar. They are fundamentally different operations, and answering them correctly requires maintaining both indices simultaneously. Flashback impact analysis. Causal chain traversal. Audience knowledge state at any point in the narrative. These are graph operations. They require graph infrastructure. Most tools don’t even try.
We didn’t invent this framework. Gérard Genette described it in 1972. We’re the first to implement it as production-grade software.
The Infrastructure Was Never Built
The studios tried from their side. Netflix built its Entertainment Knowledge Graph. Disney assembled content metadata teams. But these systems were designed by engineers solving engineering problems—content classification, recommendation, search—without the narrative theory that would have told them what to model. They can tell you which actor appears in which episode. They cannot tell you why a character’s decision in Season 2 makes a storyline in Season 4 impossible. That is not a feature they lack. It is a category of question their architecture cannot represent—because narrative events with typed causal relationships, characters with temporal state, and the structural gap between telling and happening were never part of the data model.
We put both disciplines in the same room. Fabula exists because that conversation finally happened: what if you modelled fabula and syuzhet as dual temporal indices in a graph database, with every connection between events—causal, thematic, emotional—preserved as typed, queryable edges? The answer is infrastructure the industry has needed for decades.
The Memory Twenty-Six Seasons of Television Never Had of Themselves
Consider the Doctor inside that graph. Not a specific Doctor—the Doctor. A character who has changed face, personality, voice, and actor seven times across the classic run while remaining canonically the same entity. The First Doctor and the Seventh Doctor are not different characters. They are the same Character node with different participation states. When the Fourth Doctor references an event the First Doctor witnessed, the graph must track continuity across incarnation—across decades of broadcast, across regenerations, across showrunners who never spoke to each other. That is not a metadata problem. It is a graph traversal across identity states.
It gets harder. “The Master ate Padmasambhava” is a sentence the Doctor Who canon produces in perfect seriousness—a villain absorbing another entity’s body across serials. “Captain” spans fourteen seasons and refers to dozens of different men. The word “Doctor” alone, in naive extraction, becomes a black hole that swallows every reference to every physician on the show. Our Golden Entity Registry resolves all of it: 46,364 canonical entries, 50,353 auto-linked instances, 1,151 flagged for human review. The Brigadier’s thirteen-season arc—Colonel, Brigadier, retiree at Carbury—holds together as one node with a synthesized cross-season description. Seven incarnations of the Doctor stay distinct participation states of one canonical identity. This is the kind of problem that breaks document-shaped tools completely. A wiki either picks one incarnation as primary or becomes an unnavigable wall of text. A graph preserves every incarnation as a distinct participation state while maintaining canonical identity across all of them.
The deepest architectural decision is the one that makes this possible: the separation of identity from state. A Character node represents who someone is—their canonical identity, their aliases, their persistent attributes. An EventParticipation represents who they are in a specific moment—their emotional state, their goals, what they did. The Doctor is one node with hundreds of participations, spread across incarnations, centuries of in-world time, and twenty-six years of broadcast history. Each participation preserves the specific state of the character at that moment without overwriting any other. Documents flatten. Graphs preserve. The graph is the memory twenty-six seasons never had of themselves.
Five Series. Five Things That Broke.
Doctor Who broke identity continuity and broke scale at the same time. Twenty-six seasons. 703 episodes. 337,795 typed relationships in one graph. A protagonist who changes face, personality, and actor while remaining canonically the same entity forced the architecture to separate who a character is from who they are right now. And the twenty-six-year canon forced it to hold together at a scale no story bible has ever reached.
Star Trek: The Next Generation broke alias resolution. One character, seven seasons, five canonical names. The system had to learn that rank changes and cultural naming conventions don’t create new people.
The West Wing broke relationship density. Political narrative generates a web of shifting alliances so interconnected that the graph had to handle density without losing legibility.
Motherland: Fort Salem broke realist ontology. Military witchcraft and alternate history meant the system had to model rules that contradict the real world without treating them as errors.
Indiana Jones broke cinematic time. Decades of in-world history compressed into two hours, with temporal jumps the graph must represent as structure, not as gaps.
We did not choose easy material and claim generality. We chose the material that would break a brittle system, and built one that didn’t break.
What We Believe
“A story is a web of typed relationships. A spreadsheet is a list.”
The problem is shaped like a graph. We built a graph. When the shape of the tool does not match the shape of the problem, you do not get a worse answer. You get a different category of answer—one that cannot represent the thing you are trying to manage.
“Narrative time is not audience time. Track both or track neither.”
Every flashback exploits the gap between fabula and syuzhet. A system that collapses them into one is not simplifying. It is losing information.
“The AI is the research assistant. You are the editor.”
Every extraction is editable. Every entity is mergeable. Every relationship is overridable. Narrative interpretation is not a classification task. It is an editorial judgment, and editorial judgments belong to editors.
“Hallucination is an engineering problem, not an inevitability.”
Schema constraints. Evidence grounding. Confidence gating. Contrastive resolution. Same input, same graph, every time.
“Connections between events matter as much as the events themselves.”
A character is a node. A character’s arc is a path through typed edges over time. If your tool only gives you nodes, it is giving you a cast list, not a story.
The Gap Between Telling and Happening. We Built the Bridge.
For the first time, both sides of every story—what happened and how it’s told—live in a queryable graph you can explore. Browse the live catalog and see the architecture thinking. Or read the arguments behind it.