Philosophy 371: Minds and Brains/Cognitive Science Lab 1997
Lab 11: Can a computer be creative?
Note: The lab will not meet next Monday, April 21 (the first night of Passover). Instead, we will do this lab completely as a take-home exercise, due Wednesday, April 23 at midnight.
Preamble
. Are we merely fancy Turing machines?Now that weve had a chance to seeing Turing machine computation in action, many aspects of our lives with computers may make more sense. Because most contemporary computers are fancified Turing machines, you might now know why they exhibit typical computer traits like the following:
They must be programmed in order to do anything.
The programs must spell out every detail.
A single problem in software or hardware will crash them.
They cannot anticipate or respond to inputs other than those their programmers have anticipated.
This digital litany seems to limit the applicability of the Turing machine model to the human mind -- or does it? A defender of "Turing minds" might make the following case:
The mind runs a vastly more complicated program than anything created by humans, so:
The minds program may be able to anticipate all the relevant variations in real-world input.
The minds program may have lots of redundant backups to avoid bugs and crashes.
Evolution and experience may substitute for the programmer, and have billions of years to perfect the minds program.
Being implemented in the parallel hardware of the brain may make computation in the mind look different, but the right program may nonetheless be in there, somehow. In other words, the mind is just a Turing machine, implemented in neural hardware.
Class debates on the "Turing mind" hypothesis usually hit the points above, on both sides of the issue. But one issue is eternal. Those who maintain that we are not computers, of any sort, will inevitably invoke the following mantra: But a computer cant be creative!
For example, they will point to a passage of poetry like the following, a delicate haiku that might well have been written by Pat to Chris after their first outing together:
lovely, lovely lunch
the lovely loudness
languidly, lovingly, lunch
Or consider this example of philosophical self-reflection:
I am we
they are I
too many people have been I.
Obviously creative stuff, right? The only problem is, a computer wrote it. Its output from "McPoet," the software for this weeks lab. We will use it to explore the potential of computation, of creativity, of humanity. Hang on!
Youll enjoy doing this playful work with a partner.
About the software.
McPoet is a spectacular hypercard stack written with wit and ingenuity by Chris Westbury. Here are some outtakes from the McPoet help file, to orient you to what is to come:
What is McPoet?
McPoet is a prose generation, morphing, and deconstruction tool.
In its prose generation mode, McPoet will randomly apply a set of user-defined rules to randomly chosen words from a set of user-defined words for as long as you like. Some among you may like to think of this- a strange order springing from chaos- as poetry.
In its deconstruction mode, McPoet will 'morph' normal texts (or its own output) in systematic ways, to help you release the strange meanings which lie just beneath the details of your own meaning structures.
We will try out McPoet in its various functions.
Loading it: The McPoet folder is found in Macintosh HD/Network Servers/Course software, as usual. As usual, you should drag it to your desktop before you do anything else. Launch by clicking on the McPoet icon.
I have developed a series of exercises to try out with McPoet. For this weeks lab, you should report on any two of the exercises. (You and your partner can divide the report-writing any way you want.) But do try all the exercises.
Exercise 1. The Search for Creativity:
In this first exercise, your mission is to create (with McPoet) one very creative text, and one uncreative text, and discuss the difference.
To do this, youll need to create quite a few texts to chose your winner/loser. You may find that certain settings of McPoet make for more creative output. But first, the basics:
After you get to the main window:
How is McPoet run?
Running McPoet to generate prose (freeform poetry) is quite simple. Make sure the mode-switch above and to the left of the main window is flipped down to 'Generate Text'. Choose 'None' (or some other subject, if you wish) from the pop-up menu labelled subject/method just above the McPoet window. Click on the large button above the menu, which is entitled 'Wax McPoetic'. You will be prompted for the number of lines that you want the program to generate. You can stop McPoet before at any time by holding down the command key (also known as the 'Apple' key) and the period (.) key.
If you only want to generate sentences according to the factory settings, you now know everything you need to know. However, the program has many other interesting features. If you decide you don't want to know more, please skip to the end of the help section to read the acknowledgements, and to find out about the terrible price that you must pay to use this stack.
Vary the subject/method options and see what happens! In general, these variations are the most consequential, but you might explore the Control Panel button for a few more to play with. Also click on the Speaking Person icon to hear the text read aloud.
To save the good, the bad, and the ugly, highlight it and press command-C (copy). Then open WordPerfect and press command-V (paste). (There are other routes, but this is probably simplest.)
Your report on this exercise: Quote your two passages (one line or more), and discuss what makes one seem more creative and the other not.
Exercise 2: The search for meaning
McPoet includes a number of "text-morphing" functions. Some have the effect of annihilating meaning, but others lead to changes in meaning and new meanings. One can morph any text one chooses -- you can take something youve written yourself, or your favorite author. When the passage is morphed, one might discover new patterns of meaning or sound, patterns that may surprise you or enlighten you.
For the second exercise, begin with a text that makes sense, and explore the morphs that mess with it but dont fully destroy the meaning. Choose one of your morphs, and discuss in what ways the morph undermined meaning, and in what ways the meaning was preserved or even enhanced. In other words, youll be discussing the bases a reader uses in extracting meaning from a text. For your report, include the original text, the morphed version, and your discussion of the questions just mentioned.
Youll find working with your own writing is fascinating!
To get text into McPoet, I find that a simple cut and paste works best: Command-C on a highlighted passage in (for example) WordPerfect. Then turn to McPoet and Command-V to paste the passage in the McPoet main window.
At the top left, click on the switch to turn it to the up position, "Randomize Text."
The subject/method menu now has a new set of options. The easiest to understand are the following (quoting again from the help files):
The remaining text-degeneration features work only if there is text in the McPoet window. All of them are methods for randomly mixing up elements of the text.
- 'Blur' will randomly replace a given percentage of the letters in the text with randomly chosen letters.
- 'Blur Vowels' will randomly replace a given percentage of the vowels in the text with randomly chosen vowels.
- 'Flip Pairs' will randomly swap a given number of letter pairs.
- 'Flip Vowels' will randomly swap a given number of vowel pairs.
- 'Reverse Text' will reverse the entire text.
- 'Reverse By Word' will reverse every word of the text, leaving that word in its current position in the text.
- 'Delete Every Other' will delete every second word of the text. If you are trying to construct a poem from a prose text, this can sometimes be a helpful step for loosening your associations.
- 'eecummingsfy' will attempt to mimic the style of the great poet ee cummings, using the available text. Text which has been eecummingsfied tends to function 'more poetically' than text which has not been so treated. Like all the randomization tools, eecummingsfication works probabilistically, so treating the same text twice will not give precisely the same result.
- 'Dadaize' will randomly choose words from the original text (without replacement) and print them in a randomly-arrayed manner. Some of you may recognize this as the original formula for producing Dadaist poetry, as conceived of by the patron saint of McPoet, Tristan Tzara: "And here you are a writer, infinitely original and endowed with a sensibility that is charming though beyond the understanding of the vulgar".
- 'Replace terms' will replace every word that is in McPoet's vocabulary with another word from the same word class. I am aware that there is currently a loss of punctuation in this process, and may solve that problem in a later version of McPoet. Note that this feature is of minimal use on McPoet's own output, since it is essentially equivalent to running the text generation process again, and text generation is much faster than term replacement. For that matter, it is almost always faster to use the 'Make A Rule' command (described below) to make a new rule from a text and then run the new rule than it is to use the 'Replace Terms' command. The effect is analogous. However, if you have patience and want to watch things as they happen, you can use the 'Replace Terms' feature with interesting results.
- 'Randomize' will randomly swap words in the text. This is McPoet's original text-mixing technique.
A second morphing technique, highly recommended, is chaining. From the help files:
Markov Chaining
The idea behind Markov chaining is very simple: simply take every element of a text, and compute the likelihood that any element is followed by any other element. Then reconstruct the text in a way which reflects the real probabilities, by stepping through the probability table. For example, in the string 'ababca' the likelihood that 'b' will follow 'a' is 100% while the likelihood that 'a' will follow 'b' is just 50%, since 'b' is followed exactly once by 'a' and is also followed once by the letter 'c'. One probabilistic reconstruction of this string might be 'bcabcaba', since this string has (roughly) the same statistical structure as the original one.
Any sequence of elements can be Markov chained. McPoet will Markov chain any text, including its own output, although, for reasons which may be clear upon reflection, simply chaining McPoet's output is usually not very interesting- or, at least, no more interesting (but much slower) than generating it from scratch. It is more interesting to chain 'real' texts, which you can paste in to McPoet, or read in from text files.
Once you have built a probability table of a text, you can add it to the probability table of another text, to get some idea of what the 'average' text would be like. One way of doing this is simply to paste in two texts, and build a single probability table of that mixed text. This can be extremely interesting and/or amusing if you choose your texts appropriately.
McPoet makes it easy to do this, since it ships with several probability tables built in. The subject/method menu allows you to access these texts. The five probability tables included with McPoet are made from the following texts:
i.) Some random smut taken from the Internet news group, alt.sex. As explained elsewhere in this documentation, the potentially offensive words in this text have been replaced with the names of prominent American politicians, which can be back-substituted using Lamprey System's program, 'Hexon Exon'.
ii.) A surrealist text, which I wrote myself, because I couldn't find a good one which was already in digital form.
iii.) A text from the Bible (starting somewhere in Romans).
iv.) Shakespeare's first twenty sonnets
v.) Some random Kant-like gibberish which was in fact randomly generated by Mark Pilgrim's Macintosh application 'Kant Generator Pro'.
If you choose any of these five texts from the subject/method menu, and then click on the 'Mix McPoetic' button, then any text in the McPoet window will be Markov chained with the chosen text. If there is no text in the McPoet window, then McPoet will simply 'walk through' the probability table of the chosen text.
The truly inspired among you will immediately want to know if you can chain the built-in texts with each other, to get, for example, the 'average' of alt.sex and the Bible. Of course you can! Simply run the system to generate some text from one of the tables, and then use that text as input to be chained with another text. Since the first text is statistically identical to the original text from which it was generated (though it may not seem so to you!), this is almost exactly equivalent to chaining together the original texts.
There are, alas, a few technical limitations in Markov chaining with McPoet. One is that it is quite slow, as McPoet needs to take two passes through the text to build the probability table, and McPoet is not fast. The other limitation is on the size of the texts: you will get an error if you try to chain together large texts, since McPoet is limited internally to tables which are less than 32K in size. Getting such an error will not harm McPoet (or your computer!) but it will happen unpredictably, since the size of the probability table which is generated from any text depends upon the nature of the text. If you get the error, simply use a smaller text. Future versions of McPoet may deal with the size limitation problem in a more graceful manner.
Aside from Markov chaining your own texts and giving you access to the five built-in probability tables, McPoet provides various other Markov-chaining tools. All are available in the same way, by choosing them from the subject/method menu and then clicking on the 'Mix McPoetic' button.
'Chain single' will simply Markov chain any text in the McPoet window, without mixing it with any of the built-in tables. The probability table will be built based on the odds of any single word following any other single word.
'Chain pairs' does the same thing, but it builds the probability table using pairs instead of single words. This gives slightly more structure to the probability table- and also makes the probability table much larger than it is when chaining by single words, meaning that you may need to use shorter texts than if you chain by single words.
'Chain letters' will chain a text in the McPoet window by letter pairs instead of the word pairs used by 'Chain Pairs'. The output will resemble the language of the original, but may not necessarily consist of real words. There are many interesting experiments to be conducted with Markov chaining by letter. Try exploring the difference it makes to use highly redundant texts (such as, for example, those generated by forcing McPoet to produce lines using just one or a few rules), as compared to more randomized prose, or the difference it makes to use a long text versus a short text. Do not fail to chain by letter and then have McPoet read it out- the results can be quite amusing. Future versions of McPoet will probably allow you to chain by N letters, where N is a user-chosen integer, as I am interested in exploring what happens as N increases.
If you choose 'Chain Random Letters' McPoet will build a random Markov chain of letters and then walk through it. The result will (probably!) not resemble any language on earth, but will have a certain regularity to it. This is the slowest function in McPoet. The algorithm uses three passes before it starts writing the 'real' language: one to build a mildly repetitive random string, and two to Markov chain that string by letter. There are more elegant ways of achieving the same end, and I may work on implementing other methods one day. Meanwhile, there are several other ways to create alien languages in McPoet. I leave these as an exercise. It may help to know something about McPoet's other text-morphing features, to which we now turn our attention.
Chaining opens into some truly weird areas of self-exploration. For example, I pasted the entire first page of this handout into the McPoet window, highlighted "Chain single," and got out the following:
Program You Might.
Can a computer cant be creative? Note: The first night of humanity. Hang on! Philosophy 371: Minds and crashes.
Evolution and have lots of poetry like the lab will not computers, of the software or hardware of philosophical self-reflection: I too many aspects of creativity, of the following: They must spell out every detail. A single problem in the potential of Turing mind look different, but a Turing mind runs a delicate haiku that weve had a take-home exercise, due Wednesday, April 21 the following case: The programmer, and have lots of the brain may make more complicated program may have been written by Pat to anticipate all the right program than anything created by Pat to explore the parallel hardware of poetry like the software for this lab completely as a Turing machine computation in action, many aspects of the lab completely as a delicate haiku that we merely fancy Turing machines, you might now know why they are I too...
Exercise 3:
Variations on 1 and 2. Perhaps the questions I posed in the first two exercises are not quite right for you. In that case, mutate and morph the exercise to pursue some other interesting aspect of your mind in motion. There is no limit here -- just be creative and free.Exercise 4: McPoet speaks. I let McPoet devise the ultimate exercise, using single chaining on all the exercises herein. Interpret this any way you can, and go for it.
...your mission is to do this, youll find working with it but others lead to changes in what ways the original text, and morph any text one can morph any way you or sound, patterns that makes one can take something youve written yourself, or enlighten you. Quote your mind in other words, youll need to chose your winner/loser. You can morph undermined meaning, but dont fully destroy the exercise 2: The search for you. In extracting meaning was preserved or even enhanced. In that mess with a reader uses in the passage is fascinating! Exercise to create with your mind in that may find working with McPoet one seem more creative and discuss in extracting meaning McPoet make for your own writing is fascinating! Exercise to create quite a number of your two passages one might discover new meanings.
Epilogue: The author answers the question, "Why?"
At last we come to the big question: why bother with McPoet at all? While this is ultimately a question which only you, dear reader, can answer for yourself, I am happy to share a few thoughts with you.
McPoet is not intended to be taken too seriously as a poetry generator, though I do hope that it may provide some amusement on that level. I am not poking fun at modern poetry, despite the title of the program. It is a reference not to the computer on which you are running this program, but rather to the strange world we inhabit, in which 'billions and billions' are served.
McPoet is intended rather to function as a tool to help me (and, if you wish, you) to explore the border of one of the fundamental dualities of the human condition: that dynamic border which divides order from chaos, law from anarchy, meaning from absurdity. For all its silliness and open absurdity, the interesting thing about McPoet, and other simple means of generating random texts, is how often they actually manage to strike a nerve; how often we actually find ourselves reading the words and thinking 'That's true!' or 'That's elegant!'. I am very interested in understanding how this happens. Where does that experience of meaning come from?
Unless you believe that Divine Intervention is tailoring McPoet's output specifically for your eyes, the answer, of course, must be that McPoet's meaning comes from us, the users of the programs. When we read the output of McPoet, it is you and I who are the poets. It is we who decide what is good and what is bad; what is interesting and what is not; what transcends the randomness of the Universe to enter into the realm of Meaning. McPoet teaches us, first of all, that we are all poets. We are all creators of meaning. We are all able to experience for ourselves what is fine or funny or profound.
My thesis is that McPoet provides a metaphor for interpreting our place in the universe. We are continually imposing our value system onto the Rorschach ink blot of the Cosmos, just as we impose it upon McPoet's words. We are deciding what makes us angry or crazy, just as, sadly less often, we are deciding what makes us good or valuable. We are creating much of the horror in our existence, and much of the good as well. When we accept that this is so, we can start to re-organize ourselves and our environment in a better, gentler, funnier way.
Reports will be accepted until Wednesday April 23 at Midnight.
Please hand in either hard copy or via Docex, in the Phil 371 "Drop" folder.
Please use WordPerfect.
Please name your file after yourselves, as in "Smith and Jones Lab 9."