The Atomic Playboy and the Radiation Romeo

The button below will open a new browser window displaying the Flash interface for Atomic and Romeo (Version 16 with Preloader). You will find a page of introductory text, some instructions and then the interface where you can suggest a topic for conversation.

This version 16 uses the landscape layout, updates the heckler and end-of-conversation functions with an audio sign-off. All the features from previous versions remain - scroll bar control,custId variable allows me to better log and track conversations.

The chat-bots are hosted on the Pandorabots server under the Shared Service subscription. Please note, the terms of the Updated Policy Guidelines for Free Community Server state that the “Use of automated scripts to make your pandorabot talk to itself or another bot or script” is proscribed (Pandorabots 2011). This project is being developed with the agreement of the Pandorabots Inc management and we would like to acknowledge their support. ( Pandorabots )

Please leave a comment...

After you have had a play with Atomic and Romeo please use this link to leave a comment.
Maybe you could suggest a topic of conversation or a layout suggestion.
All suggestions gratefully received.

Wednesday, December 21, 2011

Ferguson and Geoff - a 'two-act'

I've been watching a little (under-statement) of Craig Ferguson and his robot side-kick Geoff Peterson (CBS - The Late Late Show - check Youtube). They are an interesting subversion of the comedian - feeder relationship. Ferguson often plays straight to trigger Geoff's set pieces and catch-phrases. Ferguson, for example, will ask Geoff has he every been to such-and-such a place. Geoff's traditional reply is that he has a house there, they should go up for the summer, throw beads at people, take off their clothes and go swimming etc. This spiel has become so much part of act that Ferguson now rattles through set-up, even preempts some of Geoff's replies, and tightens the sequence to the point that it becomes an in-joke.

This is important for a couple of reasons. First, it suggests that humour used in this manner is an inclusive act - Ferguson, by playing straight, is the stand-in for the audience. He is controlling the flow for the audience, even if this means trimming his role. This in-joke, where the audience has to know the joke before it is delivered, makes the audience part of the performance. The second reason is that it suggests, as some humour theories deny, that jokes and comedy in general fail after the first telling. Having heard the joke before does not limit the possibility of humour. Ferguson, from the 2nd through nth telling, gets this to work by altering the context. At the first performance the text is all - by the nth telling context is all.

The Sub-set of AIML - Version 2

