Machine-readable page content
Canonical: https://semiotic.nteract.io/examples/distant-reading
Can You Know a Book Better Without Reading It?
A remake of the distant-reading essay
This interface compares four novels through chapter signals, narrative phases, and character flows. Use those views to locate structural changes, then return to the text with a more specific question.
1818Frankenstein
Mary Shelley
Its strongest shape is not the monster. It is nested testimony that turns inwardness into motion.
24chapter bins
74,500modeled words
Ch. 23peak pressure
10volatility
01The book as a signal field
Pick a signal, then scan the chapter map. A tall mark identifies a chapter where that signal is concentrated and gives you a place to ask what changed.
Interior close-upChapter 11Reflection, self-argument, memory, shame, and inward narration. Score: 80. Dominant texture:interior. Estimated local weight: 3,058 words.
02Interior through the book
A chapter-level trace lets the reader see where the chosen signal gathers, breaks, and returns.
03Where that signal lives
The same chapter scores are collapsed into narrative phases, trading local detail for a quicker structural read.
04A distant reading still has characters
The Sankey traces who frames whom, which forces mediate action, and which places organize the book. It summarizes modeled relationships rather than plot events.
QuestionWhen does confession become pursuit?
Source noteModeled as 24 chapter-level bins from the 1818 public-domain novel.
05Corpus fingerprints
Each dot is a chapter. The books keep their color, so clustering shows when different novels briefly occupy the same signal territory.
06Visualization changes the first question
The data model is intentionally small: four local signal arrays, phase summaries, and a network per book. These views prepare questions for close reading; they do not interpret a passage or settle what a novel means.
JSX
import { LineChart, BarChart, SankeyDiagram } from "semiotic" import { BOOKS, signalRows, phaseRows } from "./data/distantReading" const book = BOOKS.find((d) => d.id === "frankenstein") const activeSignal = "interiority" <LineChart data={signalRows(book, activeSignal)} xAccessor="chapter" yAccessor="value" yExtent={[0, 100]} /> <BarChart data={phaseRows(book, activeSignal)} categoryAccessor="phase" valueAccessor="score" orientation="horizontal" /> <SankeyDiagram nodes={book.network.nodes} edges={book.network.edges} nodeIdAccessor="id" sourceAccessor="source" targetAccessor="target" valueAccessor="value" />