Dialogue planning refers to the process of deciding what to say in
order to achieve some goal. Even in simple dialogues from our daily
life, we must be able to handle interruptions, while maintaining
dialogue context to ensure that relevant responses are given at the
correct time. The above example shows how this might be the case in a
coffee ordering scenario - the question about sugar can be seen as an
interruption to the original request, while the customer knows that in
order to proceed to achieve her goal she will need to answer the
We propose a Linear Logic representation for modelling dialogue planning, hypothesising that by viewing speech acts as planning operators, a formal representation of the structure of human dialogues can be given in Linear Logic. By specifying these planning operators in Linear Logic, this representation aims to provide a simple and robust framework for agents interaction while maintaining expressivity.
The resource-sensitive nature of Linear Logic means that it is able to provide a formalism for STRIPS style planning. This has the advantage of modelling actions without explicit frame axioms, while allowing internal states of agents to be modelled as resources.
A robust framework would allow failures which occur in planning or execution to be handled correctly. Additionally, our framework aims to make the specification of agents reusable across different domains.
Using Lolli, a Linear Logic programming language developed by Hodas and Miller, we tested our hyposthesis by building a system which illustrates how various speech acts and physical actions can be represented by Linear Logic.
The case studies in the paper Plans, Actions and Dialogue using Linear Logic have all been implemented and be found in the case studies directory. Examples 1-5 are the coffee selling domain and example 6 is a reimplementation of the door problem described in Power'79. Examples 1-5 separate the world from the agent specification files and use Lolli to automate communication between distributed agents. Example 6 uses a simpler (in terms of Lolli code) approach where the world is modelled within the agent's definition and communication is copy and pasted by hand. Note Power's example can take several minutes when running in Lolli under Alice and upto a minute running in Lolli under other SML platforms.
[R. Power (1979) "The organisation of purposeful dialogues" Linguistics 17, 107-152.]
We have also used the framework for teaching Agent Based Systems:
put_chan C X-- puts the value X onto channel C
get_chan C X-- get a value that unifies with X from channel C respectively
Our local copy of the documentation is available here.