I've been working through the file called 'atomic.aiml'. By the way, the name is coincidental, it's not a reference to my character called Atomic. As the primer to AIML explains, ""Atomic" categories are those with atomic patterns, i.e. the pattern contains no wild card "*" or "_" symbol. Atomic categories are the easiest, simplest categories to add in AIML" ( There are some 3412 categories in the original file. My version will contain far fewer. The more work I do on the files the more of the original I want to strip out. Something, as yet undefined and ill-formed, in my mind is telling me to just go with what feels right. Less is better.

One thing I'm getting more of is attitude; a whole lot more attitude. For example, in the original file the input MY MOTHER DIED is dealt with by a consoling statement. In my version, from the point of view of Atomic, this input generates the response "She was alive when I left her". Tasteless? Sure. Offensive? More than likely. Inappropriate? No. Atomic is dead and has, due to this unusual point of view, a less than sympathetic reaction to death and a whole range of human emotions. 

I'm going to have to add a disclaimer to the site about the offensive language. There is some - in truth, there could be a lot depending on the topic suggested by the viewer. As a character in the original play he was self-obsessed, opinionated, ruthless and often offensive. The more of this stuff I write more Atomic is coming to the fore as a character. He is not nice. In fact, the suggestion that he is 'nice' or 'not being nice' is met with a responses ranging from, "Nice - damned with faint praise!" through, "Nice - I hate 'nice' with a vengeance", to "Boo-fuckin-hoo". Romeo, as the comic feeder, will need to temper and balance this tendency. 

Friday, December 9, 2011

Two little moments...

The beauty, if that is the right word, of doing a PhD is that it is constantly with you - it is always somewhere near the forefront of your mind. Here are some examples...

Moment One - This morning I was out walking my dogs - clear sky, warm breeze, rowers unzipping the smooth waters of Throsby Creek. Nice. What was I thinking about? The post-human condition! Talk about not being in the moment! Anyway, I've been doing some introductory reading in the area and it occurred to me that the the logic of post-humanism traces its ancestry from people like Lewis Mumford (The Myth of the Machine), Marshall McLuhan (The Gutenberg Galaxy - and others), George Landow (Hypertext 2.0 and 3.0) through Jay Bolter (Remediation) to Bruno Latour, N. Katherine Hayles, and Robert Pepperell. 

The narrative through-line of all of these seems to be (as a first thought based on scant reading) that we simultaneously make and are made by our technologies and media. And that's what part of my exegesis is about - the making and the made. Humour theory, creativity theory, scriptwriting and dramaturgy, and artificial intelligence all have in common the relationship between the making and the made. These different disciplines theorize about the made (the product), the making (the process), and what these products and processes do for and to us (the social, psychological and cultural making of us).

Moment Two - I was riding to work when I had this revelation about technique. As such it sounds less deep, less profound than the discussion above. But the truth is, it's all about the making and without that these is no made. I've been consider ways of converting a simple two character script structure into AIML - how to split a script so that output from one (<template>) is input for the other (<pattern>) without having to manually code for one chat-bot and then re-code for the other. 

At work this morning I experimented with some song lyrics - Pulp's Common People because it's funny and has a clear narrative. I used the Pandorawriter on the Pandorabots site - it's a "Dialog to AIML Parser", in other words it converts dialog, delimited by a vacant line, into AIML. I fed in the first verse and out came an AIML file with a <category> for each pair of the lines set as <pattern> and <template>. See below, let's call this Atomic's text:
    <pattern> She came from Greece she had a thirst for knowledge </pattern>
    <template> she studied sculpture at Saint Martin's College </template>
Then I deleted the first line and ran it through the Pandorawriter again. Let's call this Romeo's text.
    <pattern> she studied sculpture at Saint Martin s College </pattern>
    <template> that's where I </template>
What does this do? When Atomic receives the line "She came from Greece she had a thirst for knowledge" he says, "she studied sculpture at Saint Martin's College". This is then thrown to Romeo who then says, "that's where I". And so on - Atomic and Romeo can sing a song, each taking a line.

The big advantage of this little technique is that I can write a script in any simple text editing program and then feed it through the Pandorawriter. To be honest, this is a very important revelation. It frees me from the need to simultaneously to be a script writer and a code writer. A very useful division of labour.

Thursday, December 8, 2011

The sub-set of AIML

I've got the list of files down to 18 files containing some 17800 categories. The next step is to go through these categories in much more detail. What am I looking for? Anything that doesn't match the character profiles of Atomic and Romeo. If it suits one of them it will still have to go.

Why is less AIML better than more? And why am I making this decision? The need to avoid Atomic and Romeo having too much in common is a part of the logic. Another part is less obvious. It is beyond difficult (if not impossible) to keep any overall image of the possible relationships between categories. Less is better. Another part comes from the scriptwriter in me and is even less obvious. How would I edit a script? Look for the crucial moments, those line of dialogue the audience simply must get to generate closure. Everything else is up for grabs. 

What is the absolute least? I don't know. However, Atomic and Romeo will have their own 'Properties' defined inside the Pandorabots server rather than in an AIML file. This is where I'll set the 'facts' of their back story.

Now back to the categories. 

Decision time

I spent yesterday going through the generic set of AIML, the aiml-en-us-foundation-alice.v1-5 set. This was not a easy task; there are 64 files containing over 93000 categories!

For each of the files I skimmed through the AIML categories. I was looking for the relationship between the and the

The core consideration in making the decision about which files stay and which go is character. Does this file or category suit Atomic and Romeo? It has to suit both as this edited set will be common to both characters.

There are some examples of very clever uses of AIML.  For example: telling jokes that require the chat-bot to remember the last thing it said and then deliver the punch-line after the client types in WHAT; doing some simple maths; and creating stories using celebrity names randomly chosen from a list that are added to existing story lines.

The automated story telling is interesting. It is akin to theatre games where the audience, using some random device like dice or a chocolate wheel, sets the location, characters and theme for actors to improvise around. Footlice Theatre Company in Newcastle used to to a parody of Melrose Place called Hellrose Place using these improvisational devices - performing in a pub with no 'safety net'!

When I'm finished creating the edited set I'll post a list of the remaining files.

Tuesday, December 6, 2011

Some elementary issues

This post is a device. The purpose of this device is to force me to clearly articulate some elementary issues in the development of character and AIML. So, please excuse me if the following contains more questions than answers and throws seemingly disconnected ideas around... Such is my want...

1.  The common back story problem
Atomic and Romeo need to share a common back story - they are friends rather than strangers. Cool. Simply give them some common AIML categories... That sounds easy...

2. The too much recursion / dead-end problem
There are on YouTube, and other places, examples of chat-bots talking to each other (or of a chat-bot talking to itself). For instance,  look for Fake Kirk talking to ALICE - they use the same ALICE 'engine' and AIML architecture as I am using. These conversations are pretty banal - strewn with non-sequiturs and odd recursions. Is this as good as it can be? If so I've got real problems in this project.

I have a hypothesis. When the two chat-bots share too much AIML this triggers a lot of recursive patterns or leads to conversational dead-ends. As an example, both ALICE and Fake Kirk respond to the "Do you like science fiction?" question in exactly the same way. Neither chat-bot actually knows how to reply to the answer "Yes I love it, especially the works of Philip K. Dick." Both get hung up on the "it" - what does 'it' refer to?

What does this mean in practice? Atomic and Romeo need to share some but not too much AIML. I think this balancing act will be difficult to achieve. Maybe this balance will emerge from the writing and rehearsal process? Depending on emergent phenomena is a risky business. 

3. The start point problem
Basically I've got a choice of two starting points.
Option One - I could start with a completely blank slates. Atomic and Romeo as they currently exist know nothing - even less than Sargent Schultz! I could write a completely unique set of each of them.
Option Two - I could start with a generic set of AIML, for example the set. This is "a free AIML set, in the English Language as spoken in the United States, authored by the AI Foundation".

The advantage of Option Two is that it maintains some serendipity in the interactions that could take me places that I would not think of going. Rehearsing with actors who don't even know there is a script would be tedious in the extreme - I would have to craft every single and

Some conclusions - so far...
The plan is to go with the V1.5 version of Alice.
Edit the set ruthlessly - strip it right back.
Generate a common set that I can use for Atomic and Romeo.
Then, in rehearsal, add to their individual sets.

Hopefully this will allow the balance between what the share in common and what is unique to each to emerge.

Been away a while

The arrow of time is really pointy - you know what I mean. Anyway over the past months I've been concentrating on writing sections of my exegesis and, where possible, converting these to journal articles. I've now got a pretty good handle on the overall structure of the exegesis. The sections I've already written are long but this is a good starting point for editing and shaping.

In early January I'm off to Los Angeles for a couple of conferences - the  Eighth International Conference on Technology, Knowledge and Society and then the Sixth International Conference on Design Principles and Practices. The papers for these have been written and submitted. Hopefully the publishing process will not cause any grief.

In February I'm delivering a paper at the 18th Australasian Humour Studies Network Colloquium in Canberra. Last year it was held in Hobart. A damn fine event that attracted academics and practitioners - this year promises to be bigger and better.

The next couple of posts will be about AIML development issues. This is my core task now.

Monday, July 18, 2011

A better diagramatic view

Here is an updated version of the diagram. I was concerned by the Ptolemaic positioning of the playwright at the center of the production universe. 

The structures remain unchanged but this diagram suggests that these structures are internalized within the playwright. I think this better describes the process and accords with the work of Bourdieu (habitus and field of works) and Csikszentmihalyi (domain acquisition and field). 

(Note - This is version 5 of the diagram. As I've been writing the associated section of the literature review I've refined the titles used on the sections.)

Thursday, July 14, 2011

People finding a paper of mine

I have an account on - the professional networking site for academics ( Recently, over the past month or so, I've been getting a number of notifications saying that people from all over the world have been finding my work - usually through Google searches.

In particular, the paper that has been attracting the most interest is one I delivered at a conference in 2007 titled 'Humour, Anxiety, and Csikszentmihalyi's concept of Flow'. ( )

I'm certainly not saying this is the academic must-read of the season, however, it does suggest that the title of this paper, if nothing else, has struck a chord in the zeitgeist. The combination of humour theory and creativity theory looks to be a rich field.

A diagramatic view of the project

diagram of the projectOver the past couple of weeks I've been battling with the script writing section of my literature review. This is a area where I've had some experience, both as a playwright and as a researcher. So, I thought it would be easier than earlier sections - I was wrong in so many ways.

Last night I had an epiphany... It was one of those rare moments of clarity. I was looking for a way to describe the relationships between the playwright, the scripted dialogue and the interface (will all the attendant technology).

A playwright's job is far more than simply writing the words to be delivered. As the suffix 'wright' suggests, the job requires an understanding of the entire production process, just as a shipwright needs to more than a woodworker or welder to build a ship. The playwright needs to grapple with technology and industry of production - what is possible on a live theatre stage and how it can be achieved. For example, there is no point attempting to stage a film script that requires truckloads of CGI (imagine trying to stage Avatar).

The diagram here represents the structural layers of the project - each of which offer an unique level of agency. The further from the centre the less direct influence the playwright has. This is not to say that at the outer edge the playwright is completely powerless - at this point the playwright is still making choices but they are largely constrained by the structure. In this project I will depending upon the 'kindness of strangers' - the good people who develop and distribute web browsers. Without them the project would not have a 'theatre'. In production, a play needs to be adjusted to fit the stage and these choices are examples of the agency of the director and playwright. They are choices made within a constrained structure.

Skipping to the inner circles, the structure nearest to the playwright is the AIML of the two characters - Atomic Playboy and Radiation Romeo. The situation here is almost the reverse of the outer shell. The structure of AIML, based on XML, is so open that the characters can be scripted to say anything. The choices here, for the playwright, are those that any playwright would face - what to leave in and what to leave out.

The playwright at the core of the project is not an 'atomic' unit, not indivisible. Rather, the playwright is a construction of a whole other set of contributing elements - habitus, domain acquisition, writing experience, personal preference, genetics etc. These things I'll be dealing with in other sections of the literature review.

Tuesday, June 28, 2011

New chat bot characters

The very first play I wrote for Footlice Theatre Company was a one-act black(ish) comedy called 'The Atomic Playboy and the Radiation Romeo Fall in Love'. That was 1993.

Set in a student residence, it tells the story of a love triangle between the Atomic Playboy (a PhD student), the Radiation Romeo (an under-graduate student befriended by the Atomic Playboy) and the Thoroughly Post-Modern Milly (an undergraduate student who, as a post-modern gesture, only speaks in recognisable quotes).

For this project I'm considering bringing Atomic and Romeo back to life. Maybe only Romeo will actually be 'alive'. Atomic's back story is a bit more complicated. Atomic is dead. However, before he shuffled off this mortal coil, he had programmed a chat-bot with his 'wisdom' and witticisms. Romeo has faithfully kept Atomic going over the years by creating a chat-bot of himself for Atomic to talk to.

This set-up seems to have a couple of advantages. First, by fixing Atomic in time (his knowledge of the world has stalled in the mid 1990s - so 20th Century!) this allows him an idiosyncratic view of the world. Romeo, and the audience, know more of the world than he does. Second, it reverses the roles they played in the original script - the 'worldly' Atomic and the 'naive' Romeo. This is a good 'odd-couple' mix. Third, the unresolved romantic tension over their relationship with the 'Thoroughly Post-Modern Milly' is a nice piece of relationship business. Finally, as Romeo is still alive when the user is watching the interchange it's possible they could be seeing the 'human' Romeo conversing with Atomic or they could be watching the chat-bot 'Romeo' at work. This human / non-human character of Romeo will be introduced in the setup page of the chat-bot site.

The next production question is: How much 'standard' AIML should I use? As one of the recent comments pointed out the single sentence conversations are much more punchy and useful. Editing out all of the multiple sentence replies is tedious. However, starting completely from scratch ( an absolutely blank slate that doesn't even know how to respond to "Hello") could be equally time consuming. There is a certain purity to the blank slate...

Things to consider.

Monday, June 13, 2011

Another 'test' version...

This version of the interface is a test of stage setting material. I've added a curtain opening and a bit of introductory text just to see how it would all work.

You can clear all the fields and all the text by clicking the 'Clear' button.

Most of the dialog is based on the standard Alice set. However, a few AIML elements have been changed - those relating to 'animals', 'ducks' and a few other oddities.

Have a play and let me know what you think.

This is a link will open a new browser window displaying the Flash .swf interface of Version 16

The bots are hosted on the Pandorabots site ( Pandorabots )

Friday, June 10, 2011

A topic word or a sentence?

I've been playing with Dick Trickster and Detayle Bhoy today. These guys are my proof of concept bots - the final ones may be the "Atomic Playboy" and the "Radiation Romeo" - more of that later...

Anyway, I'm debating whether to invite the user to put in a topic word, such as 'ducks' or 'climate change', and then have Detayle Bhoy ask Dick Trickster a pre-formed question like - What do you know about X? I could then concatenate the user's topic word, replacing the X, with the question to get something like - What do you know about ducks?

This has a couple of advantages. First it will be easier to train the initial responses as the vast majority of inputs will be nouns - concrete or otherwise. Second, the structure of the input as a question is an obvious conversation starter. The downside is that it may look a little contrived.

Allowing the user to put in a sentence, for example, 'How are you feeling today?' means that (in the current development) Detayle Bhoy picks up that sentence and delivers it to Dick Trickster. This is acceptable but it doesn't automatically start a conversation between to the two bots. The user, once they have asked the question is left out of the conversation - just a little alienating.

We'll see how it goes.

Problem solved...

Thanks to Dr Wallace and the good people at Pandorabots my project has a 'home'.

I've purchased an account of the Shared Service to host my bots. We're back in business. This is also a much more open, transparent, and professional way of undertaking the research.

I really appreciate the
enthusiasm and support I've received from Pandorabots - thanks guys!

Tuesday, May 31, 2011

This could be a real problem...

Last weekend I noticed the following update on the Pandorabots site:

[May 23, 2011]

Updated Policy Guidelines for Free Community Server

1. Resource usage

Pandorabots provides a (free) Community Server at This server is intended for botmasters to experiment with new AIML bots that use limited resources. The Community Server is home to more than 200,000 bots created by more than 150,000 botmasters. Pandorabots has served more than 1.2 billion interactions. Please remember you are sharing resources with all these pandorabots and their botmasters.

If the Community Server resource limitations are inadequate, please contact Pandorabots at to learn about our other alternatives.

In any event Pandorabots reserves the right to remove, modify or disable a pandorabot on the Community Server when we deem that the pandorabot misuses the Community Server resources. The types of issues that may lead to intervention by Pandorabots include (but are not limited to) to these circumstances:
  • Use of automated scripts to make your pandorabot talk to itself or another bot or script...

As the title line says - this could be a real problem. The Pandorabots site offered the most elegant solution for my project. Through it I could train and deploy the bots and then control their interaction with an independent Flash/Actionscript interface. If I lose the ability to use Pandorabots it would be like, in old fashioned theatre speak, losing my two lead actors, the rehearsal space and the theatre!

I've sent the people at an email. Hopefully the reply will suggest a solution that works for all of us.

I'll keep you posted.

Sunday, May 29, 2011

Version 15 - that was fast

The attached version - upgraded from yesterday - now concludes with a generic set of lines. These are just simply throw away lines to end the conversation after a fixed number of interchanges.

Detayle:That's enough out of us!

Trickster:That's enough out of you then!

Detayle:Enough already!

You can clear all the fields and all the text by clicking the 'Clear' button.

Most of the dialog is based on the standard Alice set. However, a few AIML elements have been changed - those relating to 'mother', 'science fiction' and 'Star Trek'.

Have a play and let me know what you think.

This is a link will open a new browser window displaying the Flash .swf interface of Version 15

The bots are hosted on the Pandorabots site ( Pandorabots )

Saturday, May 28, 2011

Version 14 - some progress

The interface, except for window dressing issues, is largely behaving as it should. My supervisor noticed that in my earlier example the text from the bots loaded up the screen rather than down. Surely this is a simple fix??? Indeed, in the end, it was simple. However, it took some five versions to get it to behave properly. It now works and the 'break-though' was such an inconsequential fix (literally rearranging the order in a concatenated string of text - even that makes it sound harder than it was). I suppose that's just the way it goes - iterative and recursive attempts - successive approximations.

You can clear all the fields and all the text by clicking the 'Clear' button.

Most of the dialog is based on the standard Alice set. However, a few AIML elements have been changed - those relating to 'mother', 'science fiction' and 'Star Trek'.

Have a play and let me know what you think.

This is a link will open a new browser window displaying the Flash .swf interface of Version 14

Friday, January 14, 2011

Multple sentence answer problem

There are a couple of things I'm going to try.

1. Edit the AIML to remove full stops in the

Two bots chatting - test

Below is a link to a test interface (Version 9 - 14 January 2011). It is still a 'work in progress' with several issues to be resolved. However, as a 'proof of concept' it's alright to play with.

To start them chatting type in some text in the text field at the top of the interface and click the 'Start Talking' button.

They will keep going until you click the 'Stop Me' button. As they go they get more and more confused - this is one of the issues to be resolved. In particular, the issue of sentence splitting needs to be resolved. If one bot answers with a reply that contains multiple sentence (e.g. I love Star Trek. My favorite series is 'Voyager'.) the other bot will try to supply an answer for both sentences. This very quickly gets out of hand - more and more sentences being passed between the two. Just hit the 'Stop Me' button.

The bots are hosted on the Pandorabots site ( Pandorabots )

You can clear all the fields and all the text by clicking the 'Clear' button.

Most of the dialog is based on the standard Alice set. However, a few AIML elements have been changed - those relating to 'mother', 'science fiction' and 'Star Trek'.

Have a play and let me know what you think.

This is a link will open a new browser window displaying the Flash .swf interface