Digital found poem has grown into a very large random poetic text generator over the years I've been playing with it. The code of the app is simple, but the task of seeding it with language that can be combined randomly to create "poetically possible" and interesting text has been quite difficult. It may just not be realistic to think that you can pull a few thousand words and phrases into a computer program and then combine them willy-nilly into anything resembling coherent poetic text. And yet, I keep trying.
Day after day, I look for words, phrases, and/or clauses that might fit in the pool of language already in digital found poem. My daily word list might look something like this:
there are laws to obey
at the closing of the curtain
the pain on firstname's face
you could've loved me
when i look in the mirror
as the sea level rises
the difference between...and
pluralsubject refuses to see
I then add these snippets of language to the app--if I haven't added them already (the app is so large, and I've worked on it for so many years, that I simply don't remember sometimes).
Next, I test whether the new additions seem to work coherently with what's already in the app or whether they immediately clash. If they mainly seem to work, I keep them. If not, I discard. And so "the world" of digital found poem grows and grows.
Digital found poem works by having two types of lists. One type is the "data" lists that contain different categories of tens of thousands of nouns, verbs, adjectives, adverbs, prepositions, conjunctions, phrases, and clauses. (This includes many lists found on the Internet, such as lists of common first names, common last names, names of trees, flowers, colors, birds, rivers, cities, musical groups, etc.)
The other type is the "pattern" lists, of which there are two types. One consists of phrase patterns or clause patterns combined from nouns, verbs, adjectives, adverbs, prepositions, and conjunctions stored in the "data" lists. The other consists of "ready-made" phrases such as "waiting at a distance" or "ready-made" clauses such as "crying is all i/you/we do.
The snippets of language that appears on the screen at any given time are selected at random. So for example, if the pattern from one of the pattern lists is anynoun & " " & loc_prep, then a noun phrase and a prepositional phrase of location are printed to the screen. Examples are "awful news/near the soup kitchen" or "conversations with this imitator/in tiffany's tavern."
If the pattern is you_i_sub & " " & you_i_verb & " " & anynoun, then "you" or "i" as subject, a verb phrase, and a noun phrase are printed to the screen. Examples are "you/'ve painted/the pieces of your miserable despair" or "i/'ve acknowledged/the slowly going crazy."
And if the pattern is seasonphrases & " " & timephrases, a seasonal phrase and a time phrase are printed to the screen. Examples are "with snow on the streets/as morning breaks" or "slogging through the heat/playing in brunswick this evening."
I also have many "intro" clauses followed by lists of "completers." For example, I have a clause that says "i had to call in sick today because...." This intro clause is then completed at random by a dozen different reasons why someone might call in sick. This is one of the neatest parts of creating this type of random poetry generator--the ability to have a line with a "blank" and then to fill in that blank with dozens if not hundreds of different words and phrases.
Digital found poem loops through its main code 14 times, and at the end of each loop prints a snippet of text to the screen. This snippet of text can be one word or dozens of words. And if multiple words, the text can be broken into multiple lines to create a poetic effect. For example, I can write a pattern that consists of a phrase from one phrase list, a clause from a clause list, and then a phrase from another phrase list. And the result would be snippets of text like the following:
after the tears the moon is hiding in the winter woods
Or I can write a pattern that consists of an adjective from one adjective list and a noun from one noun list; followed by a phrase from a phrase list; followed by a second adjective from another adjective list and a second noun from another noun list. And the result would be snippets of text like the following:
open-ended questions in a divided world wicked farewells
Or I can write a pattern by selecting any number of language building blocks and breaking them into lines as follows:
an adverb, an adjective/
a subject, a verb, an object/
a prepositional phrase/
a participial phrase
And the result would be snippets of text like the following:
infinitely restless these prophets confront age-old questions under the boardwalk pouring out life's incongruities
As I said earlier, the way the overall text appears on the screen is random. However, like some "would-be poet ex machina" pulling the strings, I tightly control many aspects of the text in an attempt to make the text more cohesive. For example, after one or more phrases have been printed to the screen, I set a flag to force a clause to follow, and vice versa. I try to control elements of time and season (although not always successfully). That is, I try to have morning stuff happen only in the morning and winter stuff only in the winter. One element that I haven't tried to control too much because it is very difficult is geography. So the Mississippi river can end up in Los Angeles, oranges can grow in Alaska, and a parking lot can show up in the middle of the ocean!
One other point of note is that a digital poetry generator of this type cannot create a sustained narrative with a beginning, a middle, and an and end. Because pieces of text are written to the screen one by one, and because no piece of text "knows" the content of the next piece of text, it's not possible to say that this happened, and then that, and then that, etc. with any kind of "story line." So something like "I’m Nobody! Who are you? Are you – Nobody – too? Then there’s a pair of us! Don’t tell! they’d advertise – you know!" is never going to happen in digital found poem, unfortunately.
Now, there are some tricks that I use to suggest narrative. For example, I include a list of "logic" words such as "because," "when," and "though" to suggest a relationship between snippets of text as follows:
you are taking it off precisely because you know what the despair is for
i reveal all creation when i try to explain sustaining life
i make everything worse though i stay away
I also create pseudo dialogue between characters by using patterns that consists of words such as "i say this" and "you say that," and then filling in the "this" and the "that" with text from two different clause lists. Here's an example:
i look at you and say i am aching from head to toe and you say it's all so intensely dark
I do the same by using "question and answer" patterns, and selecting a question from a question list and a response from a clause list. Here is an example:
i ask are we close to the end and you say love is as catastrophic as heaven
To further suggest narrative, I also use flags to force snippets of text from a given pattern to be followed by snippets of text from a "companion" pattern. For example, if a pattern is about a subject, say "miguel," I can force snippets of text from that pattern to be followed by snippets of text from a "companion" pattern that refers to "miguel" with the pronoun "he." Here is an example:
as always miguel is hopeless pathetic as despair among the empty bottles he chokes again
But what comes after any one of these carefully controlled sections is complete randomness again. And although a controlled section may be fairly cohesive and logical, the text that comes after it may totally jar. And that’s what makes a random poetry generator of this type so uneven—bits of okay-ness interspersed with lots of junk.
At any rate, this should give you some idea of how the app works. And I continually play with digital found poem (searching for new language to add, modifying or deleting language that doesn't seem to work well, correcting spelling errors, fixing grammar elements, etc.) all in the hope of making the app a little better with each update and perhaps of more interest to others.
If you'd like to see the app in action, download digital found poem by clicking download digital found poem.(Last updated: October 1, 2018, size: 3.73 MB).
Do note that this app works only on PCs/tablets and not on mobile phones. And it works on a Mac only if the Mac can run Windows.
Should you want to know more about digital found poem or if you have suggestions about how to improve it, please email me.And any other comments such as "love it," "hate it," "fun," "stupid," etc. are, of course, also welcome.
And thanks for having made it all the way to the end of this long page.