Data--A component in the data layer manages data for the
applicat ion. The data representation language is a hierarchical
XML representatio n representing various kinds of data including
(but not limited to ) (1) environment data (2) domain-specific
data used for canonicalization to E MMA for holding
interpretations and (3) interaction history to track user
inputs.
Flow--A component in the flow layer controls the application
flow. It does so by interacting with data and presentation
layers. A flow c omponent does not directly interact with the
user. Rather, it requests us er interaction by invoking a
component on the presentation layer. The inv ocation may include
data derived from the data component. When informatio n is
returned from a presentation component, the flow component can
then update the data representation in a data layer component. The
flow compon ent is responsible for marshalling this data into the
canonical format us ed by the data component. Application flows
may be structured in terms of a state machines or other
appropriate techniques such as rules, scripts, etc. Voice Browser
languages to describe application flow include
CCXML and
SCXML.
Presentation--Components on the presentation layer interact with
the user; for example, by playing media files and synthesized speech, and
by accepting speech and DTMF input from the user. A flow component invok
es a presentation component with data from the data layer. A presentation
may have a local data representation which persists for the duration of
the active presentation. During the presentation, the presentation, flow
and data components may exchange further information. The flow component
may also cancel an active presentation. Once a presentation is complete,
the presentation component indicates this to the flow component; this ind
ication may include data collected, or derived from, user input and inter
action. Voice browser languages for user presentation include
VoiceXML 2.0,
VoiceXML 2.1
and VoiceXML 3.0 described in this document.