previous   next   contents  

14. SMIL 2.0 Basic Language Profile

Editors
Kenichi Kubota (kuboken@isl.mei.co.jp), Panasonic
Aaron Cohen (aaron.m.cohen@intel.com), Intel

Table of contents

14.1 Abstract

The SMIL 2.0 Basic language profile defines a profile that is a baseline subset of the SMIL 2.0 language profile specification, and is designed to be a profile that meets the needs of resource-constrained devices such as mobile phones and portable disc players. It contains a baseline set of the SMIL 2.0 features including basic layout, linking, media object, structure, and timing modules.


14.2 Introduction

This section is informative.

The Synchronized Multimedia Integration Language (SMIL, pronounced "smile") includes powerful functionality for multimedia services not only on desktops but also for information appliances. The SMIL 2.0 Basic language profile should serve such a ubiquitous network as a baseline for audio-visual presentations.

SMIL content authors may desire their works to be available on a widespread variety of web clients, such as desktops, television sets, mobile phones, portable disc players, car navigation systems, and voice user agents. Each of these platforms has its specific capabilities and may require its own profile. The SMIL modularization provide a solution to create profiles and extensions of the full SMIL language profile, in addition to providing the means to integrate SMIL functionality into other languages.

The SMIL Basic language profile consists of a small number of modules chosen from the complete set of SMIL 2.0 modules to provide a baseline in terms of semantics and syntax, and assures conformance to the larger SMIL language profile specification. A profile for mobile and portable devices can be tailored based on the SMIL Basic language profile with or without extensions to support application specific features.

The SMIL Basic language profile does not propose to restrict extension, but aims at a baseline of conformance between the full SMIL language profile and one appropriate for mobile and portable services. Saying that a player is SMIL Basic conformant, means that it can play documents at least as complex as those allowed by the SMIL Basic language profile. It may play significantly more complex documents. In particular, the browsers conforming to the SMIL 2.0 language profile will be automatically SMIL Basic compliant. Thus SMIL authoring for low power devices is easier since general tools can be used.

14.3 Design Rationale

This section is informative.

SMIL Basic language profile is a language profile that is SMIL Host Language Conformant and may be supported by wide variety of SMIL players, even those running on small mobile phones. Mobile and portable devices share some common characteristics:

The SMIL Basic language profile aims to meet these requirements.

For references, see the document, "HTML4.0 Guidelines for Mobile Access" [MOBILE-GUIDE] issues guidelines for HTML content, and "XHTML Basic" [XHTML-BASIC] provides a minimum subset for portability and conformance.

14.3.1 Layout

Layout coordinates presentation of objects on the display device. Presentation on a small display has difficulty in rendering some objects. Layout of objects may not be able to be flexibly adjusted, nor have scroll bars. So, the layout should be simple and effective. Often the root-layout window will represent the full screen of the display. The BasicLayout Module is used and the more complex functionality of the other layout modules, such as hierarchical layout regions, is not supported.

14.3.2 User Interface

On a SMIL Basic player window, a user would likely use arrow keys to move focus on objects and anchors, and select the target that activates playback or linking. A "mouse-like" pointing cursor device might not be supported. A "move focus and select" is a simple user interface for communication with the SMIL player. The "mouse-click" user action can be mapped to an "activate" action. While a user is handling the focus, the player may slow or pause its timeline.

14.3.3 Timing and Synchronization

The SMIL Timing and Synchronization Modules present dynamic and interactive multimedia according to a timeline. The SMIL timing model is expressed in a structured language. The timeline of SMIL Basic presentation may need to be processed with limited memory and processing resources of mobile devices. For example, recursive function calls caused by nesting elements and memory allocation for additional timelines should be restricted. 

To achieve this, the SMIL Basic language profile has restrictions on use of the SMIL Timing. The restrictions are:

@@ In addition, the SMIL Basic profile may need to have no concept of a time container except a root time container. A time container groups media objects into a basic unit within a local time space, and this may increase the processing complexity of the document beyond device capabilities. If the document includes time containers, the nesting depth of time containers may need to  be limited. Also it may be required to limit the number of characters or elements. The SYMM Working Group requests feedback from users of SMIL Basic on these points.

