Monday, October 16, 2006
Writing Poetry
As I work through the design details of Etc3 (e.g.: a tree adjoining grammar this time, but oh, what an innovative one!), I think I'm beginning to understand why ALG systems so often put out non-poetic texts.
What we've been trying to do is mimic the poets' output, conforming to standard AI practices. (It doesn't have to actually be a duck, it just has to look, sound, and walk like one.) Hisar Manurung's doctoral dissertation is a case in point (and well worth the read, by the way). His attempt, which in the end he finds unsatisfactory, is to build an engine that produces output with the observable features of poetry, the AI party line.
But the problem with this approach is that what's observable in poetry is only surface (admittedly that "only" is just downright hard to get right). What makes a poem Poetry is something deeper. And whatever it is, a poetry machine has to express that within its source. What we are asking our code to do is write Poetry, not poems. What these machines need to be able to do is not to produce copies of poems but to define poetry itself. Then the poems will come naturally, a fraught phrase if I've ever written one.
This is a lot to ask. There's little agreement on what Poetry is as expressed in natural language. Now we are asking programmers to describe it in the poverty-stricken vocabulary and grammar of a computer programming language. We need another language and so we "write" that first: the interfaces and classes and enumerations and functions that provide the expressive capabilty such a new language requires. We write Poetry and it writes the poems.