Each VoiceOutput object, InvalidInput relationship, and Timeout relationship
speci?¬?es in a lower-level diagram the actual speech it produces: the text property in the
elements themselves is a description for the convenience of the modeler. The structure
of explosions from the top-level VoiceMenu to lower-level VoiceOutput diagrams is
shown in Fig. 7.2. Most often, the speech used for all InvalidInputs will be the same,
FIGURE 7.1 Top-level metamodel, VoiceMenu
HOME AUTOMATION MODELING LANGUAGE 145
that is, there will be one ???Invalid input??? subdiagram, and each InvalidInput relationship
will explode to that same diagram. The same applies to Timeouts, but each
VoiceOutput object will generally have its ownVoiceOutput subdiagram. As there is a
limit to the complexity of a usable voice menu, no need was envisaged at this stage for
an element in a VoiceOutput subdiagram exploding again to its own VoiceOutput
sub-subdiagram.
The concepts of the lower-level VoiceOutput modeling language are shown in
Fig. 7.3. The main elements of the language are the Text and SystemCall object
types. A Text represents a sequence of TextFragments played one after the other,
with no variation. A SystemCall represents a sequence of system commands:
register assignments, special speech commands, and so on. The TextFragment and
Command objects can only be used inside Text and SystemCall objects, not directly
in the model itself.
Pages:
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285