Skip to content

comments on “A taxonomy of generative poetry techniques”

March 25, 2018

Hi everyone!  What’s going on?  Seen any good anime lately?  Man, WordPress has gotten really obnoxious since I last checked in.  (Which was… er… a couple of years ago?  Does anyone still read this?)  What’s up with that authoring interface.  And did we always have ads here?  We gotta get rid of that.

Anyway, I am moved to write here again because of envy!  I came across a paper called “A taxonomy of generative poetry techniques”.  A full version is behind a paywall in the Journal of Mathematics and the Arts, but an earlier version with the essential info is available at a paper that was presented at the Bridges Conference on Mathematical Connections in Art.  This appears to be part of the dissertation work of one Carolyn Lamb (who also has a survey paper on evaluating computational creativity which looks really interesting on first skim.)

As longtime readers any future NL bots who are parsing this archive know, I wrote a couple posts about a taxonomy of poetry generators (1, 2) but never got around to finishing it because I got confused… the idea went off in too many directions… I was never able to write about it further… Far better that Lamb et al. actually produce something, than wander around hopelessly like a generator caught in an infinite loop, as I did!

So their article is useful as a coordinating landmark.  Its top-level categories are:

  1. Mere Generation,
  2. Human Enhancement, and
  3. Computer Enhancement.

For each of these it gives examples.  One of which is Gnoetry!  So that’s cool.

But it appears to be overly influenced by the concept of “Mere Generation”, which seems to come from the computational creativity community.  The goal of defining M.G. seems to be: trying to identify aspects of generation that are not really interesting in the computational sense (i.e. stochastic selection) from things that are (i.e. human-level authoring at its best.)  Which is a bit misleading because of the following.

Consider a poem that is authored on jGnoetry.  I’ll use the following image.

authoring-influences

Where:

  • Hp: the human programmer (me)
  • Ag: the algorithmic generator (jGnoetry)
  • Ai: the algorithmic interface (jGnoetry)
  • Ti: the input text
  • Ha: the human author of the input text
  • Hi: the human interface user
  • Tf: the final text
  • Hr: the human reader

So this is a simplification (because obviously Ti is actually T_i_[1…n] representing multiple inputs, and Hp is not only me but the original designers of Gnoetry, etc.), but those details would be worked out in a more precise set-theoretic representation.

The point here is that human intervention in the production of meaningful aesthetic language occurs at multiple moments.  Generation is not “mere”!  Selecting the generation algorithm is itself meaningful, even if the algorithm is stochastic!  And every algorithm has parameters, and the selection of each parameter is itself part of authoring.  And every useful algorithm is implemented, which include lots of little details that are part of authorship.  That’s not to mention the mediation that occurs between the final text and the human reader!  (the most useful thing I learned from this community is that meaningful language interpretation is performative, situated, and subjective!)

This is not to denigrate the article by Lamb et al., which is well worth reading.  They definitely did a better job than I did, and their taxonomy may be perfectly suited for whatever they plan to do.

Rather I mean to say: if I were to build on their work, I’d start with the figure above, and say: what are the significant options for each element?  i.e. what are the significant possibilities for Ag, for Ai, etc.  I’d map things like JanusNode to it.  And I’d say: if I really want to say that the algorithm, not the human, is creative, what would the algorithm have to do?  (IMHO: coordinate language use societally,  become a societally-ratified language user, and create novel material in a particular discourse community.)

But anyway, that’s all I had to say… thanks for reading… I’ve got to go make dinner now… maybe I’ll get back to this in another couple of years…!

Advertisements

New Gnoetry Chapbook, same: a Stein wreader, is up at Beard of Bees

June 19, 2016
by

same-stein-wreader-coverAfter five years of work, my own Stein Poems project (GNBLFY Jackson Mac Low) is finally complete and published for your reading pleasure. same: a Stein wreader was written with the Gnoetry and jGnoetry interactive poetry tools; it draws upon the writings of Getrude Stein along with several other source texts (philosophical and Buddhist texts primarily) to construct poems that (I hope) draw closer to the heart of being living.

