RavenClaw Prompt Description Syntax
The prompt specification obeys the following syntax ([X] means X is optional; A|B means A or B):
PROMPT ::= [FLAGS] ACT OBJECT [PARAMETERS] FLAGS ::= (see #Flags) ACT ::= alphanumeric string OBJECT ::= alphanumeric string PARAMETERS ::= PARAMETER [PARAMETERS] PARAMETER ::= [ATTR]'<'CONCEPT | ATTR='"'VALUE'"' ATTR ::= alphanumeric string CONCEPT ::= alphanumeric string VALUE ::= alaphanumeric string
Act and Object
The act and the object uniquely identify the prompt for the language generation module. A number of acts are predefined and commonly used in the RavenClaw framework: inform, request, explicit_confirm, implicit_confirm, establish_context. The system developer can extend this list, while ensuring that the language generation module handles the new prompts accordingly.
The prompt parameters provide the language generation module with an attribute-values list for the prompt. This list is used to populate the language generation templates with values. An attribute for a prompt can be declared by simply specifying a concept name or referent (the attribute name will be set to the concept name, and the attribute value to the concept value), or by specifying an attribute name and a constant value. An example of a prompt is:
inform welcome <registered <user_name
The language generation module receives as parameters the registered and user_name concepts and can use them to construct an appropriate prompt. For instance, if registered=true and user_name="John Doe", the natural language generation might generate "Hi John Doe!". Alternatively if registered=false and user_name="", the natural language generation module might generate "Hello, guest user! If you would like to register with the system, please send an email to email@example.com."
A number of additional flags control how the prompts are rendered:
- the decoder will be set in non-listening mode for the duration of the prompt.
- the barge-in mechanism will be disabled for the duration of the prompt.
- this prompt will not be repeated by the output manager, if the user asks the system to repeat.
- specifies the output device to which the prompt will be sent. By default, prompts are sent to the natural language generation device. However system developers can specify additional output devices (e.g. a GUI in a multimodal system.)
(originally copy-pasted from Dan Bohus' PhD thesis)