Where can I find a list of
internal commands?
Some functionality of Ariadne can be accessed by internal commands. internal://dialogue/say
is one example of them. You can find the list of internal commands in the file
ariadne/src/ard/mgr/InternalProtocol
. By looking at that file, you
should be able to figure out how you can add additional functionality which is
not provided right now.
What are the other variables?
All variables, together with the values they can take, are printed out at
startup. In general, variables serve to characterize the dialogue state and
extract certain abstract attributes from the dialogue, such as overall dialogue
quality, or intention (explained above). You can read more about variables in
the ICSLP 2000 papers that can be downloaded from here.
Can I add my own
variables?
Yes, you certainly can. Have a look at ext/src/ardtype_example/types
.
This code defines the types of the variables. A type is defined by (1) the
kinds of values a variable can take and (2) the way the value is calculated.
Copy the code you find there, modify it according to your needs and make sure
your new type is exported by the dll (see ext/src/ardtype_example/library/Library.cpp
how this is done. Then, add a variable with your newly sdefined type to the
config file. Finally, add an ads.update()
statement to the java
script that is referenced in the config file. The java script ads.update()
statement will forward the execution to the update method defined in your type.
What are possible values
for variables (ie, determined)?
The values a variable can take are defined in the type of the
variable. You can find out about them by looking at the source code in ext/src/ardtype_std/variables/*.cpp
.
Also, all variables, their types and the values the variables can take are
printed out at startup.
What is the syntax for referencing/comparing/altering variables/paths (ie '=', '>', 'is' etc.)
What is the formal
definition of a path?
A path is asequence of features concatenated using the bar |
. The
features are the members of the classes defined in the ontology part of the
file.
What possible paths exist?
Possible paths are possible combinations of features as defined in the
ontology. Ariadne does type checking when constructing path objects, so if
features are combined that do not fulfill the type constraints imposed by the
classes in the ontology, an error message is printed.
What are bindings?
Bindings allow an application developer to execute procedures
in the application or services in the dialogue manager, such as internal://dialogue/say
.
Does the order of bindings matter?
The bindings are executed in the order they are specified.
However, text-to-speech is executed asynchronously which means that a binding
following a say command may be executed before the say command has finished
speaking.
Can I define my own bindings?
Yes you certainly can. This is an easy way to have Ariadne
execute native code inside your application. Have a look at ext/src/arditf_cpp
to see how the C++ part is done. The corresponding adl file is found in data/tutorial/step11
.
If you are using Java, see the java source code how to incorporate your own
functionality. java/edu/cmu/cs/is/step02/Step02Package.java
would
be a good place to start.
What is an adl file?
An adl file is a specification of a part of a dialogue application.
What is
generic,
generic:yes,
base:bot
and
answer.xml?
generic
refers to the generic.adl file. In principle, strings of
the form ns:id
refer an identifier id
in namespace
ns
which is defined in ns.adl
.
What does the '->' symbol mean and how/when is it used?
The symbol '->' separates the precondition from
the consequence in a dialogue object, such as a move, goal or database.
What is
$sem, what is
$past and what does the '$' symbol
mean?
In addition to abstract variables described above, Ariadne
supports concrete variables. Concrete variables hild representations as created
by the parser. For example, $sem refers to the semantic representation of the
current utterance.
Concerning move ConfirmDoSomething on variable Intention changed to
finalized
: What is the name of the move and what does the word "on" or
"changed to" mean?
The name of the move is ConfirmDoSomething. The preconditions of this move are
evaluated whenever the value of the variable intention changes such that the
new value is finalized. You can specify a complete transition by saying move
ConfirmDoSomething on variable Intention changed from determined to finalized