Multi-threaded user interactions
Showing multi-threaded users interactions (multiple conversations) in a graph theoretic space instead of a rectangular frame.
The original graphic is from the paper "Petri Net Machines for Human-Agent Interaction".
The graphic specification I sketched out for the original graphic:
ELEMENT: point(position(thread*thread_step)) ELEMENT: text(position(thread*thread_step), label(global_step))
threadis a categorical variable representing the conversation thread (indicated by the three color classes in the original graph).
thread_stepis the number of steps taken in that particular thread of conversation. E.g. The blue conversation has two thread steps, the red conversation has three thread steps.
global_stepis the number of steps taken in the conversation overall (minus the persona interactions).
I think the original graphic does a good job showing that there are multiple threads, but following the numeric labels to see the conversation flow is hard. I thought that, instead of using a frame defined by
thread*thread_step, a redesigned graphic could use a graph-theoretic space, which is what I did.
Instead of using numeric label to cross reference the script with the threaded conversation, I wanted to see if it were possible to put the script inline in the graphic.
Now that I think about it, since the user's response is triggering the context switching in the system, maybe the edge labels should be user response and the node labels should be system responses.
I used Graphviz to generate the redesign, using the
Code used to create "Multi-threaded user interactions"
- script.graphviz - DOT language code describing the graphic.