FPTK (Formal Poetry Toolkit)
I’ve been thinking about something like this for quite some time. As God has directed my steps, and those skills I learn as time goes on, I think I finally have the correct set of technical skills to begin pursuing this.
First, I think I will need to define two datatypes. I think I will store the defaults for all of these in a database, and secondarily use text files (plain text for forms and json for words) to add custom data.
Data types:
Forms
- These are definition files for formal poetry of all types.
- First line is name of form.
- each line contains
1
’s and0
’s to indicate stressed and unstressed syllables respectively. This will also indicate the number of metrical feet. - Then the line will have a space followed by a letter. The letter indicated the rhyme scheme.
- For example, a Spenserian sonnet would be indicated as:
Spenserian sonnet 0101010101 A 0101010101 B 0101010101 A 0101010101 B 0101010101 B 0101010101 C 0101010101 B 0101010101 C 0101010101 C 0101010101 D 0101010101 C 0101010101 D 0101010101 E 0101010101 E
Words
- These are the heart of the program.
- I want to be cautious that I include all the information that I need, but nothing that can be gleaned from the information that is already included.
- An example of this
{ word: early, pronunciation: "ER1 L IY0", stress: 10, pos: [adjective, adverb], antonyms: [future, old, late, later, worn], synonyms: [fresh, initial, new, recent] }
Use Clingo to enforce formal constraints on lines of poem.
- phase 1
- stress pattern (metre)
- rhyme (for 3 or more syllables, last vowel and consonant stem, for 2 or less, last consonant stem)
- word order informed by parts of speech
- phase 2
- alternative words (synonyms) based on stress
- near rhymes
- assonance
- consonance/alliteration
Python Class:
- Poem
- Model
- selected form
- Line
- each line in the poem
- Model
Where the data come from
- CMU Pronunciation Dictionary 0.7b
- Download
- pronunciation
- rhymes
- syllables
- stress
- Download
- Princeton WordNet
- Download
- synonyms
- Download
- OpenOffice Dictionaries
- Download
- synonyms
- Download
- ashley-bovan.co.uk Wordlists for Writers
- Download
- parts of speech
- Download