Since the publication of SMIL 1.0 [SMIL10], interest in the integration of SMIL concepts with the HTML, the Hypertext Markup Language [HTML40], and other XML languages, has grown. Likewise, the W3C HTML Working Group is specifying how XHTML, the Extensible Hypertext Markup Language [XHTML10], can be integrated with other languages. The strategy considered for integrating respective functionality with other XML languages is based on the concepts of modularization and profiling [MODMOD], [SMIL-MOD], [XMOD], [XPROF].
Modularization is a solution in which a language's functionality is partitioned into sets of semantically-related elements. Profiling is the combination of these feature sets to solve a particular problem. For the purposes of this specification we define:
SMIL functionality is partitioned into modules based on the following design requirements:
The first requirement is that modules are specified such that a collection of modules can be "recombined" in such a way as to be backward compatible with SMIL (it will properly play SMIL conforming content).
The second requirement is that the semantics of SMIL must not change when they are embodied in a module. Fundamentally, this ensures the integrity of the SMIL content and timing models. This is particularly relevant when a different syntax is required to integrate SMIL functionality with other languages.
The third requirement is that modules be isomorphic with other modules from other W3C recommendations. This will assist designers when sharing modules across profiles.
The fourth requirement is that specific attention be paid to providing multimedia functionality to the XHTML language. XHTML is the reformulation of HTML in XML.
The fifth requirement is that the modules should adopt new W3C recommendations when they are appropriate and when they do not conflict with other requirements (such as complementing the XHTML language).
The sixth requirement is to ensure that modules have integrated support for the document object model. This facilitates additional control through scripting and user agents.
These requirements, and the ongoing work by the SYMM Working Group, led to a partitioning of SMIL functionality into nine modules.
SMIL functionality is partitioned into nine (9) modules :
Each of these modules introduces a set of semantically-related elements, properties, and attributes.
Further, there are the DOM modules [DOM1], [DOM2], [SMIL-DOM]. A profile may include DOM support. The part of DOM being supported, corresponds to the modules being selected in the profile.
The Animation Module provides a framework for incorporating animation onto
a timeline (a timing model) and a mechanism for composing the effects of
multiple animations (a composition model). The Animation Module defines semantics
for the animate, set,
animateMotion, and
animateColor elements:
Elements | Attributes | Minimal Content Model |
---|---|---|
animate | TBD | TBD |
set | TBD | TBD |
animateMotion | TBD | TBD |
animateColor | TBD | TBD |
When this module is used, it adds the animate, set, animateMotion, and animateColor elements to the content model of the par, seq, and excl elements of the Timing and Synchronization Module. It also adds these elements to the content model of the body element of the Structure Module.
The Content Control Module provides a framework for selecting content based
on a set of test attributes. The Content Control Module defines semantics
for the switch element.
Elements | Attributes | Minimal Content Model |
---|---|---|
switch | TBD | TBD |
- | test attributes | N/A |
When this module is used, it adds the switch, element to the content model of the par, seq, and excl elements of the Timing and Synchronization Module. It also adds this element to the content model of the body element of the Structure Module. It also adds this element to the content model of the a element of the Linking Module. It also adds this element to the content model of the head element of the Structure Module.
Further, when this module is used, the test attributes are added to the attribute lists of all the elements in the Layout Module, the Media Object Module, the Timing and Synchronization Module, and the Transition Effect Module.
Effectuation applies only when the mentioned Modules are part of the profile at hand, of course.
The Layout Module provides a framework for spatial layout of visual components.
The Layout Module defines semantics for the layout,
root-layout, and region
elements.
Elements | Attributes | Minimal Content Model |
---|---|---|
layout | TBD | TBD |
root-layout | TBD | TBD |
region | TBD | TBD |
When this module is used, it adds the layout element to the content model of the head element of the Structure Module. It also adds this element to the content model of the switch element of the Content Control Module.
The Linking Module provides a framework for relating documents to content,
documents and document fragments. The Linking Module defines semantics for
the a and area elements.
Elements | Attributes | Minimal Content Model |
---|---|---|
a | TBD | TBD |
area | TBD | TBD |
When this module is used, it adds the area and a elements to the content model of the par, seq, and excl elements of the Timing and Synchronization Module. It also adds these elements to the content model of the body element of the Structure Module.
The Media Object Module provides a framework for declaring media. The Media
Object Module defines semantics for the ref,
animation, audio,
img, video,
text, and textstream
elements.
Elements | Attributes | Minimal Content Model |
---|---|---|
ref | TBD | TBD |
img, text | TBD | TBD |
audio, video, animation, textstream | TBD | TBD |
When this module is used, it adds the ref, animation, audio, img, video, text, and textstream elements to the content model of the par, seq, and excl elements of the Timing and Synchronization Module. It also adds these elements to the content model of the body element of the Structure Module. It also adds these elements to the content model of the a element of the Linking Module.
The Metainformation Module provides a framework for describing a document,
either to inform the human user or to assist in automation. The Metainformation
Module defines semantics for the meta element.
Elements | Attributes | Minimal Content Model |
---|---|---|
meta | TBD | TBD |
When this module is used, it adds the meta element to the content model of the head element of the Structure Module.
The Structure Module provides a framework for structuring a SMIL document.
The Structure Module defines semantics for the
smil, head, and
body elements.
Elements | Attributes | Minimal Content Model |
---|---|---|
smil | Core, Accessibility, xmlns | head?, body? |
head | Core, Accessibility, profile | meta*, ( switch | layout )? |
body | Core, Accessibility | ( Schedule | MediaContent | MediaControl | LinkAnchor )* |
- | skipContent | N/A |
This module is a mandatory part in any profile family labeled "SMIL".
When this module is used the id, title, and skipContent attributes are added to all other modules used, including modules from other, non-SMIL, origine.
The Timing and Synchronization Module provides a framework for describing timing structure, timing control properties, and temporal relationships between elements. The Timing and Synchronization Module defines semantics for par, seq, and excl elements. In addition, this module defines semantics for attributes including begin, dur, end, repeatCount, repeatDur, and others.
@@ Make "and others" explicit.
@@ These enumerations need check on completeness and correctness.
Elements | Attributes | Minimal Content Model |
---|---|---|
par, seq, excl | TBD | TBD |
begin, end, dur, repeatCount, repeatDur, TBD | TBD |
This module is mandatory in any profile incorporating SMIL modules. By that, it is a mandatory module in any profile in the SMIL family. Note that upon building a profile which integrates SMIL timing with other, non-SMIL, modules, that the elements from this Timing and Synchronization module may appear as attributes to the elements from the other XML language, rather than as these elements themselves.
The timing attributes are used by all the elements in the Media Object Module, the Linking Module, the Content Control Module, and the Timing and Synchronization Module. Effectuation applies only when those Modules are part of the profile, of course. As upon integration with non-SMIL modules, the elements from this module may appear as attributes instead of elements, the referenced timing attributes are also used by those non-SMIL elements.
The Transition Effects Module defines a taxonomy of transition effects as
well as semantics and syntax for integrating these effects into XML documents
Elements | Attributes | Minimal Content Model |
---|---|---|
TBD | TBD | TBD |
When this module is used, it adds the TBD element to the content model of the layout element of the Layout Module.
A requirement for SMIL modularization is that the modules be isomorphic with
other modules from other W3C recommendations. Isomorphism will assist designers
when sharing modules across profiles. The Table below lists the isomorphism
between SMIL and XHTML modules.
SMIL modules | XHTML modules | ||
---|---|---|---|
Module Name | Elements | Module Name | Elements |
Animation | animate, set, animateMotion, animationColor | - | - |
Content Control | switch | - | - |
Layout | layout, region, root-layout | Stylesheet | style |
Linking | a, area | Hypertext | a |
Client-side Image Map | map, area | ||
Media Object | ref, audio, video, text, img, animation, textstream | Object | object, param |
Image | img | ||
Applet | applet, param | ||
Metainformation | meta | Metainformation | meta |
Link | link | ||
Base | base | ||
Structure | smil, head, body | Structure | html, head, body, title, span, div |
Timing and Synchronization | par, seq, excl | - | - |
Transition Effects | transition | - | - |
As can be seen in the table, the Metainformation module appears in both SMIL and HTML. Work is underway to define a single module that can be shared by both SMIL and HTML. In SMIL Boston the Linking Module has been adapted towards isomorphism with the corresponding modules in XHTML.
There are a range of possible profiles that may be built using SMIL modules. Four profiles are defined to inform the reader of how profiles may be constructed to solve particular problems:
These example profiles are non-normative.
The Lightweight Presentations Profile handles simple presentations, supporting timing of text content. The simplest version of this could be used to sequence stock quotes or headlines on constrained devices such as a palmtop device or a smart phone. This example profile might include the following SMIL modules:
This profile may be based on XHTML modules [XMOD] with the addition of Timing and Synchronization Module.
The SMIL-Boston Profile supports the timeline-centric multimedia features found in language of the SMIL family. This profile is specified in the SMIL Boston Profile and includes the following SMIL modules:
The SMIL-Basic Profile supports a leightweight version of the SMIL-Boston profile and is intended for use with resource-constrained devices such as mobile phones. This profile is part of the SMIL family and might include the following SMIL modules:
@@ Keep aligned with the requirements document.
The HTML+SMIL Profile integrates SMIL timing into HTML. This profile is specified in the HTML+SMIL Profile and includes the following SMIL modules:
This profile uses XHTML modules for structure and layout and SMIL modules for multimedia and timing. Since the Linking modules from the XHTML modules [XMOD] and the SMIL modules are isomorphic, basically the Linking Module may come from either module set. However, the SMIL Linking Module adds some additional attributes and semantics.
@@ Aren't these attributes and semantics already added through the Timing & Synchronization Module?
The Web Enhanced Media Profile supports the integration of multimedia presentations with broadcast or on-demand streaming media. The primary media will often define the main timeline. This profile might include the following SMIL modules:
This profile is a lightweight version of the HTML+SMIL Profile in that it supports a smaller subset of functionality taken from the XHTML and SMIL modules. It differs from the SMIL-Basic Profile through its integration with XHTML.