Circumstantial Decision Making

Generative poetry is concerned not only with processing text but with selecting source texts to process. This curatorial gesture is of equal importance to the way in which material is handled. For my final project in Reading and Writing Electronic Text, I decided to introduce elements of circumstance into the selection of original texts—specifically, local weather conditions. Circumstantial Decision Making is a program for generating new poems based on the current direction of the wind.

In its present form, the script accesses a regularly updated database of weather variables to determine which of nine texts to process. If the wind is blowing north, it will select the text assigned to the top row, middle column. If the wind is blowing southeast, it will select the text assigned to the bottom row, right column and so on. The ninth text corresponds to “variable” wind conditions. Once selected, the program performs a basic randomization of that text’s lines, often resulting in new and interesting juxtapositions.

It’s intriguing to me how circumstance influences the decision making process in various ways—from what we eat to where we go to school—and this program is one way of exploring those dynamics through poetry. Here is a selection of poems generated with Circumstantial Decision Making from original texts by Sachiko Clayton.

I.
The tangled telephone cord’s
one strand, 1,722 yards long.
All the power lines have fallen,
no dial tone, but she was gone.

How many times could I

We’ll speak again,
stretched ours out as kids at home,
that dropped call two weeks ago,

the cord’s been cut at the stem
I think of it’s single strand:
Stretched out, stretched thin
I wonder if when I’m done
as I pull at the knots.
We’ve given up on telephone cords,
Knitting a blanket for my sister’s first son,
across Long Island
from Queens to Suffolk County.
She wrapped it around my wrists
of my tin can.
or drop threads of all conversations
so I’d leave her alone.
Another blue line in the blanket,
exposed wires prick
wrap it around her shoulders?
Language frays and unravels.
like the lost stitch, third row down,

II.
Coins from India, Namibia, Japan and England,
a lacy handkerchief, starched, cotton white,
like a tiny curled hand.
of a bulldog in the Union Jack.
Cameo from your jewelry box
pages of Agatha Christie, a back scratcher
laces from 15-hole docs,
tie tacks, cuff links, your college class ring,

two of your favorite ties.
Your first CD, INXS, argyle socks, red suspenders,

(butter scotch on my tongue)

My glue gun, a wine box, an undated photograph.
the t–shirt brought back from England

III.
The sound of your humming
watching your knuckles
Where are we?
I never asked;
on the steering wheel,
to Saint Augustine.
blue from radio glow,

you and me,
from Jamaica, Queens
A halo of sleeping breath,
and the road pulling you along,
Who’s that on the radio?
awake in the dark;
and highway sign light,
listening to your thoughts,
Mom and Ne-chan sleeping,

I-95 dreams.
a long asphalt conveyor belt;
The sound of the road pulled,
in time with Ray Charles.
Just sat with you, waiting,
the high moon.

IV.
September has been an empty month
Punctuated by a nod or a gesture.
Flow of life
A quarrel in August interrupted this
And the industry of beavers built a dam
I remember the mornings you came by,
And the dead remains of summer.
Random and continuous
Packed with your papers
Sometimes streaming from your mouth
Devoid of the normal clutter of dead leaves
Satchel in hand and bustling thoughts
And scattered papers.

And here is the Python code.

# Circumstantial Decision Making

import sys
from BeautifulSoup import BeautifulStoneSoup
import urllib
import random

# Lists for each outcome
verse_NE = list()
verse_NW = list()
verse_SE = list()
verse_SW = list()
verse_N = list()
verse_S = list()
verse_E = list()
verse_W = list()
verse_V = list()

# Change this URL for different places
place_url = "http://www.weather.gov/xml/current_obs/KNYC.xml"

# Gather weather data
place_data = urllib.urlopen(place_url).read()
place_soup = BeautifulStoneSoup(place_data)

# Identify wind direction
place_current_tag = place_soup.find('current_observation')
place_wind_tag = place_current_tag.find('wind_dir')
place_wind_dir = place_wind_tag.string
direction = place_wind_tag.string

# Northeast
if 'Northeast' in direction:
  for line in open('frayed_conversation.txt'):
    line = line.strip()
    verse_NE.append(line)

  random.shuffle(verse_NE)

  for line in verse_NE:
    print line

# Northwest
elif 'Northwest' in direction:
  for line in open('like_cindy_sherman.txt'):
    line = line.strip()
    verse_NW.append(line)

  random.shuffle(verse_NW)

  for line in verse_NW:
    print line

# Southeast
elif 'Southeast' in direction:
  for line in open('mothers_hands.txt'):
    line = line.strip()
    verse_SE.append(line)

  random.shuffle(verse_SE)

  for line in verse_SE:
    print line

# Southwest
elif 'Southwest' in direction:
  for line in open('mottainai.txt'):
    line = line.strip()
    verse_SW.append(line)

  random.shuffle(verse_SW)

  for line in verse_SW:
    print line

# North
elif 'North' in direction:
  for line in open('my_father_driving.txt'):
    line = line.strip()
    verse_N.append(line)

  random.shuffle(verse_N)

  for line in verse_N:
    print line

# South
elif 'South' in direction:
  for line in open('september.txt'):
    line = line.strip()
    verse_S.append(line)

  random.shuffle(verse_S)

  for line in verse_S:
    print line

# East
elif 'East' in direction:
  for line in open('shadow_box_family_portrait.txt'):
    line = line.strip()
    verse_E.append(line)

  random.shuffle(verse_E)

  for line in verse_E:
    print line

# West
elif 'West' in direction:
  for line in open('what_did_you_wear_last_night.txt'):
    line = line.strip()
    verse_W.append(line)

  random.shuffle(verse_W)

  for line in verse_W:
    print line

# Variable
else:
  for line in open('yellow_and_contrary.txt'):
    line = line.strip()
    verse_V.append(line)

  random.shuffle(verse_V)

  for line in verse_V:
    print line