previous next contents

# 8. The SMIL 2.0 Metainformation Module

Editors:
  Thierry Michel (tmichel@w3.org), W3C

## Table of contents

## 8.1 Introduction

This section defines the SMIL 2.0 Metainformation Module composed of a single module. This module contains elements and attributes allowing to describe 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 World Wide Web was originally built for human consumption, and although everything on it is machine-readable, this data is not machine-understandable. It is very hard to automate anything on the Web, and because of the volume of information the Web contains, it is not possible to manage it manually. Metadata is "data about data" (for example, a library catalog is metadata, since it describes publications) or specifically in the context of this specification "data describing Web resources".
The solution proposed here is to use metadata information to describe SMIL documents published on the Web.

The earlier SMIL 1.0 specification allowed authors to describe documents with a very basic vocabulary using the meta element.
The SMIL 2.0 Metainformation module defined in this specification fully supports the use of this meta element from SMIL 1.0 but it also introduces new capabilities for describing metadata using the Resource Description Framework Model and Syntax [RDFsyntax], a powerful meta information language for providing information about resources.

## 8.2 Overview of the SMIL 2.0 Metainformation module

### 8.2.1 Compatibility with SMIL 1.0

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.

### 8.2.2 Extensions to SMIL 1.0

SMIL 2.0 extends SMIL 1.0 meta information functionalities with the new metadata element to host RDF statements as RDF provides a more general treatment of Metadata.
RDF is a declarative language and provides a standard 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 documents, but also a graphic, an audio file, a movie clip, and so on.

RDF is the appropriate language for Metadata. The specifications for RDF can be found at:

- Resource Description Framework (RDF) Model and Syntax [RDFsyntax]
- Resource Description Framework (RDF) Schema [RDFschema]

Metadata information within an SMIL 2.0 document should be expressed in the appropriate RDF namespaces [XML-NS] and should be placed within the metadata element. (See example below.)

### 8.2.3 Multiple description schemes

RDF appears to be the ideal approach for supporting descriptors from multiple description schemes simultaneously.

Here are some suggestions for content creators regarding Metadata:

- Content creators should refer to W3C Metadata Recommendations [RDFsyntax] and [RDFschema] when deciding which Metadata RDF Schema to use in their documents.
- Content creators should refer to the Dublin Core Metadata Initiative [DC] , which is a set of generally applicable core Metadata properties (e.g., Title, Creator, Subject, Description, etc.).
- Additionally, a specific SMIL Metadata RDF Schema could contain a set of additional Metadata properties that are common across most uses of multimedia.

  Note: Individual industries or individual content creators are free to define their own Metadata RDF Schema, but everyone is encouraged to follow existing Metadata standards and use standard Metadata schema wherever possible to promote interchange and interoperability. If a particular standard Metadata schema does not meet your needs, then it is usually better to define an additional Metadata schema in RDF that is used in combination with the given standard Metadata schema than to totally avoid the standard schema.

## 8.3 SMIL 2.0 Metainformation Module Syntax and Semantics

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

### 8.3.1 The meta element

Element definition

The meta element is an empty element.
Each meta element specifies a single property/value pair in the name and content attributes, respectively.

Attribute definitions

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.
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. 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: SMIL 2.0 depreciates the base property in favor of the more general XML base url mechanisms currently being completed [XMLBase]. The language profile is responsible for specifying which of these technologies are specifically supported.
  - 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.

### 8.3.2 The metadata element

Element definition

The metadata element contains information that is also related to meta information of the document. It acts as the root element to RDF tree. The metadata element can contain the following child elements:

RDF element and its sub-elements (refer to W3C Metadata Recommendations [RDFsyntax]).

## 8.4 DTD of the SMIL 2.0 Metainformation Module

This section is Normative.

This section specifies the DTD of the SMIL 2.0 Metainformation module.

    <!-- ================================================================ -->
    <!-- SMIL Metainformation Module  =================================== -->
    <!-- file: SMIL-metainformation.mod

         This is SMIL 2.0.
         Copyright 2000 W3C (MIT, INRIA, Keio), All Rights Reserved.

         This module declares the meta and metadata elements types and
         its attributes, used to provide declarative document metainformation.

         Author: Thierry Michel, Jacco van Ossenbruggen
         Revision: $Id: SMIL-metainformation.mod,v 1.5 2000/08/08 12:09:33 jvanoss Exp $

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

         PUBLIC "-//W3C//ELEMENTS SMIL 2.0 Document Metadata//EN"
         SYSTEM "SMIL-metainformation.mod"

         ================================================================ -->

    <!-- ================== Profiling Entities ========================== -->

    <!ENTITY % meta.content     "EMPTY">
    <!ENTITY % meta.attrib      "">
    <!ENTITY % meta.qname       "meta">

    <!ENTITY % metadata.content "EMPTY">
    <!ENTITY % metadata.attrib  "">
    <!ENTITY % metadata.qname   "metadata">

    <!-- ================== meta element ================================ -->

    <!ELEMENT %meta.qname; %meta.content;>
    <!ATTLIST %meta.qname; %meta.attrib;
      content CDATA #IMPLIED
      name CDATA #REQUIRED
      >

    <!-- ================== metadata element ============================ -->

    <!ELEMENT %metadata.qname; %metadata.content;>
    <!ATTLIST %metadata.qname; %metadata.attrib;
      %Core.attrib;
      %I18n.attrib;
    >

    <!-- end of SMIL-metadata.mod -->

