On fluid poetry

Hi all “netarterists”, this is my first post. It’s great to be part of the team!

I don’t usually write about my own work, but I figured out that it could be an interesting way to introduce myself. So I am posting here a paper I wrote earlier this year called “On fluid poetry”, in which I describe the inner workings and ideas of my piece, “Computer Aided Poetry”. Please excuse the “academic formatting” of this post, I promise it won’t happen again 😉

On fluid poetry

Condensation is the chemical process through which the atoms / molecules of an element or compound in a gaseous state change their aggregation phase into liquid droplets. During condensation, the kinetic energy of the atoms / molecules is reduced by slowing them down. They are brought together as a consequence since the attraction between them, an invisible link, prevails. They also become colder and, because of their aggregation, visible. The droplets formed by the condensation of an unseen gas seem to emerge from out of nowhere. Their sudden mass makes the huddled molecules vulnerable to forces which were latent or too weak in their previous state, such as the pull of gravity, which will make the droplets slide down a smooth surface, leaving behind a liquid trail.

Distillation, a purifying process used since ancient times by winemakers and alchemists, is possible thanks to evaporation and condensation. In distillation, a liquid mixed with solid matter is boiled in order to separate its volatile parts from the solid ones. Then, the vapor is cooled down in special receptacles, a series of serpentine tubes. In these tubes the vapor finally reaches condensation, yielding thus a purified liquid.

Internet is a text-based medium. By this I do not mean that its nature is text-only, but that it is fundamentally made of text. The World Wide Web is, in fact, built on the concept of hypertext: a network of fragmented texts interwoven using explicit links that channel the potentially limitless relationships that can exist among the fragments. Links themselves are made of text, written in HTML language.

When writing on the Web, the sensation of releasing a drop of water into a vast ocean takes physical proportions, transforming the very way in which the writer writes. In fact, most writers nowadays seem to refrain from making the ocean bigger: they don’t produce new texts, but point (link) to the writings of others instead. We can see this form of link-writing as the transference of a fluid through a complex, dynamic network of channels. A network of fluid writing is thus created by using textual, visible pathways between otherwise possibly unconnected ideas. In its “natural” state, this network is not an ocean but a cloud.

“Cloud Computing” is a rather foggy notion, according to which the World Wide Web will be increasingly seen as a platform where not only information, but also different kinds of services and applications will become immediately available, as if coming out of an undifferentiated, nebular space.
People will rely less on the software installed on their personal computers, and more on whatever is usable on-line. Despite the possibility that “Cloud Computing” could be no more than a buzzword that can suddenly turn into vapor, it does provide a suggestive image of what the Web is already becoming: a hazy mass of loosely related fragments of information and, importantly, tools for the end-user such as language translators, dictionaries, thesauri or word processors.

Are there potential, non-explicit links between texts on the Web? If we think about the structure of human language as a relational machine, organized according to well-established linguistic relationships between words, then the answer is yes: besides the existence of explicit HTML hyperlinks, it is possible to associate texts through these relationships. However, the actualisation of such immanent links cannot rely on hypertext alone: they need specific processes of transformation in order to become apparent. The seemingly loose “text-molecules” need to undergo a process of condensation so that they can come together into a droplet.

Text-molecules, which are the main constituent of the Web, can be manipulated and brought together from their remote locations to a client computer by using different operations: a process which can be assimilated to condensation. For instance, text-molecules can automatically be retrieved from distant hypertext documents or databases and translated into other languages using on-line translation services; their words can be substituted by others belonging to the same semantic fields, and so on, in order to join previously separated “molecules” into small “liquid beads” of transformed text: a poetic change of state.

To illustrate this idea, I will focus on two types of linguistic relationships which are relevant to the work presented here, “Computer Aided Poetry”: synonymy [1] and translation between different languages.