Time attributes support the basic timing for an element. Timing attribute values support a synchronization-based timeline. Enriched players may support event values, for example, like "click" to start presentation. This kind of simple event timing is useful and is usually easy to support, and so is included in SMIL Basic profile.

14.3.4 Media Object

The BasicMedia Module specifies the location of the media that constitute the contents of the presentation. Here we assume the presentation to be an audio/visual multimedia presentation composed of media such as text, images, audio and video.

14.3.5 Content Control

The SMIL Basic profile includes the BasicContentControl Module. For the sake of authoring consistency, a SMIL document should be able to contain several presentation for different kinds of clients, controlled by switch elements and test attributes. A client application may not need to directly support content control mechanisms, since the content control processing of the document may be done on the way to the client. When SMIL Basic is used in this way, the player may be thought of as the system composed of the combination of the server and the client.

Test attributes of the BasicContentControl Module are included in the SMIL Basic language profile, even when an alternative to the CC/PP mechanism is necessary. The player should analyze switch element syntax correctly even if it cannot recognize the test attributes.

Some functionality of the Content Control Modules may be extended with CC/PP [CC/PP] mechanisms, which provide a way to notify device capabilities and user preferences to an origin server and/or intermediaries such as a gateway or proxy. This allows the generation or selection of device-tailored contents. Thus CC/PP can be used with transformation of available documents between client and server.

14.3.6 Accessibility

There are useful guidelines to handling accessibility issues that can be applied to the profile design for information appliances. The document, "Accessibility Features of SMIL" [WAI-SMIL-ACCESS], summarizes their recommendations on the SMIL 1.0 [SMIL10]

14.3.7 Use of the SMIL Basic language profile

SMIL Basic language profile is designed to be appropriate for small information appliances like mobile phones and portable disc players. Its simple design is intended to serve as a baseline profile for application specific extensions. Similar to the XHTML+SMIL language profile, an HTML+SMIL mobile profile could be written that is an integration of SMIL Basic timing and media functionality into the HTML mobile profile.

The SMIL Basic language profile does not restrict extension and inclusion of other modules, for example, the Animation, Metainformation, Transition, or additional Timing and Synchronization Modules. A language may support additional features and modules and still be conformant with the SMIL Basic language profile.

14.4 Definition of the SMIL 2.0 Basic Language Profile

This section is normative.

14.4.1 Conformance Criteria

Conforming SMIL 2.0 Basic Documents

A SMIL 2.0 Basic document is a "Conforming SMIL 2.0 Basic Document" if it adheres to the specification described in this document including SMIL 2.0 Basic DTD and also:

The rules above will be updated once an XML Schema for SMIL 2.0 Basic language profile is available.

Conforming SMIL 2.0 Basic Players

A SMIL 2.0 Basic player is a program that can parse and process a SMIL 2.0 Basic document and render the contents of the document onto an output medium.

The following criteria apply to a "Conforming SMIL 2.0 Basic Players":

14.4.2 SMIL 2.0 Basic Language Profile

The SMIL 2.0 Basic language profile supports the lightweight multimedia features defined in the SMIL 2.0 specification. This language profile includes the following SMIL 2.0 Modules:

(*) = required modules in order to be SMIL Host Language Conformant.

These collections of elements are used in the following sections defining the SMIL 2.0 Basic profile's content model:

Collection Name Elements in Collection
LinkAnchor a, area(anchor)
MediaContent text, img, audio, video, ref, animation, textstream
Schedule par, seq
EMPTY  

Collections of attributes used in the tables below are defined as follows:

Collection Name Attributes in Collection
Core id, class, title
Timing begin, dur, end, repeat(deprecated), repeatCount, repeatDur, min, max
Description abstract, author, copyright
I18n xml:lang
Test systemBitrate(system-bitrate), systemCaptions(system-captions), systemLanguage(system-language), systemOverdubOrSubtitle(system-overdub-or-caption), systemRequired(system-required), systemScreenSize(system-screen-size), systemScreenDepth(system-screen-depth), systemAudioDesc, systemOperatingSystem, systemCPU, systemComponent

