previous   next   contents  

9. The SMIL 3.0 Metainformation Module

Editors for SMIL 3.0:
Dick Bulterman, CWI.
Marisa DeMeglio, Daisy.
Editors for Earlier Versions of SMIL:
Thierry Michel, W3C.

Table of contents

9.1 Summary of Changes for SMIL 3.0

This section is informative.

There are three sets of changes to this module. First, the SMIL 3.0 specification now allows meta-information to be placed on elements within the body instead of only in the head element. This may make it easier to provide information on semantic intent within a SMIL presentation by making the binding of that information with the relevant nodes more logical. Second, the text in this section makes it clear that several different types of metainformation encodings may be used within a single presentation. Third, the label attribute has been added to the Metainformation module so that extended content information can be provided for document components.

9.2 Introduction

This section is informative.

This section defines the SMIL 3.0 Metainformation Module. The SMIL metainformation facilities are composed of a module containing elements and attributes that allow description of metadata annotation of presentation creation information and presentation semantic intent to be added to SMIL documents. Since these elements and attributes are defined in a module, designers of other markup languages can choose whether or not to include this functionality in their languages.

The SMIL 1.0 specification allowed authors to describe documents with a very basic vocabulary using the meta element. This was extended in the SMIL 2.0 specification with the introduction of the element. The element introduced the capability for describing metadata using the Resource Description Framework Model and Syntax [RDFsyntax]. In SMIL 3.0, the element's description is exanded to allow multiple metainformation encodings to be used within a single presentation. Note that the profile integrating these modules will ultimately determine which metainformation formalisms will be required to be support by user agents for that profile.

Both the meta and elements were originally intended to be used in the head section of a SMIL document. While this was useful for general information about a document (such as when, where, and by whom it was created), this was deemed to be less appropriate for more semantic information about the intended use of individual media objects or structural elements of the presentation. For this reason, the descriptions and examples for both metadata elements now explicitly cite the ability of including meta-information descriptions within the body section of the presentation as well. As with multiple metainformation formats, it is the profile integrating these modules that will ultimately determine which elements may have metainformation as child elements.

SMIL 3.0 also extends the capabilities presented for describing the nature of a content fragment within a document by introducing the label attribute. This attribute specifies a URI to a SMIL document that provides additional information in an accessible manner on the related element.

Unless specified otherwise by a profile, a SMIL user agent is not required to process or otherwise interpret specific metainformation strings. In all cases, metainformation can be considered to be optional information in a presentation.

9.3 The SMIL 3.0 Metainformation Module

This section is normative.

This section defines the elements and attributes that make up the functionality in the SMIL Metainformation module.

9.3.1 Elements and Attributes

The SMIL 3.0 Metainformation module defines two elements and one attribute that provide basic support for metainformation mark-up within a SMIL presentation.

The elements defined in this module are:

meta

The attribute defined in this module is:

label

The meta element

The meta element specifies a single property/value pair in its name and content attributes, respectively. Multiple property/value pairs must be described in multiple instances of the meta element.

Element Attributes

The meta element defines the following attributes:

name = CDATA
This attribute identifies a property name. The name attribute is required for meta elements. The list of properties for the name attribute is open-ended and may be extended by a particular SMIL profile. This specification defines the following properties:
  • base: The value of this property determines the base URI for all relative URIs used in the document.
    Note: the base property has been deprecated in favor of the more general XML base URL mechanism described in [XMLBase]. The language profile including the SMIL 3.0 meta-information module will determine if the base property will be supported by that profile.
  • pics-label or PICS-Label: The value of this property specifies a valid rating label for the document as defined by PICS [PICS] .
  • title: The value of this property specifies the title of the presentation. SMIL user agents may use this property to display a title for the presentation during rendering.
content = CDATA
This attribute specifies a property's value. This specification does not list legal values for this attribute.
The content attribute is required for meta elements.
Element Content

The meta element is an empty element.

The metadata element

The element contains information that is also related to meta information of the document or document components. The element allows meta-information to be defined using a wide range of meta-information structuring languages. In many cases, it will act as the root element of an RDF tree, but it may also act as the root of other application-domain-specific meta-information structuring languages. The contents of the element are not processed within the context of a SMIL presentation, although different user agents may use the information within the element to support functionality such as searching or content labelling.

Element Attributes

The metadata element does not define any new attributes.

Element Content

When used with RDF, the element is expected to contain an RDF element and its sub-elements [RDFsyntax].