“Computer Aided Poetry” (CAP) is an on-line application [2] built with PHP [3], and defined as “a tool for blocked poets”. CAP allows a writer to enter a phrase and receive a transformed version of it as a result. The words in this new phrase will be different from the original ones, yet they will belong to the same semantic fields. The writer can then modify the resulting phrase and request a new transformation, engaging in a process which is potentially endless. It is precisely this feedback loop, in which the human input is a fundamental element, that differentiates CAP from other algorithmic writing tools, such as phrase generators based on pure randomness or combinatory techniques. CAP does not have an “intelligent” linguistic algorithm built into it, nor does it rely on local, pre-determined word or phrase banks. What CAP does, much like many of the so-called “Web 2.0” applications, is present the writer with suggestions: “if you entered phrase A, you might find phrase B interesting”.

CAP works in the following way:

1. The writer enters a phrase in the input field on the application’s page. For example, “i love language”. The button labeled “Shake” must be pressed in order to transform the phrase.
2. CAP separates every word in the phrase, and tries to find a synonym for each one of them. In the example above, the word “flame” is obtained as a synonym of “love”, and “tongue” as a synonym of “language”. The subject “i” is left unchanged.
3. The phrase is reconstructed with the proposed synonyms and the unchanged words.
4. After a few seconds, the result is shown on the web page. In this case, the writer sees “i flame tongue”.

At this point, the writer may introduce manual adjustments to the suggested phrase, such as “i flame ‘my’ tongue”, and request a new transformation. CAP may subsequently respond with something like “i flare my lingo”.

Step number 2 requires a more detailed explanation. As described above, CAP does not have a built-in database of synonyms; instead, it queries a remote server by sending the original word and receiving a list of possible results, if any. More specifically, CAP sends a request to the web server at thesaurus.reference.com, which is formed as follows:

http://thesaurus.reference.com/search?q=???, where “???” stands for the word for which a synonym must be obtained.

Since the page that the server generates as a result is not available in a machine-readable format, such as XML [4] or JSON [5], a technique called “Screen scraping” must be used to get the synonyms. In short, this technique can be described as a very basic way of parsing a web page, in which the desired data is “manually” subtracted from its surrounding HTML tags [6]. The result of this operation will be a list of synonyms or, more precisely, a set of words which belong to the same semantic field as the original word. CAP will then choose one of them randomly. If no synonyms were found for a particular word, the original one is preserved. Also, words with less than three letters are not considered for the synonym search.

There is a version in Spanish of “Computer Aided Poetry”, called “Poesía Asistida por Computadora” (PAC) [7]. Although the operation of PAC is analogous to that of CAP, there is a very significant difference in its algorithm. The phrase which the writer types in PAC, obviously in Spanish, is translated to English before it is split into words in order to look for synonyms. When the transformed words are reconstructed into a phrase, it is translated back into Spanish and finally shown to the writer. Thus, in the case of PAC, we can expand the steps described above by inserting two new ones:

1.5: The phrase is translated from Spanish to English
3.5: The phrase is translated from English to Spanish

These translations are obtained by making a request to a remote translation server, ets.freetranslation.com.

These requests are done in the following ways:

http://ets.freetranslation.com/?srctext=???&language=Spanish/English&sequence=core&format=html, where “???” stands for the phrase that will be translated from Spanish to English (as specified by the “language” parameter)
2. http://ets.freetranslation.com/?srctext=???&language=English/Spanish&sequence=core&format=html, where “???” stands for the phrase that will be translated from English to Spanish

The results of these requests are retrieved in an HTML format which actually contains no HTML tags but, conveniently, only the translated text.

Since its first implementation in 2006, I have used CAP and PAC as tools for writing poems. I have used PAC more intensively, since my mother language is Spanish. During my writing, I usually follow a simple, recursive method:

1. I enter an initial phrase into PAC. This phrase becomes the title of the poem, and also the original verse for the first transformation.
2. When a transformed phrase appears on the screen, I limit my intervention to correcting its grammar. Sometimes I will add or discard one or two words. The new, adjusted phrase becomes then a new line of the poem.
3. I request a subsequent transformation of this verse, and return to step 2 until I consider that the poem is complete.

