Inform¶
Definition¶
<inform>
<proposition predicate="p" value="a"/>
</inform>
The plan item that informs the user about a proposition.
Attribute | Type | Description |
---|---|---|
insist | boolean | Optional. If set to false , the system will not try to tell the user, if a proposition of the same predicate (not the same proposition) is already shared with the user. If set to true , the system will try to inform the user, even if a proposition of the same predicate is already shared. The default is false |
generate_end_turn | boolean | Optional. If set to true , the system will end the turn after this dialogue move. The length of the expected passivity is set using the expected_passivity attribute. The default is false . |
expected_passivity | float | The value of this attribute defines the number of seconds that TDM should wait for an utterance from the user before continuing the dialogue. It defaults to 0.0 seconds. |
Parents¶
Children¶
Behaviour¶
The <inform/>
element makes the system believe a proposition p(a)
, and then also assume that the issue of ?X.p(X)
is under discussion. This means that the system will try to inform the user that p(a)
, unless this is already known by the user. It is required that the proposition is of a predicate defined in the ontology (i.e. goal propositions etc... are not supported).
The same behaviour can be obtained by the following code:
<if>
<proposition predicate="p" value="a"/>
<else>
<assume_system_belief>
<proposition predicate="p" value="a"/>
</assume_system_belief>
<assume_issue predicate="p"/>
</else>
</if>
Setting the attribute insist
to true means that TDM will always make the utterance, regardless if a proposition over the same predicate is already known.
Setting the attribute generate_end_turn
to true means that TDM will generate the equivalent of an <end_turn>
element, making sure that the current turn will be ended after this move.
NB! If you want to use several inform items in the same plan, make sure that they are referring to different predicates, as they will otherwise interfere with each other.
Examples¶
Inform element for telling the user that the first name is "Charlie"¶
<inform>
<proposition predicate="first_name" value="Charlie"/>
</inform>
Inform element for telling the user that the first name is "Charlie" followed by 3 seconds of passivity¶
<inform generate_end_turn="true" expected_passivity="3.0">
<proposition predicate="first_name" value="Charlie"/>
</inform>
Inform element for telling the user that the first name is "Charlie" followed by a 0.0 second passivity.¶
<inform generate_end_turn="true">
<proposition predicate="first_name" value="Charlie"/>
</inform>