14.4.3 Layout Modules

The Layout Module provides a framework for spatial layout of visual components. The SMIL 2.0 Basic profile includes the SMIL 2.0 BasicLayout Module. This profile requires layout type of "text/smil-basic-layout".

Elements Attributes Content Model
layout Core, I18n, type ( root-layout?, region* )
region Core, I18n, backgroundColor(background-color), height, width, bottom, fit, left, right, top, z-index, showBackground EMPTY
root-layout Core, I18n, backgroundColor(background-color), height, width EMPTY

Default of the size and position attributes is the full screen available to a client player. The default value of the fit attribute is "hidden". So when a player cannot layout a media object of target, then it presents the object as is inside the region.

14.4.4 Linking Modules

The Linking Module describes the hyperlink relationships between content. The SMIL 2.0 Basic profile includes the SMIL 2.0 BasicLinking Module.

A SMIL Basic player may not be able to control links between the source and the destination object, for example, in applying sourceLevel and destinationLevel attributes to volume. In this case it is permitted that the attributes of target control, which are listed in the table below, are just ignored. As a consequence, the attributes of the SMIL 2.0 BasicLinking Module might be replaced with their default attributes. The default value for show attribtue is "replace" and the sourcePlaystate attribute is ignored, see their definitions for detail.

The area element and the deprecated anchor element may not need to be supported if the device does not have an appropriate user interface, in which case the SMIL Basic player should play the presentation without the area map.

Elements Attributes Content Model
a Core, I18n, href, show, sourcePlaystate, destinationPlaystate, sourceLevel, destinationLevel, accesskey, tabindex, target, external, actuate MediaContent*
area(anchor) Core, I18n, Timing, alt, coords, href, show, sourcePlaystate, destinationPlaystate, sourceLevel, destinationLevel, accesskey, tabindex, target, external EMPTY

14.4.5 Media Object Modules

The Media Object Modules provide a framework for declaring media that constitute the contents of a SMIL presentation, and specify their locations. The SMIL 2.0 Basic profile includes the SMIL 2.0 BasicMedia and MediaClipping Modules.

Elements Attributes Content Model
text, img, audio, video, animation, textstream, ref Core, I18n, Description, Timing, Test, src, region, fill, alt, longdesc, type, clipBegin(clip-begin), clipEnd(clip-end) area(anchor)

Elements of the BasicMedia Module have attributes describing basic timing properties of contents. For timing, the begin and end attributes should have one attribute value for a single timeline.

14.4.6 Structure Module

The Structure Module describes the structure of the SMIL document. The SMIL 2.0 Basic profile includes the SMIL 2.0 Structure Module.

The structure element body is implicitly defined to be a seq time container as in the SMIL1.0 and SMIL 2.0 language profiles, and this is true in SMIL 2.0 Basic profile as well. 

 

Elements Attributes Content Model
smil Core, I18n ( head?, body? )
head Core, I18n ( layout? | switch? )
body Core, I18n ( Schedule | switch | MediaContent | LinkAnchor )*

14.4.7 Timing and Synchronization Modules

The Timing and Synchronization Modules provide a framework for describing timing structure, timing control properties, and temporal relationships between elements. The SMIL 2.0 Basic profile includes the basic functionality of the SMIL 2.0 Timing and Synchronization Modules (SMIL Timing Modules). It is based upon the SMIL 2.0 BasicInlineTiming, SyncbaseTiming, EventTiming, and BasicTimeContainers modules.

@@The SYMM Working group desires feedback on the need to limit the complexity of SMIL Basic documents in order to ensure that they can be played on low power devices. Until recently, we have been considering limiting the use of time containers to one top-level container, but this now appears both insufficient in limiting document complexity and too restrictive to authors. We would like feedback from implementers on what limitations on complexity are necessary.