The decisions I make during the process are purely grammatical and aesthetic; they never have to do with the semantic content of the verses. I also decide when to stop the process and complete the poem. This method reveals a personal pursuit: to write without the weight of intentions, goals or meanings, and yet without excluding the writer from the process (as is often the case in automatic text generators)

I consider the poems I have written using PAC to be distilled texts, obtained from a transitional, looping process of evaporation (phrases are decomposed into molecules and dispersed in the network cloud) and condensation (new phrases that seem to emerge “from out of nowhere”, formed by multiple text-molecules which are gathered from the cloud and brought together)

Fluidity lies at the core of my way of using CAP and PAC. I consider intentions, goals and meanings as heavy, solid matter from which I wish to liberate my writing. These tools, which treat words and phrases like fluids that can go through state changes, allow me to separate solid from liquid, to control the path that this process will follow, and to choose when to stop it. As a writer, I become a proofreader of the computer’s output, and a designer of the final form of the poem. By making myself available, I become a channel through which language flows.

Most of the poems I write seem absurd on a first reading, and yet that is precisely the point. They are like a porous surface with plenty of holes, which the reader must fill with another fluid: her own interpretation. This sense-making task assigned to the willing reader can be supported by the fact that the verses maintain a certain semantic coherence throughout a poem. Below the poems’ nonsensical appearance, there lies an implicit link that bonds the verses together, thanks to the relations of synonymy which extend from the words of one verse to the next.

The heart of the question is this: for us, the world is reality; for the machines, the only thing that is truly real is language – Stanislaw Lem [8]

In May 2010, the book “El drama del lavaplatos”, which contains poems I wrote using PAC, was published [9]. As described above, my role as a writer is very different from the traditional poet: instead of searching for the precise words for expressing my ideas, thoughts or feelings, I simply accepted and corrected the computer’s recursive distillations of the text.

Interestingly, CAP and PAC can be used in alternative ways, such as the approach taken by the Spanish writer Vicente Luis Mora. In his experience with PAC, he tried to coax the tool into generating a verse which could be considered as being similar in style to the verses written by Luis de Góngora, the Spanish Baroque poet. Mora describes his search in an article he wrote for the on-line magazine “Frontera D” [10]. In his article he claims that, after a certain number of transformations, he obtained a couple of verses which could have been penned by Góngora himself.

The algorithms in CAP and PAC have also been used in other works and applications. In some of my works, such as “Synonymovie” (2004), “La mareadora” (2005), or “JB Wock” (2006), variations of the algorithm are used [11]. In some cases, the algorithm is also complemented by image searches. More recently, I have applied this potential for transforming and channeling texts to my work “Facebots” (2009-2010), in which three artificial agents automatically and periodically publish posts on their Facebook profiles [12].

The Uruguayan writer Felisberto Hernández said that he found joy in being friends with words, and that he was truly delighted when two of them, “which became attracted in an unwatched place of my soul”, came together for the first time [13]. Substitute “my soul” for “the Internet” in Felisberto’s phrase. CAP intends to be a facilitator of joyous discoveries; a tool for revealing fresh and unsuspected liaisons among words. It was built to be a mechanism for surprise in the age of fluid text.

Joy, even laughter. In a fragment of David Clark’s digital work “88 constellations for Ludwig Wittgenstein” [14], two friends talk about philosophy over coffee:

He said: “the limits of language are the limits of my world. And by speaking, I limit the world. That’s Wittgenstein. Wittgenstein also said: our words will only express facts, as a teacup will hold a teacup full of water, even if I were to pour out a gallon over it”

And then she laughed out loud, and she said: “Laughter is the limits of language! We laugh when the absurdity of language becomes apparent! When it tricks us into believing in a thing called meaning”

