Poetry Machine
A project by David Link

Poetry Machine is a text generator based on semantic networks. Users can enter concepts that are meaningful to them or for which they expect an answer. Poetry Machine responds with a never ending stream of sentences that circulate around these words. Since these answers are not dependent on scripted answering modules that were written beforehand but are generated dynamically, they are always different and never repeat themselves. They are printed out on a projection screen and spoken out loudly by a text-to-speech system. The semantic information of Poetry Machine comes mainly from the internet. Autonomous "bots" continuously search the internet for concepts that are still unknown to the program and feed the resulting documents back into its database. Consequently, the content of the database and the output of the machine change over time.

Poetry Machine consists out of the central program that reads and writes texts, a bot system that automatically retrieves information from the internet, a chat client that communicates with people in chatrooms and a local display that shows the current network structures in the database.
 
 


 
 

Reading
 

In the beginning, the Poetry Machine‘s databases are completely empty. The system starts as Tabula rasa. People can feed texts into it locally or over the internet. But the program mainly uses the huge amount of texts in the internet as a source for its "understanding" of language. Autonomous "bots" are continuously searching the world wide web for concepts that are still unknown to the Poetry Machine and feed the resulting data back to the reading process. So the software is not dependent on the input of users. The internet is today‘s biggest manifestation of the virus called language.

The texts are then transformed into semantic networks on one hand, into syntactical frames on the other.

First, common words that are considered meaningless like "the", "and", "or" are marked. Taking certain punctuation marks like period or semicolon as delimiters, the text is then divided into short sequences of narrow semantic contexts. Each meaningful word in these contexts is combinated with every other word. The relation counter of the corresponding word couple is raised by one and determines the "weight" of the relation. In this sense, Poetry Machine is essentially differential, because the values of the single elements are only determined by the difference and relation between them. These semantic, relational informations build up a network of on the average 200.000 connections per text.

Poetry Machine not only extracts semantic material out of the texts read in, but also syntactical structures. If the word type of all meaningful words in a segment can be determined, its syntax is formalized and stored in the syntax database of the corresponding text. Endings are recognized and standardized by simple transformation rules. So instead of using computer linguistic tools for the long and uncertain determination of grammatical and syntactical relationships, that can easily become an - unfinished - life project, Poetry Machine simply uses only the syntagmas that can definitely be determined and relies on the huge amount of text material available in the internet.

All networks of the program are based on one identification key and allow the system to generate using the semantics of only one text as well as to jump between the networks of one author, one epoch or a certain theme, using the complete semantics of a certain group.
 
 

Writing
 

To transform the complexity of this structure into the one-dimensionality of a text means to interpret this web as a ball of strings, a mix-up of pathways. The weight of the relations is converted into relative permeabilities. The more often a certain word couple was seen together, the more permeable the transition between them gets. Or not: the relation stays "aporetic" - no way.

The writing process is initialized by one ore more meaningful words. They enter the system from outside - the users of the installation, an interface available in the world wide web or a chatroom. The writing is inspired by dialogue. Several writing processes might run parallely. To prevent redundancy two processes are not permitted to use the same netwaork at the same time. By shots into the networks, whose energy is lowered with each transition dependent on the permeability of the connection, the chaotic structure of the network is reduced to the line of a sentence. An activated node builds up a list of neighbouring nodes that were not passed already on the way before and where the resistance of the connection wouldn‘t lower the energy of the shot under a certain level. Randomly, one of them is activated with the remaining energy, and this game of controlled random starts again until the energy is gone.

The resulting semantic tokens are then patched into a fitting, randomly selected syntactic frame. An additional parameter controls whether the syntax should be taken from the same text than the semantics or not. The generated sentence is displayed on a projection screen and spoken by the speech system. Taking the newly found tokens as the next input, the generation process starts from the beginning.

An associative text evolves that sometimes moves farer away from the theme, then gets back to it again and runs endlessly until Poetry Machine is told to stop the generation process. It is certainly foreign to the expectations of human readers, sometimes surprising, sometimes disappointing, but never the same.