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 snippets of language that can be combined randomly to create "poetically possible" text has been quite difficult. What makes anyone think you can select n number of subject structures, n number of verb structures, and n number of object structures and then combine them at random with a set of daily-used phrases and clauses into anything resembling coherent poetic text? In an app such as this, all you can control is the language snippets you elect to add to the app and the syntax of a single snippet at a time. Most everything else is left to chance. And when that is the case, the good is often outweighed by the bad. Yet, if you click the generate new poetic text button in digital found poem a few times, chances are that you'll find something that you'll think pretty acceptable for randomly generated poetic text.
The way I work is this. Daily. I look for words, phrases, and/or clauses expressing a single idea that might fit in the pool of language snippets already in digital found poem. I avoid words that express compound/complex ideas because that would be "cheating." So "how do I love thee" is okay, "let me count the ways" is okay, but "how do I love thee, let me count the ways" is not okay.
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
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 work coherently with what's already in the app or whether they clash. If they mainly 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."
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. The text on the screen at any given time is mainly first person ("i") or mainly second person ("you") because totally random mixing of person doesn't work very well.
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--it cannot tell a complete poetic story from beginning to end, so don't expect a poem such as "I'm nobody! Who are you?"
Because snippets of text are written to the screen one by one, and because no snippet of text "knows" the content of the next snippet of text, there is not much opportunity to say that this happened, and then that happened as a direct consequence. That is, there is no opportunity for real cause-and-effect or any other logical relationship, and hence no opportunity to create a sustained narrative.
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
Note: In the above example, an obvious grammar issue is that the code must deal with the gender of the subject. (Is the subject male or female?) I do this by having a boyname list and a girlname list, and then using "he" if the subject comes from the boyname list and "she" if the subject comes from the girlname list. I deal with grammar issues of this type throughout the code of digital found poem. (Think of a/an, singular/plural, first-second-third person, "are" for "you" and "we," "am" for I, etc., and for exceptions to many of the English grammar rules.) So keeping the syntax of digital found poem grammatical is a big job!
At any rate, to create a sense of narrative is difficult in a digitally poetry generator of this type, and anyone looking for sustained narrative from beginning to end may be disappointed.
So these are some of the ways that the app works. And I continually play with digital found poem (searching for new snippets of language, modifying or deleting snippets that do not 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 interest to others.
Note This digital poetry app works only on PCs/tablets and not on mobile phones. And it works on a Mac only if the Mac can run Windows.
If you'd like to see the app in action, download digital found poem by clicking download digital found poem.(Last updated: September 17, 2017, size: 3.85 MB).
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.