… to pour endless drops of text into our teacup. It will overflow, unless the cup has a hole in its bottom.


A synonym is a word having the same or nearly the same meaning as another word or other words in a language. While the more accurate and refined term “semantic field” should be used to describe words which belong into the same group because of their meaning, “synonymy” is preferred here simply because of its usability.


PHP (Hypertext Preprocessor) is a server-side scripting language, used mostly to create dynamic web pages.

XML (Extensible Markup Language) is a user-defined set of tags for encoding electronic documents. It provides a way to make information machine-readable, and thus facilitates the exchange of content between web sites.

JSON (JavaScript Object Notation) is a format for data exchange oriented towards machine-readability.

The process of Screen-scraping involves a number of different steps:
1. Identify the exact area inside the HTML code in which the data to be extracted is found.
2. Isolate the identified area from the rest of the web page’s code.
3. Strip this fragment of its HTML tags.

For example, the result page of the synonym server will contain the synonyms encoded as follows:

<td valign=”top”>Synonyms:</td>
<a rel=”nofollow” href=”http://thesaurus.com/browse/adulation”>adulation</a>,
<a rel=”nofollow” href=”http://thesaurus.com/browse/affection”>affection</a>,
<a rel=”nofollow” href=”http://thesaurus.com/browse/allegiance”>allegiance</a>,
<a rel=”nofollow” href=”http://thesaurus.com/browse/amity”>amity</a>,
<a rel=”nofollow” href=”http://thesaurus.com/browse/amour”>amour</a>,


The synonyms are found between the “Synonyms:” and “</span>” delimiters. Stripping this fragment of code from its HTML tags will result in a list of synonyms for the word “love”: “adulation affection allegiance amity amour etc.”

Needless to say, Screen scraping can be considered as a very raw an unreliable technique for data extraction. Its main drawback is that it is very sensible to changes in the HTML encoding of a web page: if the encoding is modified in the remote server, the scraping algorithm must also be modified accordingly. Fortunately, the encoding of the synonym server has remained unchanged since the first implementation of CAP in 2006. However, periodical checks are necessary to make sure that the algorithm is still functional.


This phrase is a translation from the Spanish version of Stanislaw Lem’s short story, “Historia de la Literatura Bítica en Cinco Volúmenes”, included in the book “Magnitud Imaginaria”. Editorial Impedimenta, Salamanca, Spain, 2010.

Tisselli, Eugenio “El drama del lavaplatos”. Salamanca, Spain. 2010.

Mora, Vicente Luis; Chiappe, Domenico; Tisselli, Eugenio “Góngora asistido”.

All of these works are available at http://motorhueso.net


The words of Felisberto Hernández were taken from his web site.

Clark, David. “88 constellations for Ludwig Wittgenstein

