FR version is available. Content is displayed in original English for accuracy.
SynapTale builds a model of a story as a temporal graph made up of nodes (entities) and edges (their actions and relationships). The graph is not a visualization of the wiki. The wiki, timelines, relationship histories, and analytics are projections of the graph.
The current demo contains 232 entities, 1,852 edges, and a snapshot of the story’s state at every chapter. By chapter 100, it still remembers a promise made in chapter 8 and turns the story into a set of source-verifiable facts.
The most interesting things can be found in the graph itself and in the Analytics tab. A few things I found:
1. The character with the highest kill count is the Tin Woodman—the same character who cries over a beetle he accidentally crushed. Dorothy comes second, with three killing events. 2. Dorothy never deceives anyone during the first 100 chapters of the series. 3. The Scarecrow’s debt to the stork has remained active for 92 chapters, starting in chapter 8. 4. The Cowardly Lion ranks third by number of threats. 5. The first 100 chapters contain 60 secrets and 254 dialogue events.
Technical details
1. Five different multi-agent pipelines combining LLMs and NLP: a prescan, ontology construction, chapter-by-chapter graph extraction, retrospective validation over spans of dozens of chapters, and a linguistic prescan for speech profiles and linguistic edges.
2. A living story needs a living graph. It has to account for time, because entities and the relationships between them evolve. A simple is_active field is not enough.
I ended up with three types of edges:
event: an instantaneous action; identity: a fact; state: a persistent action whose termination requires justification and a supporting quote from the text.
The vast majority of edges are events and end in the same chapter in which they began. This allows the system to scale well, since only a minority of state and identity edges remain continuously active.
3. Ontology. You cannot simply ask an LLM to extract entities and relationships into a graph. With every chapter, even the smartest model will keep inventing unimportant fields, creating new aliases for existing fields, and representing the same fields inconsistently.
Before extracting the graph, the system therefore performs an ontology scan across the entire story. It captures story-specific entity and edge types, along with their fields and descriptions.
4. Epistemics. Events are only one part of a story. It is also important to understand how information is distributed, which is difficult to represent using event edges alone.
I addressed this by introducing a new node type: epistemic nodes, which capture different entities’ perspectives on the same fact. Subtle hints can still be missed, the system is not yet perfect in this area.

Discussion (9 Comments)Read Original on HackerNews
Do you know what are the scaling limits of this kind of graph?
EDIT: In the past people used to pore over each line of series like asoiaf to hand compile their own wiki of this kind of data and GRRM was known to consult them to ensure consistency in his universe. So you never know, a tool like this may finally help him get over the finishing line for resolving his nebulous knot of plot lines! (tongue in cheek...)
On scaling: context almost completely stops growing after chapter ~70 in the case of the Oz series. By my estimates it's chapter ~90 at the latest depending on the story — for practically any story, context growth flattens out around there. The theoretical limit of the system should be somewhere around 80 million words.
1. A wiki for the story. For the author and for readers, so you don't forget what happened 300 chapters ago, which promises are still active, and so you can explore a story you love structurally.
2. Translation. The system scales to millions of words, so when it translates chapter 100 it has the full, precise context of what happened in chapter 1, including speech registers, relationships between entities, and a synopsis of the world.
I read very long web serials myself, and I kept losing the thread of stories I loved. So primarily it's a way to build a model of a story's world, and two things fall out of that.