diff --git a/2.Ghost-Writing.md b/2.Ghost-Writing.md index 7c7b13a..a13f564 100644 --- a/2.Ghost-Writing.md +++ b/2.Ghost-Writing.md @@ -251,7 +251,7 @@ Strachey's Love Letters have been studied before. [David Link](http://www.alpha6 The program we are about to write in a "modern" computing language (i.e. javascript/p5js) is a modified version of [Nick Montfort](https://nickm.com)'s letter.py source code written in python. Montfort's letter.py was based on Noah Wardrip-Fruin's article ["Digital Media Archaeology."](https://www.degruyter.com/document/doi/10.1525/9780520948518-016/html) -### An Archaeology of Love Letters' structure +### Analysing Love Letters' structure First, let's have a look at love letters to see what they look like. David Link has generated an [archive of simulated letters](http://www.alpha60.de/art/love_letters/archive/muc/). @@ -298,6 +298,17 @@ DARLING LOVE MUC ``` +``` +HONEY LOVE + MY AVID CHARM EAGERLY LOVES YOUR LOVING ENTHUSIASM. MY + AMBITION LUSTS AFTER YOUR LOVE. MY HUNGER THIRSTS FOR YOUR + ENTHUSIASM. MY ADORABLE LONGING AFFECTIONATELY PINES FOR YOUR + DEVOTION. MY FONDNESS PASSIONATELYFTER YOUR IMPATIENT + FERVOUR. + YOURS KEENLY +MUC +``` + Can you decipher certain writing patterns in the above formulations? If so, what are they? Consider this sentence: @@ -310,6 +321,10 @@ We can "code" this sentence as follow: ```determiner``` + ```noun``` + ```adverb``` + ```verb``` + ```determiner``` + ```adjective``` + ```noun``` + . +In fact, we could even add an ```adjective``` before the first ```noun``` as to make it even more "wordy": + +```determiner``` + ```adjective``` + ```noun``` + ```adverb``` + ```verb``` + ```determiner``` + ```adjective``` + ```noun``` + . + Now consider this sentence, whose structure seems to come up often: ``` @@ -335,8 +350,42 @@ So we have two types of sentences: * short form: YOU ARE MY + ```adjective``` + ```noun``` + . OR MY + ```adjective``` + ```noun``` + . In terms of sentences sequencing we notice that: -1. the short form MY + ```adjective``` + ```noun``` + . always follows the other short form YOU ARE MY + ```adjective``` + ```noun``` + . This short form never follows the long form. -2. short form YOU ARE MY + ```adjective``` + ```noun``` + . is never followed by the same short form YOU ARE MY + ```adjective``` + ```noun``` + . +1. A letter always starts with a certain opening {HONEY or DEAR or DARLING} + {MOPPET or DARLING or HONEY or LOVE} +2. the short form MY + ```adjective``` + ```noun``` + . always follows the other short form YOU ARE MY + ```adjective``` + ```noun``` + . This short form never follows the long form. +3. short form YOU ARE MY + ```adjective``` + ```noun``` + . is never followed by the same short form YOU ARE MY + ```adjective``` + ```noun``` + . +4. There are between 4 and 5 sentences (long or short form) per letter +5. A letter is always complementary closed with YOURS + ```adverb``` +6. A letter is always signed by MUC (which means Manchester University Computer Department) + + +### Reconstituting Love Letters' algorithm + +Now that we have an idea of the structure of Strachey's letters, let's get to work in formalising it's algorithmic generation. + +Luckily, in terms of vocabulary, we can start with Monfort's arrays: + +```javascript +// vocabulary +const first = ['DARLING', 'DEAR', 'HONEY', 'JEWEL']; +const second = ['DUCK', 'LOVE', 'MOPPET', 'SWEETHEART']; +const adjectives = ['ADORABLE', 'AFFECTIONATE', 'AMOROUS', 'ANXIOUS', 'ARDENT', 'AVID', 'BREATHLESS', 'BURNING', 'COVETOUS', 'CRAVING', 'CURIOUS', 'DARLING', 'DEAR', 'DEVOTED', 'EAGER', 'EROTIC', 'FERVENT', 'FOND', 'IMPATIENT', 'KEEN', 'LITTLE', 'LOVEABLE', 'LOVESICK', 'LOVING', 'PASSIONATE', 'PRECIOUS', 'SWEET', 'SYMPATHETIC', 'TENDER', 'UNSATISFIED', 'WISTFUL']; +const nouns = ['ADORATION', 'AFFECTION', 'AMBITION', 'APPETITE', 'ARDOUR', 'CHARM', 'DESIRE', 'DEVOTION', 'EAGERNESS', 'ENCHANTMENT', 'ENTHUSIASM', 'FANCY', 'FELLOW FEELING', 'FERVOUR', 'FONDNESS', 'HEART', 'HUNGER', 'INFATUATION', 'LIKING', 'LONGING', 'LOVE', 'LUST', 'PASSION', 'RAPTURE', 'SYMPATHY', 'TENDERNESS', 'THIRST', 'WISH', 'YEARNING']; +const adverbs = ['AFFECTIONATELY', 'ANXIOUSLY', 'ARDENTLY', 'AVIDLY', 'BEAUTIFULLY', 'BREATHLESSLY', 'BURNINGLY', 'COVETOUSLY', 'CURIOUSLY', 'DEVOTEDLY', 'EAGERLY', 'FERVENTLY', 'FONDLY', 'IMPATIENTLY', 'KEENLY', 'LOVINGLY', 'PASSIONATELY', 'SEDUCTIVELY', 'TENDERLY', 'WINNINGLY', 'WISTFULLY']; +const verbs = ['KICKS', 'ADORES', 'ATTRACTS', 'CARES FOR', 'CHERISHES', 'CLINGS TO', 'DESIRES','HOLDS DEAR', 'HOPES FOR', 'HUNGERS FOR', 'IS WEDDED TO', 'LIKES', 'LONGS FOR', 'LOVES', 'LUSTS AFTER', 'PANTS FOR', 'PINES FOR', 'PRIZES', 'SIGHS FOR', 'TEMPTS', 'THIRSTS FOR', 'TREASURES', 'WANTS', 'WISHES', 'WOOS', 'YEARNS FOR']; + +``` + +Which we can randomly select from with our ```choice```function we devised earlier: + +```javascript +// function selecting a random element from an array +function choice(array_to_choose_from) { + let random_index = floor(random(array_to_choose_from.length)); + return array_to_choose_from[random_index]; +} +```` + +