13 Responses to “On fluid poetry”

  • Thanks for the post, Eugenio. Great to have you on the sinking netartery raft of writers gone wrong.

    So you query a thesaurus in CAP. Cool. It’d be nice if one could include a parameter in that query that tells the thesaurus to return results in XML or JSON, wouldn’t it.

    Here’s a piece I wrote called ‘The Body of Net Art’ that looks at things like Web services and their future roles in net art: http://tributaries.thecapilanoreview.ca/2008/04/15/the-body-of-net-art .

  • Jim, I like the words in your article: “the edge of net art will continue to be strongly involved with trying to do funky shit with an internet connection.” Yes indeed!

    Even if it is comparable to the flights of a trapecist… if the “net” below fails, (s)he’s dead meat. I mean that sometimes the remote web services simply are not available, for some reason which is fundamentally uncontrollable by the remote artist. There is a risk in doing art with the net…

  • Yes, there’s that sort of risk. And, also, the page of results we get from Web services may change in format. In which case our program needs to be revised.

    I have done a lot of work in Director. I wonder if Shockwave will be around in 10 years…

    Several points of poetential failure.

    The conceptual artist Joseph Kosuth wrote (in the eighties, I think) that he expected his art objects would not survive. He felt that, if anything of his work were to survive, it would not be the objects themselves but some knowledge about them via writings and documentation, and so some sense of how they relate to what’s been done and what was done in his time, and what isn’t doable anymore becuase it’s already been done…

  • I love the idea of text-molecules, of web writing as evaporation, condensation and distillation – a very apt metaphor for the creative process in general too. What I like, though, is your emphasis on the hidden chemical process that drives these magical transformations. Long may we continue to play with our alchemistry sets… well, as long as we can before the tools and the elements evaporate, in which case we have to transform ourselves, learn something new, distil what we can and begin the cycle again…

  • Christine, that’s precisely what I find attractive about distillation: our tools and everything evaporates, but then it condenses into something else. It keeps us fresh, as long as we flow with the cycle. What sort of alchemy will we be doing tomorrow?

    P.S. I really like your works. Underbelly is just fascinating!

  • […] CAP – Computer Aided Poetry by Eugenio Tisselli – given a seed text, replaces words with semantically-related words. Also see usage notes. […]

  • Killer article and discussion. I hope I’m not too late to join in. First….

    > The heart of the question is this: for us, the world is reality;
    > for the machines, the only thing that is truly real is
    > language – Stanislaw Lem [8]

    Counterexample: there are all kinds of machines, from thermostats to factory robots, that model and react to the world that is reality to humans.

    A more interesting proposition is: “The language that machines use when talking to humans has no link to the real world.” Traditionally, this is true. However, there are research directions into things like symbol-grounded and embodied representations. Here’s a good intro:
    (Say, Eugenio, when you were at Sony Labs Paris was Luc Steels there? he’s all into symbol grounding.)

  • > The conceptual artist Joseph Kosuth wrote (in the eighties,
    > I think) that he expected his art objects would not survive.
    > He felt that, if anything of his work were to survive, it
    > would not be the objects themselves but some knowledge
    > about them

    Yeah, that’s right! That’s how it is in the AI/NLP/CL community: generally the focus isn’t the details of your system, but the algorithms you used and results you got. Maybe sometimes you release a library or toolkit, but of course you expect those will become obsolete someday. Systems are for today, toolkits are for a generation, but models and algorithms are forever.

  • Hey Eugenio, I just wanna know… what type of essay is this?

    I mean, are you making some kind of philosophical claim about the nature of texts and meaning? Is the claim empirical, in the same way that chemical models of condensation are? Is the parallel between condensation and computationally-transformed text meant to be predictive, or is it meant to be poetic? Research paper or literary theory or somewhere in-between?

    I’m not hatin’; it’s a great essay! I’m just not sure how to think about it… these interdisciplinary areas are funny that way…

  • Hi eddeaddad,

    Thank you for your comments. My essay is just an essay, without any ‘type’ attached to it. The word in Spanish for essay is ‘ensayo’, which also means ‘rehearsal’. My text is just that: by writing, I rehearse how to express and share certain ideas that are at play in my work. As such, an essay needs feedback and debate, otherwise it’s a very lonesome excercise.

    I don’t fully agree with the counterexample to Stanislaw Lem’s statement: a thermostat, for example, does not experience temperature directly, but needs to transduce it first in order to interpret it and act accordingly. By using a sensor, any temperature value within a certain range can be transduced into binary code (which is also a language) before it can be ‘understood’ by the machine. That’s a big difference: while our human bodies can differentiate between ‘cold’ and ‘hot’ by means of a direct, embodied experience, machines need to translate these physical features into their own language before they can even sense them.

  • > I rehearse how to express and share certain ideas
    > that are at play in my work.

    OK, np! If it was a science or technical paper I woulda nitpicked some of the details, but it’s cool then!

  • hi,

    you can ‘nitpick’ anyway if you wish, i’d love to get some more feedback!