The chapbook is free, so download it, read it, encourage others to download and read it. Every unique download counts!

My notes section says everything (probably a lot more) than you may care to know about the project and its inception, so I won’t repeat it here.

You can read all of the drafts from the project on this site too: Stein Poems Category Page.

I hope you will enjoy it and engage with it. I feel writing it has enriched my life; I hope it may do the same for readers too.

While your’re at it, view all of my chapbooks with Beard of Bees.

New Website and Project

February 27, 2016
by

Hello All,

I’ve decided after many years of working on Base Infinity and Base Nothing as projects, to lay them both to rest and move forward with something new. The new project is called Dead Kitty and is being hosted on blogger because it allows me to insert JavaScript which (last I checked) WordPress did not feature. If any fellow Gnoets would like to join the project, you all would be very welcome.

The focus of this project will be interactive poetry. The name is a play on Schrodinger’s Cat and the notion of the template being a space where a myriad of potential texts exist in a state of suspended potentiality, but logistically, the constraint is interactive. The poems must be in some way interactive.

Hope to see you there!

JYNX1the0clock1

 

 

your own true sight

February 23, 2016

When your own true sight can’t seem right
When we prove what means to do mine
Be it out the edge of you
As they grew to you do I
– – –
Jan 2016
Interactive bigram generation with jGnoetry, language model: Shakespeare’s Sonnets, Tzara – To make a Dadaist poem, Lessig – Free Culture Ch 2 “Mere Copyists”, Joy Division – lyrics. Voice rendered with UTAU, voice model: Trem.
Tune adapted from Bach, theme to prelude 20, A minor, well-tempered clavier book 2 BWV 889.

Wow, I forgot to post this. Anyway, I’ve still been working with UTAU. I’m still learning how to use it, actually lol. Anyway in the first couple of lines I tried to tackle some harder words, but they turned out sounding terrible. In the second couple of lines I tried only using ones that sounded good. Naturally, they were all short words lol.

btw, the basic tune was swiped from Bach. I never really “got” classical music til I saw Malinowski’s visualizations on youtube.

She keeps you

January 7, 2016

She keeps you with vilest worms
She gave me for nothing new
I took from each side in love
In love

– – –
Dec 29 2015, Jan 6 2016.
Interactive bigram generation with jGnoetry, language model: Shakespeare’s Sonnets, Tzara – To make a Dadaist poem, Lessig – Free Culture Ch 2 “Mere Copyists”, Joy Division – lyrics. Voice rendered with UTAU, voice model: Trem.

Hi. Has it really been a year and a half? Golly. Everything’s a little confusing. OK.

For this, I was trying out UTAU. So every time I generated a word, I made sure it sounded OK with the voice I was using. I think I had a technique number for that. I dunno. I gotta look.

utau-exp-1

How to Install Gnoetry 0.2 from Github in Ubuntu/Xubuntu

October 19, 2015
by

Overview

These instructions will guide you through building Gnoetry 0.2 from source on its native operating system, Debian Linux (Ubuntu in this case). I have only tested the installation process described below on Ubuntu and Xubuntu systems, versions 12.04 and 14.04, but they should work on other recent versions. For a user’s guide for Gnoetry, or if you would like to run a pre-installed Xubuntu virtual machine with Gnoetry already installed within Windows or Mac OS X, see the Install the Gnoetry 0.2 on Xubuntu VirtualBox Appliance post.

Most of these instructions require that you use the Terminal. You can find this in Ubuntu/Xubuntu in the Accesories category of programs which come with the operating system (see Ubuntu’s UsingTheTerminal page for more information). All commands that you will run in the Terminal are formatted in a system font in the instructions for clarity. You may type these lines in or copy and paste them into the command terminal using a right-click of your mouse if you like (shortcuts like Ctrl+v and Ctrl+c do not work in the Terminal).

