<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes" ?>
<!-- <rfc ipr="full2026" number="XXXX" category="info"> -->
<rfc ipr="noDerivativeWorks2026">
  <front>
    <title abbrev="CMML">The Continuous Media Markup Language (CMML), Version 2.0</title>

    <author initials="S.P." surname="Pfeiffer" fullname="Silvia Pfeiffer">
        <organization abbrev="CSIRO">Commonwealth Scientific and
        Industrial Research Organisation CSIRO,
        Australia</organization>
        <address>
           <postal>
              <street>Locked Bag 17</street>
              <city>North Ryde</city>
              <region>NSW</region>
              <code>2113</code>
              <country>Australia</country>
           </postal>
           <phone>+61 2 9325 3141</phone>
           <email>Silvia.Pfeiffer@csiro.au</email>
           <uri>http://www.ict.csiro.au/</uri>
        </address>
    </author>

    <author initials="C.D." surname="Parker" fullname="Conrad D. Parker">
        <organization abbrev="CSIRO">Commonwealth Scientific and
        Industrial Research Organisation CSIRO,
        Australia</organization>
        <address>
           <postal>
              <street>Locked Bag 17</street>
              <city>North Ryde</city>
              <region>NSW</region>
              <code>2113</code>
              <country>Australia</country>
           </postal>
           <phone>+61 2 9325 3133</phone>
           <email>Conrad.Parker@csiro.au</email>
           <uri>http://www.ict.csiro.au/</uri>
        </address>
    </author>

    <author initials="A.T." surname="Pang" fullname="Andre T. Pang">
        <organization abbrev="CSIRO">Commonwealth Scientific and
        Industrial Research Organisation CSIRO,
        Australia</organization>
        <address>
           <postal>
              <street>Locked Bag 17</street>
              <city>North Ryde</city>
              <region>NSW</region>
              <code>2113</code>
              <country>Australia</country>
           </postal>
           <phone>+61 2 9325 3156</phone>
           <email>Andre.Pang@csiro.au</email>
           <uri>http://www.ict.csiro.au/</uri>
        </address>
    </author>

    <date month="December" year="2003"/>

    <abstract>
      <t>This specification defines the Continuous Media Markup
      Language (CMML), version 2.0, an <xref
      target="XML">XML-based</xref> markup language for
      time-continuous data. It is a sister document to the
      specification of the <xref target="ANX">Annodex</xref>
      annotation, indexing and hyperlinking format for time-continuous
      data. Its tags provide for the creation of structured and
      unstructured annotations as well as hyperlinks and addressable
      named anchor points for clips of time-continuous data. As well
      as enabling the creation and storage of such meta data in XML
      files, the CMML is an authoring language for <xref
      target="ANX">Annodex</xref> streams through its import tags. The
      tag names in use in CMML are similar to the ones in <xref
      target="XHTML">XHTML</xref>.
      </t>

      <t>At this point in time, the right to produce derivative works
      is not granted to the IETF as the authors are uncertain about
      the necessity to create a working group. The specification is
      not encumbered by patents. The Annodex format is protected by a
      trade mark to prevent the use of the term "Annodex" for any
      related but non-conformant and therefore non-interoperable
      technology. Conformant technology is encouraged to use the term
      "Annodex" when refering to the file format.
      </t>

      <t>Notice the change to CMML 2.0 from the previous version of
      this Internet-Draft, replacing CMML 1.0.
      </t>

    </abstract>
  </front>
  
  <middle>
    
    <!--**************-->
    <!-- INTRODUCTION -->
    <!--**************-->
    <section title="Introduction">

      <t>Please note that this document assumes that the reader has a
      fluent working knowledge of <xref target="XML">XML</xref>, <xref
      target="HTML">HTML</xref>, <xref target="XHTML">XHTML</xref> and
      the World Wide Web. Basic knowledge about the <xref
      target="ANX">Annodex</xref> format is also assumed.
      </t>

      <t>Time-continuous data in the Annodex format contains XML-based
      annotations and hyperlinking information that enables it to be
      browsed by client applications, and crawled and indexed by
      search engines. The Continuous Media Markup Language CMML is a
      simple markup language for authoring and storing the XML data to
      be multiplexed with the time-continuous data given in binary
      bitstreams. This process eventually creates Annodex format
      bitstreams.
      </t>

      <t>The format of the CMML derives much from XHTML. Yet, instead
      of enabling the annotation of textual documents, it enables
      creation of mark-up for time-continuous documents.
      </t>

      <t>The CMML can describe one or several time-continuous data
      bitstreams. It is used to create all the tags required for
      authoring the annotation information for the Annodex format. It
      therefore contains the same tags as the annotation bitstream in
      Annodex format, which are the "head" and the "clip" tags. In
      addition, it may contain a stream tag, which is required for
      identifying and synchronising one or several input bitstreams
      that will be multiplexed together with the annotations for the
      creation of one coherent Annodex format bitstream.
      </t>

      <t>The following picture illustrates the multiplexing activity
      schematically; in reality the stream tag is not preserved and
      some attributes are also made irrelevant during
      multiplexing. Details of how CMML markup is encoded in an
      Annodex bitstream are given later in this document.
      </t>
      <figure>
        <artwork><![CDATA[
   ----------
   |stream  | CMML
   ---------- instance
   | head   | document
   ----------
   | clip_1 |     ----------------------------------------------------
   ----------     | data bitstream in packets                        |
   | ...    |     ----------------------------------------------------
   ----------          |
   | clip_n |          |
   ----------          |
       |               |
       ------->-<-------
               |          Multiplexing
               |
               v
   ----------------------------------------------------------------------
   |stream|head|clip_1|  data packets         |clip_2| data packets  ...
   ----------------------------------------------------------------------
	  ]]></artwork>
      </figure>
      
      <t>The file extension of CMML files is ".cmml". This document
      also applies for registration of the mime-type "text/cmml" for
      CMML files with IANA. In the meantime, "text/x-cmml" will be
      used.
      </t>

      <t>The CMML is technically fully specified through its DTD as
      given in the Appendix. The semantic meaning of each of the tags,
      their content and their attributes is specified in the following
      sections. The Appendix also contains an example of a CMML
      (instance) document.
      </t>

    </section>

    <!--************-->
    <!-- CMML types -->
    <!--************-->
    <section title="The CMML data types">

      <t>At the beginning of the CMML DTD, several parameter entities
      are defined that are used throughout the DTD as data types. This
      section gives a brief overview of them and refers to the
      relevant standards in which they are defined.
      </t>

      <section title="ContentType">
	<t>A "ContentType" specifies the media type and subtype of a
	document as defined in <xref target="ContentType">RFC
	2045</xref>. It is used to specify the type of content than
	one input time-continuous bitstream contains.
	</t>
      </section>

      <section title="URIs">
        <t>A "URI" is a character string that conforms to the
        specification of the Uniform Resource Identifier as defined in
        <xref target="URI">RFC 2396</xref>. A URI generally points to
        a Web resource.  The <xref target="timedURI">URI time interval
        specification</xref> is supported for CMML and Annodex
        files. Also, direct addressing of clips as specified in the
        MIME type application part of this document is supported for
        CMML and Anndex files.
	</t>
      </section>

      <section title="Internationalisation support">
        <t>The "LanguageCode" defines a collection of constant strings
        that each identify a specific language as defined in <xref
        target="LANG">RFC 1766</xref>. It is used to provide
        internationalisation support. To that end, the i18n entity
        draws together a language given by a "LanguageCode" with the
        directionality of that language in "dir" given either as ltr
        (left-to-right) or rtl (right-to-left).  "ltr" is the default.
        </t>
      </section>

      <section title="Time specifications">
	<t>There are three different time specifications in use in
	CMML: "Timestamp", "Playbacktime" and "UTCtime".
	</t>

        <t>A "Timestamp" is generally a name-value pair which defines
        a time point. The time point value is interpreted according to
        the time scheme given in the name. If the name is ommitted, it
        defaults to "npt:". At least the following time specifications
        are defined:
	  <list style="symbols">

	    <t>"npt" is "normal playback time" as used in the <xref
	    target="RTSP">RTSP standard</xref>.
	    </t>

	    <t>"smpte" are several frame-based time labels as defined
	    by the <xref target="SMPTE">Society of Motion Pictures and
	    Television Engineers</xref>. As fractional frames are
	    meaningless for video and ambiguous for audio in the
	    drop-frame situations, they are not used. The drop-frame
	    algorithms for calculating the exact times can be found in
	    the mentioned SMPTE standard.
	    </t>

	    <t>"utc" is the "universal time code" as specified in the
	    <xref target="ISO8601">ISO 8601 standard</xref>.
	    </t>

	  </list>
        </t>

        <t>The formal specifications for the time schemes are:
          <list style="empty">

	  <t>"npt:" NPT time with a second or subsecond basis</t>
	  <t>Specification as BNF:</t>
      <artwork><![CDATA[
npt-spec    =  "npt:" npt-time
npt-time    =  npt-sec | npt-hhmmss
npt-sec     =   1*DIGIT [ "." *DIGIT ]
npt-hhmmss  =   npt-hh ":" npt-mm ":" npt-ss [ "." *DIGIT ]
npt-hh      =   1*DIGIT
npt-mm      =   1*2DIGIT
npt-ss      =   1*2DIGIT
        ]]></artwork>

          <t> "smpte-24:" SMPTE time with a 24 fps basis</t>
          <t> "smpte-24-drop:" SMPTE time with a 24/1.001 fps basis</t>
          <t> "smpte-25:" SMPTE time with a 25 fps basis</t>
          <t> "smpte-30:" SMPTE time with a 30 fps basis</t>
          <t> "smpte-30-drop:" SMPTE time with a 30/1.001 fps basis</t>
          <t> "smpte-50:" SMPTE time with a 50 fps basis</t>
          <t> "smpte-60:" SMPTE time with a 60 fps basis</t>
          <t> "smpte-60-drop:" SMPTE time with a 60/1.001 fps basis</t>
	  <t>Specification as BNF:</t>
      <artwork><![CDATA[
smpte-spec  = smpte-type ":" smpte-time
smpte-type  = "smpte-24" | "smpte-24-drop" | "smpte-25" |
              "smpte-30" | "smpte-30-drop" | "smpte-50" |
              "smpte-60" | "smpte-60-drop"
smpte-time  =  1*2DIGIT ":" 1*2DIGIT ":" 1*2DIGIT [ ":" 1*2DIGIT ]
        ]]></artwork>

	  <t>"clock:" UTC time with a second or subsecond basis</t>
	  <t>Specification as BNF:</t>
      <artwork><![CDATA[
utc-spec    = "clock:" utc-time
utc-time    =   utc-date "T" utc-hhmmss "Z"
utc-date    =   8DIGIT
utc-hhmmss  =   6DIGIT [ "." *DIGIT ]
        ]]></artwork>

          </list>
	</t>

	<t>The "Playbacktime" entity is a data type that just
	specifies a SMPTE or a NPT time. It is therefore equal to the
	Timestamp entity without the UTC specification.
	</t>

	<t>The "UTCtime" entity is a data type that just specifies a
	UTC time without an identifier. UTC time is specified as in
	the Timestamp entity, but without the "clock:" identifier.
        </t>
	
      </section>
      
    </section>
    
    <!--**************-->
    <!-- Root element -->
    <!--**************-->
    <section title="The preamble and the 'cmml' root element">
      
      <t>A CMML file is an XML instance document of the CMML DTD. An
      example is given in the Appendix. It starts with the usual xml
      directive and the DTD specification (see
      http://www.w3.org/TR/REC-xml#sec-prolog-dtd). The following is
      an example preamble:
      </t>

      <figure>
        <artwork><![CDATA[
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE cmml SYSTEM "cmml.dtd">
	    ]]></artwork>
      </figure>

      <t>The attribute "standalone" is set to "yes" when the only DTD
      that is used for the instance document is cmml.dtd. The encoding
      format specifies the character encoding that is used for the
      values of the attributes and elements of the CMML file. E.g. for
      languages that are non-latin based, such as most Arab and Asian
      languages, a simple character encoding like US-ASCII does not
      cover all the characters. The default "UTF-8" charset can
      accommodate for any and all.
      </t>
      
      <t>After the preamble, the CMML tag follows. A CMML file has a
      "cmml" tag as the root element. It embraces all the other tags.
      </t>
      
      <figure>
        <artwork><![CDATA[
<!ELEMENT cmml (stream?, head, clip*)>
<!ATTLIST cmml
  %i18n;
  id          ID             #IMPLIED
  xmlns       %URI;          #FIXED 'http://www.annodex.net/cmml'
  >
	    ]]></artwork>
      </figure>

      <t>The "cmml" tag encloses at most one "stream" element, exactly
      one "head" element, and as many "clip" elements as the document
      author requires. A "clip" element describes a section of the to
      be created Annodex bitstream. The Annodex bistream is created by
      multiplexing the bitstreams given in the "src" attributes of the
      "import" tags of the "stream" element together with the CMML
      annotations in a time-synchronous manner, as specified in the
      <xref target="ANX">Annodex format</xref>.
      </t>

      <t>Attributes of the "cmml" element are the usual xml root tag
      attributes: the internationalisation attributes "lang" and
      "dir", an identifier "id" and a fixed namespace "xmlns".
      </t>

      <t>The internationalisation attributes specify the default
      language (language and directionality) of the complete CMML
      document. If not given, the language default adheres to the same
      rules as HTML, where the setting of the HTTP "Content-Language"
      header may specify the default language of a HTML document
      received over HTTP, or ultimately the user agent defaults and
      user preferences set the language. (see 
      http://www.w3.org/TR/REC-html40/struct/dirlang.html)
      </t>

    </section>
    
    
    <!--****************-->
    <!-- Stream element -->
    <!--****************-->
    <section title="The cmml 'stream' tag">

      <t>The "stream" element contains information that is used for
      authoring <xref target="ANX">Annodex format</xref> bitstreams
      from existing time-continuous data. It thus describes the input
      time-continuous bitstreams that are to be multiplexed together
      on authoring the Annodex format bitstreams. Additional tags or
      attributes describe other features of the Annodex bitstream 
      such as the time mappings for the start of the file.
      </t>

      <figure>
          <artwork><![CDATA[
<!ELEMENT stream (import*)>
<!ATTLIST stream
  id          ID             #IMPLIED
  timebase    %Playbacktime; "0"
  utc         %UTCtime;      #IMPLIED
  >
	    ]]></artwork>
      </figure>

      <t>The "stream" element has no text attributes and thus
      internationalisation attributes are not required. The "id"
      attribute follows the default language specified in the "cmml"
      element.
      </t>

      <t>The "timebase" attribute contains a playback time in seconds
      associated with the first data packet of the Annodex
      bitstream. All other times in the CMML file MUST be calculated
      relative to this timebase. For example, a timebase of 300
      seconds npt for a video file implies that the first frame is
      related to a play time of 300 seconds, and a clip with a start
      time of 350 seconds is to be included 50 seconds into the
      Annodex bitstream.  If no timebase (or no stream tag) is given,
      the timebase defaults to 0 npt. The timebase can be given as a
      SMPTE or NPT time, but not as a utc time.
      </t>

      <t>The "utc" attribute associates a calendar date and a
      wall-clock time with the timebase. It therefore provides a
      mapping of the timebase to a real-world clock time and is given
      as a UTC time. If it is omitted, the start attribute in the
      import tag, and the start and end attributes in clip tags MUST
      NOT be specified as UTC times.
      </t>

      <t>The content model of the "stream" tag then proposes an
      arbitrary number of input bitstreams. These are described one by
      one in the "import" element.
      </t>

      <!--****************-->
      <!-- Import element -->
      <!--****************-->
      <section title="The 'import' tag">        

	<t>A "import" tag contains information on one of the input
	bitstreams for the multiplexing process. It may also contain
        additional parameters to set up the Annodex encoder for each
        import bitstream. 
	</t>

        <figure>
          <artwork><![CDATA[
<!ELEMENT import (param*)>
<!ATTLIST import
  %i18n;
  id          ID             #IMPLIED
  granulerate CDATA          #IMPLIED
  contenttype %ContentType;  #IMPLIED
  src         %URI;          #REQUIRED
  start       %Timestamp;    "0"
  end         %Timestamp;    #IMPLIED
  title       CDATA          #IMPLIED
  >
	    ]]></artwork>
        </figure>

	<t>The relevant bitstream (fragment) is referenced through the
	"src" attribute. The src is a URI and may thus also contain a
	time interval specification in URIs which narrows down the
	input file to that given subpart. That resource is multiplexed
	into the Annodex format bitstream starting at the time given
	in the "start" attribute and ending at the latest at the time
	given in the "end" attribute. The "start" and "end" attributes
	are interpreted relative to the timeline of the Annodex format
	bitstream.
	</t>
        
	<t>The internationalisation attributes provide the language of
	the import element's and the contained param tags' attribute
	values, such as the "id" attributes and the "title" attribute.
	</t>

	<t>The "granulerate" attribute contains the base temporal
	resolution in Hz of the input bitstream refered in the "src"
	attribute. It depends on the encoding format of the input
	bitstream and typically contains the framerate for video
	(e.g. 25 frames/sec) and the samplerate for audio (e.g. 44100
	samples/sec), but may contain any rational number given with
	an integer denominator larger than 1 sec (e.g. 25 frames on 2
	seconds). Each bitstream has its own granulerate dependent on
	its specific encoding. This attribute is implied as it can be
	determined automatically during the multiplexing process when
	the headers of the encoded media bitstream contain this
	information. For bitstreams without header, such as
	uncompressed audio, the author of the CMML file can provide
	the granulerate to the multiplexer in this attribute.
	</t>

        <t>The "contenttype" attribute specifies the <xref
        target="ContentType">media type</xref> of the input bitstream
        refered in the "src" attribute. It is optional as the media
        type can often be derived from the file name or file header of
        the media source during multiplexing.
        </t>

	<t>The "src" attribute specifies a URI to the input
	bitstream. Commonly used URI schemes are "file" and "http".
	For specifying temporal subsets of the input bitstream, use
	the <xref target="timedURI">time interval specification for
	URIs</xref>.
	</t>

	<t>The "start" attribute specifies a time in the output
	Annodex bitstream at which the media bitstream will be
	inserted. This time is specified with respect to the
	"timebase" attribute given in the "stream" element.
	</t>

	<t>The "end" attribute specifies a time in the output Annodex
	bitstream at which the media bitstream will stop at the
	latest. This time is also specified with respect to the
	"timebase" attribute given in the "stream" element. This
	attribute is not required when the full bitstream is used.
	</t>

	<t>The optional "title" attribute provides a chance to jot
	down a human readable comment on the source bitstream. This
	may e.g. be used in authoring applications for a more human
	readable display than the "id" tag which is really a key for
	identifying elements uniquely.
	</t>

	<t>The content model of the "import" tag then allows an
	arbitrary number of "param" tags to add as many descriptive
	parameter values to the mulitplexing activity as necessary.
	</t>

      </section> <!--import-->
      
      <!--****************-->
      <!-- Param element -->
      <!--****************-->
      <section title="The 'param' tag">        
	  
	<t>A "param" tag is empty, but its attributes contain a
	name-value pair for describing the input bitstream in the
	parent "import" element. It inherits its internationalisation
	from that element, too, to avoid overhead. The "param" element
	is declared as follows:
	</t>
	  
	<figure>
	    <artwork><![CDATA[
<!ELEMENT param EMPTY>
<!ATTLIST param
  id          ID             #IMPLIED
  name        CDATA          #REQUIRED
  value       CDATA          #REQUIRED
  >
	    ]]></artwork>
	</figure>

	<a>The "name" attribute identifies a property name. It does
	not list legal values for this attribute.
	</a>
	
	<a>The "value" attribute specifies a property's value. It does
	not list legal values for this attribute.
	</a>
	  
      </section> <!--param-->
      
    </section> <!--stream-->
    
    
    <!--**************-->
    <!-- Head element -->
    <!--**************-->
    <section title="The cmml 'head' element">

      <t>The CMML "head" element contains annotation information on
      the complete Annodex bitstream, for whose creation the CMML file
      is used. It therefore contains header-type information such as a
      title, and meta information describing the bitstream.
      </t>

      <t>The "head" element is declared as the following:
      </t>
        <figure>
          <artwork><![CDATA[
<!ELEMENT head (meta*,
                ((title, meta*, (base, meta*)?) |
                 (base, meta*, (title, meta*)?)))>
<!ATTLIST head
  %i18n;
  id          ID             #IMPLIED
  profile     %URI;          #IMPLIED
  >
	    ]]></artwork>
        </figure>
	
      <t>The "head" tag must contain a "title" tag. It may contain one
      "base" tag before or after the "title" tag and any number of
      "meta" tags at any position.
      </t>

      <t>The "%i18n;" attribute specifies the base language of the
      "head" tag's attribute values.
      </t>

      <t>The value of the "profile" attribute is a space-separated
      list of base URIs specifying locations of "meta" tag schemes
      such as the Dublin Core (see http://dublincore.org/). These
      schemes may be used in the "meta" elements of the "head" or the
      "clip" tags.
      </t>
	
      <!--***************-->
      <!-- Title element -->
      <!--***************-->
      <section title="The 'title' element">
	
        <t>The "title" tag gives a descriptive title for the
        Annodex bitstream.  The "title" element is declared as the
        following:
	</t>
        <figure>
          <artwork><![CDATA[
<!ELEMENT title (#PCDATA)>
<!ATTLIST title
  id          ID       #IMPLIED
  %i18n;
>
	    ]]></artwork>
        </figure>

	<t>The "%i18n;" attribute specifies the base language of the
	"title" text.
	</t>
 
      </section>

      <!--**************-->
      <!-- Base element -->
      <!--**************-->
      <section title="The 'base' element">
	
	<t>The "base" element defines the base URI of the Annodex
	bitstream. All relative URIs of the bitstream get interpreted
	relative to this base.  The "base" element is empty, but its
	attributes contain the base URI.  It is declared as follows:
	</t>

        <figure>
          <artwork><![CDATA[
<!ELEMENT base EMPTY>
<!ATTLIST base
  id      ID       #IMPLIED
  href    %URI;    #REQUIRED
>
	    ]]></artwork>
        </figure>
	
	<t>The "href" attribute contains the base URI. If the "base"
	element is omitted, the base URI of the Annodex bitstream is
	derived from the address through which the Annodex bitstream
	is accessed.
	</t>
	
      </section>
      
      
      <!--**************-->
      <!-- Meta element -->
      <!--**************-->
      <section title="The 'meta' element">
	
	<t>The "meta" element in the "head" element defines structured
	annotations for the complete Annodex bitstream. A "meta"
	element is empty, but its attributes contain the name-value
	pairs of a structured annotation. The "meta" element is
	declared as follows:
	</t>
        <figure>
          <artwork><![CDATA[
<!ELEMENT meta EMPTY>
<!ATTLIST meta
  %i18n;
  id       ID       #IMPLIED
  name     NMTOKEN  #IMPLIED
  content  CDATA    #REQUIRED
  scheme   CDATA    #IMPLIED
>
	    ]]></artwork>
        </figure>

	<t>The "%i18n;" attribute specifies the language of the meta
	attribute and content texts.
	</t>

	<t>The "name" attribute identifies a property name. It does
	not list legal values for this attribute.
	</t>

	<t>The "content" attribute specifies a property's value. It
	does not list legal values for this attribute.
	</t>

	<t>The "scheme" attribute names a scheme to be used to
	interprete the property's value. The scheme can be located via
	the "profile" attribute in the "head" element.
	</t>

      </section>
      
    </section>      
    
    <!--****************-->
    <!-- Clip element -->
    <!--****************-->
    <section title="The cmml 'clip' tag">
      
      <t>A CMML file typically contains a number of sections given
      through "clip" tags. The CMML "clip" tag contains information
      about a section of the Annodex bitstream. This is expressed in a
      number of elements and attributes annotating, indexing, and
      hyperlinking the section. The "start" and "end" attributes are
      used to give the insertion time for the clip into the Annodex
      bitstream.
      </t>

      <figure>
	<artwork><![CDATA[
<!ELEMENT clip (meta*, a?, img?, desc?)>
<!ATTLIST clip
  %i18n;
  id          ID             #IMPLIED
  track       CDATA          "default"
  start       %Timestamp;    #REQUIRED
  end         %Timestamp;    #IMPLIED
  >
	    ]]></artwork>
      </figure>

      <t>Any number of "meta" elements may appear in a clip, and at
      most one "a" element, one "img" element, and one "desc"
      element. Though "meta", "a", "img", and "desc" tag are given in
      a specific order in the DTD, their order is actually random.
      </t>
	
      <t>A "clip" element defines a unique identifying name for the
      clip in its "id" attribute. This name can be used in URIs that
      point either to the CMML file or the Annodex bitstream created
      from it, and allow to point straight at the clip. This may
      either be done as a URI fragment or URI query specification.
      </t>
	
      <t>The "%i18n;" attribute specifies the base language for all
      the clip's attribute values and content elements.
      </t>

      <t>The "track" attribute specifies the track that this clip
      belongs to.  An annotation track is a set of clips that belong
      together from a semantic point of view. Clips in the same track
      must not overlap temporally. A default track must be available
      always. This track is the one a client (such as a Web browser
      plugin) will display by default. Other annotation tracks may be
      created by the document author to describe a more specific
      content. An example use are different annotation tracks for each
      speaker in an audio recording of a meeting or tracks of
      different languages.
      </t>

      <t>The "start" and "end" attributes specify the time range
      during which the clip element is defined. This time range is
      specified with respect to the "timebase" and "utc" attributes
      given in the "stream" tag. If the "stream" tag does not contain
      a "utc" specification, "start" and "end" times are not allowed
      to be given in UTC time. "start" is a required attribute because
      a clip without a start time is useless. "end" is optional and
      only required where clips cannot continue on to the following
      clip.
      </t>

      <!--**************-->
      <!-- Meta element -->
      <!--**************-->
      <section title="The 'meta' element">
	
        <t>The "meta" element is specified above in the "head"
        section. While a "meta" element in the "head" tag provides
        meta information for the complete Annodex bitstream, the
        "meta" elements in a "clip" tag only provide meta information
        for the clip.
	</t>

      </section>

	
      <!--****************-->
      <!-- Anchor element -->
      <!--****************-->
      <section title="The 'a' element">
	
	<t>The "a" element specifies a link to a related Web resource
	together with some information on that related resource. The
	"a" element definition is very closely related to the xhtml
	"a" element definition with a reduced number of attributes as
	they make sense for time-continuous data.
	</t>

	<figure>
	  <artwork><![CDATA[
<!ELEMENT a (#PCDATA)>
<!ATTLIST a
  %i18n;
  id          ID             #IMPLIED
  class       CDATA          #IMPLIED
  href        %URI;          #REQUIRED
  >
	    ]]></artwork>
	</figure>

	<t>The internationalisation attributes specify the language of
	the anchor's attribute values and of the anchor text.
	</t>

	<t>The "class" attribute allows to override style sheet
	defaults for this anchor instance.
	</t>

	<t>The "href" attribute specifies the location of a Web
	resource given through a URI. It thus defines a link between
	the current clip and a resource which the author believes to
	be connected closely to this clip's content.  This might be a
	html page or another Annodex bitstream clip or an image
	etc. An "a" element without a "href" attribute is illegal and
	should be flagged or ignored.
	</t>

	<t>The text contained in an "a" element (i.e. the anchor text)
	gives a short textual description of the link specified
	through the "href" attribute. It explains why the connection
	between the current clip and the destination URI is made. It
	may e.g. encourage the viewer to follow the link to "Get more
	information on blah".
	</t>

      </section>


      <!--*************-->
      <!-- img element -->
      <!--*************-->
      <section title="The 'img' element">
	
	<t>The "img" element specifies a link to a representative
	image for the clip.  This image should be quite small as it is
	the representative image (known as "keyframe") for the current
	clip. This image may be used to visually summarise the content
	of the clip when a link to it is displayed, e.g. by a search
	engine or in a table of contents.  The "img" element
	definition is very closely related to the xhtml "img" element
	definition with a reduced number of attributes as they make
	sense for time-continuous data.
	</t>

	<figure>
	  <artwork><![CDATA[
<!ELEMENT img EMPTY>
<!ATTLIST img
  %i18n;
  id          ID             #IMPLIED
  src         %URI;          #REQUIRED
  alt         CDATA          #IMPLIED
  >
	    ]]></artwork>
	</figure>

	<a>The internationalisation attributes specify the language of
	the image's attribute values.
	</a>

	<t>The "src" attribute specifies the location of an image on
	the Web given through a URI.
	</t>

	<t>The "alt" attribute specifies alternative text to be
	displayed instead of the image as required e.g. for
	accessibility.
	</t>

      </section>


      <!--**************-->
      <!-- Desc element -->
      <!--**************-->
      <section title="The 'desc' element">
	
        <t>The "desc" tag contains a human readable, textual
        description of the content of the clip. The "desc" element is
        declared as the following:
	</t>

        <figure>
          <artwork><![CDATA[
<!ELEMENT desc  (#PCDATA)>
<!ATTLIST desc
  %i18n;
  id          ID       #IMPLIED
>
	    ]]></artwork>
        </figure>

	<t>For extracting a short text from the "desc" element as
	needs to be displayed in a table of contents or as caption,
	the first few characters of the description will be taken. It
	is therefore recommended to place a short meaningful summary
	sentence at the beginning of the description when authoring
	annotations.
	</t>

	<t>The internationalisation attributes specify the language of
	the text in the description.
	</t>
	
      </section>
      
    </section>


    <!--**************************-->
    <!-- Encoding CMML to ANNODEX -->
    <!--**************************-->
    <section title="The encoding of CMML to Annodex format bitstreams">

      <t>As CMML is an authoring format for Annodex bitstreams, there
      is a simple way to map the annotations and meta information
      contained in a CMML instance document to the annotation
      bitstream and header fields of an Annodex format bitstream.
      Please be aware that some of the encoding rules given here are a MUST,
      and others a SHOULD. As the binary header format for the annotation
      and media bitstreams provide for an extensible list of message
      header fields, an encoder MAY however add some or all of the
      non-used tags in there and even add others. For this section a
      detailed understanding of the <xref target="ANX">Annodex format
      bitstream</xref> is necessary.
      </t>

      <t>The "head" and "clip" tags of a CMML document are mapped as
      codec data into the annotation bitstream of an Annodex bitstream,
      where the "head" tag is regarded as a secondary header. Thus,
      the rest of the information in a CMML file, i.e. the "stream" tag,
      the "cmml" tag and the preamble information, MUST be handled as binary header
      type information. Header type information in Annodex is generally regarded
      as non-human readable information, therefore by default language and
      directionality information will not be encoded. The character set used
      in the Annodex header fields is UTF-8, but the mandatory header fields
      are all covered by US-ASCII code points and for the optional ones it 
      is recommended to do the same as much as possible. User defined
      optional message header fields MUST follow the naming standard given in
      RFC2822.</t>

      <section title="Encoding the 'stream' tag">

        <t>A CMML instance document contains in its "stream" tag
        information that is relevant to the authoring process of Annodex
        format bitstreams.
        </t>

	<t>The "stream" tag itself finds no representation in the
	Annodex bitstream. Rather, it contains both, information on
	the complete Annodex bitstream, and information on the
	different input documents. The first is information that finds
	a representation in the Annodex bos page, which is the very
	first bos page in an Annodex bitstream. The second is
	information used during the encoding process of each media
	bitstream and may find entry into the AnxData bos page of the
	respective media bitstream.
	</t>

	<t>Here is a list of the attribute values of the
	"stream" tag and how they are being used:
	  <list>
	    <t>id: not used, as this attribute is only used to enable 
	    addressing of the stream tag the XML way (e.g. XPath).
	    It is not relevant for the encoded bitstream and will 
	    therefore be lost on encoding.
	    </t>

	    <t>timebase: this attribute MUST be represented in the Annodex
	    bos page in the fields "Timebase numerator" and "Timebase
	    denominator".
	    </t>

            <t>utc: this attribute MUST be represented in the Annodex bos
            page in the field "utc".</t>
	  </list>
	</t>

	<t>Here is a list of the attribute values of the
	"import" tag and how they are being used:
	  <list>
	    <t>id: this attribute SHOULD be represented in the media
	    bos page of the respecitve media bitstream as a message
	    header field with name "ID", as it signifies a short identifying 
	    machine-readable string for the import media bitstream.
	    </t>

	    <t>lang, dir: not used, as these attributes signify the language 
	    and directionality of the human readable texts in the stream tag
	    which are not acquired into the Annodex bitstream.</t>

	    <t>granulerate: this attribute MUST be represented in the media
	    bos page in the fields "Granule rate numerator" and "Granule
	    rate denominator". The encoder MUST however ascertain that
	    the values are corrected with the exact granule rate that was
	    used during creation of the Annodex bitstream.
	    </t>

            <t>contenttype: this attribute MUST be represented in the 
	    media bos page as a message header field with name "Content-type",
	    as it signifies the MIME type of the media bitstream, providing
	    for a decoding hint.</t>

	    <t>src: not used, as this attribute only points to the location
	    of the import media bitstream and is thus pure authoring
	    information.</t>

	    <t>start, end: not used, as this attribute only specifies the
	    segment of the import media bitstream that is to be used during
	    authoring.</t>

	    <t>title: not used, as this attribute provides a human readable
	    comment on the import bitstream for authoring purposes.</t>
	  </list>
	</t>

	<t>Here is a list of the attribute values of the
	"param" tag list and how they are being used:
	  <list>
	    <t>id: not used, as this attribute is only used to enable 
	    addressing of the param tag the XML way (e.g. XPath).
	    It is not relevant for the encoded bitstream and will 
	    therefore be lost on encoding.
	    </t>

	    <t>name, value: these attributes MAY be represented in the media
	    bos page of the respecitve media bitstream as a message
	    header field with the given name-value pair. These are highly
	    dependent on the type of media bitstream handled and it therefore
	    depends on the encoding tool to make a selection of the parameters
	    acquired. E.g. lets regard an audio bitstream containing speech in
	    a specific language. This language MAY be identified during CMML 
	    authoring as a param element with "Content-Language" name, and 
	    acquired into the media bitstream message header field of the 
	    same name.
	    </t>
	  </list>
	</t>
      </section>

      <section title="Encoding the preamble and the 'cmml' tag">
      
	<t>While the "stream" tag contained meta data on the different
	input media bitstreams, the preamble and the "cmml" tag contain
	meta data on the annotation bitstream and therefore end up in the
	AnxData bos page of the annotation bitstream.</t>

	<t>Here is a list of the attribute values of the preamble and
	how they are being acquired:
	  <list>
	    <t>xml version: without loss of generality, for simplicity
	    this is fixed to version "1.0" for the current versions of 
	    CMML 2.0 and Annodex 2.0. Therefore, this attribute
	    does not get represented in the Annodex bitstream and MUST be
	    auto recreated during ripping of annotations out of the
	    Annodex bitstream.</t>

	    <t>xml encoding: this attribute MUST be represented in the
	    annotation bos page as a message header field with name
	    "Content-type" and the encoding format being the charset
	    value following "text/x-cmml;" (or "text/cmml;" after IANA
	    registration of the MIME type).</t>

	    <t>xml standalone: this is fixed to "yes" for the current versions
	    of CMML 2.0 and Annodex 2.0. There is a need to explore how
	    to include data of general xml documents that conform to a
	    different DTD into CMML and ultimately Annodex. Until then,
	    standalone is fixed to "yes" and does not get represented in
	    the Annodex bitstream, but MUST be auto recreated during
	    ripping of annotations out of it.</t>

	    <t>DOCTYPE declaration: this is fixed to 
	    <![CDATA[<!DOCTYPE cmml SYSTEM "cmml.dtd">]]> and thus
	    again does not get represented in the Annodex bitstream
	    but MUST be auto recreated during ripping.</t>
	  </list>
	</t>

	<t>Here is a list of the attribute values of the "cmml" tag and
	how they are being acquired:
	  <list>
	    <t>id: this attribute SHOULD be represented in the bos page 
	    of the annotation bitstream as a message header field with 
	    name "ID", as it signifies a short identifying 
            machine-readable string for the annotation bitstream (in
	    analogy to the id field of the import tags).
	    </t>

	    <t>lang, dir: these attributes MUST be represented in the
	    bos page of the annotation bitstream as message header
	    fields with name "Content-Language" and "Content-Dir".
	    </t>

	    <t>xmlns: this attribute is fixed to "http://www.annodex.net/cmml"
	    and thus does not get represented in the Annodex bitstream
	    but must be auto recreated during ripping.
	    </t>
	  </list>
        </t>
      </section>

      <section title="Encoding the 'head' tag">
	<t>The CMML "head" tag is printed as a string into the first
	secondary header page of the annotation bitstream. Thus,
	the value of the field named "number of secondary header pages"
	in the bos page of the annotation bitstream will be 1, unless
	the "head" tag turns out to be too big for one Ogg page (i.e.
	larger than about 64K).
	</t>
	
	<t>Note that the encoding process must ensure that newline
	characters are represented as LF (or "\n" in C) only. As some 
	systems represent the new line as CR LF combinations (or
	"\r\n" in C), the encoding process MAY need to strip out
	the CR character.
	</t>
      </section>

      <section title="Encoding the 'clip' tags">
	<t>The "clip" tags are the real content of an annotation
	bitstream. Their "start" and "end" attributes only exist for
	authoring purposes and are not copied into the annotation
	bitstream to avoid contradictory doubly represented information as
	their position in the stream already represents this timing information.
	</t>

	<t>A "clip" tag is encoded with all tags (except for the 
	"start" and "end" attributes) as a string printed into a 
	clip page in the annotation bitstream. The "clip"
	tag's "start" attribute tells the Annodex encoder at what
	time to insert the clip page into the bitstream. Its "end" 
	attribute (if present) leads to the creation of another 
	clip page at the given end time in the Annodex bitstream, 
	unless another clip page starts on the same track beforehand. 
	This clip page contains an empty "clip"	tag, i.e. a "clip" 
	tag without "meta", "a", "img" or "desc" elements and no 
	attribute values except for a copy of the "track" attribute
	from the original "clip" tag.
	</t>

	<t>Again, the encoding process must ensure that newline
	characters are represented as LF (or "\n" in C) only.
	</t>
      </section>

    </section>



    <!--***********************-->
    <!-- MIME type application -->
    <!--***********************-->
    <section title="MIME media type registration for 'text/cmml'">
      
      <t>This section contains the registration information for the
      'text/cmml' media type. While this media type is not approved by
      the IANA, 'text/x-cmml' may be used to identify CMML instance
      documents.
      </t>

      <t>To: ietf-types@iana.org
      </t>
      
      <t>Subject: Registration of MIME media type 'text/cmml'
      </t>

      <t>MIME media type name: text
      </t>
      
      <t>MIME subtype name: cmml
      </t>

      <t>Required parameters: none
      </t>
      
      <t>Optional parameters: charset (as in the <xref
      target="text/xml">text/xml media type</xref>).
      </t>
      
      <t>Encoding Considerations: as appropriate for the charset and
      the transport mechanism (see <xref target="text/xml">text/xml
      media type</xref>).
      </t>
      
      <t>Security considerations: see next section.
      </t>

      <t>Interoperability considerations: CMML is a free specification
      that is independent of any media encoding format. It is designed
      to provide interoperability with existing XML tools and
      systems. Its specification is not patented and can be
      implemented by third parties without patent considerations.
      </t>

      <t>Additional information:</t>
      <list style="none">
	<t>Magic numbers: none. However, CMML files start with the XML
	preamble as any <xref target="text/xml">XML document</xref>)
	and will also have the string <![CDATA['<cmml']]> near the
	beginning of the file.</t>

	<t>File extension: .cmml</t>

	<t>Macintosh File Type Code: "TEXT"</t>

	<t>Intended usage: COMMON</t>
      </list>

      <section title="URI addressing into CMML files">

	<t>There are two ways of hyperlinking via URIs into CMML
	files: via specification of a temporal interval or via
	specification of a clip. Both of these ways of addressing are
	supported for URI queries and URI fragments on CMML files.
	</t>

	<section title="Query parameters for use with the http protocol server-side">
	  <t>For the purposes of URI queries on CMML files, it is
	  assumed that the query string takes the format of a CGI
	  query string. The Common Gateway Interface, or CGI, is a
	  standard for external gateway programs to interface with
	  information servers such as HTTP servers (see
	  http://hoohoo.ncsa.uiuc.edu/cgi/). This query string is
	  expected to be interpreted by the HTTP server to return a
	  valid CMML file that differs from the original CMML file
	  only by reducing the set of clip tags to the specified
	  interval.
	  </t>

	  <t><b>Temporal query parameter specification:</b></t>

	  <t>Addressing of temporal intervals of CMML files is
	  possible through specification of <xref
	  target="timedURI">temporal query intervals in
	  URIs</xref>. An example is the following URI:
	  http://www.blah.au/sample.cmml?t="npt:4" , which relates to
	  the last clip whose start time is just before the given
	  temporal offset and all the clips thereafter.
	  </t>

	  <t><b>Clip specification:</b></t>

	  <t>Addressing of a clip is possible through specification of
	  the clip's id attribute value. An example is the following
	  URI: http://www.blah.au/sample.cmml?id="dolphin" , which
	  relates to the clip whose id attribute value is
	  "dolphin". Note that id attribute values of all elements
	  have to be unique throughout a XML file (and thus also
	  throughout a CMML file).</t>
	</section>
	
	<section title="Fragment identifiers for use with the http protocol client-side">
	  <t>For the purposes of URI fragment specifications on CMML
	  files, it is assumed that the fragment gets interpreted by
	  the HTTP client after the retrieval action. The HTTP client
	  is expected to restrict the usage of the resource to the
	  specified interval.
	  </t>

	  <t><b>Temporal fragment specification:</b></t>

	  <t>Addressing of temporal intervals of CMML files is
	  possible through specification of <xref
	  target="timedURI">temporal fragments in URIs</xref> An
	  example is the following URI:
	  http://www.blah.au/sample.cmml#npt:4 . This then relates to
	  the last clip whose start time is just before the given
	  temporal offset and all the clips thereafter. This may
	  e.g. be useful to do a zoom into a retrieved CMML resource.
	  </t>

	  <t><b>Clip specification:</b></t>

	  <t>The values of the id attribute of the clip tags can be
	  used for addressing media clips directly through fragment
	  identifiers as in http://www.blah.au/sample.cmml#dolphin.
	  </t>
	</section>
	
      </section>

    </section>
      

    <!--**********-->
    <!-- Security -->
    <!--**********-->
    <section title="Security considerations">

      <t>As CMML is a markup language created by using XML, the same
      security considerations that apply to <xref
      target="text/xml">XML</xref>, apply to CMML.
      </t>

      <t>As the CMML is an authoring language for Annodex format
      bitstreams, there is no executable code attached to this
      language. The implementation of a multiplexer to actually create
      an Annodex bitstream must be careful when handling input
      bitstreams, which are binary data.
      </t>

    </section>
    
  </middle>
  
  <back>
    
    <!--************-->
    <!-- References -->
    <!--************-->
    <references>
      
      <reference anchor="XML" target="http://www.w3.org/TR/2000/REC-xml-20001006">
        <front>
	  <title>Extensible Markup Language (XML) 1.0</title>
	  <author>
	    <organization abbrev="W3C">World Wide Web Consortium</organization>
	    <address>
	      <postal>
		<street>MIT Laboratory for Computer Science</street>
		<street>545 Technology Square</street>
		<city>Cambridge</city> <region>MA</region> <code>02139</code>
		<country>US</country>
	      </postal>
	      <phone>+ 1 617 253 2613</phone>
	      <facsimile>+ 1 617 258 5999</facsimile>
	      <email>timbl@w3.org</email>
	      <uri>http://www.w3c.org</uri>
	    </address>
	  </author>
	  <date month="October" year="2000" />
	</front>
	<seriesInfo name="W3C" value="XML" />
      </reference>
      
      <reference anchor="HTML" target="http://www.w3.org/TR/html4/">
        <front>
	  <title>HTML 4.01 Specification</title>
	  <author>
	    <organization abbrev="W3C">World Wide Web Consortium</organization>
	    <address>
	      <postal>
		<street>MIT Laboratory for Computer Science</street>
		<street>545 Technology Square</street>
		<city>Cambridge</city> <region>MA</region> <code>02139</code>
		<country>US</country>
	      </postal>
	      <phone>+ 1 617 253 2613</phone>
	      <facsimile>+ 1 617 258 5999</facsimile>
	      <email>timbl@w3.org</email>
	      <uri>http://www.w3c.org</uri>
	    </address>
	  </author>
	  <date month="December" year="1999" />
	</front>
	<seriesInfo name="W3C" value="HTML" />
      </reference>

      <reference anchor="XHTML" target="http://www.w3.org/TR/xhtml1/">
        <front>
	  <title>XHTML(TM) 1.0 The Extensible Hyper Text Markup Language</title>
	  <author>
	    <organization abbrev="W3C">World Wide Web Consortium</organization>
	    <address>
	      <postal>
		<street>MIT Laboratory for Computer Science</street>
		<street>545 Technology Square</street>
		<city>Cambridge</city> <region>MA</region> <code>02139</code>
		<country>US</country>
	      </postal>
	      <phone>+ 1 617 253 2613</phone>
	      <facsimile>+ 1 617 258 5999</facsimile>
	      <email>timbl@w3.org</email>
	      <uri>http://www.w3c.org</uri>
	    </address>
	  </author>
	  <date month="January" year="2000" />
	</front>
	<seriesInfo name="W3C" value="XHTML" />
      </reference>

      <reference anchor="URI" target="http://www.ietf.org/rfc/rfc2396.txt">
	<front>
	  <title>Uniform Resource Identifiers (URI): Generic Syntax</title>
	  <author initials="T." surname="Berners-Lee" fullname="Tim Berners-Lee">
	    <organization abbrev="W3C">World Wide Web Consortium</organization>
	    <address>
	      <postal>
		<street>MIT Laboratory for Computer Science</street>
		<street>545 Technology Square</street>
		<city>Cambridge</city> <region>MA</region> <code>02139</code>
		<country>US</country>
	      </postal>
	      <phone>+1 617 253 5702</phone>
	      <facsimile>+1 617 258 8682</facsimile>
	      <email>timbl@w3.org</email>
	    </address>
	  </author>
	  <author initials="R.T." surname="Fielding" fullname="Roy T. Fielding">
	    <organization abbrev="UCI">University of California, Irvine</organization>
	    <address>
	      <postal>
		<street>Department of Information and Computer Science</street>
		<street>University of California, Irvine</street>
		<city>Irvine</city> <region>CA</region> <code>92697-3425</code>
		<country>US</country>
	      </postal>
	      <phone>+1 949 824 7403</phone>
	      <facsimile>+1 949 824 1715</facsimile>
	      <email>fielding@ics.uci.edu</email>
	    </address>
	  </author>
	  <author initials="L." surname="Masinter" fullname="Larry Masinter">
	    <organization>Xerox PARC</organization>
	    <address>
	      <postal>
		<street>3333 Coyote Hill Road</street>
		<city>Palo Alto</city> <region>CA</region> <code>94304</code>
		<country>US</country>
	      </postal>
	      <phone>+1 650 812 4365</phone>
	      <facsimile>+1 650 812 4333</facsimile>
	      <email>masinter@parc.xerox.com</email>
	    </address>
	  </author>
	  <date month="August" year="1998" />
	</front>
	<seriesInfo name="RFC" value="2396" />
      </reference>
      
      <reference anchor="RTSP" target="Http://www.ietf.org/rfc/rfc2326.txt">
	<front>
	  <title>Real Time Streaming Protocol (RTSP)</title>
	  <author initials="H." surname="Schulzrinne" fullname="Henning Schulzrinne">
	    <organization abbrev="ColU">Columbia University</organization>
	    <address>
	      <postal>
		<street>Dept. of Computer Science</street>
		<street>1214 Amsterdam Avenue</street>
		<city>New York</city> <region>NY</region> <code>10027</code>
		<country>US</country>
	      </postal>
	      <email>schulzrinne@cs.columbia.edu</email>
	    </address>
	  </author>
	  <author initials="A." surname="Rao" fullname="Anup Rao">
	    <organization abbrev="NS">Netscape Communications Corp.</organization>
	    <address>
	      <postal>
		<street>501 E. Middlefield Road</street>
		<city>Mountain View</city> <region>CA</region> <code>94043</code>
		<country>US</country>
	      </postal>
	      <email>anup@netscape.com</email>
	    </address>
	  </author>
	  <author initials="R." surname="Lanphier" fullname="Robert Lanphier">
	    <organization>RealNetworks</organization>
	    <address>
	      <postal>
		<street>1111 Third Avenue Suite 2900</street>
		<city>Seattle</city> <region>WA</region> <code>98101</code>
		<country>US</country>
	      </postal>
	      <email>robla@real.com</email>
	    </address>
	  </author>
	  <date month="April" year="1998" />
	</front>
	<seriesInfo name="RFC" value="2326" />
      </reference>
      
      <reference anchor="LANG" target="http://www.ietf.org/rfc/rfc1766.txt">
	<front>
	  <title>Tags for the Identification of Languages</title>
	  <author initials="H." surname="Alvestrand" fullname="Harald Tveit Alvestrand">
	    <organization abbrev="UNINETT">UNINETT</organization>
	    <address>
	      <postal>
		<street>Pb. 6883 Elgeseter</street>
		<city>Trondheim</city> <code>7002</code>
		<country>Norway</country>
	      </postal>
	      <email>Harald.T.Alvestrand@uninett.no</email>
	    </address>
	  </author>
	  <date month="March" year="1995" />
	</front>
	<seriesInfo name="RFC" value="1766" />
      </reference>

      <reference anchor="ContentType" target="http://www.ietf.org/rfc/rfc2045.txt">
	<front>
	  <title>Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies</title>
	  <author initials="N." surname="Freed" fullname="Ned Freed">
	    <organization abbrev="Innosoft">Innosoft Internationl, Inc.</organization>
	    <address>
	      <postal>
		<street>1050 East Garvey Avenue South</street>
		<city>West Covina</city> <region>CA</region> <code>91790</code>
		<country>USA</country>
	      </postal>
	      <email>ned@innosoft.com</email>
	    </address>
	  </author>
	  <author initials="N." surname="Borenstein" fullname="Nathaniel S. Borenstein">
	    <organization abbrev="First Virtual">First Virtual Holdings</organization>
	    <address>
	      <postal>
		<street>25 Washington Avenue</street>
		<city>Morristown</city> <region>NJ</region> <code>07960</code>
		<country>USA</country>
	      </postal>
	      <email>nsb@nsb.fv.com</email>
	    </address>
	  </author>
	  <date month="November" year="1996" />
	</front>
	<seriesInfo name="RFC" value="2045" />
      </reference>

      <reference anchor="text/xml" target="http://www.ietf.org/rfc/rfc2376.txt">
	<front>
	  <title>XML Media Types</title>
	  <author initials="E." surname="Whitehead" fullname="E. James Whitehead, Jr.">
	    <organization abbrev="UC Irvine">University of California, Irvine</organization>
	    <address>
	      <postal>
		<street>Department of Information and Computer Science</street>
		<city>Irvine</city> <region>CA</region> <code>92697-3425</code>
		<country>USA</country>
	      </postal>
	      <email>ejw@ics.uci.edu</email>
	    </address>
	  </author>
	  <author initials="M." surname="Murata" fullname="Murata Makoto (Family Given)">
	    <organization abbrev="Fuji Xerox">Fuji Xerox Information Systems</organization>
	    <address>
	      <postal>
		<street>KSP 9A7, 2-1, Sakado 3-chome, Takatsu-ku</street>
		<city>Kawasaki-shi</city> <region>Kanagawa-ken</region> <code>213</code>
		<country>Japan</country>
	      </postal>
	      <email>murata@fxis.fujixerox.co.jp</email>
	    </address>
	  </author>
	  <date month="July" year="1998" />
	</front>
	<seriesInfo name="RFC" value="2376" />
      </reference>

      <reference anchor="SMPTE">
	<front>
	  <title>SMPTE STANDARD for Television, Audio and Film - Time and Control Code</title>
	  <author>
	    <organization abbrev="SMPTE"> The Society of Motion Picture and Television Engineers</organization>
	    <address>
	      <postal>
		<street>595 W. Hartsdale Ave.</street>
		<city>White Plains</city> <region>NY</region> <code>10607</code>
		<country>USA</country>
	      </postal>
	      <email>smpte@smpte.org</email>
	    </address>
	  </author>
	  <date month="September" year="1999" />
	</front>
	<seriesInfo name="ANSI" value="12M-1999" />
      </reference>

      <reference anchor="ISO8601">
	<front>
	  <title>Data elements and interchange formats -- Information interchange -- Representation of dates and times</title>
	  <author initials="TC154" surname="ISO" fullname="ISO - Technical Committee TC 154">
	    <organization abbrev="ISO"> International Organization for Standardization</organization>
	    <address>
	      <postal>
		<street>1 rue de Varembre</street>
		<street>Case Postale 56</street>
		<city>Geneva</city> <region>20</region> <code>1211</code>
		<country>CH</country>
	      </postal>
	      <email>central@iso.org</email>
	    </address>
	  </author>
	  <date month="" year="2000" />
	</front>
	<seriesInfo name="ISO" value="8601" />
      </reference>

      <reference anchor="timedURI" target="http://www.annodex.net/TR/URI_fragments.txt">
        <front>
	  <title>Specifying time intervals in URI queries and fragments of time-based Web resources (BCP) (work in progress)</title>
	  <author initials="S." surname="Pfeiffer" fullname="Silvia Pfeiffer">
	    <organization abbrev="CSIRO">Commonwealth Scientific and Industrial Research Organisation</organization>
	    <address>
	      <postal>
		<street>Locked Bag 17</street>
		<city>North Ryde</city> <region>NSW</region> <code>2113</code>
		<country>Australia</country>
	      </postal>
	      <phone>+ 61 2 9325 3100</phone>
	      <facsimile>+ 61 2 9325 3200</facsimile>
	      <email>Silvia.Pfeiffer@csiro.au</email>
	      <uri>http://www.annodex.net</uri>
	    </address>
	  </author>
	  <author initials="C." surname="Parker" fullname="Conrad D. Parker">
	    <organization abbrev="CSIRO">Commonwealth Scientific and Industrial Research Organisation</organization>
	    <address>
	      <postal>
		<street>Locked Bag 17</street>
		<city>North Ryde</city> <region>NSW</region> <code>2113</code>
		<country>Australia</country>
	      </postal>
	      <phone>+ 61 2 9325 3100</phone>
	      <facsimile>+ 61 2 9325 3200</facsimile>
	      <email>Conrad.Parker@csiro.au</email>
	      <uri>http://www.annodex.net</uri>
	    </address>
	  </author>
	  <author initials="A." surname="Pang" fullname="Andre T. Pang">
	    <organization abbrev="CSIRO">Commonwealth Scientific and Industrial Research Organisation</organization>
	    <address>
	      <postal>
		<street>Locked Bag 17</street>
		<city>North Ryde</city> <region>NSW</region> <code>2113</code>
		<country>Australia</country>
	      </postal>
	      <phone>+ 61 2 9325 3100</phone>
	      <facsimile>+ 61 2 9325 3200</facsimile>
	      <email>Andre.Pang@csiro.au</email>
	      <uri>http://www.annodex.net</uri>
	    </address>
	  </author>
	  <date month="December" year="2003" />
	</front>
	<seriesInfo name="I-D" value="draft-pfeiffer-temporal-fragments-02.txt" />
      </reference>

      <reference anchor="ANX" target="http://www.annodex.net/TR/cmml.txt">
        <front>
	  <title>The Annodex annotation and indexing format for time-continuous data files, Version 1.0 (work in progress)</title>
	  <author initials="S." surname="Pfeiffer" fullname="Silvia Pfeiffer">
	    <organization abbrev="CSIRO">Commonwealth Scientific and Industrial Research Organisation</organization>
	    <address>
	      <postal>
		<street>Locked Bag 17</street>
		<city>North Ryde</city> <region>NSW</region> <code>2113</code>
		<country>Australia</country>
	      </postal>
	      <phone>+ 61 2 9325 3100</phone>
	      <facsimile>+ 61 2 9325 3200</facsimile>
	      <email>Silvia.Pfeiffer@csiro.au</email>
	      <uri>http://www.annodex.net</uri>
	    </address>
	  </author>
	  <author initials="C." surname="Parker" fullname="Conrad D. Parker">
	    <organization abbrev="CSIRO">Commonwealth Scientific and Industrial Research Organisation</organization>
	    <address>
	      <postal>
		<street>Locked Bag 17</street>
		<city>North Ryde</city> <region>NSW</region> <code>2113</code>
		<country>Australia</country>
	      </postal>
	      <phone>+ 61 2 9325 3100</phone>
	      <facsimile>+ 61 2 9325 3200</facsimile>
	      <email>Conrad.Parker@csiro.au</email>
	      <uri>http://www.annodex.net</uri>
	    </address>
	  </author>
	  <author initials="A." surname="Pang" fullname="Andre T. Pang">
	    <organization abbrev="CSIRO">Commonwealth Scientific and Industrial Research Organisation</organization>
	    <address>
	      <postal>
		<street>Locked Bag 17</street>
		<city>North Ryde</city> <region>NSW</region> <code>2113</code>
		<country>Australia</country>
	      </postal>
	      <phone>+ 61 2 9325 3100</phone>
	      <facsimile>+ 61 2 9325 3200</facsimile>
	      <email>Andre.Pang@csiro.au</email>
	      <uri>http://www.annodex.net</uri>
	    </address>
	  </author>
	  <date month="December" year="2003" />
	</front>
	<seriesInfo name="I-D" value="draft-pfeiffer-annodex-01.txt" />
      </reference>

    </references>
    
    <!--**********-->
    <!-- CMML DTD -->
    <!--**********-->
    <section title="CMML DTD">
      
      <figure>
        <artwork><![CDATA[
<!--

   Continuous Media Markup Language CMML version 2.0 DTD
   Authoring language for ANNODEX(TM) media.

   Namespace = http://www.annodex.net/cmml

   Copyright (c) 2001 
   Commonwealth Scientific and Industrial Research Organisation
   (CSIRO), Australia.
   All Rights Reserved. 

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

   PUBLIC "-//CSIRO//DTD CMML 2.0//EN"
   SYSTEM "http://www.annodex.net/DTD/cmml_2_0.dtd"

   $Revision: 2.0 $
   $Date: 2003/12/06 24:00:00 $
-->

<!-- **************************** -->
<!-- Definition of Imported Names -->
<!-- **************************** -->

<!-- media type, as per [RFC2045] -->
<!ENTITY % ContentType "CDATA">
 
<!-- a Uniform Resource Identifier, see [RFC2396] -->
<!ENTITY % URI "CDATA">

<!-- a language code, as per [RFC1766] -->
<!ENTITY % LanguageCode "NMTOKEN">

<!-- internationalization attributes
  xml:lang    language code (as per XML 1.0 spec)
  dir          direction for weak/neutral text
-->
<!ENTITY % i18n
 "lang        %LanguageCode; #IMPLIED
  dir         (ltr|rtl)      #IMPLIED"
  >

<!-- timestamps similar to [RFC2326] 
 "smpte-24:" SMPTE time with a 24 fps basis
 "smpte-24-drop:" SMPTE time with a 24/1.001 fps basis
 "smpte-25:" SMPTE time with a 25 fps basis
 "smpte-30:" SMPTE time with a 30 fps basis
 "smpte-30-drop:" SMPTE time with a 30/1.001 fps basis
 "smpte-50:" SMPTE time with a 50 fps basis
 "smpte-60:" SMPTE time with a 60 fps basis
 "smpte-60-drop:" SMPTE time with a 60/1.001 fps basis
 "npt:" npt-time
 "clock:" utc-time

 Playbacktime is specified as a smpte-time 
 or npt-time only.

 UTCtime is specified as in [RFC2326], but
 without the "clock" identifier
-->
<!ENTITY % Timestamp    "CDATA">
<!ENTITY % Playbacktime "CDATA">
<!ENTITY % UTCtime      "CDATA">


<!-- **************************** -->
<!-- Document Structure           -->
<!-- **************************** -->

<!-- ROOT ELEMENT: -->
<!-- cmml tag containing sequence of head and a tags -->
<!-- =============================================== -->
<!-- i18n  = the default language for the whole document including
             the id tag of the cmml element -->
<!-- xmlns = namespace of the cmml tags -->
<!ELEMENT cmml (stream?, head, clip*)>
<!ATTLIST cmml
  %i18n;
  id          ID             #IMPLIED
  xmlns       %URI;          #FIXED 'http://www.annodex.net/cmml'
  >


<!-- **************************** -->
<!-- Definition of stream element -->
<!-- **************************** -->

<!-- STREAM tag providing timing information for the ANNODEX file -->
<!-- (will be stored in the binary headers of the ANX bitstreams) -->
<!-- ============================================================ -->
<!-- (has no text attributes and thus no i18n; id tag follows default 
      language specified in cmml tag) -->
<!-- timebase   = base time associated with the first frame of the media 
                  document from which subsequent time references (such as 
                  in clip tags) will be taken relative to -->
<!-- utc        = a mapping of the first frame to clock time; 
                  specifications of utc time offsets into the document as
                  in a URI will be taken relative to this -->
<!ELEMENT stream (import*)>
<!ATTLIST stream
  id          ID             #IMPLIED
  timebase    %Playbacktime; "0"
  utc         %UTCtime;      #IMPLIED
  >

<!-- IMPORT tag giving descriptions on an input bitstream (empty content) -->
<!-- ==================================================================== -->
<!-- i18n        = the language of the import tag's and the contained param
                   tags' attribute values -->
<!-- granulerate = the base temporal resolution of the bitstream (e.g.
                   its framerate for video or samplerate for audio) -->
<!-- contenttype = encoding format of the input document (a MIME type and
                   a character encoding separated by semicolon) -->
<!-- src         = URI to the media document -->
<!-- start       = the start time of the media bitstream specified
                   in src -->
<!-- end         = the end time of the media bitstream specified
                   in src -->
<!-- title       = human readable comment on the import bitstream -->
<!ELEMENT import (param*)>
<!ATTLIST import 
  %i18n;
  id          ID             #IMPLIED
  granulerate CDATA          #IMPLIED
  contenttype %ContentType;  #IMPLIED
  src         %URI;          #REQUIRED
  start       %Timestamp;    "0"
  end         %Timestamp;    #IMPLIED
  title       CDATA          #IMPLIED
  >

<!-- PARAM description tags of an input bitstream (empty content)   -->
<!-- (name-value pairs e.g. comments on recording quality or so)    -->
<!-- ============================================================== -->
<!-- (internationalisation inherited from the parent import tag)    -->
<!-- name  = identifies a property name; does not list legal values for this 
             attribute --> 
<!-- value = specifies a property's value; does not list legal values for 
               this attribute -->
<!ELEMENT param EMPTY>
<!ATTLIST param
  id          ID             #IMPLIED
  name        CDATA          #REQUIRED
  value       CDATA          #REQUIRED
  >


<!-- **************************** -->
<!-- Definition of document head  -->
<!-- **************************** -->

<!-- head tag containing description of a specific media document -->
<!-- ============================================================ -->
<!-- i18n    = the base language of the head's attribute values and text 
               content -->
<!-- profile = space-separated list of URIs to locate meta tag schemes -->
<!ELEMENT head (meta*,
                ((title, meta*, (base, meta*)?) |
		 (base, meta*, (title, meta*)?)))>
<!ATTLIST head
  %i18n;
  id          ID             #IMPLIED
  profile     %URI;          #IMPLIED
  >

<!-- TITLE tag giving descriptive title of the media document  -->
<!-- ========================================================= -->
<!-- i18n  = the language of the title text -->
<!ELEMENT title (#PCDATA)>
<!ATTLIST title 
  %i18n;
  id          ID             #IMPLIED
  >

<!-- BASE URI of the document (empty content) --> 
<!-- ======================================== -->
<!-- (internationalisation inherited from the parent head tag) -->
<!-- href = URI associated with the document; all relative URI references
            get interpreted relative to this base -->
<!ELEMENT base EMPTY>
<!ATTLIST base
  id          ID             #IMPLIED
  href        %URI;          #REQUIRED
  >

<!-- META description tags of the document (empty content) -->
<!-- ===================================================== -->
<!-- i18n    = the language of the meta attributes -->
<!-- name    = identifies a property name; does not list legal values for this 
               attribute --> 
<!-- content = specifies a property's value; does not list legal values for 
               this attribute -->
<!-- scheme  = names a scheme to be used to interpret the property's value 
               (see the profiles tag in the head element for locating these) -->
<!ELEMENT meta EMPTY>
<!ATTLIST meta
  %i18n;
  id          ID             #IMPLIED
  name        NMTOKEN        #IMPLIED
  content     CDATA          #REQUIRED
  scheme      CDATA          #IMPLIED
  >

<!-- ************************** -->
<!-- Definition of clip tags    -->
<!-- ************************** -->

<!-- Clip tag containing information for a specific fragment -->
<!-- ======================================================= -->
<!-- though meta, a, img and desc are given in specific order
     here, their order is acutally random -->
<!-- i18n     = the base language of the clip's attribute values and 
                of its content elements -->
<!-- id       = name of the clip used in URI clip references -->
<!-- track    = defines different sets of clip tags; clip tags of same 
                type cannot overlap temporally -->
<!-- start    = specifies the start time of the clip; specified in 
                time relative to the timebase of the header 
                [NOT INCLUDED IN ANNODEX DOCUMENT] -->
<!-- end      = specifies the end time of the clip; specified in 
                time relative to the timebase of the header 
                [NOT INCLUDED IN ANNODEX DOCUMENT] -->
<!ELEMENT clip (meta*, a?, img?, desc?)>
<!ATTLIST clip
  %i18n;
  id          ID             #IMPLIED
  track       CDATA          "default"
  start       %Timestamp;    #REQUIRED
  end         %Timestamp;    #IMPLIED
  >

<!-- A tag containing information for a specific clip -->
<!-- ================================================ -->
<!-- a tag contains anchor text being a textual description of the link 
     between the current element (the source anchor) and the destination
     anchor given by the href attribute -->
<!-- i18n     = language of the anchor's attribute values and anchor text -->
<!-- class    = overriding style sheet defaults for this instance -->
<!-- href     = specifies the location of a Web resource, thus defining a 
                link between the current element (the source anchor) and the 
                destination anchor given by this attribute -->
<!ELEMENT a (#PCDATA)>
<!ATTLIST a
  %i18n;
  id          ID             #IMPLIED
  class       CDATA          #IMPLIED
  href        %URI;          #REQUIRED
  >

<!-- IMG tag to include a representative image for the clip -->
<!-- ====================================================== -->
<!-- i18n = language of the image's attribute values        -->
<!-- src  = reference to the image                          -->
<!-- alt  = alternative text for the image (accessibility)  -->
<!ELEMENT img EMPTY>
<!ATTLIST img
  %i18n;
  id          ID             #IMPLIED
  src         %URI;          #REQUIRED
  alt         CDATA          #IMPLIED
  >

<!-- DESC human-readable, textual description of the clip (annotation) -->
<!-- ================================================================= -->
<!-- i18n = language of the data in the description -->
<!ELEMENT desc (#PCDATA)>
<!ATTLIST desc
  %i18n;
  id          ID             #IMPLIED
  >
	  ]]></artwork>
      </figure>

    </section>
    
    <!--*****************-->
    <!-- Sample document -->
    <!--*****************-->
    <section title="An example CMML document">

      <figure>
	<artwork><![CDATA[
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE cmml SYSTEM "cmml.dtd">

<cmml lang="en">

<stream timebase="0">
  <import contenttype="video/mpeg" src="fish.mpg" start="0"/>
</stream>

<head>
  <title>Types of fish</title>
  <meta name="Producer" content="Joe Ordinary"/>
  <meta name="DC.Author" content="Joe's friend"/>
</head>

<clip id="intro" start="0">
  <a href="http://www.blah.au/fish.html">Read more about fish</a>
  <desc>This is the introduction to the film Joe made about fish.</desc>
</clip>

<clip id="dolphin" start="npt:3.5" end="npt:5:5.9">
  <img src="dolphin.jpg"/>
  <desc>Here, Joe caught sight of a dolphin in the ocean.</desc>
  <meta name="Subject" content="dolphin"/>
</clip>

<clip id="goldfish" start="npt:5:5.9">
  <a href="http://www.blah.au/morefish.anx?id=goldfish">More video clips on goldfish.</a>
  <img src="http://www.blah.au/goldfish.jpg"/>
  <desc>Joe has a fishtank at home with many colourful fish. The common goldfish is one of them and Joe's favourite. Here are some fabulous pictures he has taken of them.</desc>
  <meta name="Location" content="Joe's fishtank"/>
  <meta name="Subject" content="goldfish"/>
</clip>

</cmml>

	    ]]></artwork>
	</figure>

    </section>

    <!--*************************-->
    <!-- Terms and abbreviations -->
    <!--*************************-->
    <section title="Definitions of terms and abbreviations">
      <t>
        <list style="hanging">
	  
          <t hangText="Mark-up:">XML tags and their content used to
          describe a document.</t>
	  
          <t hangText="Annotating:">The task of authoring mark-up for
          a document thus creating a Web resources.</t>
	  
          <t hangText="Hyperlinking:">The task of linking from one Web
          resource to another. When a link contains a fragment offset
          into a resource, this is called "deep hyperlinking".</t>
	  
          <t hangText="Clip:">A section of a time-continuous document
          covering some temporal interval.</t>
	  
          <t hangText="Indexing:">The task of identifying index points
          or clips for time-continuous documents.</t>
	  
          <t hangText="Annotation track:">A set of clips representing
          semantically correlated annotations of a time-continuous
          resource.</t>
	  
	  <t hangText="Annodex bitstream:">A specific file format for
	  storing annotation, hyperlinking, and indexing information
	  in annotation tracks and multiplexed together with the
	  time-continuous documents they describe.</t>

          <t hangText="Bitstream:">A sequence of data containing
          samples of a time-continous document.</t>

	  <t hangText="Time-continuous document:">A file containing
	  time-sampled data in a temporally sequential manner.</t>
	  
        </list>
      </t>
    </section>
    
    
    <!--**********-->
    <!-- Acronyms -->
    <!--**********-->
    <section title="Glossary of acronyms">
      <t>
        <list style="hanging">
	  
	  <t hangText="Annodex:">Annotated and indexed bitstream format.</t>

          <t hangText="CMML:">Continuous Media Markup Language.</t>

          <t hangText="DTD:">Document Type Declaration.</t>
	  
          <t hangText="XML:">eXtensible Markup Language.</t>
	  
          <t hangText="Web:">World Wide Web.</t>
	  
          <t hangText="URI:">Unified Resource Identifier.</t>
	  
        </list>
      </t>
    </section>
    
    <!--*************************-->
    <!-- IPR and TM -->
    <!--*************************-->
<!--
    <section title="Intellectual Property Rights and the Annodex(TM) Trademark">

      <t>The specifications for the CMML and for the Annodex file
      format are published openly as the aim is to enable
      interoperability of applications that follow the CMML and the
      Annodex specifications, especially in the context of the
      Internet. CSIRO has registered a trade mark on the word
      "Annodex" to protect the name from being used for technology
      that is not interoperable with these specifications. We
      encourage all conformant implementations of the technology to
      use the word "Annodex" freely when talking about the file
      format.</t>

    </section>	
-->

    <!--******************-->
    <!-- Acknowledgements -->
    <!--******************-->
    <section title="Acknowledgements">
      <t>The authors greatly acknowledge the contributions of Zentaro
      Kavanagh, Andrew Nesbit and Simon Lai in developing this 
      specification.
      </t>
    </section>
    
    
  </back>
</rfc>