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
150 lines
12 KiB
Python
150 lines
12 KiB
Python
"""Hand-built reference grouping of the Maupassant predicaments (Claude-written, no local inference).
|
|
|
|
Each scene is in at most one group; scenes that fit no recurring situation stay unassigned.
|
|
Options follow DESIGN.md: 3-5 per group, each marked by where it came from --
|
|
'archetype' a fixed, setting-free option
|
|
'scene:N' what someone in scene N actually did (or refused to do)
|
|
'filled' written to fill a gap the scenes leave
|
|
`moves` names spine paths and a direction only (+ / - / risk / set). No magnitudes: the model never
|
|
chooses a number. Skill labels proposed for this corpus: pride, shrewdness.
|
|
pride self-regard and the wish to be seen well; '-' is swallowing it
|
|
shrewdness the peasant's and the petty official's calculation: angles, half-truths, bargains
|
|
"""
|
|
G = [
|
|
dict(id='G01', name='Keeping up appearances before people who matter',
|
|
predicament='People whose good opinion you want are about to see you, and what they will see falls short of what you want them to think.',
|
|
actor='person of modest standing', wants='to be thought well of', counterpart='people whose opinion matters',
|
|
members=[6, 73, 74, 75, 76, 90],
|
|
options=[
|
|
('Borrow what you need to look the part.', 'scene:75', {'standing':'+', 'relationships.lender':'+', 'flags.borrowed_finery':'set', 'money':'risk'}),
|
|
('Spend what was put by for something else.', 'scene:74', {'money':'-', 'standing':'+', 'relationships.spouse':'-'}),
|
|
('Stay away rather than be seen as you are.', 'scene:73', {'pride':'+', 'standing':'-'}),
|
|
('Put on a show of feeling and talk over everyone.', 'scene:6', {'shrewdness':'+', 'standing':'risk'}),
|
|
('Go as you are.', 'archetype', {'pride':'-', 'standing':'risk'})]),
|
|
dict(id='G02', name='A cover-up that costs more than the truth',
|
|
predicament='You covered something up instead of owning it, and keeping it covered is now costing far more than the truth would.',
|
|
actor='person with something to hide', wants='to keep it hidden', counterpart='the person it is hidden from',
|
|
members=[3, 4, 5, 23, 34, 36, 37, 38, 40, 77, 78, 79],
|
|
options=[
|
|
('Keep it covered, whatever it costs.', 'scene:79', {'money':'-', 'relationships.deceived':'+', 'flags.cover_up':'set'}),
|
|
('Buy time with one more small lie.', 'scene:78', {'shrewdness':'+', 'relationships.deceived':'risk'}),
|
|
('Get someone in authority to bend the rules for you.', 'scene:5', {'relationships.official':'+', 'standing':'risk'}),
|
|
('Swear to a half-truth.', 'scene:34', {'shrewdness':'+', 'relationships.deceived':'risk'}),
|
|
('Tell it all, at last.', 'scene:40', {'relationships.deceived':'risk', 'standing':'-', 'pride':'-'})]),
|
|
dict(id='G03', name="A relative's death, counted as a cost",
|
|
predicament='A relative is dying, and what weighs most with the family is what the death will cost them in time, money or good name.',
|
|
actor='family member', wants='the death handled without loss', counterpart='the dying relative',
|
|
members=[1, 2, 7, 82, 83, 85, 88, 89],
|
|
options=[
|
|
('Get on with the work and plan around the death.', 'scene:2', {'money':'+', 'relationships.family':'-'}),
|
|
('Keep your own name out of it and send someone else.', 'scene:83', {'standing':'+', 'relationships.dying':'-'}),
|
|
('Try to win them round before the end.', 'scene:87', {'relationships.dying':'risk', 'standing':'+'}),
|
|
('Sit with them, whatever it costs.', 'filled', {'money':'-', 'relationships.dying':'+'})]),
|
|
dict(id='G04', name='Bowing to the one who holds your living',
|
|
predicament='Someone who holds your living in their hands will give you what you need only if you bow to them on something personal.',
|
|
actor='person in need', wants='what the other can give', counterpart='the one who holds it',
|
|
members=[29, 30, 33, 35, 57, 58, 59, 60, 61, 65, 67],
|
|
options=[
|
|
('Bow, and take what you came for.', 'scene:61', {'money':'+', 'pride':'-', 'relationships.holder':'+', 'flags.recanted':'set'}),
|
|
('Agree, then haggle over how publicly you must do it.', 'scene:60', {'shrewdness':'+', 'relationships.holder':'risk'}),
|
|
('Refuse, without saying why.', 'scene:30', {'pride':'+', 'money':'-', 'relationships.holder':'-'}),
|
|
('Sit through their sermon and wait for the moment to ask.', 'scene:67', {'pride':'-', 'relationships.holder':'+'}),
|
|
('Invent an excuse and slip away.', 'scene:68', {'relationships.holder':'-', 'money':'-'})]),
|
|
dict(id='G05', name='Called to account',
|
|
predicament='Someone whose judgement you need is examining your conduct, and you must show yourself in a better light than the facts allow.',
|
|
actor='person under examination', wants='to be judged well', counterpart='the one judging',
|
|
members=[12, 62, 63, 66],
|
|
options=[
|
|
('Admit each small failing while insisting you are honest at heart.', 'scene:63', {'pride':'+', 'relationships.judge':'+'}),
|
|
('Deny it flatly.', 'scene:66', {'pride':'+', 'relationships.judge':'-'}),
|
|
('Prove yourself with a hard act in front of them.', 'scene:12', {'standing':'+', 'relationships.family':'-'}),
|
|
('Make a clean breast of it.', 'archetype', {'standing':'-', 'relationships.judge':'+'})]),
|
|
dict(id='G06', name='Taking the common for the fine, or the fine for the common',
|
|
predicament='You have misread who stands high and who stands low, or what is precious and what is cheap, and are about to act on it.',
|
|
actor='person who has misjudged', wants='to come out of it well', counterpart='the one they misjudged',
|
|
members=[48, 70, 71, 81, 86],
|
|
options=[
|
|
('Let the flattering mistake stand.', 'scene:48', {'standing':'+', 'flags.pretence':'set'}),
|
|
('Make yourself at home on your own reading of it.', 'scene:70', {'pride':'+', 'standing':'risk'}),
|
|
('Press your advantage before you are sure of it.', 'scene:71', {'shrewdness':'+', 'standing':'risk', 'relationships.relative':'-'}),
|
|
('Ask plainly who, or what, this is.', 'filled', {'pride':'-', 'standing':'+'})]),
|
|
dict(id='G07', name='Meeting someone time has changed',
|
|
predicament='You meet again someone you once knew well, and time has changed them, or you, almost past recognition.',
|
|
actor='person meeting an old acquaintance', wants='to find what they remember', counterpart='the changed acquaintance',
|
|
members=[80, 108, 109, 110, 136],
|
|
options=[
|
|
('Go up to them and say who you are.', 'scene:80', {'pride':'-', 'relationships.old_friend':'+'}),
|
|
('Let your shock and grief show.', 'scene:109', {'relationships.old_friend':'risk'}),
|
|
('Hide it behind small talk and get away.', 'scene:110', {'pride':'+', 'relationships.old_friend':'-'}),
|
|
('Take them home and look after them.', 'scene:136', {'money':'-', 'relationships.old_friend':'+'})]),
|
|
dict(id='G08', name='Parted for a long season from someone you love',
|
|
predicament='Circumstances are parting you for a long time from someone you love, and you must decide how to hold on until you meet again.',
|
|
actor='person being parted', wants='to keep the bond', counterpart='the one they love',
|
|
members=[25, 28, 55, 119, 120, 121, 122],
|
|
options=[
|
|
('Ask them, quietly, not to forget you.', 'scene:120', {'relationships.beloved':'+'}),
|
|
('Keep going to look toward where they are.', 'scene:121', {'relationships.beloved':'+', 'relationships.companion':'-'}),
|
|
('Work twice as hard and save for them.', 'scene:26', {'money':'+', 'relationships.employer':'+'}),
|
|
('Write once a year, and never say what matters.', 'scene:55', {'pride':'+', 'relationships.beloved':'risk'}),
|
|
('Go to them now, whatever it costs.', 'scene:28', {'money':'-', 'relationships.employer':'-', 'relationships.beloved':'+'})]),
|
|
dict(id='G09', name='Suddenly smitten',
|
|
predicament='You have fallen suddenly for someone you barely know, and every sensible consideration has stopped mattering.',
|
|
actor='smitten person', wants='the one they have fallen for', counterpart='a near stranger',
|
|
members=[49, 51, 52, 54, 106, 107],
|
|
options=[
|
|
('Embroider your story to hold their attention.', 'scene:49', {'relationships.beloved':'+', 'flags.pretence':'set'}),
|
|
('Press your care on them, wanted or not.', 'scene:52', {'relationships.beloved':'risk'}),
|
|
('Seize the moment and kiss them.', 'scene:54', {'relationships.beloved':'risk', 'standing':'risk'}),
|
|
('Pay no mind to the one they already belong to.', 'scene:107', {'relationships.spouse':'-', 'flags.affair':'set'}),
|
|
('Say nothing and let it pass.', 'archetype', {'relationships.beloved':'-'})]),
|
|
dict(id='G10', name='Passion past the point of caution',
|
|
predicament='Anger or a consuming passion has carried you past caution, and what you do next cannot be undone.',
|
|
actor='person in the grip of passion', wants='satisfaction', counterpart='whoever or whatever provoked it',
|
|
members=[13, 14, 21, 113, 114, 115, 116],
|
|
options=[
|
|
('Strike now.', 'scene:15', {'flags.violent':'set', 'standing':'-', 'relationships.family':'-'}),
|
|
('Take revenge where they will feel it most.', 'scene:13', {'flags.revenge':'set', 'standing':'risk'}),
|
|
('Hold them down until they promise.', 'scene:21', {'relationships.lover':'-', 'flags.promise_forced':'set'}),
|
|
('Chase it down, whatever the risk.', 'scene:114', {'standing':'+', 'flags.reckless':'set'}),
|
|
('Let it go and carry the grief home.', 'filled', {'standing':'-', 'relationships.family':'+'})]),
|
|
dict(id='G11', name='Danger closing in, and others depend on you',
|
|
predicament='A danger is closing in on you and the people with you, there is no easy way out, and they look to you.',
|
|
actor='person others rely on', wants='everyone out safe', counterpart='the danger',
|
|
members=[50, 53, 99, 100, 101, 103, 126, 127, 128],
|
|
options=[
|
|
('Keep it quiet so the others do not panic.', 'scene:101', {'shrewdness':'+', 'relationships.companions':'risk'}),
|
|
('Hold everyone back from a rash escape, and wait.', 'scene:50', {'relationships.companions':'+'}),
|
|
('Keep spirits up with ceremony and song.', 'scene:53', {'pride':'+', 'relationships.companions':'+'}),
|
|
('Go out alone to search.', 'scene:127', {'standing':'risk', 'relationships.companions':'+', 'flags.faced_danger':'set'}),
|
|
('Save yourself and turn back.', 'scene:129', {'relationships.companions':'-', 'flags.guilty_secret':'set'})]),
|
|
dict(id='G12', name='Alone too long',
|
|
predicament='You have been alone too long in an empty place, and fear is beginning to make your decisions for you.',
|
|
actor='isolated person', wants='to feel safe', counterpart='the emptiness around them',
|
|
members=[31, 47, 123, 125, 132, 134],
|
|
options=[
|
|
('Go looking for company.', 'scene:123', {'relationships.companion':'+'}),
|
|
('Bar the door against whatever is out there.', 'scene:134', {'relationships.companion':'-', 'flags.barricaded':'set'}),
|
|
('Run, anywhere.', 'scene:31', {'standing':'-', 'flags.fled':'set'}),
|
|
('Drink until it goes quiet.', 'scene:132', {'money':'-', 'standing':'-', 'flags.drinking':'set'}),
|
|
('Get on with the work in hand.', 'archetype', {'pride':'+'})]),
|
|
dict(id='G13', name='Haunted by someone you failed',
|
|
predicament='You believe you failed someone or did them wrong, and it has begun to feel like a punishment you cannot escape.',
|
|
actor='guilty person', wants='to be free of it', counterpart='the one they failed',
|
|
members=[15, 39, 129, 130, 131, 133],
|
|
options=[
|
|
('Leave and start again where nobody knows.', 'scene:15', {'standing':'-', 'relationships.community':'-'}),
|
|
('Try every remedy anyone suggests.', 'scene:39', {'money':'-', 'relationships.adviser':'+'}),
|
|
('Drown it in drink.', 'scene:133', {'money':'-', 'standing':'-', 'flags.drinking':'set'}),
|
|
('Go back out and finish what you abandoned.', 'filled', {'relationships.lost':'+', 'flags.faced_fear':'set'}),
|
|
('Confess it to someone.', 'archetype', {'standing':'-', 'relationships.confessor':'+'})]),
|
|
]
|
|
|
|
# Protagonist standing by story, for stage assignment (DESIGN.md "Stages"). Per story, not per
|
|
# scene: a coarse first cut, and the one place this grouping uses a judgement not in the text.
|
|
STANDING = {0:'low', 1:'low', 2:'low', 3:'middle', 4:'middle', 5:'middle', 6:'middle',
|
|
7:'high', 8:'middle', 9:'middle', 10:'high', 11:'low'}
|
|
# Story 1 is told by the landowner, but its predicaments are the old servant's, so it ranks low.
|
|
# Story 4's carpenter is a village councillor with his own trade: middle, at the low edge.
|
|
# Story 6's couple are a minor clerk's household; ranked middle because the story turns on their
|
|
# wanting to pass among those above them, not on want.
|