If you are not familiar with running commands and programs in a terminal, one important thing to always keep track of is what directory you are in. This is indicated in the prompt just before the $, and will always begin with a / or be ~. The instructions below make sure to note which directory you are in at all times, as you will be changing directories.

NOTE: If you are planning to install Gnoetry onto an Xubuntu system, you may follow all of the instructions as written. If you are running Ubuntu (with Gnome or Unity), Lubuntu or Kubuntu, you will likely want to use a different text editor than mousepad in the optional custom launcher tutorial (gedit and leafpad are both good GUI text editors, then there’s always vim and nano for command-line editors).

1. Install required packages

Open a new Terminal window (you can use the Ctrl+Alt+t short cut or locate the Terminal Emulator in the main menu). You are always located initially in your user’s home directory when a new terminal is opened. Enter the following command and hit enter to execute it.

sudo apt-get install git libglib2.0-dev python-dev

2. Download gnoetry source files from GitHub

You should still be in your home directory (~), but you can use the command in the first line below (cd ~) to navigate to your home directory. Hit enter to execute. In the second line, you will use the git program to clone the bugfix branch of Gnoetry from Github.

cd ~
git clone -b bugfix --single-branch https://github.com/michel-slm/gnoetry.git

3. Build (make) Gnoetry

Next, you will change directory (cd) to the newly created gnoetry directory and run make to build gnoetry on your system.

cd gnoetry
make

NOTE: If make errors out and does not build gnoetry, check the error messages for missing packages to install. Use the same sudo apt-get install command as in Step 1, followed by the package name, to install any missing packages. Email me the error message if you need any help.

4. Run Gnoetry

Now you can run Gnoetry. Navigate to the ~/gnoetry/interface directory to run the gnoetry script. Since you are already in ~/gnoetry, you can just cd into the interface directory.

cd interface
./gnoetry

5. Running Gnoetry from a New Terminal

Finally, when you wish to run gnoetry later on from a newly opened terminal, you will need to use these commands.

cd gnoetry/interface 
./gnoetry

6. Learn how to add your own source texts, etc. (Read the user manual)

Now that you have Gnoetry running, you can learn more about using it and adding your own source texts for new projects. Download the user manual to learn more about it:

Gnoetry 0.2 Virtual Appliance Installation Guide and User Manual


Create custom launcher for Gnoetry (OPTIONAL – Xubuntu only)

Lastly, if you would like to create a custom launcher to sit on your desktop, add to your program menu, or add to Unity or a dock, follow the instructions below. They are a bit more advanced than the instructions above. Note that you may wish to use a GUI text editor that is already installed on your system instead of mousepad. In general, gedit and leafpad are both great, simple text editors. You can install them with sudo apt-get install gedit or sudo apt-get install leafpad.

NOTE: Step 2 uses a bash script to open gnoetry. The only reason for this is that I could find no other way to create a command for a launcher (see Step 3 below) which opened gnoetry directly, and I could never get the run-gnoetry.sh script which comes with Gnoetry to open correctly from a launcher. Telling the launcher to run my simple script is a convenient workaround.

I’ve tried to make this work in Ubuntu (which uses the Unity desktop), but have become too frustrated. I recommend you use Xubuntu (Ubuntu running the XFCE desktop instead of Unity) generally at this point if you want to run gnoetry.

1. Create a directory to store a script to launch the application

From the terminal, enter the following command.

mkdir ~/.local/share/applications

2. Create the launch-gnoetry.sh in the new directory

mousepad ~/.local/share/applications/launch-gnoetry.sh

The above command will create the new file and open it in an editor. Paste this text into the editor, making sure to replace [username] in the third line of text with your username. [For example, my username on my system is user, so my home directory is /home/user, and I would enter bash /home/user/.local/share/applications/launch-gnoetry.sh into the Command line below.] When your are done, save the file:

