|
|
|
|
CMIL 0.9Specification March 10 2000
Copyright © 2000 Oacea, Rick Dietz, All Rights Reserved. These usage guidelines apply to your use of specified public material from this site. Questions, comments or suggestion can be addressed to Rick Dietz, rick@oacea.com Table of Contents
About this SpecificationCMIL is Contextual Media Integration Language. This specification details the syntax and semantics of CMIL version 0.9. The elements and attributes which constitute CMIL are presented in the following format:
CMIL uses a number of elements familiar to authors of HyperText Markup Language (HTML) and Synchonized Multimedia Integration Language (SMIL) documents. This was done to leverage the intellectual fruit of existing standard internet languages, maximize the interoperability of CMIL with such languages and make the coding of CMIL as simple, familiar and intuitive to internet media authors as possible. Readers are alerted to the use of constructs from these World Wide Web Consortium (W3C) languages as well as other sources of external material where appropriate in this specification. CMIL OverviewContextual Media Integration Language (CMIL) is an XML-derived tag language used to describe the relationships between digital multimedia files and contextual information so that they may be presented to users via a CMIL "browser". CMIL media objects (called nodes) may have an unlimited number of metadata properties (called attributes), some of which may be spatial like an associated geophysical position in lattitude, longitude and altitude. Others may be linear like time or temperature or categorical like a system state or a discrete name. Categorical values may be clustered. CMIL StructureIntroduction to CMIL StructureA CMIL 0.9 document is composed of three section:
The HEAD and BODY elements must be direct child elements of the document root CMIL element. A simple CMIL document follows:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cmil SYSTEM
"http://www.oacea.com/cmil/cmil-0.9.dtd">
<cmil>
<head>
<title>Simple CMIL Document</title>
</head>
<body>
<node>
<attributes></attributes>
<media>
<text>Simple CMIL node</text>
</media>
</node>
</body>
</cmil>
CMIL Version InformationA valid CMIL document declares the version of its Document Type Definition (DTD). The DTD described here is version 0.9. For documents that use this DTD, use this document type declaration below: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE cmil SYSTEM "http://www.oacea.com/cmil/cmil-0.9.dtd"> cmil
<!--=========== CMIL element =========================================-->
<!ELEMENT cmil (head,body) >
<!ATTLIST cmil
id ID #IMPLIED >
CMIL is the root element of all cmil documents. All elements in a CMIL document are contained within a single CMIL element placed below the document's document type declaration as seen in this example: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE cmil PUBLIC "-//oacea//DTD CMIL0.9//EN" "http://www.oacea.com/cmil/cmil-0.9.dtd"> <cmil> ...head, body and other elements... </cmil> Document Headhead
<!--=========== HEAD element =========================================-->
<!ENTITY % head.misc "(script|noscript|style|meta|link|prox|attributes)*">
<!-- The content model of the head element is %head.misc; with a
title and an optional base element in any order -->
<!ELEMENT head (%head.misc;,((title,%head.misc;,(base,%head.misc;)?)
| (base, %head.misc;,(title,%head.misc;)))) >
<!ATTLIST head
id ID #IMPLIED >
The HEAD element contains information such as the document title and meta-information about the document such its CMIL attributes, the author, a description and keywords. Note: The content model for the HEAD element
could probably be improved. It is currently a bit awkward, but
seems to work.
title<!--=========== TITLE element ========================================--> <!ELEMENT title (#PCDATA) > The TITLE element contains the title of the CMIL document. This element is required. Below is an example: <title>CMIL 0.9 Specification</title> script<!--=========== SCRIPT element =======================================--> Scripting language container. May include CDATA sections--> <!ELEMENT script (#PCDATA) > CMIL supports the inclusion of programs in CMIL code through client-side scripts. Scripts may be written to dynamically display document content, provide interactivity and process information. Scripts within SCRIPT elements are run as the document loads. Programs may be run in response to system state changes and user interaction using intrinsic events like those defined in the W3C's HTML4 specification. The intrinsic events supprted by HTML4 are: onload, onunload, onclick, ondblclic,
onmousedown, onmouseup, onmouseover, onmousemove, onmouseout,
onfocus, onblur, onkeypress, onkeydown, onkeyup,onsubmit, onreset,
onselect and onchange.Note: Intrinsic events in support of CMIL will
differ from those currently listed here due to differences between
the visualization and interaction paradigms of HTML and CMIL.
Note: Intrinsic events have not yet been added as
attributes to hyperlinking and container elements.
Note: SCRIPT currently only resides in the
document HEAD but should be allowed throughout the body as
well.
noscript
<!--=========== NOSCRIPT element =====================================-->
<!ELEMENT noscript ANY >
<!ATTLIST noscript
id ID #IMPLIED >
The NOSCRIPT element offers alternative content to user agents incapable of executing scripts or those configured by user preference to ignore them. Note: The content model of NOSCRIPT is currently
formless.
Note: NOSCRIPT currently only resides in the
document HEAD but should be allowed throughout the body as
well.
style
<!--=========== STYLE element ========================================
CSS/XSL Style information. May include CDATA sections-->
<!ELEMENT style (#PCDATA) >
<!ATTLIST style
type CDATA #REQUIRED
media CDATA #IMPLIED
title CDATA #IMPLIED >
The STYLE element is a container for XSL, eXtensible Style Language information. CMIL container (BODY, GROUP, NODE) and media elements should make use of XSL to specify their formatting and appearance. This information may be contained with the STYLE element or held in a linked external resource specified by the LINK element. The requirements of a style language for spatial media is quite different from those designed for the presentation of traditional hypertexts. Spacing, display size, animation and interaction constraints, must all be considered. Note: As of yet, no formal specification has been
developed for the style language companion to CMIL which will be
called CMSL, Contextual Media
Style Language.
container elementsbody
<!--=========== BODY element =========================================-->
<!ELEMENT body (%container-elements;)* >
<!ATTLIST body
id ID #IMPLIED
class CDATA #IMPLIED
style CDATA #IMPLIED
bgcolor CDATA #IMPLIED
mgcolor CDATA #IMPLIED
fgcolor CDATA #IMPLIED
bgimage CDATA #IMPLIED
nwcoord CDATA #IMPLIED
secoord CDATA #IMPLIED
bgaudio CDATA #IMPLIED >
The BODY element contains all of a ducument's content. Note: Appearance related attributes will be
deprecated from the BODY element at which time they may only be
specified by the STYLE element, the BODY element's style attribute
or by a linked XSL style document (when CMSL has been further
refined.)
group
<!--=========== GROUP element ========================================-->
<!ELEMENT group (%container-elements;)* >
<!ATTLIST group
id ID #IMPLIED
title CDATA #IMPLIED
desc CDATA #IMPLIED
abstract CDATA #IMPLIED
class CDATA #IMPLIED
creator CDATA #IMPLIED
rights CDATA #IMPLIED
style CDATA #IMPLIED
system-bitrate CDATA #IMPLIED
system-gps-error CDATA #IMPLIED
system-language CDATA #IMPLIED
system-modality CDATA #IMPLIED
system-required NMTOKEN #IMPLIED
system-screen-size CDATA #IMPLIED
system-screen-depth CDATA #IMPLIED
system-captions (on | off) #IMPLIED
system-overdub-or-caption (caption | overdub) #IMPLIED >
The GROUP element is a generic container element which aggregates CMIL container elements. GROUP element presentation or lack thereof may be specified using XSL style information. An example grouping is presented below:
<group class="three-d-enclosure" id="group01">
<node id="node01">
...node attributes and media...
</node>
<node id="node02">
...node attributes and media...
</node>
<node id="node03">
...node attributes and media...
</node>
</node>
in addition, GROUP elements may be nested to an arbitrary depth:
<group>
<group>
<group>
</group>
</group>
</group>
node
<!--========== NODE element ==========================================-->
<!ELEMENT node ((attributes,media) | (media,attributes)) >
<!ATTLIST node
orient-method CDATA #IMPLIED
orient-value CDATA #IMPLIED
position-method CDATA #IMPLIED
position-value CDATA #IMPLIED
id ID #IMPLIED
title CDATA #IMPLIED
desc CDATA #IMPLIED
abstract CDATA #IMPLIED
class CDATA #IMPLIED
creator CDATA #IMPLIED
rights CDATA #IMPLIED
style CDATA #IMPLIED
system-bitrate CDATA #IMPLIED
system-gps-error CDATA #IMPLIED
system-language CDATA #IMPLIED
system-modality CDATA #IMPLIED
system-required NMTOKEN #IMPLIED
system-screen-size CDATA #IMPLIED
system-screen-depth CDATA #IMPLIED
system-captions (on | off) #IMPLIED
system-overdub-or-caption (caption | overdub) #IMPLIED >
The NODE element is the kernel of contextual media, uniting digital media and attributes in one conceptual unit. An example CMIL node is presented here:
<node class="circle" id="node03" title="A walk in the park" >
<attributes>
<loc coords="39.169,-86.536,766.7260" datum="WGS 84"/>
<orient bearing="ne"/>
<time begin="19990612T102200"/><
<att name="temperature" content="82" metric="fahrenheit"/>
</attributes>
<media>
<image src="media/images/sycamore.png"/>
<audio src="media/audio/birdsong.aiff"/>
<text src="media/text/desc.txt"/>
</media>
</node>
The presentation of NODE elements by user agents may be specified using style information. media
<!--=========== MEDIA element ========================================-->
<!ELEMENT media (animation | audio | image | model | ref | speech | text |
textstream | vector | video | www)* >
<!ATTLIST media
id ID #IMPLIED
title CDATA #IMPLIED
desc CDATA #IMPLIED >
The MEDIA element is a container for media object elements.
<media>
<image src="media/images/down.png"/>
<audio src="media/audio/strange.aiff"/>
<text src="media/text/bottom.txt"/>
</media>
media object elements
<!ELEMENT image (anchor?) >
<!ATTLIST image
region IDREF #IMPLIED
alt CDATA #IMPLIED
src CDATA #IMPLIED
type CDATA #IMPLIED
dur CDATA #IMPLIED
repeat CDATA "1"
id ID #IMPLIED
title CDATA #IMPLIED
desc CDATA #IMPLIED
abstract CDATA #IMPLIED
class CDATA #IMPLIED
creator CDATA #IMPLIED
rights CDATA #IMPLIED
style CDATA #IMPLIED
system-bitrate CDATA #IMPLIED
system-gps-error CDATA #IMPLIED
system-language CDATA #IMPLIED
system-modality CDATA #IMPLIED
system-required NMTOKEN #IMPLIED
system-screen-size CDATA #IMPLIED
system-screen-depth CDATA #IMPLIED
system-captions (on | off) #IMPLIED
system-overdub-or-caption (caption | overdub) #IMPLIED >
The media object elements -- ANIMATION, AUDIO, IMAGE, MODEL, REF, SPEECH, TEXT, TEXTSTREAM, VECTOR, VIDEO and WWW -- link to internet media resources. They are valid as direct child elements of a MEDIA element. The media object elements specify all forms of media valid for display by a CMIL user agent. One such media object element for bitmap images is presented below. <image src="http://www.oacea.com/spongebob_squarepants.png"/> TEXT and WWW elements may alternatively contain plaintext or HTML markup using the XML namespace syntax respectively. No other media object elements may have end tags. An empty TEXT element: <text src="http://www.oacea.com/text.txt"/> TEXT element with parent syntax containing character data: <text>...some inline text...</text> WWW as an empty element: <www src="http://www.oacea.com/index.html"/> WWW with child elements adhering to the HTML4.0 namespace syntax:
<www xmlns:html="http://www.w3.org/TR/REC-html40">
<html:html>
<html:head>
<html:title>Here Come the Power Puff Girls!!!</html:title>
... other head elements...
</html:head>
<html:body>
... document body...
</html:body>
</html:html>
</www>
Note: The use of the HTML namespace in the WWW
element is not yet supported by the CMIL 0.9 DTD.
Note: SMIL and SVG should be supported as well.
Note: Attributes of media oject elements need to
be made specific to the individual media object element. At present
attributes are uniform across the set.
content selectionselection parameterssystem-bitrate CDATA #IMPLIED system-gps-error CDATA #IMPLIED system-language CDATA #IMPLIED system-modality CDATA #IMPLIED system-required NMTOKEN #IMPLIED system-screen-size CDATA #IMPLIED system-screen-depth CDATA #IMPLIED system-captions (on|off) #IMPLIED system-overdub-or-caption (caption|overdub) #IMPLIED CMIL defines a number of selection parameters for use in selective content negociation within SIFT and SWITCH elements. These parameters may be used in any CMIL media or container element. Selection parameters resolve to either "true" or "false" based on system settings and user preferences. Within the SIFT element, any child element in which any selection parameter resolves to "false" is ignored. All those in which all selection parameters evaluate to "true" are selected. Zero to all enclosed elements may be selected and returned. Within the SWITCH element, any child element in which any selection parameters resolve to "false" is ignored. The first child element in which all selection parameters evaluate to "true" is selected. Only one child element may be selected. If all resolve to "false", the last element is selected by default. A description of the selection parameter values defined in CMIL 1.0 can be found in the W3C SMIL 1.0 Specification. The following additional selection parameters are defined in CMIL 0.9:
Note: Additional selection parameter attributes
may be forthcoming in support of CMIL funtionality or if support
for additional user preferences seems warranted.
sift
<!--=========== SIFT element =======================================-->
<!ELEMENT sift (group | node | a | sift | switch | locator | tag)* >
<!ATTLIST sift
id ID #IMPLIED
title CDATA #IMPLIED
desc CDATA #IMPLIED
system-bitrate CDATA #IMPLIED
system-gps-error CDATA #IMPLIED
system-language CDATA #IMPLIED
system-modality CDATA #IMPLIED
system-required NMTOKEN #IMPLIED
system-screen-size CDATA #IMPLIED
system-screen-depth CDATA #IMPLIED
system-captions (on | off) #IMPLIED
system-overdub-or-caption (caption | overdub) #IMPLIED >
The purpose of the sift element is to allow for inclusive content negociation among media or container elements in CMIL documents based on system settings or user preferences. Both the sift and switch elements are content selection elements The sift element may hold a number of child elements, of which any number (including zero) may be selected by the CMIL browser. The child elements are evaluated by the parser which examines the switch-parameter attributes of each child element. Any element in which all of the switch parameters of the element evaluate to "true" is selected. In the following example, the CMIL viewer is configured for french display, resulting in the latter three image elements being selected. If the viewer is configured for neither french nor english, no elements are selected and returned. <sift> <image src="http://www.oacea.com/blossom.png" system-language="en"/> <image src="http://www.oacea.com/bubbles.png" system-language="en"/> <image src="http://www.oacea.com/buttercup.png" system-language="en"/> <image src="http://www.oacea.com/blossom_fr.png" system-language="fr"/> <image src="http://www.oacea.com/bubbles_fr.png" system-language="fr"/> <image src="http://www.oacea.com/buttercup_fr.png" system-language="fr"/> </sift> switch
<!--=========== SWITCH element =======================================-->
<!ELEMENT switch (group | node | a | sift | switch | locator | tag)* >
<!ATTLIST switch
id ID #IMPLIED
title CDATA #IMPLIED
desc CDATA #IMPLIED
system-bitrate CDATA #IMPLIED
system-gps-error CDATA #IMPLIED
system-language CDATA #IMPLIED
system-modality CDATA #IMPLIED
system-required NMTOKEN #IMPLIED
system-screen-size CDATA #IMPLIED
system-screen-depth CDATA #IMPLIED
system-captions (on | off) #IMPLIED
system-overdub-or-caption (caption | overdub) #IMPLIED >
The purpose of the switch element is to allow for mutially exclusive content negociation between alternative media or container elements in CMIL documents based on system settings or user preferences. The switch syntax is borrowed largely intact from the W3C's Synchronized Multimedia Integration Language 1.0 Recommendation. The switch element may hold a number of child elements, of which only one may be selected by the CMIL browser. The child elements are evaluated in descending order with the parser evaluating the switch-parameter attributes of the child element. The first element in which all of the switch parameters of the element evaluate to "true" is selected. In the following example, the CMIL viewer is configured for french(fr) display, the second image entity is selected. If the viewer is configured for neither french nor english(en), the last element is selected by default. <switch title="logo"> <image src="english.png" system-language="en"/> <image src="french.png" system-language="fr"/> <image src="esperonto.png" system-language="en,fr"/> </switch> Meta DataMetadata is information that describes another information resource. Metadata in CMIL documents comes in two forms -- document metadata and contextual metadata. Document metadata such as the author or a content description is specified by the META element and contextual metadata is held by the ATTRIBUTES element. meta
<!--=========== META element =========================================-->
<!ELEMENT meta EMPTY >
<!ATTLIST meta
name CDATA #REQUIRED
content CDATA #REQUIRED >
The META element functions is a property-value pair for specifying metadata such as a document's "author", a "description" and "keywords". In the follwing example, the property is "author" and its value is set to "Rick Dietz" <meta name="author" content="Rick Dietz"/> A sample of META elements in use: <head> <title>Ren and Stimpy</title> <meta name="author" content="John Kay"> <meta name="copyright" content="© 1900 Acme Corp."> <meta name="keywords" content="cartoons, antics, shenanigans"> </head> Note: There is no specific set of metadata
attributes declared legal for CMIL. Care should be taken however to
use types of metadata such as those common to HTML authors and the
Core Element Set offered by the Dublin Core Metadata
Initiative.
attributes
<!--=========== ATTRIBUTES element ===================================-->
<!ELEMENT attributes (att | a | channel | coverage | loc | orient | time)* >
<!--Any number of att elements may exist at the same level, providing
each is unique.-->
<!ATTLIST attributes
id ID #IMPLIED
title CDATA #IMPLIED
desc CDATA #IMPLIED >
The ATTRIBUTES element is a container for contextual metadata. The ATTRIBUTES element may be present in the head or the body of a CMIL document. The ATTRIBUTES element holds contextual metadata that, when in the document head, refers to the document itself and within the document body, describe contextual metadata associated with CMIL nodes. head attributesWhen present in the head of a CMIL document, the ATTRIBUTES element allows authors to define document level attributes such as it's spatial coverage, a content channel, a valid timeslice, as well as define the parameters of attributes to be used within nodes in the body of the document. There are a few predefined attributes which the ATTRIBUTES element may hold; They are the A, ATT, CHANNEL, COVERAGE, LOC, ORIENT and TIME elements. A and ATT are special cases: A is a hyperlinking element and ATT allows CMIL authors to create user defined attributes which describe a particular form of contextual metadata. Below is an example of the ATTRIBUTES element used in the document head:
<head>
<title>Simple CMIL Document</title>
<attributes>
<channel name="sphere" radius="10"/>
<coverage shape="sphere" radius="10"/>
<loc coords="39.169,-86.536,766.7260" datum="WGS 84"/>
</attributes>
</head>
The A element is not legal as a child element when ATTRIBUTES is in the document head. Note: The main goal for allowing an ATTRIBUTES
element in the head and body is to communicate that CMIL documents
themselves can be considered first order objects in their own right
alongside the nodes they contain.
Note: In the document head, the META element and
ATTRIBUTES element overlap conceptually with META housing document
metadata and ATTRIBUTES specifying contextual metadata.
body attributesWithin the document body, ATTRIBUTES elements specify the values of contextual metadata associated with NODE elements. These values may be specified within the NODE element itself or inherited from GROUP or BODY elements. Below is an example of the ATTRIBUTES element directly assigning values to the contextual metadata of a CMIL node.
<node class="circle" id="node03" title="Bake Sale" >
<attributes>
<a href="http://www.oacea.com/index.html"/>
<loc coords="39.169,-86.536,766.7260" datum="WGS 84"/>
<orient bearing="ne"/>
<time begin="19990612T102200"/>
<att name="temperature" content="82" metric="fahrenheit"/>
</attributes>
<media>
...media content...
</media>
</node>
The presence of the A element as a node attribute indicates that node can considered an anchor for a hyperlink, with the hyperlink existing as an attribute of that node. The hyperlink destination is specified by the href attribute of the anchor or within child LOCATOR elements. attribute inheritanceA node may inherit values for its contextual metadata from parent GROUP elements or the BODY element. Values assigned by parent elements may also be overridden if specified at a more proximal level to the NODE element itself. Below we find a CMIL node which both inherits and overrides contextual metadata values from parent GROUP and BODY elements.
<body >
<attributes>
<a href="http://www.superfriends.com/index.html"/>
<orient bearing="ne"/>
</attributes>
<group>
<attributes>
<loc coords="39.169,-86.536,766.7260" datum="WGS 84"/>
<orient bearing="sw"/>
<time begin="19990612T102200"/>
</attributes>
<node class="circle" id="node03" title="Bake Sale" >
<attributes>
<time begin="20000224T140800"/>
<att name="temperature" content="82" metric="fahrenheit"/>
</attributes>
<media>
...media content...
</media>
</node>
</group>
</body>
The contextual metadata values for this particular node resolve to..
att
<!--=========== ATT element ==========================================-->
<!ELEMENT att EMPTY >
<!ATTLIST att
name CDATA #REQUIRED
content CDATA #REQUIRED
metric CDATA #IMPLIED
id ID #IMPLIED
title CDATA #IMPLIED
desc CDATA #IMPLIED >
The ATT element allows CMIL authors to define their own attributes to associate with CMIL documents of nodes, allowing authors the freedom to move beyond the attributes formalized in the CMIL DTD. The ATT element consists of a property-value pair in which an user-defined attribute is named and assigned a value. Additional information may be supplied about this attribute such as a metric unit and a description. The ATT element supports dynamic attributes by allowing ATT element's value to be resolved from a linked external resources or an internal script program using the fragment identifier(#). An example follows: <att name="temperature" href="http://www.temp.org/cgi-bin/temp.pl" metric="celcius"/> Note: Active attributes should also be able to
execute HTML namespace FORM elements using the fragment
identifier.
Note: A generic replacement for form-type
functionality accessible through intrinsic events should be
developed instead of importing the HTML form syntax.
channel
<!--=========== CHANNEL element ======================================-->
<!ELEMENT channel EMPTY >
<!ATTLIST channel
name CDATA #IMPLIED
id ID #IMPLIED
title CDATA #IMPLIED
desc CDATA #IMPLIED >
The CHANNEL element provides a way in which authors can specify a content description/affiliation of a given document's material. Note: It may be better to adopt something along
the lines of that proposed in the W3C Platform for Internet Content Selection
(PICS) recommendation for this purpose if this is to be pursued
further.
coverage
<!--=========== COVERAGE element =====================================-->
<!ELEMENT coverage EMPTY >
<!ATTLIST coverage
shape (cone | cylinder | sphere) "sphere"
radius CDATA #IMPLIED
height CDATA #IMPLIED >
The COVERAGE element specifies a domain in physical space where a document and its contents are valid to be displayed by user agents. If not so constrained, the document is universally available. loc
<!--=========== LOC element ==========================================-->
<!ELEMENT loc EMPTY >
<!ATTLIST loc
datum CDATA #IMPLIED
coords CDATA #REQUIRED
mode (reltobase | reltoviewer | absolute) "absolute"
id ID #IMPLIED
title CDATA #IMPLIED
desc CDATA #IMPLIED >
Provides location for documents and media elements (nodes). The value of the "coords" attribute is a standard geodetic coordinate in the ISO format for latitude, longitude and altitude ISO 6709:1983 in the form of a comma delimited string. Note: the "datum" value should probably not require
defaults as new ones will probably come about and there a great many to
begin with.
"coords" values have the following syntax:
Decimal degrees minutes and secounds may be extended to the desired accuracy. Latitude must be prefixed with "+" north of and on equator, and with "-" south of equator.
Decimal degrees minutes and secounds may be extended to the desired accuracy. Longitude must be prefixed with "+" east of and on prime meridian (Greenwich), and with "-" west of Greenwich up to the 180th meridian. Leading zeros are required for latitude and longitude.
Decimal meters may be extended to the desired accuracy. Altitude is represented in meters and must be prefixed with "+" above and on the geodetic reference datum and with "-" below it). Here are a few examples... "+401213.1,-0750015.1,+2.79" "+40.20361,-075.00417,-3.31" Note: Although Lattitude,Longitude and Altitude
are presented here, user agents should be prepared to process
coordinates from other geodetic datum.
orient
<!--=========== ORIENT element =======================================-->
<!ELEMENT orient EMPTY >
<!ATTLIST orient
bearing (N | NNE | NE | ENE | E | ESE | SE | SSE | S | SSW | SW |
WSW | W | WNW | NW | NNW | CDATA) #REQUIRED
incline CDATA #IMPLIED
mode (reltobase | reltoviewer | absolute) "absolute"
id ID #IMPLIED
title CDATA #IMPLIED
desc CDATA #IMPLIED >
Provides cardinal orientation and inclination of media elements. time
<!--=========== TIME element =========================================-->
<!ELEMENT time EMPTY >
<!ATTLIST time
time CDATA #IMPLIED
begin CDATA #IMPLIED
end CDATA #IMPLIED
timezone CDATA #IMPLIED
id ID #IMPLIED
title CDATA #IMPLIED
desc CDATA #IMPLIED >
Provides temporal context for media elements. A date in a subset of ISO 8601 format, with optional time and no optional zone. Fractional seconds may be as precise as nanoseconds. 2088-04-07T18:39:09 A date in a subset ISO 8601 format sans punctuation. 19990612T102200 For a list of acceptible timezone values go here. Linking elementsCMIL specifies a family of hyperlink elements which make a range of hyperlinking behavior possible. CMIL supports name fragment identifiers via the '#' connector for linking to internal document resources. A hyperlink within a CMIL document may link to an internal resource or an object of a separate document as seen here: <a href="http://www.spubadu.org/testdoc.cmil#object1"> Conditions for using the fragment identifier follow:
Note: The dynamics of user interaction within a
metaspace environment remain to be fully explored. In particular,
communicating the presence of hyperlinks and making hyperlinking as
intuitive as possible need attention.
base
<!--=========== BASE element =========================================-->
<!ELEMENT base (att | a | loc | orient | time)* >
<!ATTLIST base
href CDATA #IMPLIED
loc CDATA #IMPLIED
time CDATA #IMPLIED
orient CDATA #IMPLIED
height CDATA #IMPLIED
radius CDATA #IMPLIED
datum (lla | utm | ecef) "lla"
timezone CDATA #IMPLIED
shape (cone | cylinder | sphere) "sphere" >
The BASE element specifies the root address for relative URI's within a document. Any relative addresses are resolved into a full URI by appending the relative address to the prefix specified by the BASE element. For example, the following BASE and A elements <base href="http://www.genericorp.com/people/"/> <a href="../products/catalog.cmil."/> http://www.genericorp.com/products/catalog.cmil Note: At the moment the BASE element may specify base
values for relative location, time and orientation attributes
throughout the document. Due to the number of attributes needed for
base to serve in this capacity, child elements may also be used
instead of analogous attributes. This duplication needs to be
resolved as soon as possible or completely removed. Some other
method might be preferrable to having the BASE element serve so
broadly. The real issue is how to specify base values for any of
the contextual metadata forms in the document including those
defined by authors.
link
<!--=========== LINK element =========================================-->
<!ELEMENT link EMPTY >
<!ATTLIST link
id ID #IMPLIED
title CDATA #IMPLIED
desc CDATA #IMPLIED
abstract CDATA #IMPLIED
class CDATA #IMPLIED
creator CDATA #IMPLIED
rights CDATA #IMPLIED
style CDATA #IMPLIED
charset CDATA #IMPLIED
href CDATA #IMPLIED
hreflang CDATA #IMPLIED
type CDATA #IMPLIED
rel CDATA #IMPLIED
rev CDATA #IMPLIED
media CDATA #IMPLIED >
The LINK element is used to specify the relationship of various forms of resources with a given document. the LINK element may only appear in the head of a CMIL document. The primary uses of the LINK element in cmil are... 1. To associate style information from an external resource within the document <link rel="stylesheet" href="freakystyley.css" type="text/css"> 2. To place the document within a framework of others, specifying the next or previous document in a series, for example. <link rel="next" href="next_scene.cmil"> <link rev="prev" href="previous_scene.cmil"> 3. To make known the availability of different versions of a given document, perhaps translated or in an alternate media format. Links to external related resources such as "previous" and "next" documents or alternative versions should be made accessible to users in some fashion through the user agent GUI. a
<!--=========== A element ============================================-->
<!ELEMENT a (locator | sift | switch | group | node)* >
<!ATTLIST a
id ID #IMPLIED
title CDATA #IMPLIED
href CDATA #REQUIRED
actuate (auto | user) "user"
show (present | replace | transform) "present"
class CDATA #IMPLIED
style CDATA #IMPLIED
system-bitrate CDATA #IMPLIED
system-gps-error CDATA #IMPLIED
system-language CDATA #IMPLIED
system-modality CDATA #IMPLIED
system-required NMTOKEN #IMPLIED
system-screen-size CDATA #IMPLIED
system-screen-depth CDATA #IMPLIED
system-captions (on | off) #IMPLIED
system-overdub-or-caption (caption | overdub) #IMPLIED >
The A element supports inline linking behavior in a similar fashion as the HTML A element. The A element in CMIL, however, supports extended linking in which a single hyperlinking element may have multiple destinations. Extended hyperlinks contain a number of LOCATOR elements as child elements. Any A element is valid as an attribute of a CMIL NODE element or may encapsulate other container elements. Several example follow... 1) A hyperlink encapsulating a simple node.
<a href="http://www.oacea.com/index.cmil">
<node>
...attributes and media...
</node>
</a>
2) An extended (multi-destination) hyperlink encapsulating a simple node.
<a>
<locator href="http://www.oacea.com">
<locator href="http://www.oacea.com/CMIL">
<node>
...attributes and media...
</node>
</a>
3) In CMIL, the A element may serve as an attribute of a node, making the node itself a hyperlink anchor. The node below contains a simple hyperlink as an attribute.
<node class="circle" id="node03" title="Bake Sale" >
<attributes>
<a href="http://www.oacea.com/index.html"/>
<att name="temperature" content="82"/>
</attributes>
<media>
...media content...
</media>
</node>
Note: An effort should be made to creating a
workable model for multi-directional linking.
anchor
<!--=========== Associated Link element ==============================-->
<!ELEMENT anchor (locator | sift | switch)* >
<!ATTLIST anchor
id ID #IMPLIED
title CDATA #IMPLIED
href CDATA #REQUIRED
actuate (auto | user) "user"
show (present | replace | transform) "present"
begin CDATA #IMPLIED
end CDATA #IMPLIED
coords CDATA #IMPLIED >
The ANCHOR element serves as a formalized, more flexible analog of the HTML client-side image map. In HTML, an image map allows behaviors to be asigned to descrete regions of a digital image. The anchor element allows this form of spatial linking in addition to temporal linking in linear forms of media like digital video. Temporal linking is accomplished by specifying the beginning and end points in which a given link my be traversed. Anchor is borrowed from the W3C SMIL 1.0 recommendation. See the SMIL 1.0 ANCHOR element description for additional information. Examples 1) Two links associated with spatial regions of an image. The example below details an image element divided into areas which contain associated links. <image src="http://www.oacea.com/image.png"> <anchor href="http://www.oacea.com" coords="0%,0%,33%,33%"/> <anchor href="http://www.oacea.com/CMIL" coords="66%,66%,100%,100%"/> </image> 2) Two links associated with temporal slices of a video. The example below details a video element divided into separate time slices which traverse associated links. <video src="http://www.oacea.com/video.mov"> <anchor href="http://www.oacea.com" begin="0s" end="7s"/> <anchor href="http://www.oacea.com/CMIL" begin="14s" end="21s"/> </video> 3) In CMIL, the areas and intervals may overlap one another and allow a singular point or time to actuate multiple anchors. In the example below both anchors overlap and may be traversed by clicking the center of the image. <image src="http://www.oacea.com/image.png"> <anchor href="http://www.oacea.com" coords="0%,0%,66%,66%"/> <anchor href="http://www.oacea.com/CMIL" coords="33%,33%,100%,100%"/> </image> 4) In CMIL, the ANCHOR element (like the A element) may specify multiple link destinations. These destinations are described by LOCATOR elements held within the ANCHOR element as child elements, shown below.
<video src="http://www.oacea.com/video.mov">
<anchor begin="0s" end="7s">
<locator href="http://www.oacea.com">
<locator href="http://www.oacea.com/CMIL">
</anchor>
</video>
locator
<!--=========== LOCATOR element ======================================-->
<!ELEMENT locator EMPTY >
<!ATTLIST locator
id ID #IMPLIED
title CDATA #IMPLIED
href CDATA #REQUIRED
actuate (auto | user) "user"
show (present | replace | transform) "present"
role CDATA #IMPLIED
class CDATA #IMPLIED
style CDATA #IMPLIED
begin CDATA #IMPLIED
end CDATA #IMPLIED
coords CDATA #IMPLIED
system-bitrate CDATA #IMPLIED
system-gps-error CDATA #IMPLIED
system-language CDATA #IMPLIED
system-modality CDATA #IMPLIED
system-required NMTOKEN #IMPLIED
system-screen-size CDATA #IMPLIED
system-screen-depth CDATA #IMPLIED
system-captions (on | off) #IMPLIED
system-overdub-or-caption (caption | overdub) #IMPLIED >
The LOCATOR element supports extended (multi-destination) links as a child element of A and TAG elements. Each LOCATOR element specifies one destination. Additional information about extended links and XML linking syntax, examine the XML Linking Language (XLink) specification. prox
<!--=========== PROX element =========================================-->
<!ELEMENT prox (tag | sift | switch)* >
<!ATTLIST prox
id ID #IMPLIED >
The prox (proximity) element is a container for TAG elements. This element is designed to aid CMIL authors to associate objects in the real world with digital objects. tag
<!--=========== TAG element ==========================================-->
<!ELEMENT tag (locator | sift | switch)* >
<!ATTLIST tag
id ID #IMPLIED
title CDATA #IMPLIED
href CDATA #REQUIRED
actuate (auto | user) "user"
show (present | replace | transform) "present"
system-bitrate CDATA #IMPLIED
system-gps-error CDATA #IMPLIED
system-language CDATA #IMPLIED
system-modality CDATA #IMPLIED
system-required NMTOKEN #IMPLIED
system-screen-size CDATA #IMPLIED
system-screen-depth CDATA #IMPLIED
system-captions (on | off) #IMPLIED
system-overdub-or-caption (caption | overdub) #IMPLIED >
The TAG element associate an input string or code with a destination resource. The input may be derived from a number of sources -- direct from the user, from a bar code scanner for instance or even via optical character recognition. User agents that support this ability compare the input value to the contents of the document's TAG elements. If the TAG element's id and that of the incoming string resolves to "true" then the association is recognized and the link traversed to the destination resource. the following is an example with two tag links.
<prox>
<tag id="0110010110" href="http://www.genericorp.com/peanutbutter.html"/>
<tag id="H2SO4">
<locator href="hazmat.cmil#warning"/>
<locator href="hazmat.cmil#sulfuric_acid"/>
</tag>
</prox>
Note: PROX/TAG is pretty primitive and needs
considerable development.
References[ISO 6709:1983] ISO (International Organization for Standardization). ISO 6709:1983. Standard Representation of Latitude, Longitude and Altitude for Geographic Point Locations. [Geneva]: International Organization for Standardization, 1983. [SMIL] "Synchronized Multimedia Integration Language [SPOHRER1] "What Comes After the WWW? ", Spohrer, J, June
1998. [SPOHRER2] "Information in Places", Spohrer, J. C., IBM Systems Journal, Vol 38, No. 4, 1999, 602-628. [XLINK] "XML Linking Language (XLink)". [XML10] "Extensible Markup Language (XML) 1.0", T. Bray, J.
Paoli, C.M. Sperberg-McQueen, editors, 10 February 1998. [XSL] "Extensible Stylesheet Language (XSL)". |
|
|
|
copyright 2000, 2001 oacea all rights reserved |