Time containers are basic units in synchronization defined in the SMIL Timing Modules and they group elements with synchronization relationships. In a SMIL Basic document with single time container, par and seq time container elements contain media object elements and should not have other time container elements nested inside them.

Attributes of the SMIL Timing Modules apply to elements of the SMIL 2.0 BasicMedia Module. Basics of timing are described in the SMIL Timing Modules. Control of element start/end time is available with the begin, dur, and end attributes. For repeating elements, the deprecated repeat attribute, the repeatCount and repeatDur attributes are available.

The begin and end attributes contain the offset-value, syncbase-value, smil-1.0-syncbase-value, and event-value attribute values as single conditions. The SMIL Basic profile includes the EventTiming Module, which includes "activateEvent" or "click". These events are mapped to "activate" user action to select a focused element in a SMIL Basic player.

As for the SMIL Timing Modules for the SMIL 2.0 Basic, there is only one attribute value in begin and end attributes, not a semicolon-separated list, in order to create a single flat timeline.

Elements Attributes Content Model
par Core, I18n, Description, Test, Timing, endsync, fill, region ( switch | MediaContent | Schedule | LinkAnchor )*
seq Core, I18n, Description, Test, Timing, fill, region ( switch | MediaContent | Schedule | LinkAnchor )*

The default value of the endsync attribute is "last". The default value of the fill attribute depends on the element type as described in the SMIL Timing Modules.

14.4.8 Content Control Modules

The Content Control Module provides a framework for selecting content. The SMIL 2.0 Basic profile includes the SMIL 2.0 BasicContentControl and SkipContentControl Modules. The skip-content attribute, which default value is "true", applies to SMIL 2.0 elements that were not a part of SMIL 1.0, and to elements that it was applied to in SMIL 1.0, and to elements currently empty in SMIL 2.0 but could be made non-empty in the future, following the definition in the module.

A SMIL Basic player must process the syntax of a switch element correctly even if the player could not evaluate the Test attribute in a media object element properly as the attribute implies. Test attributes that cannot be evaluated will default to false.

Elements Attributes Content Model
switch Core, I18n ( ( LinkAnchor | MediaContent )* | Schedule* | layout* )

14.4.9 XML Namespace Declartions

XML Namespace declarations using the xmlns attribute are supported on all elements in the SMIL Basic language profile.

14.5 SMIL 2.0 Basic Language Profile Document Type Definition (DTD)

This section is normative.

The SMIL 2.0 Basic language profile DTD is defined as a set of SMIL 2.0 modules integrated.

<!-- ======================================================================= -->
<!-- SMIL Basic Document Module Module====================================== -->
<!-- file: smilbasic-model-1.mod

     This is SMIL 2.0 Basic, a proper subset of SMIL 2.0.
     Copyright 2000 W3C (MIT, INRIA, Keio), All Rights Reserved.

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

     PUBLIC "-//W3C//ENTITIES SMIL 2.0 Basic Document Model 1.0//EN"
     SYSTEM "smilbasic-model-1.mod"

     Author: Kenichi Kubota, Warner ten Kate, Jacco van Ossenbruggen
     Revision: $Id: smilbasic-model-1.mod,v 1.27 2000/09/21 03:10:02 kkubota Exp $
     ======================================================================= -->

<!--
        This file defines the SMIL 2.0 Basic Document Model.
        All attributes and content models are defined in the second
        half of this file.  We first start with some utility definitions.
        These are mainly used to simplify the use of modules in the
        second part of the file.

-->

<!-- =================== Util: Body - Media ================================ -->
<!ENTITY % media-object "text|img|audio|video|animation|textstream|ref">

<!-- =================== Util: Body - Content Control ====================== -->
<!ENTITY % content-control "switch">

<!--=================== Util: Body - Linking =============================== -->
<!ENTITY % BasicLink "a|anchor|area">
<!ENTITY % link "%BasicLink;">

<!-- ====================================================================== -->
<!-- ====================================================================== -->
<!-- ====================================================================== -->

