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
15 KiB
Aesop reference set: Three Hundred Aesop's Fables (tr. George Fyler Townsend, 1867)
A hand-made comparison baseline for the story-to-pack pipeline, a sibling of the Jacobs set in
../jacobs/ and the Lawson set in ../lawson/. Claude read all 313 fables and wrote every summary,
predicament, group, option and measurement row. No inference of any kind was used. Do not treat
it as ground truth: it is one careful reading.
Aesop has two jobs here. It is a normal reference set. It is also a test of a different claim: a story supplies predicaments well but rarely says what a move leads to, while a fable puts situation, move and outcome in one paragraph. The second job is measured in Fables as an option source.
| File | What it is |
|---|---|
corpus/three-hundred-aesops-fables.txt |
Project Gutenberg eBook #21 (public domain) |
split_gutenberg.py |
→ stories.json and chunks.json: 313 fables, one story and one scene per fable (see below) |
claude/batches/sNNN.json |
{chunk, story, summary, predicament, moral}, one file per run of fables, named by the first fable in it so that the s*.json glob sorts in fable order |
claude/groups_src.py |
the groups, their options, and the protagonist's standing in every fable |
claude/options_src.py |
the options measurement, with the definitions of its new: entries and the rules for stated |
claude/build.py |
checks everything, then writes claude/records.json, claude/groups.json and claude/options_by_entry.json |
claude/page.py |
→ claude/REFERENCE.html, the readable page, with the measurement at the end |
Rebuild: python3 split_gutenberg.py from this directory, then
cd claude && python3 build.py && python3 page.py.
One scene per fable departs from the usual 80-word scene rule on purpose. The median fable is 97 words, and many are under 80, so the rule would discard them, and a fable split in two would lose its turn. A group's fable count is therefore also its story count.
What is in it
- 313 predicaments: one sentence each (median 21 words, min 15, max 24), transplanted to a
workplace. They contain no animal, plant or god names and no story-only objects. Human role words
stay (someone powerful, a partner, a newcomer, the boss).
build.pyenforces this with a list of every creature, plant, god and prop in the book, not withtopic_words. The list caught nine predicaments that used an animal word as a verb or an idiom ("crow about it", "swallow it whole", "the lion's share"), and all nine were reworded. - 115 stated morals, recorded verbatim. A moral here is the fable's unquoted, generalising
sentence ("Look before you leap."). Where the lesson is only spoken by a character inside quotation
marks, as in The Lion and the Mouse,
moralisnull.build.pychecks every moral is in the text. - 16 groups of 13 or more fables, the recurrence rule scaled to this corpus (at least
max(3, 4% of 313) = 13). They range from 13 to 18 fables. 4 small groups of 5 to 12 are marked
smalland reported separately: G17 letting a known predator inside (6), G18 the lion's share (6), G19 a bad record when you need trust (5), G20 a warning before the trouble (6). Each fable sits in at most one group: 253 are assigned and 60 fit nothing that recurs. - Options: 3 to 5 per group, 94 in all. 87 come from what someone in a member fable did or
refused to do (
scene:N), 7 fill gaps, and none are archetypes. No option cites a fable outside its own group, unlike Jacobs (8) and Lawson (14). A fable is a whole turn, so the move and the fable are always the same scene. - Moves: spine paths with a direction only (
+,-,risk,set). There are no magnitudes. Skills proposed for this corpus:wit, for seeing through a trick and turning it, andprudence, for looking before you leap, knowing your limits and keeping what you have. Between them they are most of Aesop's morals. - Stage comes from protagonist standing, judged per fable in
STANDINGingroups_src.py: 157 fables rank low, 119 middle and 37 high. No group comes out stagehigh(11 low, 9 middle). Aesop's "you" is usually the lamb, not the wolf, and the high-standing fables (a father, a master, a captor) scatter across groups rather than recurring together.
The groups:
| Group | Fables | Nearest catalogue entry | |
|---|---|---|---|
| G01 | A friendly approach from someone who would gain by your fall | 16 | new (near sure_thing) |
| G02 | At the mercy of someone who has already decided | 14 | at_their_mercy |
| G03 | Trading one hardship for another | 14 | new |
| G04 | Envying another's gift | 17 | new (near overlooked) |
| G05 | Passing for more than you are | 14 | pretence |
| G06 | Riding high | 13 | new |
| G07 | Sneered at by someone showier | 13 | new (near power_over_you) |
| G08 | Help asked in need | 14 | plea_for_help |
| G09 | Wanting more than you hold | 13 | new |
| G10 | Your side divided | 15 | new |
| G11 | A partner you may not be able to count on | 18 | new (near used) |
| G12 | Rushing in without looking | 13 | new |
| G13 | Pointing at others' faults | 14 | new (near own_words_back) |
| G14 | Liberties between the weak and the strong | 15 | new (near revenge) |
| G15 | A hard lot | 14 | new (near dead_end) |
| G16 | Worked hard, badly repaid | 13 | new (near overlooked) |
Only three large groups match an existing entry. The rest are situations about self-regard and prudence (envy, pride, greed, heedlessness, pointing at faults), which no story corpus isolated. The story corpora found them only as the texture of longer plots.
How this corpus differs
Recurrence is the corpus's nature, not something to be found. Every earlier corpus needed a search for the handful of situations its stories kept returning to. Aesop is built from a small stock of situations told over and over with different animals: the predator's invitation alone appears sixteen times. The problem flips. Nearly every fable recurs, and the work is deciding which of several overlapping situations a fable belongs to. The Fox and the Goat is a trap, a heedless leap, and a partner who uses you. It sits in G01.
The predicaments are the cleanest yet. There are no names to strip, and the whole cast is already a set of roles: the strong, the weak, the flatterer, the partner, the master. Transplanting to a workplace needs only the animal removed. The cost is abstraction: a pack built on these predicaments alone would have no setting at all.
Two groups hold both sides of one situation. G13 holds the critic who shares the fault and the
one criticised. G14 holds the weak who strike at the fallen and the strong being needled. In Jacobs
and Lawson the actor was always on one side. Here the fable often follows both parties to their fate,
and splitting them would leave neither side at 13. The measurement does the same for sneered_at:
G07's predicaments are all from the side of the one sneered at, but four of its fables (the heifer, the
horse, the olive, the hare) also supply the sneerer's move as an option.
Power runs through nearly everything. Five of the sixteen groups turn on an imbalance of power (G01, G02, G03, G14, G16), and two of the small ones as well. Of the options measured below, 110 of 242 are about the actor's standing going down. It is the most power-heavy corpus so far, and the least domestic: there is almost no home, love, grief or dread.
Fables as an option source
claude/options_by_entry.json maps a catalogue entry (a v2 id, or new:<id> defined under
_new_entries) to the options the fables supply for it. Each option is
{text, moves, source: "chunk:N", evidence, stated}. evidence is the verbatim moral, or an
excerpt of at most 30 words, and build.py checks both. stated is true only if the fable's own
outcome or moral shows the direction of every path in moves. The rules, applied the same way to
every row, are in the docstring of options_src.py. The main points:
- An outcome is read as a direction by a fixed table. Killed, caught, beaten, driven out or publicly
rebuked counts as
standing -. Goods, food or pay lost counts asmoney -. A counterpart who repays, deserts or stops trusting you counts asrelationships. Reading "eaten" asstanding -is a convention. The fable does not say it. - A moral that only calls a move wise or foolish ("Look before you leap.") states no direction. One that names the effect ("Slow but steady wins the race.") does.
- An outcome the move did not cause is not counted, however pointed. The sparrow is taken by a hawk while mocking the hare, but mocking did not bring the hawk.
riskis stated only when one fable shows the same move ending both ways. That happens once, in The Birdcatcher, the Partridge, and the Cock: one bird's plea spares it, and the other's does not.- Measurement moves use only
money,standingandrelationships.<role>. A skill label or a flag is a decision about the option, not an outcome any text can show. Leaving them out means every row could in principle be stated. The group options ingroups_src.pykeep them.
Results:
| Catalogue v2 entries with at least one sourced option | 32 of 82 (26 with at least one stated option) |
new: entries |
19, all with at least one stated option |
| Options | 242, from 229 fables (84 for v2 entries, 158 for new ones) |
stated: true |
165 (68%): 62 of 84 for v2 entries (74%), 103 of 158 for new ones (65%) |
| Entries with three or more stated options | 21 |
Entries with a stated + option and a stated - option |
15 |
The v2 entries the fables speak to are mostly about power, deception and help. at_their_mercy
gets 14 options (12 stated), plea_for_help 11 (9), pretence 8 (6) and warning 5 (2). Another 28
entries get one to four options each. The 50 entries with nothing are almost all of the catalogue's
home, love, loss, fear and duty. Examples are home_unseen, grief, losing_them, dread,
duty_against_love, past_comes_back and promised_elsewhere. Aesop has no inner life and almost
no family.
The 19 new entries are friendly_predator, better_the_devil, ape_your_betters, riding_high,
sneered_at, grasping, divided, doubtful_ally, heedless, pot_and_kettle,
needling_the_strong, hard_lot, used_up, predator_inside, lions_share, bad_record,
asking_above, please_everyone and make_them_move. Each definition says which v2 entry it sits
nearest to and how the decision differs.
Against the story packs. Every option in a story pack has an inferred direction: the author judged where the move leads, because the story does not say.
| Pack | Options | scene:N |
archetype |
filled |
Directions stated by the text |
|---|---|---|---|---|---|
Lawson (../lawson/claude/groups.json) |
142 | 118 | 12 | 12 | 0 (all inferred) |
Bierce (../bierce/claude/groups.json) |
128 | 96 | 15 | 17 | 0 (all inferred) |
Aesop groups (claude/groups.json) |
94 | 87 | 0 | 7 | not separately judged |
Aesop measurement (claude/options_by_entry.json) |
242 | 242 (all from a fable) | 0 | 0 | 165 (68%) |
Even a scene:N option in a story pack is sourced only for its move: the scene shows someone doing
it, and its effect is the author's call. In the measurement, two thirds of the options are sourced for
the effect as well.
The 68% needs three qualifications before anyone relies on it.
- The stated options are thin. 226 of the 242 options carry a single path, and 15 of the 16 two-path options are stated. A fable follows one actor to one fate, and that fate is nearly always their standing. Story-pack options carry more: Lawson's average 1.67 spine paths each, Bierce's 1.18 and Aesop's own group options 1.40, before skills and flags. What a fable usually leaves unsaid is the second path, how the move changes a relationship.
- They are almost all downside. Of the 165 stated options, 136 move only in the
-direction. By path, 90 statedstanding -against 12 statedstanding +. A fable states the price of the tempting mistake: the goat in the well, the crow who sang, the dog who dropped his meat. The wise move's reward is usually just that the harm does not happen, and that gives no direction. The fox who stays outside the sick lion's cave is right, and nothing moves for him. That is why the options markedfalseare so often the prudent ones. Only 15 entries get a stated option in each direction. - The coverage is narrow. 32 of 82 entries, with most of the weight on a handful. The fables tell you a great deal about predators, pretenders and the greedy, and nothing about a spouse, a dead friend or a night watch.
Verdict. Fables are a real source of effect directions, and a far better one than stories, but
only for one kind of option. For a tempting mistake in a situation of power, greed, pride or trust,
the fable states where it leads, with evidence, seven times in ten (136 of the 190 options that only
move down). For any other option it is about half (29 of 52). That is enough to anchor
the - direction of an event's tempting option, and to check an author's inferred direction against
a text. Fables do not supply the prudent option's payoff, the relationship side of a move, or skills,
and they say almost nothing about the catalogue's domestic and inward half. The same applies to them as
a source of predicaments. Use them to calibrate the downside of options in power and trust events,
not to build whole events.
Known defects
- Drop capitals. The transcription lost each fable's printed drop capital, so many fables open
with the first word's initial missing: "WOLF, meeting with a Lamb" (fable 1), "TEE KITES" (180).
chunks.jsonis left as split. Morals and evidence are quoted from later in the text, so none is affected. - Other transcription slips, left as split: "an a woman" (194), "use I gave credence" (280), "all bag in front" (260).
- Fable 89, The Æthiop, rests on a racist premise, that a black servant's colour is dirt to be scrubbed off. Its predicament keeps only the transplantable turn: trying to scrub away someone's nature, and hurting them. It is unassigned.
- Etiologies are not situations. The Goods and the Ills (250), The Lark Burying Her Father (263), The Man, the Horse, the Ox, and the Dog (203) and The Two Bags (260) explain how something came to be. Their predicaments are strained, and three of the four are unassigned.
- G11 is the loosest large group (18 fables). It holds every doubtful partner, from the companion who flees a bear to the boastful suitor, joined only by the question "can I count on them?".
- Standing is judged per fable from the predicament's "you", not from the animal. So the lion in The Lion and the Mouse ranks high because the predicament puts the player in the lion's place.
The Lorimer advice-book pilot running alongside this one was not read. The two results are independent.