-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Welcome to the Flipper-2.0 wiki!
Flipper 2.0 is a simple, template-based library for specifying dialogue rules for dialogue systems. Using XML-templates, you can describe the preconditions, effects and behaviours of dialogue rules. It's an information-state based engine mainly used for creating dialogues and interaction with social agents and robots. It's an update from the original Flipper, found here: https://github.com/ARIA-VALUSPA/Flipper, made by Mark ter Maat. The new version is developed mainly by Jan Flokstra.
Flipper 2.0 is used in the ARIA-VALUSPA project http://www.aria-agent.eu/ as dialogue engine for a virtual agent and in the Snoozle project.
- JavaScript can be used in the dialogue templates
- Real-time editing of dialogue templates (beta)
- Easier use of Java classes
The following software is required to run Flipper 2.0.
- Java 1.8 or newer
The library of Flipper is meant to be integrated in your own project. You can find the options for this in the ReadMe. When integrating it into a project, the user needs to take care of the input (filling a datastructure called the 'Information State'), writing the templates, and creating classes that perform the output specified in the templates.
Once you've installed the requirements, we recommend that you clone or download the repository and build it into a .jar
and append it to your project.
To set up Flipper in your own project, you have to create a thread with an instance of FlipperLauncherThread
. This starts a TemplateController
that does the checking of the templates and is basically the main core of Flipper 2.0. An example of instantiating a TemplateController is given in the code with the FlipperLauncher
. Make sure that templates you require are defined in the properties file in the resource folder of your own project. You can take the `flipper.properties' as an example. Here you set:
- The name for your Flipper TemplateController
- JavaScript libraries
- Dialogue templates
- Evaluation frequency
- Maximum number of iterations (0 if infinite)
- FlipperWatcher for real-time editing (still in development)
- Database settings (PostgresSQL)
- Analyze the dataflow
- Visualze the information state
The class TemplateController.java
is the main class that will check all the XML dialogue templates and is responsible for checking conditions, effects and behaviours. Mainly you will only modify the XML templates, of which already a couple of examples are included in the /resources/example
folder of the project. A simple example of such a template would be:
<behaviourtemplates>
<is name="counter">
{
"value" : 1
}
</is>
<template id="1" name="Template A">
<preconditions>
<condition> is.counter.value !== 10</condition>
</preconditions>
<effects>
<assign is="is.counter.value"> is.counter.value = is.counter.value + 1 </assign>
</effects>
</template>
</behaviourtemplates>
Cafaro, A., Bruijnes, M., van Waterschoot, J., Pelachaud, C., Theune, M., & Heylen, D. (2017, August). Selecting and Expressing Communicative Functions in a SAIBA-Compliant Agent Framework. In International Conference on Intelligent Virtual Agents (pp. 73-82). Springer, Cham.
Kolkmeier, J., Bruijnes, M., Reidsma, D., & Heylen, D. (2017, August). An asap realizer-unity3d bridge for virtual and mixed reality applications. In International Conference on Intelligent Virtual Agents (pp. 227-230). Springer, Cham.
Vroon, J., Zaga, C., Davison, D., Kolkmeier, J., & Linssen, J. (2017, March). Snoozle--A Robotic Pillow That Helps You Go to Sleep: HRI 2017 Student Design Competition. In Proceedings of the Companion of the 2017 ACM/IEEE International Conference on Human-Robot Interaction (pp. 399-400). ACM.
Reidsma, D., Charisi, V., Davison, D., Wijnen, F., van der Meij, J., Evers, V., ... & Mazzei, D. (2016, July). The EASEL project: towards educational human-robot symbiotic interaction. In Conference on Biomimetic and Biohybrid Systems (pp. 297-306). Springer, Cham.
Ter Maat, M., & Heylen, D. (2011, September). Flipper: An information state component for spoken dialogue systems. In International Workshop on Intelligent Virtual Agents (pp. 470-472). Springer, Berlin, Heidelberg.