<!--
     The actual content model and attribute definitions for each module
     section follow below.
-->

<!-- ================== Timing ============================================ -->
<!ENTITY % BasicInlineTiming.module   "INCLUDE">
<!ENTITY % MinMaxTiming.module        "INCLUDE">
<!ENTITY % SyncbaseTiming.module      "INCLUDE">
<!ENTITY % EventTiming.module         "INCLUDE">
<!ENTITY % BasicTimeContainers.module "INCLUDE">

<![%BasicInlineTiming.module;[
  <!ENTITY % basicTimeContainers "par|seq">
  <!ENTITY % timeContainer "%basicTimeContainers;">
  <!ENTITY % basicTimeContainers.content
   "(%media-object;|%content-control;|%link;|%basicTimeContainers;)*">
  <!ENTITY % timeContainer.content "%basicTimeContainers.content;">
  <!ENTITY % basicInlineTiming.attrib "%BasicInlineTiming.attrib;">
  <!ENTITY % basicTimeContainers.attrib "%BasicTimeContainers.attrib;">
]]>
<!ENTITY % timeContainer "">
<!ENTITY % timeContainer.content "">
<!ENTITY % basicInlineTiming "">
<!ENTITY % basicTimeContainers.attrib "">

<![%MinMaxTiming.module;[
  <!ENTITY % minMaxTiming.attrib "%MinMaxTiming.attrib;">
]]>
<!ENTITY % minMaxTiming.attrib "">

<!ENTITY % smil-time.attrib "
  %basicInlineTiming.attrib;
  %minMaxTiming.attrib;
  %Fill.attrib;
">

<!ENTITY % timeContainer.attrib "
  %basicInlineTiming.attrib;
  %basicTimeContainers.attrib;
  %minMaxTiming.attrib;
">

<!ENTITY %  par.content "%timeContainer.content;">
<!ENTITY %  seq.content "%timeContainer.content;">

<!ENTITY %  par.attrib "
  %timeContainer.attrib;
  %System.attrib;
">
<!ENTITY %  seq.attrib "
  %timeContainer.attrib;
  %System.attrib;
">

<!-- ================== Content Control =================================== -->
<!ENTITY % BasicContentControl.module "INCLUDE">
<!ENTITY % SkipContentControl.module  "INCLUDE">

<!ENTITY % switch.content 
 "((%media-object;|%link;)*|(%timeContainer;)*|layout)">

<!-- ================== Layout ============================================ -->
<!ENTITY % BasicLayout.module "INCLUDE">

<!ENTITY % layout.content "(root-layout?,(region)*)">
<!ENTITY % region.content "EMPTY">
<!ENTITY % rootlayout.content "EMPTY">
<!ENTITY % region.attrib "%skipContent.attrib;">
<!ENTITY % rootlayout.attrib "%skipContent.attrib;">

<!-- ================== Linking =========================================== -->
<!ENTITY % LinkingAttributes.module "INCLUDE">
<!ENTITY % BasicLinking.module      "INCLUDE">

<!ENTITY % a.content      "(%media-object;)*">
<!ENTITY % area.content   "EMPTY">
<!ENTITY % anchor.content "EMPTY">

<!ENTITY % a.attrib      "%smil-time.attrib;">
<!ENTITY % area.attrib   "%smil-time.attrib; %skipContent.attrib;">
<!ENTITY % anchor.attrib "%smil-time.attrib; %skipContent.attrib;">

<!-- ================== Media  ============================================ -->
<!ENTITY % BasicMedia.module    "INCLUDE">
<!ENTITY % MediaClipping.module "INCLUDE">

<!ENTITY % media-object.content "(area|anchor)*">
<!ENTITY % media-object.attrib "
  %smil-time.attrib;
  %System.attrib;
  %Region.attrib;
">

<!-- ================== Structure ========================================= -->
<!ENTITY % smil.content "(head?,body?)">
<!ENTITY % head-layout.content     "layout|switch">
<!ENTITY % head.content "(%head-layout.content;)?">
<!ENTITY % body.content "(%timeContainer;|%media-object;|
                          %content-control;|%link;)*">

