story-to-pack: add the corpora and the catalogue v2/v3
Fourteen corpora split and classified: aesop, bierce, chekhov, holmes, keefe, lawson, lorimer, maupassant, nobody, plaintales, poe, torchy, wallingford and winesburg, each with its splitter and the hand-written groups and pages; catalogue v2 and v3; and the shared splitters gutenberg_chunks.py, se_split.py and se_build.py. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019rwKTmug58sEsJ72AuWsEi
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
e5617b86ba
commit
3a4758172d
@@ -0,0 +1,107 @@
|
||||
# Chekhov reference set: *The Schoolmistress, and Other Stories* (tr. Garnett, 1918)
|
||||
|
||||
A hand-made comparison baseline for the story-to-pack pipeline, the fourth beside O. Henry
|
||||
(`../v2/claude/`), Wharton (`../wharton/`) and Jacobs (`../jacobs/`). Claude wrote every summary,
|
||||
predicament, group and option after reading the scenes. **No local or hosted inference was used.**
|
||||
Compare the local-model runs against it, but do not treat it as ground truth. It is one careful
|
||||
reading.
|
||||
|
||||
| File | What it is |
|
||||
| --- | --- |
|
||||
| `corpus/schoolmistress-and-other-stories.txt` | Project Gutenberg #1732, plain text (public domain) |
|
||||
| `split_gutenberg.py` | → `stories.json` (21 stories, split on the contents titles) and `chunks.json` (228 scenes, same 320-word paragraph rule as `../chunk.py`) |
|
||||
| `dump.py` | `python3 dump.py A B` prints scenes A..B for reading |
|
||||
| `claude/batches/sNN.json` | per story: `{chunk, story, summary, predicament}`, the same schema as `../jacobs/claude/batches/` |
|
||||
| `claude/groups_src.py` | the groups, options and per-story protagonist standing |
|
||||
| `claude/build.py` | checks everything, then writes `claude/records.json` and `claude/groups.json`. It is Jacobs' `build.py` unchanged, because its paths are already relative. |
|
||||
| `claude/page.py` | → `claude/REFERENCE.html`, the readable page |
|
||||
|
||||
Rebuild: `python3 split_gutenberg.py && cd claude && python3 build.py && python3 page.py`.
|
||||
|
||||
## What is in it
|
||||
|
||||
- **228 predicaments**, one sentence each (median 20 words, min 15, max 23). They follow the
|
||||
`redescribe.py` rules: no names, jobs, places or story-only objects. The `topic_words` leak check
|
||||
flags 24 of 228. Twenty of those are role or relationship words (father, guest, servant, customer,
|
||||
newcomer, rival, neighbour …), kept on purpose because the design's cast is made of roles. The
|
||||
other four are list words used in another sense: "flat" (as in dull), "station" (as in rank),
|
||||
"room" and "dinner".
|
||||
- **17 groups**, each a situation that recurs in **two or more stories**. Each scene sits in at most
|
||||
one group. **129 are assigned and 99 (43%) fit nothing that recurs.** That unassigned share is
|
||||
three times Jacobs' 13%, and it is the corpus, not an oversight (see below).
|
||||
- Under the catalogue's single recurrence rule (`../catalogue/recurrence.log`: at least 5 scenes,
|
||||
at least 3 stories, no story over 50%), **6 of the 17 pass**: G01, G04, G05, G10, G11 and G13.
|
||||
Three groups span only two stories (G08, G12, G16). The other eight are held back by one story
|
||||
holding more than half their members.
|
||||
|
||||
## Options
|
||||
|
||||
3 to 5 per group, 73 in all. 61 come from what someone in a scene did (`scene:N`), 6 are
|
||||
archetypes and 6 fill gaps. **8 scene options cite a scene outside their own group**, and
|
||||
`groups.json` marks each one `in_group: false`. As in Wharton, most of these come from the scene
|
||||
next to a member, where the character acts (105 and 96 for G06, 146 and 150 for G07, 130 for
|
||||
G16).
|
||||
|
||||
## Moves
|
||||
|
||||
Moves are spine paths with a direction only (`+`, `-`, `risk`, `set`). There are no magnitudes,
|
||||
as the design requires. **Skill labels proposed for this corpus: `patience` and `tact`.**
|
||||
Jacobs' `nerve` and `cunning` do not fit. Almost nobody in these stories dares or schemes. What
|
||||
people do is endure (the old ferryman, the old messenger, the schoolmistress) or handle their
|
||||
betters (the cattle dealer's tips, the clerk's holiday letter, the craftsman rehearsing his
|
||||
grovelling). Two directions are unusual here: `patience +` often goes with `standing -` or
|
||||
`relationships.* -`, because enduring costs something, and several options set a flag
|
||||
(`resigned`, `hardened`, `grief_unspoken`) rather than move a number.
|
||||
|
||||
## Stage
|
||||
|
||||
Stage comes from protagonist standing, judged **per story, not per scene**, as in Jacobs
|
||||
(`STANDING` in `groups_src.py`). The corpus leans low and middle: 8 low, 9 middle, 4 high. Three
|
||||
calls are judgement: *Champagne*'s narrator is a poor noble in a low post (middle); *On Official
|
||||
Duty* is read from the young official's side, not the old messenger's (middle); *The
|
||||
Head-Gardener's Story* is read from the gardener, not the buyers (low).
|
||||
|
||||
## How this corpus differs
|
||||
|
||||
**Much of it is plotless, and that shows in the unassigned count.** Chekhov gives whole stories to
|
||||
a mood or a line of thought. *A Nervous Breakdown* is 33 scenes of one young man's night out and
|
||||
collapse, and 30 of them fit no recurring group. The other large blocks are *After the Theatre*
|
||||
(4 of 4, a girl's causeless joy), *The Bet* (8 of 10, a single contrived wager), *The
|
||||
Head-Gardener's Story* (6 of 7, a told legend) and *The Cattle-Dealers* (15 of 25, a journey with
|
||||
long passages of nothing happening). Forcing these into groups would have produced mood groups
|
||||
("a young man broods at night"), which is exactly what the pipeline is supposed to reject.
|
||||
|
||||
**Where it does recur, the situations are mostly new to the catalogue.** The existing 36 entries
|
||||
come from courtship, secrets and schemes. Chekhov's recurring material is endurance, grief and
|
||||
being small:
|
||||
|
||||
| Group | Catalogue entry |
|
||||
| --- | --- |
|
||||
| G01 Stuck in a life that has stopped meaning anything | **new** |
|
||||
| G02 A grief nobody will hear | **new** (not `unspoken`, which is about lovers) |
|
||||
| G03 A glimpse of the life you are missing | **new** |
|
||||
| G04 On the outside of other people's warmth | **new** |
|
||||
| G05 Talked down to by those above you | overlaps `power_over_you` |
|
||||
| G06 Nothing moves without a little something | **new** (not `compromise_for_money`: the payment is expected, not a betrayal of standards) |
|
||||
| G07 Your work goes unrecognised | overlaps `overlooked` |
|
||||
| G08 A marriage gone numb | overlaps `home_unseen` |
|
||||
| G09 Too late to make it right | **new** (next to `owning_up`, but there is nobody left to own up to) |
|
||||
| G10 Drawn to someone of another rank | overlaps `station` |
|
||||
| G11 Want nothing and nothing can hurt you | **new** |
|
||||
| G12 Racing to save someone who is slipping away | **new** |
|
||||
| G13 At odds with a parent over the life you chose | **new** (partly `peace_at_home`) |
|
||||
| G14 Frightened by something you cannot explain | overlaps `dread` |
|
||||
| G15 Far from home and your own people | **new** (the reverse of `homecoming`; partly `newcomer`) |
|
||||
| G16 A stranger's death lands on you | **new** |
|
||||
| G17 Covering up a disgrace | overlaps `hiding_from_close` and `past_comes_back` |
|
||||
|
||||
That is 11 new situation types and 6 overlaps. The predicaments are written to move to other
|
||||
settings. G06 needs only someone who controls an ordinary service, and G04 only a crowd that is
|
||||
celebrating without you.
|
||||
|
||||
**The groups are thinner and broader than Jacobs'.** Several (G02, G07, G14) are one story plus
|
||||
two or three scenes from others, so a story holds more than half their members. G05 is the
|
||||
broadest group in the set, with members from 7 stories, and is closer to a register than the
|
||||
others are: in this corpus almost everyone is talked down to by somebody. A tool should expect a
|
||||
Chekhov-like corpus to give fewer, looser situations per story, and it will need more stories than
|
||||
the design's 20-30 to fill a pack.
|
||||
Reference in New Issue
Block a user