When used with other metainformation structuring languages, the element is expected to contain a metainformation description based on the structure and vocabulary of that language.

The label attribute

The label attribute specifies the name of a SMIL presentation that can be referenced by the user agent to provide additional information on the element to which this attribute is attached. A SMIL file is used as the target because this can provide a richer description of an element than a single text string or audio fragment. In this way, a richer mechanism is providing information on the intent of the relevant element than is available with other metadata facilities.

Attribute Values
label = URI
This attribute specifies a URI to a SMIL document containing a description for the role of the element or option given by the element.

9.4 Compatibility with Earlier Versions of SMIL

This section is informative.

To insure backward compatibility with SMIL 1.0, the meta element as specified in the SMIL 1.0 [SMIL10] Recommendation can be used to define properties of a document (e.g., author/creator, expiration date, a list of key words, etc.) and assign values to those properties. SMIL does not define which document properties must be used and it does not define a vocabulary of values for these properties. Use of properties defined in the [DC] is recommended.

SMIL 2.1 extended SMIL 1.0 meta information functionalities with the new element to host RDF statements. RDF is a declarative language and provides a W3C-recommended way for using XML to represent metadata in the form of statements about properties and relationships of items on the Web. Such items, known as resources, can be almost anything, provided it has a Web address. This means that you can associate metadata information with a SMIL document, but also a graphic, an audio file, a movie clip, or a structural sub-portion of a SMIL document. The specifications for RDF can be found at:

SMIL 3.0 maintains the use of both the meta and elements. New to SMIL 3.0 is the explicit possibility to allow the element to appear within the body section of a SMIL document. This allows the semantic intent of a portion of a SMIL document to be described in manner that is local to the media objects (or SMIL structure) being described. Note that it is ultimately up to the designer of the relevant SMIL 3.0 profile to determine where the element may appear in a SMIL document -- this Module simply highlights the possibility for including such information outside of the head section.

9.5 Examples

This section is informative.

This section contains four examples of the use of meta-information in a SMIL presentation.

The first example uses the Dublin Core version 1.0 RDF schema[DC] and a set of RDF descriptions, all contained in the document head section. The XML base attribute is used with the host-level language description to define the base address of relative URI references in the document.

<?xml version="1.1" ?>
<smil xmlns="http://www.w3.org/2007/SMIL30/WD/Language" xml:base="http://example.org/metaInf/assets/" >
    
 <head>
 <meta id="meta-smil1.0-a" name="Publisher" content="W3C" />
 <meta id="meta-smil1.0-b" name="Date" content="2007-01-03" />
 <meta id="meta-smil1.0-c" name="Rights" content="Copyright 1999 John Smith" />
 <meta id="meta-smil1.0-d" http-equiv="Expires" content="31 Dec 2001 12:00:00 GMT"/>


  <metadata id="meta-rdf">
   <rdf:RDF
       xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
       xmlns:rdfs = "http://www.w3.org/2000/01/rdf-schema#"
       xmlns:dc = "http://purl.org/dc/elements/1.1/"
       xmlns:smilmetadata = "http://www.example.org/AudioVideo/.../smil-ns#" >

<!-- Metadata about the SMIL presentation -->
   <rdf:Description rdf:about="http://www.example.com/meta.smi">
        ...
   </rdf:Description>

<!-- Metadata about the video -->
   <rdf:Description rdf:about="http://www.example.com/videos/meta-1999.mpg">
        ...
   </rdf:Description>

<!-- Metadata about a scene of the video -->
   <rdf:Description rdf:about="#scene1"
        ...
   </rdf:Description>
  </rdf:RDF>
 </metadata>

 <layout>
    <region id="a" top="5" />
 </layout>
 </head>
 <body>
   <video region="a" src="/videos/meta-1999.mpg" >
     <area id="scene1" begin="0s" end ="30s"/>
     <area id="scene2" begin="30s" end ="60s"/>
   </video>
   <video region="a" src="/videos/meta2-1999.mpg"/>
 </body>
</smil>

The second example is similar to the first, except that references on individual media elements are placed within the document definition instead of the head element.

