A couple of researchers from Carnegie Mellon and Hitachi have written a paper on an extension to VoiceXML to more easily support complex dialog systems. Their focus is on scenarios where you have multiple related dialogs and want to allow for flexible transitions between these dialogs. From the abstract:

This paper describes DialogXML, an extension to VoiceXML that supports a more implicitly declarative language for dialog scenarios, and ScenarioXML, a straightforward combination of DialogXML with the template-filling mechanism of Java Server Pages.

Essentially the same group also recently published a paper in the Information Processing Society of Japan SIG Notes on a spoken dialog management architecture for car telematics systems using VoiceXML, DialogXML, and ScenarioXML.

This is really interesting stuff, but I still struggle with the idea of using an XML-based language for programming. I really like the idea of being able to validate my code against a DTD or schema, but the code ends up being really verbose and hard to read. It’s even worse than JSP or ASP coding. XML just doesn’t seem like the most user friendly way to describe these kinds of state transition diagrams.