Invoke service action¶
invoke_service_action requests an action declared by the current DDD's service interface. The action's name and parameter predicates must agree with that interface and the ontology.
Syntax¶
| Attribute | Type | Default | Meaning |
|---|---|---|---|
name | string | Required | Service-interface action name. |
preconfirm | assertive or interrogative | None | Selects the preconfirmation behavior before invocation. |
postconfirm | Boolean | false | Requests a natural-language report about the result. |
downdate_plan | Boolean, deprecated | XML schema says true; Tala 31.0.1 compiler defaults a missing attribute to false | Does not create implicit goal-downdate conditions in the current runtime. |
Use lowercase XML Boolean values true and false. The downdate_plan schema/compiler default mismatch is retained here because it affects existing DDD interpretation; don't rely on that attribute for plan control.
Execution and confirmation¶
The DME resolves the named action in the service interface, binds parameters, and issues the service call. preconfirm="interrogative" requires positive user preconfirmation before invocation. preconfirm="assertive" uses a system prereport as the confirmation step; the DME can proceed if the user does not object.
When postconfirm="true", TDM queues a report after the service result. It also queues a report when a call fails, even if postconfirmation is not requested. TDM records service_action_terminated whenever the call returns; that proposition does not indicate success. To end a goal based on service termination, write an explicit downdate condition.
JSON form¶
{
"invoke_service_action": {
"name": "BookRoom",
"preconfirm": "interrogative",
"postconfirm": true
}
}
The JSON model still permits downdate_plan for compatibility. New DDDs should use downdate_conditions on the goal.
Tala sources¶
- XML syntax:
tala/ddd/schemas/domain.xsd - XML/JSON compilation:
tala/ddd/ddd_xml_compiler.py,tala/ddd/ddd_json_compiler.py - Tala test coverage:
tala/ddd/test/test_ddd_xml_compiler.py
See the Service Interface XML reference.