<?xml version="1.1" ?>
<smil xmlns="http://www.w3.org/2007/SMIL30/WD/Language" xml:base="http://example.org/metaInf/assets/" >
    
 <head>
 <meta id="meta-smil1.0-a" name="Publisher" content="W3C" />
 <meta id="meta-smil1.0-b" name="Date" content="2007-01-03" />
 <meta id="meta-smil1.0-c" name="Rights" content="Copyright 1999 John Smith" />
 <meta id="meta-smil1.0-d" http-equiv="Expires" content="31 Dec 2001 12:00:00 GMT"/>


  <metadata id="meta-rdf">
   <rdf:RDF
       xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
       xmlns:rdfs = "http://www.w3.org/2000/01/rdf-schema#"
       xmlns:dc = "http://purl.org/dc/elements/1.1/"
       xmlns:smilmetadata = "http://www.example.org/AudioVideo/.../smil-ns#" >

<!-- Metadata about the SMIL presentation -->
   <rdf:Description rdf:about="http://www.example.com/meta.smi">
        ...
   </rdf:Description>
  </rdf:RDF>
 </metadata>

 <layout>
    <region id="a" top="5" />
 </layout>
 </head>
 <body>
   <video id="v1" region="a" src="/videos/meta-1999.mpg" >
      <metadata id="meta-rdf">
         <rdf:RDF
            xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
            xmlns:rdfs = "http://www.w3.org/2000/01/rdf-schema#"
            xmlns:dc = "http://purl.org/dc/elements/1.1/"
            xmlns:smilmetadata = "http://www.example.org/AudioVideo/.../smil-ns#" >

            <!-- Metadata about the video -->
              <rdf:Description rdf:about="http://www.example.com/videos/meta-1999.mpg"
                ...
              </rdf:Description>
        </rdf:RDF>
     </metadata>
     <area id="scene1" begin="0s" end ="30s">
        <metadata id="meta-rdf">
           <rdf:RDF
              xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
              xmlns:rdfs = "http://www.w3.org/2000/01/rdf-schema#"
              xmlns:dc = "http://purl.org/dc/elements/1.1/"
              xmlns:smilmetadata = "http://www.example.org/AudioVideo/.../smil-ns#" >

           <!-- Metadata about a scene of the video -->
             <rdf:Description rdf:about="#scene1"
                  ...
             </rdf:Description>
         </rdf:RDF>
        </metadata>
     </area>
     <area id="scene2" begin="30s" end ="60s"/>
   </video>
   <video region="a" src="/videos/meta2-1999.mpg"/>
 </body>
</smil>

In this example, separate meta-information blocks have been defined for the presentation, the video element 'v1' and open of the scenes of the video. Although RDF has been used for all of these objects, other formalisms (such as MPEG-7 or TV-Anytime) may also be used.

The third example shows part of a presentation with the role of chapter, labeled as such. The example also shows the label in its own file. It can therefore be referred to by using a simple URI with no XPointer or ID fragment.

<?xml version="1.1" ?>
<smil>
 ...
 <body>
   <!–– This part of the presentation is a chapter ––>
   <seq role="chapter" label="chapterlabel.smil">
     <par>
       <text src="example.html#fragment_one"/>
       <audio src="audio_document.mp3" clipBegin="0.00s" clipEnd="5.00s"/>
     </par>
     ...
   </seq>
 </body>
</smil>

The label is in a separate file (chapterlabel.smil):

<?xml version="1.1" ?>
<smil>
 ...
 <body>
   <!––the label itself, as text and audio––>
   <par>
     <text>Chapter</text>
     <audio src="chapter.mp3"/>
   </par>
 </body>
</smil>
The fourth example shows a presentation with two content control options, to be set by the user. Both labels used here are found in the same external SMIL file, wrapped in an excl container (so that only one is played at a time). The referencing URI specifies which label is required.
 ...
 <head>
   <customAttributes>
     <!–– the option to play page numbers ––>
     <customTest id="pagenumbersOn" defaultState="false" override="visible" label="labels.smil#pagenumbers"/>
     <!–– the option to play footnotes ––>
     <customTest id="footnotesOn" defaultState="true" override="visible" label="labels.smil#footnotes"/>
   </customAttributes>
 </head>
 ...

The following SMIL file (labels.smil) contains both labels used in example four:

<?xml version="1.1" ?>
<smil>
   ...
 <body>
   <excl>
     <par id="footnotes">
       <text>Footnotes</text>
       <audio src="footnotes.mp3" clipBegin="0.00s" clipEnd="1.54s"/>
     </par>
     <par id="pagenumbers">
       <–– the label's textual content can reference inline or external text ––>
       <text src="labeltext.xml#pagenum"/>
       <audio src="pagenumbers.mp3"/>
     </par>
   </excl>
 </body>
</smil<

The collections of elements that allow the element as a child is determined by the SMIL language profile integrating this module.


previous   next   contents