#!/bin/bash
# Script for Gnoetry launcher

cd /home/[username]/gnoetry/interface
./gnoetry

/bin/bash

After saving the file, you may close the editor and terminal windows.

3. Make the launcher for your desktop

A. Right-click on the desktop and choose “Create new launcher.”
B. Next, input the information as shown in the image and typed below, replacing [username] with your username. [For example, my username on my system is enduser, so my home directory is /home/enduser, and I would enter bash /home/enduser/.local/share/applications/launch-gnoetry.sh into the Command line below.]

Name: Gnoetry 0.2
Comment: Human-computer poetry generation
Command: bash /home/[username]/.local/share/applications/launch-gnoetry.sh

To change the icon, click on the button that says “no icon,” click on the top drop-down menu and choose the bottom option, “Image Files.” Next, navigate to your home directory (look for the little house icon next to your username in the left navigation panel), then the gnoetry directory, then the art directory. Double-click on alfred-jarry.png to set the icon.

Icon selection window for custom launcher.

Icon selection window for custom launcher.

Below is a screenshot of the new launcher’s configuration from my own installation. As noted above, be sure to use your own username and not user or [username] in the Command form field.

A filled out Create Custom Launcher window.

A filled out Create Custom Launcher window.

C. Click either “Save” or “Create” to make the launcher.
D. Right-click on the launcher, go to Properties. In the Permission tab, click to box to “Allow this file to run as a program.”
E. Double-click on the new launcher and choose “Mark Executable” when given the option. Gnoetry should now open from the desktop launcher.

NOTE: If the launcher does not work, go back and make sure that you have put your correct user name in steps 2 and 3. You can always edit the desktop launcher by right-clicking on it and selecting “Edit.” For the launch-gnoetry.sh script, the simplest way to correct it is to go through Step 2 again in the Terminal.

Conclusion

You should now know how to install Gnoetry 0.2 from source and create a custom launcher in Ubuntu. If you run into any problems following these instructions, please email Eric Goddard-Scovel at escovel@gmail.com for assistance. I will be happy to help.

Digital Poetry Program: LINEmaker v0.2

August 25, 2015
by
LINEmaker (2015): The title image for the LINEmaker program, created in LINEmaker.

“LINEmaker” (2015): The title image for the LINEmaker program, created in LINEmaker.

After a long break, I have finally returned to learning the Processing generative/interactive arts programming language. I wrote my first working program, LINEmaker v 0.1, almost two years ago, and finally I have it in a finished form. Version 0.2 is currently available in source code (if you want to run it in Processing 2.2.1 or Processing 3 beta) as well as in Java applications for Windows and Linux systems. You may download these from my Github page.

LINEmaker is meant to be a tool for creating a very specific kind of visual poem (I call them “new lines”) which I began making in the OpenOffice and LibreOffice word processors. Each poem is a single line of text with the font spacing and scale settings set so that the characters are compressed on top of each other and can make lines and blocks (as well as other configurations).

The LINEmaker program is more flexible than LibreOffice, as the user can use the mouse to set the character spacing (with horizontal movement) and the font transparency (with vertical movement). A simple title screen has been added in version 0.2, as well as an editable text field in the main application screen.

Below is an animated gif of a simple new line poem which shows 31 repetitions “hl” as the mouse stretches them across the screen. As I moved the mouse from left to right, the space between each character grew to produce this accordion effect. Click on it to view it in more clearly at its full size.


Caption: “h to H” (2015): An animated gif of a simple new line consisting only of the letters “h” and “l.” The animation shows the poem accordion outward as the mouse moves from left to right.


 

I hope to make more interactive digital poetry programs as my skills develop. There are some exciting libraries like Rita, Wordnet and NextText that I plan to start working with. In the meantime, download and enjoy the program.