The Girl with Skin of Haints and Seraphs is a polymorphic poem first implemented in a non-interactive form as the initial deployment of the Alloy algorithm for generative purposes within another system. It has been subsequently updated with each iteration of GRIOT and it provides a good example for tracing through the execution of an interactive polymorphic poem. As stated above, this polypoem is a commentary on racial politics, the limitations of simplistic binary views of social identity, and the need for more contingent, dynamic models of social identity. The dynamic nature of social identity is also reflected in the way the program produces different poems with different novel metaphors each time it is run. This LISP program draws on a set of theme domains such as skin, angels, demons, Europe, and Africa, given as sets of axioms.
The following example and discussion illustrate the interactive nature of this polypoem. It also recapitulates and extends the discussion of GRIOT architecture and formal description of text generation described above. After processing a user input keyword such as "Europe" entered at a ">" prompt, the first line could be:
her tale began when she was infected with white female-itis
she began her days looking in the mirror at her own pale-skinned death-figure face
or any of a number of alternate phrases (there are fourteen templates for such opening phrases). As an example of variation within a particular phrase due to wildcard replacement, among many other possibilities the first example above could have also been either:
her tale began when she was infected with tribal-warrior spectre-itis
her tale began when she was infected with black demon-itis
depending upon how the phrase template was instantiated.
In the example above, one set of phrase templates contains "(her tale began when she was infected with (* g-singular-noun)-itis)" in the LISP syntax of the implementation, where the inner parenthesis is a variable, here called a "wildcard,"that gets replaced with a noun cluster or a noun paired with a modifier. Exactly how the wildcard is replaced is determined by a combination of user input and the contents of the wildcard itself. A wildcard consists of two or more parts including a "*"marker that indicates it is a wildcard, and a variable that determines whether it is to be replaced by another phrase (denoted by the prefix "p-"attached to a clause type name) or by content generated using the Alloy algorithm (denoted by the prefix "g-"attached to a grammatical form name such as "singular-noun"). Optional variables can be used additionally to constrain domains or axioms selected as input to the Alloy blending algorithm (denoted by "d-"and "a-"prefixes respectively, though in practice we have not had to use axiom determining variables). Optional variables can also be used for structural effects such as forcing repeats of wildcard replacement text from earlier in the poem. User input plays a role in wildcard replacement as the user entered keywords determine one of the domains to be used in constructing blends that will be used in template instantiation. In most of the polypoems implemented so far, phrase templates have been most commonly instantiated by replacing the wildcards with English language mappings from conceptual blends produced by Harrell's Alloy conceptual blending algorithm.
The text grammar below gives a basis for rationally reconstructing and enhancing the poetry system (the current implementation was not conceived this way when built, and is less general). A simplified formalization of Labov's narrative of personal experience (due to Joseph Goguen) gives top level structure for poems. One poetic domain contains the template (her tale began when (* g-verb-clause)) in the LISP syntax of the implementation, where the inner parenthesis is a variable that gets instantiated with a verb phrase containing a past tense transitive verb, such as (was infected with (* g-singular-noun)) where again the inner parenthesized phrase is a variable that gets instantiated with a conceptual blend produced by the Allow algorithm. The axiomatic form of the first template is
[her tale began when X. :: , .9]
where we assign saliency .9 (although the current implementation does not have saliencies). Arguments of other templates are instantiated with elements from domains for persons (e.g., a protagonist), places, objects, etc.; it is a major issue for the artist to choose such material appropriately.
An interesting philosophical issue is raised by this program: human input might be considered cheating by traditional AI practitioners, since most AI text generation projects are oriented towards total automation and Turing test competence. But our quite different goal is to use the blending algorithm in a human designed system that generates poetry containing novel metaphors in real-time; just as with computer games, it is desirable and necessary for humans to provide rich content. For such projects, artistic freedom must take precedence over dogmatic Turing test reductionism.