An OutputAct is used to send output to devices for rendering. It consists of a syntactical representation (the presentationAlternatives field) and a semantic content (the communicativeFunction) field. It is possible to specify only one of the two: An output act without a semantic content works fine for many simple dialogue applications. An output act without syntactical content is likely not ready for immediate rendering by an output device, but may be post-processed by an output generator component that generates a presentation that matches the semantic content.
Most output acts will contain only a single PresentationAlternative. However, if you would like to generate multiple alternative presentations from which the output device or the presentation planning engine can choose the most appropriate one, you can also do that. (Normally, it is better to sort out the right alternative before sending them to the output device, since a single multimodal task may be sent to multiple devices which could choose different alternatives.) For example, a visual and an auditive alternative can be generated, from which one will be selected based on the context. The notion is that the alternatives are exclusive (XOR).
The PresentationAlternative in turn consists of one or more OutputRepresentation instances in the presentation field. Again, most output tasks will only need a single representation, but in some cases, it may be useful to create a combined output act for presentations consisting of multiple aspects. This is often used to realize multimodal fission. For example, an output may involve givng a visual effect and playing some audio. Hence, the different presentations are ANDed together. It is possible that the same presentation is processed by multiple output devices, where each device picks the part(s) that is supports (e.g. the speaker picks the sound part and the light bulb picks the light effect part).
The actual representations then are derived from OutputRepresentation. For example, for speech synthesis output, you can use the concept SpeechSynthesis. You can always extend the model with custom concepts if needed, or fall back to the general-purpose CustomFormat.
← What is the structure of an OutputAct?