<!-- ================== End of smilbasic-model-1.mod ====================== -->




<!-- ======================================================================= -->
<!-- SMIL 2.0 Basic DTD ==================================================== -->
<!-- file: SMIL20Basic.dtd

     This is SMIL 2.0 Basic, a proper subset of SMIL 2.0.

     Copyright 2000 World Wide Web Consortium
        (Massachusetts Institute of Technology, Institut National de
         Recherche en Informatique et en Automatique, Keio University).
         All Rights Reserved.

     Permission to use, copy, modify and distribute the SMIL Basic DTD and
     its accompanying documentation for any purpose and without fee is
     hereby granted in perpetuity, provided that the above copyright notice
     and this paragraph appear in all copies.  The copyright holders make
     no representation about the suitability of the DTD for any purpose.

     It is provided "as is" without expressed or implied warranty.

        Author:     Jacco van Ossenbruggen, Kenichi Kubota
        Revision:   $Id: SMIL20Basic.dtd,v 1.3 2000/09/21 11:16:46 jvanoss Exp $

-->
<!-- This is the driver file for the SMIL Basic DTD.

     Please use this formal public identifier to identify it:

         "-//W3C//DTD SMIL 2.0 Basic//EN"
-->

<!ENTITY % NS.prefixed "IGNORE" >
<!ENTITY % SMIL.prefix "" >

<!-- Define the Content Model -->
<!ENTITY % smil-model.mod
    PUBLIC "-//W3C//ENTITIES SMIL 2.0 Basic Document Model 1.0//EN"
           "smilbasic-model-1.mod" >

<!-- Modular Framework Module  ................................... -->
<!ENTITY % smil-framework.module "INCLUDE" >
<![%smil-framework.module;[
<!ENTITY % smil-framework.mod
     PUBLIC "-//W3C//ENTITIES SMIL 2.0 Modular Framework 1.0//EN"
            "smil-framework-1.mod" >
%smil-framework.mod;]]>

<!--    The SMIL 2.0 Basic Profile supports the lightweight multimedia 
        features defined in SMIL language. This profile includes 
        the following SMIL modules:

             SMIL 2.0 BasicLayout Module 
             SMIL 2.0 BasicLinking Module 
             SMIL 2.0 BasicMedia and MediaClipping Modules 
             SMIL 2.0 Structure Module 
             SMIL 2.0 BasicInlinTiming, SyncbaseTiming, EventTiming,
                      MinMaxTiming and BasicTimeContainers Modules 
             SMIL 2.0 BasicContentControl and SkipContentControl Modules 
-->

<!ENTITY % layout-mod 
  PUBLIC "-//W3C//ELEMENTS SMIL 2.0 Layout//EN"  
  "SMIL-layout.mod">
%layout-mod;

<!ENTITY % link-mod   
  PUBLIC "-//W3C//ELEMENTS SMIL 2.0 Linking//EN"  
  "SMIL-link.mod">
%link-mod;
<!ENTITY % BasicLinkingModule "INCLUDE">

<!ENTITY % media-mod  
  PUBLIC "-//W3C//ELEMENTS SMIL 2.0 Media Objects//EN" 
  "SMIL-media.mod">
%media-mod;

<!ENTITY % struct-mod 
  PUBLIC "-//W3C//ELEMENTS SMIL 2.0 Document Structure//EN" 
  "SMIL-struct.mod">
%struct-mod;

<!ENTITY % timing-mod 
  PUBLIC "-//W3C//ELEMENTS SMIL 2.0 Timing//EN" 
  "SMIL-timing.mod">
%timing-mod;

<!ENTITY % control-mod 
  PUBLIC "-//W3C//ELEMENTS SMIL 2.0 Content//EN" 
  "SMIL-control.mod">
%control-mod;


An XML Schema for SMIL 2.0 Basic profile will be made available.


previous   next   contents