## 8.5 An Example

This section is informative.

Here is an example of how metadata can be included in an SMIL document. The example uses the Dublin Core version 1.0 RDF Schema [DC] and an hypothetic SMIL Metadata RDF Schema:

    <?xml version="1.0" ?>
    <smil xmlns = "http://www.example.org/SMIL-2.0.dtd">
     <head>
     <meta id="meta-smil1.0-a" name="Publisher" content="W3C" />
     <meta id="meta-smil1.0-b" name="Date" content="1999-10-12" />
     <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/TR/1999/PR-rdf-schema-19990303#"
           xmlns:dc = "http://purl.org/metadata/dublin_core#"
           xmlns:smilmetadata = "http://www.example.org/AudioVideo/.../smil-ns#" >

    <!-- Metadata about the SMIL presentation -->
       <rdf:Description about="http://www.example.com/meta.smi"
           dc:Title="An Introduction to the Resource Description Framework"
           dc:Description="The Resource Description Framework (RDF) enables the encoding, exchange and reuse of structured metadata"
           dc:Publisher="W3C"
           dc:Date="1999-10-12"
           dc:Rights="Copyright 1999 John Smith"
           dc:Format="text/smil" >
           <dc:Creator>
              <rdf:Seq ID="CreatorsAlphabeticalBySurname">
                 <rdf:li>Mary Andrew</rdf:li>
                 <rdf:li>Jacky Crystal</rdf:li>
              </rdf:Seq>
           </dc:Creator>
           <smilmetadata:ListOfVideoUsed>
              <rdf:Seq ID="VideoAlphabeticalByFormatname">
                  <rdf:li Resource="http://www.example.com/videos/meta-1999.mpg"/>
                  <rdf:li Resource="http://www.example.com/videos/meta2-1999.mpg"/>
              </rdf:Seq>
           </smilmetadata:ListOfVideoUsed>
           <smilmetadata:Access LevelAccessibilityGuidelines="AAA"/>
       </rdf:Description>

    <!-- Metadata about the video -->
       <rdf:Description about="http://www.example.com/videos/meta-1999.mpg"
            dc:Title="RDF part one"
            dc:Creator="John Smith"
            dc:Subject="Metadata,RDF"
            dc:Description="RDF basic fonctionalities"
            dc:Publisher="W3C Press Service"
            dc:Format="video/mpg"
            dc:Language="en"
            dc:Date="1999-10-12"
            smilmetadata:Duration="60 secs"
            smilmetadata:VideoCodec="MPEG2" >
            <smilmetadata:ContainsSequences>
               <rdf:Seq ID="ChronologicalSequences">
                 <rdf:li Resource="http://www.example.com/videos/meta-1999.mpg#scene1"/>
                 <rdf:li Resource="http://www.example.com/videos/meta-1999.mpg#scene2"/>
               </rdf:Seq>
             </smilmetadata:ContainsSequences>
       </rdf:Description>

    <!-- Metadata about a scene of the video -->
       <rdf:Description about="#scene1"
            dc:Title="RDF intro"
            dc:Description="Introduction to RDF functionalities"
            dc:Language="en"
            smilmetadata:Duration="30 secs"
            smilmetadata:Presenter="David Jones" >
            <smilmetadata:ContainsShots>
               <rdf:Seq ID="ChronologicalShots">
                 <rdf:li>Panorama-shot</rdf:li>
                 <rdf:li>Closeup-shot</rdf:li>
               </rdf:Seq>
            </smilmetadata:ContainsShots>
       </rdf:Description>
      </rdf:RDF>
     </metadata>

    <!-- SMIL presentation -->
     <layout>
        <region id="a" top="5" />
     </layout>
     </head>
     <body>
     <seq>
       <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"/>
     </seq>
     </body>
    </smil>

previous next contents