|
|
|
|
|
This specification is deprecated. A more current version may be found here. Thank you. CMIL 0.9Specification Jan 14 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 rationale, structure and function 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 OverviewCMIL describes a generic form of hypermedia space or hyperreality, or as the author prefers, a metaspace. A metaspace is a multidimensional space arising from a collection of digital media object (media, files, folders, etc) which have associated with them various forms of metadata. Plotting these objects spatially along axes corresponding each object's metadata attributes carves out the object's position in this metaspace. 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. Other attributes may not plot transparently to a dimensional space, an attribute summarizing the object's content is one example. 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 PUBLIC "-//oacea//DTD CMIL0.9//EN"
"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"> Although a public identifier is present in the declaration, it has not been placed as of yet in any public catalog such as that at XML.org, sponsored by OASIS, the Organization for the Advancement of Structured Information Standards. Using the full declaration with public identifier
should not cause any validation errors, providing the system
declaration and URI are in place.
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 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="Bake Sale" >
<attributes>
<loc coords="39.169,-86.536,766.7260" datum="lla"/>
<orient bearing="ne"/>
<time begin="19990612T102200"/><
<att name="temperature" content="82"/>
</attributes>
<media>
<image src="media/images/sycamore.png"/>
<audio src="media/audio/birdsong.aiff"/>
<text src="media/text/walden.txt"/>
</media>
</node>
The presentation of NODE elements in 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: Attriutes 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 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 selection parameters are defined in CMIL 0.9:
Note: Additional selection parameter attributes
may be forthcoming in support of CMIL funtionality of 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 evaluates the switch-parameter attributes of each child element. Any element element where 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 where 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 source. 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.
Note: At some point CMIL my recommend certain
preferred metadata properties, for example, to indicate
authorship.
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 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. When 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. The attributes 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" locsystem="lla"/>
</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. This may
soon be resolved with the subsumption of all document and
contextual metadata into the ATTRIBUTES element.
Below is an example of the ATTRIBUTES element in 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" locsystem="lla"/>
<orient direction="ne"/>
<time begin="19990612T102200"/><
<att name="temperature" content="82"/>
</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 an attribute of that node. The hyperlink destination is specified by the href attribute of the anchor or within child LOCATOR elements. att
<!--=========== ATT element ==========================================-->
<!ELEMENT att EMPTY >
<!ATTLIST att
name CDATA #REQUIRED
content CDATA #REQUIRED
units 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 formatlized 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. Note: This might be better formulated as a
property-value-metric triplet. A more elaborate structure may need
to be formulated to support user-defined attributes.
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"/> 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 in to a very different
medium.
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.
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. loc
<!--=========== LOC element ==========================================-->
<!ELEMENT loc EMPTY >
<!ATTLIST loc
datum (lla | utm | ecef) "lla"
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. 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. "Locus" 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 provided in other common datum formats.
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
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. dateTime 2088-04-07T18:39:09 A date in a subset ISO 8601 format, with optional time and optional zone. Fractional seconds may be as precise as nanoseconds. dateTime.tz 2088-04-07T18:39:09-08:00 A date in a subset ISO 8601 format. (no time) date 2094-11-05 A time in a subset ISO 8601 format, with no date and no time zone. Fractional seconds may be as precise as nanoseconds. time 08:15:27 A time in a subset ISO 8601 format, with no date but optional time zone. Fractional seconds may be as precise as nanoseconds. time.tz 08:1527-05:00 A time interval which may have year, month, day, hour, minute and second fields. Fractional seconds may be as precise as nanoseconds. interval 2088-04-07T18:39:09 For a list of acceptible timezone values go here. Linking elementsCMIL specifies a family of hyperlinking 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 should be earnestly explored.
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 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/csst"> 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="nexts_cene.cmil"> <link rev="prev" href="previous_scene.cmil.css"> 3. To make known the availability of different versions of a given document, perhaps translated or in an alternate media format. 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 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. Having links exist a
autonomous objects or nodes might be one such route.
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[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)". CMIL Outline<cmil: id>
</cmil> CMIL Document Type Definition
<!--
=========== CMIL DTD =============================================
This is CMIL 0.9 DTD for Contextual Media Integration Language
Draft: Date 2000/01/08 13:45:00
Author: Rick Dietz <rick@oacea.com>
This DTD is available at the system identifier:
http://www.oacea.com/cmil/cmil-0.9.dtd
Further Information about CMIL can be found at:
http://www.oacea.com/cmil/index.html
=========== CMIL DTD =============================================
-->
<!--=========== Misc Entities ========================================-->
<!ENTITY % id-attribute
"id ID #IMPLIED"
>
<!ENTITY % basic-attributes
"%id-attribute;
title CDATA #IMPLIED
desc CDATA #IMPLIED"
>
<!ENTITY % style-attributes
"class CDATA #IMPLIED
style CDATA #IMPLIED"
>
<!ENTITY % core-attributes
"%basic-attributes;
%style-attributes;
abstract CDATA #IMPLIED
creator CDATA #IMPLIED
rights CDATA #IMPLIED"
>
<!--Applications of CMIL incorporating location data should specify
the particular datum used for subsequent location data provided
in the document.-->
<!ENTITY % datum-attribute
"datum (lla | utm | ecef) 'lla'" >
<!--The timeszone is specified as a numerical offset from the
Greenwich Mean. For example, Eastern Standard Time is "-0500".-->
<!ENTITY % timezone-attribute
"timezone CDATA #IMPLIED" >
<!ENTITY % shape-attribute
"shape (cone|cylinder|sphere) 'sphere'" >
<!-- ========== Hyperlinking =========================================-->
<!ENTITY % link-attributes
"%id-attribute;
title CDATA #IMPLIED
href CDATA #REQUIRED
actuate (auto|user) 'user'
show (present|replace|transform) 'present'"
>
<!ENTITY % anchor-attributes
"begin CDATA #IMPLIED
end CDATA #IMPLIED
coords CDATA #IMPLIED"
>
<!--=========== Selection Parameter Attributes ==========================-->
<!ENTITY % selection-parameters
"system-bitrate CDATA #IMPLIED
system-gps-error CDATA #IMPLIED
system-language CDATA #IMPLIED
system-mode 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"
>
<!--=========== MEDIA Attributes =====================================-->
<!ENTITY % media-attributes
"region IDREF #IMPLIED
alt CDATA #IMPLIED
src CDATA #IMPLIED
type CDATA #IMPLIED
dur CDATA #IMPLIED
repeat CDATA '1'
%core-attributes;
%selection-parameters;"
>
<!ENTITY % container-elements "(group | node | a | sift | switch)" >
<!ENTITY % media-elements "(animation | audio | image | model |
ref | speech | text | textstream | vector | video | www)" >
<!--=========== CMIL Element =========================================-->
<!ELEMENT cmil (head,body) >
<!ATTLIST cmil
%id-attribute;
>
<!--=========== 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-attribute;
>
<!--=========== BODY Element =========================================-->
<!ELEMENT body (%container-elements;)* >
<!ATTLIST body
%id-attribute;
onload CDATA #IMPLIED
onunload CDATA #IMPLIED
bgcolor CDATA #IMPLIED
mgcolor CDATA #IMPLIED
fgcolor CDATA #IMPLIED
bgimage CDATA #IMPLIED
nwcoord CDATA #IMPLIED
secoord CDATA #IMPLIED
bgaudio CDATA #IMPLIED
>
<!--=========== TITLE Element ========================================-->
<!ELEMENT title (#PCDATA) >
<!--=========== LINK Element =========================================
Link is used primarily to connect to external scripts and
style documents-->
<!ELEMENT link EMPTY >
<!ATTLIST link
%core-attributes;
charset CDATA #IMPLIED
href CDATA #IMPLIED
hreflang CDATA #IMPLIED
type CDATA #IMPLIED
rel CDATA #IMPLIED
rev CDATA #IMPLIED
media CDATA #IMPLIED
>
<!--=========== META Element =========================================
Meta is a property-value pair for specifying metainformation such
as "keywords", "description" and "creator"-->
<!ELEMENT meta EMPTY >
<!ATTLIST meta
name CDATA #REQUIRED
content CDATA #REQUIRED
>
<!--=========== STYLE Element ========================================
CSS/XSL Style information. May include CDATA sections-->
<!ELEMENT style (#PCDATA) >
<!ATTLIST style
type CDATA #REQUIRED
media CDATA #IMPLIED
title CDATA #IMPLIED
>
<!--=========== SCRIPT Element =======================================
Scripting language container. May include CDATA sections-->
<!ELEMENT script (#PCDATA) >
<!ATTLIST script
charset CDATA #IMPLIED
type CDATA #REQUIRED
src CDATA #IMPLIED
defer (defer) #IMPLIED
>
<!--=========== BASE Element =========================================
The base can as an option specify the root address for relative
URI's. In like fashion it can optionally 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.-->
<!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-attribute;
%timezone-attribute;
%shape-attribute;
>
<!--=========== PROX Element =========================================
The prox (proximity) element is a container for tag elements which
associate coded physical objects with an internet document via
URI.-->
<!ELEMENT prox (tag | sift | switch)* >
<!ATTLIST prox
%id-attribute;
>
<!--The Tag element is essentially a hypertext anchor. It requires
an id and href attribute be valid. The id of the Tag element
corresponds to the value of an external tag. It may contain any
number of Locator elements allowing some forms of extended
linking. It is otherwise empty.-->
<!ELEMENT tag (locator | sift | switch)* >
<!ATTLIST tag
%link-attributes;
%selection-parameters;
>
<!--=========== LOCATOR Element ======================================
The Locator element provides tag and a elements a means of
support for extended linking.-->
<!ELEMENT locator EMPTY >
<!ATTLIST locator
%link-attributes;
role CDATA #IMPLIED
%style-attributes;
%anchor-attributes;
%selection-parameters;
>
<!--=========== ATTRIBUTES Element ===================================
The attributes element is a container for the individual attribute
elements of a CMIL node when found within the body. When present
in the head of a CMIL document, the attributes element allows
authors to define document level attributes such as channel and
coverageas well as define the parameters of attributes to be used
within nodes in the body; one may set the units, title, and
description of an author-defined attribute using this approach.-->
<!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
%basic-attributes;
>
<!--=========== ATT Element ==========================================
The att element consists of a property-value pair allowing for
user-specified attributes beyond the few specified here such as
loc, orient, etc. Dynamic attributes need support here through
an href or reference to an id stamped piece of code. -->
<!ELEMENT att EMPTY >
<!ATTLIST att
name CDATA #REQUIRED
content CDATA #REQUIRED
units CDATA #IMPLIED
%basic-attributes;
>
<!--=========== A Element ============================================
The a element allows for inline linking behavior. Extended links
will contain a number of locator elements as child elements. An
a element may exist as an attribute of a node or encapsulate
other container elements.-->
<!ELEMENT a (locator | sift | switch | group | node)* >
<!ATTLIST a
%link-attributes;
%style-attributes;
%selection-parameters;
>
<!--=========== CHANNEL Element ======================================
Content description.-->
<!ELEMENT channel EMPTY >
<!ATTLIST channel
name CDATA #IMPLIED
%basic-attributes;
>
<!--=========== COVERAGE Element =====================================
Space where the given document is valid for display by augmented
reality applications....-->
<!ELEMENT coverage EMPTY >
<!ATTLIST coverage
%shape-attribute;
radius CDATA #IMPLIED
height CDATA #IMPLIED
>
<!--=========== LOC Element ==========================================-->
<!ELEMENT loc EMPTY >
<!ATTLIST loc
%datum-attribute;
coords CDATA #REQUIRED
offset (reltobase | reltoviewer | absolute) "absolute"
%basic-attributes;
>
<!--=========== 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
offset (reltobase | reltoviewer | absolute) "absolute"
%basic-attributes;
>
<!--=========== TIME Element =========================================-->
<!ELEMENT time EMPTY >
<!ATTLIST time
time CDATA #IMPLIED
begin CDATA #IMPLIED
end CDATA #IMPLIED
%timezone-attribute;
%basic-attributes;
>
<!--=========== SIFT Element =======================================
The purpose of the sift element is to allow for non-mutually
exclusive content selection among media or container elements
in CMIL documents based on system settings or user preferences.-->
<!ELEMENT sift (group | node | a | sift | switch | locator | tag)* >
<!ATTLIST sift
%basic-attributes;
%selection-parameters;
>
<!--=========== SWITCH Element =======================================
The purpose of the switch element is to allow for content
negociation between elements with targeted media. The switch
syntax is borrowed largely intact from the W3C's Synchronized
Multimedia Integration Language 1.0 recommendation.-->
<!ELEMENT switch (group | node | a | sift | switch | locator | tag)* >
<!ATTLIST switch
%basic-attributes;
%selection-parameters;
>
<!--=========== GROUP Element ========================================
The group element is a generic container element.-->
<!ELEMENT group (%container-elements;)* >
<!ATTLIST group
%core-attributes;
%selection-parameters;
>
<!--========== NODE Element ==========================================
The node element is the kernel of contextual media, uniting
digital media and attributes.-->
<!ELEMENT node ((attributes,media) | (media,attributes)) >
<!ATTLIST node
%core-attributes;
%selection-parameters;
>
<!--=========== MEDIA Element ========================================
The media element is a container for media-elements which follow.-->
<!ELEMENT media (%media-elements;)* >
<!ATTLIST media
%basic-attributes;
>
<!ELEMENT animation (anchor?) >
<!ATTLIST animation
%media-attributes;
>
<!ELEMENT audio (anchor?) >
<!ATTLIST audio
%media-attributes;
>
<!ELEMENT image (anchor?) >
<!ATTLIST image
%media-attributes;
>
<!ELEMENT model (anchor?) >
<!ATTLIST model
%media-attributes;
>
<!ELEMENT ref (anchor?) >
<!ATTLIST ref
%media-attributes;
>
<!ELEMENT speech (anchor?) >
<!ATTLIST speech
%media-attributes;
>
<!ELEMENT text (#PCDATA ) >
<!ATTLIST text
%media-attributes;
>
<!ELEMENT textstream (anchor?) >
<!ATTLIST textstream
%media-attributes;
>
<!ELEMENT vector (anchor?) >
<!ATTLIST vector
%media-attributes;
>
<!ELEMENT video (anchor?) >
<!ATTLIST video
%media-attributes;
>
<!--=========== WWW element ==========================================
The www element allows World Wide Web content to exists as a CMIL
media type. The www element may link to an external HTML
resource. This should also support inclusion of HTML as a
namespace but doesn't at this time. -->
<!ELEMENT www (#PCDATA ) >
<!ATTLIST www
%link-attributes;
%media-attributes;
>
<!--=========== Associated Link Element ==============================
Anchor serves as an analog of the HTML imagmap with the additional
enhancement of temporal linking. Anchor is borrowed from the W3C
SMIL1.0 recommendation.-->
<!ELEMENT anchor (locator | sift | switch)* >
<!ATTLIST anchor
%link-attributes;
%anchor-attributes;
>
|
|
|
|
copyright 2000, 2001 oacea all rights reserved |