Tag Archives: electronic poetry

Generous Poetry Generators

Mark C. Marino

Taroko Gorge and ppg256
by Nick Montfort

The sonnet has been around for centuries. Petrarch wrote sonnets. Shakespeare wrote sonnets. By now there are probably enough sonnets to wallpaper Westminster Abbey several times over. Haiku is an even older and (deceptively) simpler form. To number haikus would be to count grains of sand on the beach at Fontana. These poetic forms are merely a set of formal constraints and conventions of content, yet those restrictions, those boundaries, prove to be so highly generative.

Of course, the quest to create new poetic forms has likewise produced its own vast bestiary. In fact, the challenge to create a new form has been so attractive, poetry collectives like the Ouvoir de Literature Potential (Oulipo) have made the creation of new forms, or Synthouliposm, their primary raison d’être. As Oulipian Raymond Queneau explained, “We call potential literature the search for new forms and structures that may be used by writers in any way they see fit”  [Motte 1986a, 38]. Obviously creating a new form is one task, convincing other writers to use that form is another.

Enter onto that pitch digital computers, engines of procedural creation, and now the potential for the creation of new poems has increased beyond measure. Poetry generators have been around arguably since the first computers. Christopher Strachey, who worked with Alan Turing on the Manchester Mark I, developed a program to generate love letters . While the output was not specifically poetry, per se, this program did point the way for countless generators to come.

One branch of the Oulipo, the ALAMO, developed the primarily paper and print-based approaches of the group for the age of algorithms and digital computers.  As the Oulipans declared, “This is a new era in the history of literature: Thus, the time of created creations, which was that of the literary works we know, should cede to the era of creating creations, capable of developing from themselves and beyond themselves, in a manner at once predictable and inexhaustibly unforeseen”  [Motte 1986a, 48–49].

With the advent of the personal computer and the rapid development of creative networks across the World Wide Web, the number of computer-based poetry generators has multiplied like our lists of sonnets and poetic forms.

One generator Taroko Gorge has proven to be particularly generative. Taroko Gorge first appeared in January 20009 as a one-page python poetry generator on MIT Professor and poet Nick Montfort’s web page. The program is an elegant piece of code that builds on Montfort’s previous experiments with generators.

Elegance refers to an aesthetic aspect of its code, its beauty, the way that it reads. Elegance is a kind of x-factor, a je ne sais quoi, for code, no more an objective measure of the code than elegance is in the grace of a stride or in the fall of a hem. Elegance is in the eye of the person reading or writing the code – computational devices, as far as we know, are largely indifferent to such aesthetics.

It was in his Turing Award Lecture, that computer science pioneer Donald Knuth argued for “Computer Programming as an Art.” In that essay, Knuth argues that programming should be elegant, where elegance is not so much about adornment as a kind of Strunk & White highly clear prose, simple, straight-forward, legible, easy to adapt and re-use. It is this last property that Taroko Gorge demonstrates so well. But its elegance may not be readily apparent.

Montfort’s own brand of elegance grows out of his love of concision. One of his prior creations, the ppg256 (256 character Perl Poetry Generator) exemplifies this aesthetic perfectly. Two hundred and fifty-six refers to the number of characters (letters, numbers and punctuation marks) in this Perl program. Here’s an example of a poem it generated:
the nunelf
one hip gungod
hit it.
The generator works by drawing from sets of syllables and combining them in a poetic structure. This poem may not read like something by Natasha Trethewey, but such poems are a fete for a program that looks like this:

perl -le ‘sub p{(unpack”(A3)*”,pop)[rand 18]}sub w{p(“apebotboyelfgodmannunorcgunhateel”x2)}sub n{p(“theone”x8)._.p(bigdimdunfathiplitredwanwax)._.w.w.”\n”}{print”\n”.n.”and\n”.n.p(“cutgothitjammetputransettop”x2)._.p(“herhimin it offon outup us “x2);sleep 4;redo} #’

A non-programmer, or even just a newcomer to this approach, might wonder where the words are the generator uses to create these poems, for they rely on no external texts or grammars or dictionaries. Even without knowing Perl, you can look in the first string of letters, apebotboyelfgodmannunorcgunhateel, and see the little units (trigrams, three-letter combinations) that would become nunelf and gungod. No single poem produced by these generators can truly capture its potential. For that, one needs to have the code. At that point, the algorithm becomes the poetry.

Montfort has a programmer/poet’s obsession with concision and elegance. When discussing the 256ppg, he recounts his enthusiasm for Perl golfers, programmers who attempt to reduce their lines of code like Tiger Woods, chipping away at their own stroke counts. Fitting his poetry generator into 256 characters puts him on par with some of the various best in the field.To understand how this code becomes an aesthetic object, one has to stop thinking about code as something purely functional (such as the plumbing in your house) but instead as something both functional and aesthetic (like the bright pink and blue pipes used in construction projects in Berlin). Or perhaps a better example would be a beautiful stretch of road that is both easy to drive on, well maintained, and lined with lovely elms. Code is written not merely for machines to process but as a form of communication between programmers especially those who must later maintain and develop the code. But, as the Perl Golf contest demonstrates, it is also an arena where programmers can demonstrate the grace of their algorithms and the efficiency of their thought embodied in code. Code is an expression of thought. A cleverly designed algorithm has the force of a novel poetic conceit.

Taroko Gorge is a poem generator on the topic of the beautiful Taroko Gorge National Park in Taiwan. Like an electronic-age Emerson, Montfort composed the program mostly at the park, finishing it up on the plane afterward. Consider some of its creations:

Brow ranges the coves.
Forests dwell.
Forests hum.
Brows trail the cove.

progress through the encompassing cool —

The crags sweep the flows.
Forests relax.
Heights command the shapes.

enter the sinuous —

The crag ranges the veins.
Forests exercise the veins.
track the straight objective arched clear —

The pattern of the poetry is
0, 1, or 2 Sites.

Cave – Path = Noun + verb + object.
Site = Noun verb
Cave = verb + the + noun + adjective + object

From these simple structures, drawing upon relatively brief lists, the generator produces multitudes.

Montfort has called Taroko Gorge a “limiteless nature poem,” but it is important to realize that he is not referring to any poem generated by the code but the code itself as the poem. What makes the poem limitless is that the program, once executed, continues to iterate. Limitless, thus, is not a characteristic of any one set out of output, but of the capacity of the program to develop poetry without limit.

However, the generous nature of this formal structure can be seen not so much in the poems it generates as the variations on this poetry generator that have been created by subsequent poets, over a dozen so far, each taking on a new theme (pop culture, food, George Takei) and its own variation on the code. And so the day of generators generating generations is upon us, as the promise of procedures flows on.


Mark C. Marino is a scholar and author of electronic literature. He teaches writing at the University of Southern California, where he directs the Humanities and Critical Code Studies Lab.