previous   next   contents  

10. SMIL 3.0 Metainformation

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

Table of contents

10.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 metainformation to be placed on elements within the body instead of being restricted to 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 local. 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.

10.2 Introduction

This section is normative.

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 may choose whether or not to include this functionality in their languages.

This section is informative.

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 expanded 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 supported 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 the metadata element now explicitly cite the ability of including metainformation 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 may be considered to be optional information in a presentation.

10.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.

10.3.1 Elements and Attributes

The SMIL 3.0 Metainformation module defines two elements and one attribute that provide basic support for metainformation markup 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 (deprecated ): The value of this property determines the base URI for all relative URIs used in the document.

    This section is informative.

    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 metainformation 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 metainformation of the document or document components. The element allows metainformation to be defined using a wide range of metainformation 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 metainformation 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 may 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 of the element. If selected, a new document instance will be created to display the target SMIL file, and the source presentation will be paused.

10.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 may be used to define properties of a document (e.g., author/creator, expiration date, a list of keywords, 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 metainformation 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 they have a Web address. This means that you may 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 a 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.

10.5 Examples

This section is informative.

This section contains five examples of the use of metainformation 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/ns/SMIL" version="3.0" baseProfile="Language" xml:base="http://example.org/metaInf/assets/" >
    
 <head>
   <meta xml:id="meta-smil1.0-a" name="Publisher" content="W3C" />
   <meta xml:id="meta-smil1.0-b" name="Date" content="2007-01-03" />
   <meta xml:id="meta-smil1.0-c" name="Rights" content="Copyright 2007 John Smith" />
   <meta xml:id="meta-smil1.0-d" http-equiv="Expires" content="16 Apr 2051 12:00:00 UTC"/>


   <metadata xml: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.smil">
          ...
     </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 xml:id="a" top="5" />
   </layout>
 </head>
 <body>
   <video region="a" src="/https/www.w3.org/videos/meta-1999.mpg" >
     <area xml:id="scene1" begin="0s" end ="30s"/>
     <area xml:id="scene2" begin="30s" end ="60s"/>
   </video>
   <video region="a" src="/https/www.w3.org/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/ns/SMIL" version="3.0" baseProfile="Language" xml:base="http://example.org/metaInf/assets/" >    
 <head>
 <meta xml:id="meta-smil1.0-a" name="Publisher" content="W3C" />
 <meta xml:id="meta-smil1.0-b" name="Date" content="2007-01-03" />
 <meta xml:id="meta-smil1.0-c" name="Rights" content="Copyright 2007 John Smith" />
 <meta xml:id="meta-smil1.0-d" http-equiv="Expires" content="16 Apr 2051 12:00:00 UTC"/>


  <metadata xml: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.smil">
        ...
   </rdf:Description>
  </rdf:RDF>
 </metadata>

 <layout>
    <region xml:id="a" top="5" />
 </layout>
 </head>
 <body>
   <video xml:id="v1" region="a" src="/https/www.w3.org/videos/meta-2006.mpg" >
      <metadata xml: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 xml:id="scene1" begin="0s" end ="30s">
        <metadata xml: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 xml:id="scene2" begin="30s" end ="60s"/>
   </video>
   <video region="a" src="/https/www.w3.org/videos/meta2-2007.mpg"/>
 </body>
</smil>

In this example, separate metainformation blocks have been defined for the presentation, the video element 'v1' and each 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 the use of the label attribute as a pointer to a separate SMIL presentation. It can therefore be referred using a simple URI with no XPointer or ID fragment.

<?xml version="1.1" ?>
<smil xmlns="http://www.w3.org/ns/SMIL" version="3.0" baseProfile="Language" xml:base="http://example.org/metaInf/assets/" >
 ...
 <body>
   <!–– This part of the presentation is a chapter ––>
   <seq 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 xmlns="http://www.w3.org/ns/SMIL" version="3.0" baseProfile="Language" xml:base="http://example.org/metaInf/assets/" >
 ...
 <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 xml:id="pagenumbersOn" defaultState="false" override="visible" label="labels.smil#pagenumbers"/>
     <!–– the option to play footnotes ––>
     <customTest xml: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 xmlns="http://www.w3.org/ns/SMIL" version="3.0" baseProfile="Language" xml:base="http://example.org/metaInf/assets/" >
   ...
 <body>
   <excl>
     <par xml:id="footnotes">
       <text>Footnotes</text>
       <audio src="footnotes.mp3" clipBegin="0.00s" clipEnd="1.54s"/>
     </par>
     <par xml:id="pagenumbers">
       <!–– the label's textual content may reference inline or external text ––>
       <text src="labeltext.xml#pagenum"/>
       <audio src="pagenumbers.mp3"/>
     </par>
   </excl>
 </body>
</smil>

The fifth example illustrates how SMIL meta content can be included within the body of a presentation by including it as content of the metadata element.

<?xml version="1.1" ?>
<smil xmlns="http://www.w3.org/ns/SMIL" version="3.0" baseProfile="Language" xml:base="http://example.org/metaInf/assets/" >    
 <head>
 <meta xml:id="meta-smil1.0-a" name="Publisher" content="W3C" />
 <meta xml:id="meta-smil1.0-b" name="Date" content="2007-01-03" />
 <meta xml:id="meta-smil1.0-c" name="Rights" content="Copyright 2007 John Smith" />
 <meta xml:id="meta-smil1.0-d" http-equiv="Expires" content="16 Apr 2051 12:00:00 UTC"/>

 <layout>
    <region xml:id="a" top="5" />
 </layout>
 </head>
 <body>
   <video xml:id="v1" region="a" src="/https/www.w3.org/videos/meta-2007.mpg" >
      <metadata xml:id="meta-rdf">
      <meta name="Studio" content="AmstelProductions" />
      <meta name="Director" content="Willem.van.Oranje" />
      <meta name="Rights" content="OpenSourceVideo-v1a" />
      </metadata>
   </video>
 </body>
</smil>

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


previous   next   contents