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.
Spreadsheets List. Wikis Describe. Only Graphs Answer.
It gets harder. “John Smith” is an alias the Doctor uses across multiple incarnations. John Smith in 1913 is the Tenth Doctor in a human disguise. John Smith in 2007 is also the Tenth Doctor, in a different context. But in the expanded canon, other incarnations have used the same alias. The entity resolution system must understand that John Smith is always the Doctor, even when the faces are different and the contexts are decades apart. This is the kind of problem that breaks document-shaped tools completely. A wiki page for “The Doctor” 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. The Doctor has hundreds of participations, spread across incarnations, centuries of in-world time, and fifty years of broadcast history. Each participation preserves the specific state of the character at that moment without overwriting any other. Documents flatten. Graphs preserve.
Five Series. Five Things That Broke.
Doctor Who broke identity continuity. 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.
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.