Another abandoned server code base... this is kind of an ancestor of taskrambler.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

3086 lines
156 KiB

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-us" lang="en-us">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>API for Media Resource 1.0</title>
<link rel="stylesheet" type="text/css" href="respec.css" />
<link rel="stylesheet" type="text/css"
href="http://www.w3.org/StyleSheets/TR/W3C-WD.css" />
</head>
<body>
<div class="head">
<p><a href="http://www.w3.org/"><img src="http://www.w3.org/Icons/w3c_home"
alt="W3C" height="48" width="72" /></a></p>
<h1><a name="d3e4" id="d3e4"></a>API for Media Resource 1.0</h1>
<h2><a name="w3c-doctype" id="w3c-doctype"></a><a name="w3c-doctype1"
id="w3c-doctype1"></a>W3C Working Draft 08 June 2010</h2>
<dl>
<dt>This version:</dt>
<dd><a
href="http://www.w3.org/TR/2010/WD-mediaont-api-1.0-20100608">http://www.w3.org/TR/2010/WD-mediaont-api-1.0-20100608</a></dd>
<dt>Latest version:</dt>
<dd><a
href="http://www.w3.org/TR/mediaont-api-1.0">http://www.w3.org/TR/mediaont-api-1.0</a></dd>
<dt>Previous version:</dt>
<dd><a
href="http://www.w3.org/TR/2010/WD-mediaont-api-1.0-20100309">http://www.w3.org/TR/2010/WD-mediaont-api-1.0-20100309</a></dd>
<dt>Editors:</dt>
<dd>이원석(WonSuk Lee), Electronics and Telecommunications Research
Institute (ETRI)</dd>
<dd>Florian Stegmaier, University of Passau</dd>
<dd>Chris Poppe, Ghent University</dd>
</dl>
<p class="copyright"><a
href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> ©
2010 <a href="http://www.w3.org/"><acronym
title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a
href="http://www.csail.mit.edu/"><acronym
title="Massachusetts Institute of Technology">MIT</acronym></a>, <a
href="http://www.ercim.org/"><acronym
title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>,
<a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a
href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
<a
href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>
and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document
use</a> rules apply.</p>
</div>
<hr />
<div>
<h2><a name="abstract" id="abstract"></a>Abstract</h2>
This specification defines a client-side API to access metadata information
related to media resources on the Web. The overall purpose of the API is to
provide developers with a convenient access to metadata information stored in
different metadata formats. The API is described using the interface definition
language Web IDL. Thereby, the Media Ontology Core Properties will be used as a
pivot vocabulary in the API. </div>
<div>
<h2><a name="status" id="status"></a>Status of this Document</h2>
<p><em>This section describes the status of this document at the time of its
publication. Other documents may supersede this document. A list of current W3C
publications and the latest revision of this technical report can be found in
the <a href="http://www.w3.org/TR/">W3C technical reports index</a> at
http://www.w3.org/TR/.</em></p>
<p>This is the a Last Call Working Draft of the API for Media Resource 1.0
specification. It has been produced by the <a
href="http://www.w3.org/2008/WebVideo/Annotations/">Media Annotations Working
Group</a>, which is part of the <a href="http://www.w3.org/2008/WebVideo/">W3C
Video on the Web Activity</a>.</p>
<p>The W3C Membership and other interested parties are invited to review the
document and send comments through 11 July 2010. Comments must be sent to to <a
href="mailto:public-media-annotation@w3.org?subject=[LC Comment API]">public-media-annotation@w3.org</a>
mailing list (<a
href="http://lists.w3.org/Archives/Public/public-media-annotation/">public
archive</a>). Use "[LC Comment API]" in the subject line of your email.</p>
<p>Publication as a Working Draft does not imply endorsement by the W3C
Membership. This is a draft document and may be updated, replaced or obsoleted
by other documents at any time. It is inappropriate to cite this document as
other than work in progress. </p>
<p>This document was produced by a group operating under the <a
href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February 2004 W3C
Patent Policy</a>. W3C maintains a <a
href="http://www.w3.org/2004/01/pp-impl/42786/status">public list of any patent
disclosures</a> made in connection with the deliverables of the group; that
page also includes instructions for disclosing a patent. An individual who has
actual knowledge of a patent which the individual believes contains <a
href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential
Claim(s)</a> must disclose the information in accordance with <a
href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section
6 of the W3C Patent Policy</a>.</p>
<p></p>
</div>
<div class="section" id="toc">
<h2 id="table-of-contents" class="introductory">Table of Contents</h2>
<ul class="toc">
<li class="tocline"><a class="tocxref" href="#introduction"><span
class="secno">1. </span>Introduction</a>
<ul class="toc">
<li class="tocline"><a class="tocxref" href="#formats-in-scope"><span
class="secno">1.1 </span>Formats in scope</a></li>
<li class="tocline"><a class="tocxref" href="#formats-out-of-scope"><span
class="secno">1.2 </span>Formats out of scope</a></li>
<li class="tocline"><a class="tocxref" href="#terminology"><span
class="secno">1.3 </span>Terminology</a></li>
</ul>
</li>
<li class="tocline"><a class="tocxref" href="#design-consideration"><span
class="secno">2. </span>Design consideration</a></li>
<li class="tocline"><a class="tocxref" href="#api-description"><span
class="secno">3. </span>API Description</a>
<ul class="toc">
<li class="tocline"><a class="tocxref"
href="#mediaresource-interface"><span class="secno">3.1
</span><code>MediaResource</code> interface</a>
<ul class="toc">
<li class="tocline"><a class="tocxref" href="#methods"><span
class="secno">3.1.1 </span>Methods</a></li>
</ul>
</li>
<li class="tocline"><a class="tocxref"
href="#metadatasource-interface"><span class="secno">3.2
</span><code>MetadataSource</code> interface</a>
<ul class="toc">
<li class="tocline"><a class="tocxref" href="#attributes"><span
class="secno">3.2.1 </span>Attributes</a></li>
</ul>
</li>
<li class="tocline"><a class="tocxref" href="#language--interface"><span
class="secno">3.3 </span><code>Language </code> interface</a>
<ul class="toc">
<li class="tocline"><a class="tocxref" href="#attributes-1"><span
class="secno">3.3.1 </span>Attributes</a></li>
</ul>
</li>
<li class="tocline"><a class="tocxref" href="#maobject-interface"><span
class="secno">3.4 </span><code>MAObject</code> interface</a>
<ul class="toc">
<li class="tocline"><a class="tocxref" href="#attributes-2"><span
class="secno">3.4.1 </span>Attributes</a></li>
</ul>
</li>
<li class="tocline"><a class="tocxref"
href="#identification-interface"><span class="secno">3.5
</span>Identification Properties</a>
<ul class="toc">
<li class="tocline"><a class="tocxref"
href="#identifier--interface"><span class="secno">3.5.1
</span><code>Identifier </code> interface</a>
<ul class="toc">
<li class="tocline"><a class="tocxref" href="#attributes-3"><span
class="secno">3.5.1.1 </span>Attributes</a></li>
</ul>
</li>
<li class="tocline"><a class="tocxref" href="#title--interface"><span
class="secno">3.5.2 </span><code>Title </code> interface</a>
<ul class="toc">
<li class="tocline"><a class="tocxref" href="#attributes-4"><span
class="secno">3.5.2.1 </span>Attributes</a></li>
</ul>
</li>
<li class="tocline"><a class="tocxref"
href="#language--interface-1"><span class="secno">3.5.3
</span><code>Language </code> interface</a>
<ul class="toc">
<li class="tocline"><a class="tocxref" href="#attributes-5"><span
class="secno">3.5.3.1 </span>Attributes</a></li>
</ul>
</li>
<li class="tocline"><a class="tocxref"
href="#locator--interface"><span class="secno">3.5.4
</span><code>Locator </code> interface</a>
<ul class="toc">
<li class="tocline"><a class="tocxref" href="#attributes-6"><span
class="secno">3.5.4.1 </span>Attributes</a></li>
</ul>
</li>
</ul>
</li>
<li class="tocline"><a class="tocxref" href="#creation-properties"><span
class="secno">3.6 </span>Creation Properties</a>
<ul class="toc">
<li class="tocline"><a class="tocxref"
href="#contributor--interface"><span class="secno">3.6.1
</span><code>Contributor </code> interface</a>
<ul class="toc">
<li class="tocline"><a class="tocxref" href="#attributes-7"><span
class="secno">3.6.1.1 </span>Attributes</a></li>
</ul>
</li>
<li class="tocline"><a class="tocxref"
href="#creator--interface"><span class="secno">3.6.2
</span><code>Creator </code> interface</a>
<ul class="toc">
<li class="tocline"><a class="tocxref" href="#attributes-8"><span
class="secno">3.6.2.1 </span>Attributes</a></li>
</ul>
</li>
<li class="tocline"><a class="tocxref"
href="#createdate--interface"><span class="secno">3.6.3
</span><code>CreateDate </code> interface</a>
<ul class="toc">
<li class="tocline"><a class="tocxref" href="#attributes-9"><span
class="secno">3.6.3.1 </span>Attributes</a></li>
</ul>
</li>
<li class="tocline"><a class="tocxref"
href="#location--interface"><span class="secno">3.6.4
</span><code>Location </code> interface</a>
<ul class="toc">
<li class="tocline"><a class="tocxref"
href="#attributes-10"><span class="secno">3.6.4.1
</span>Attributes</a></li>
</ul>
</li>
</ul>
</li>
<li class="tocline"><a class="tocxref" href="#content-properties"><span
class="secno">3.7 </span>Content Properties</a>
<ul class="toc">
<li class="tocline"><a class="tocxref"
href="#description--interface"><span class="secno">3.7.1
</span><code>Description </code> interface</a>
<ul class="toc">
<li class="tocline"><a class="tocxref"
href="#attributes-11"><span class="secno">3.7.1.1
</span>Attributes</a></li>
</ul>
</li>
<li class="tocline"><a class="tocxref"
href="#keyword-interface"><span class="secno">3.7.2
</span><code>Keyword</code> interface</a>
<ul class="toc">
<li class="tocline"><a class="tocxref"
href="#attributes-12"><span class="secno">3.7.2.1
</span>Attributes</a></li>
</ul>
</li>
<li class="tocline"><a class="tocxref" href="#genre-interface"><span
class="secno">3.7.3 </span><code>Genre</code> interface</a>
<ul class="toc">
<li class="tocline"><a class="tocxref"
href="#attributes-13"><span class="secno">3.7.3.1
</span>Attributes</a></li>
</ul>
</li>
<li class="tocline"><a class="tocxref" href="#rating-interface"><span
class="secno">3.7.4 </span><code>Rating</code> interface</a>
<ul class="toc">
<li class="tocline"><a class="tocxref"
href="#attributes-14"><span class="secno">3.7.4.1
</span>Attributes</a></li>
</ul>
</li>
</ul>
</li>
<li class="tocline"><a class="tocxref"
href="#relational-properties"><span class="secno">3.8 </span>Relational
Properties</a>
<ul class="toc">
<li class="tocline"><a class="tocxref"
href="#relation-interface"><span class="secno">3.8.1
</span><code>Relation</code> interface</a>
<ul class="toc">
<li class="tocline"><a class="tocxref"
href="#attributes-15"><span class="secno">3.8.1.1
</span>Attributes</a></li>
</ul>
</li>
<li class="tocline"><a class="tocxref"
href="#collection-interface"><span class="secno">3.8.2
</span><code>Collection</code> interface</a>
<ul class="toc">
<li class="tocline"><a class="tocxref"
href="#attributes-16"><span class="secno">3.8.2.1
</span>Attributes</a></li>
</ul>
</li>
</ul>
</li>
<li class="tocline"><a class="tocxref" href="#rights-properties"><span
class="secno">3.9 </span>Rights Properties</a>
<ul class="toc">
<li class="tocline"><a class="tocxref"
href="#copyright-interface"><span class="secno">3.9.1
</span><code>Copyright</code> interface</a>
<ul class="toc">
<li class="tocline"><a class="tocxref"
href="#attributes-17"><span class="secno">3.9.1.1
</span>Attributes</a></li>
</ul>
</li>
<li class="tocline"><a class="tocxref" href="#policy-interface"><span
class="secno">3.9.2 </span><code>Policy</code> interface</a>
<ul class="toc">
<li class="tocline"><a class="tocxref"
href="#attributes-18"><span class="secno">3.9.2.1
</span>Attributes</a></li>
</ul>
</li>
</ul>
</li>
<li class="tocline"><a class="tocxref"
href="#distribution-properties"><span class="secno">3.10
</span>Distribution Properties</a>
<ul class="toc">
<li class="tocline"><a class="tocxref"
href="#publisher-interface"><span class="secno">3.10.1
</span><code>Publisher</code> interface</a>
<ul class="toc">
<li class="tocline"><a class="tocxref"
href="#attributes-19"><span class="secno">3.10.1.1
</span>Attributes</a></li>
</ul>
</li>
<li class="tocline"><a class="tocxref"
href="#targetaudience-interface"><span class="secno">3.10.2
</span><code>TargetAudience</code> interface</a>
<ul class="toc">
<li class="tocline"><a class="tocxref"
href="#attributes-20"><span class="secno">3.10.2.1
</span>Attributes</a></li>
</ul>
</li>
</ul>
</li>
<li class="tocline"><a class="tocxref" href="#fragments-properties"><span
class="secno">3.11 </span>Fragments Properties</a>
<ul class="toc">
<li class="tocline"><a class="tocxref"
href="#fragments-interface"><span class="secno">3.11.1
</span><code>Fragments</code> interface</a>
<ul class="toc">
<li class="tocline"><a class="tocxref"
href="#attributes-21"><span class="secno">3.11.1.1
</span>Attributes</a></li>
</ul>
</li>
<li class="tocline"><a class="tocxref"
href="#namedfragments-interface"><span class="secno">3.11.2
</span><code>NamedFragments</code> interface</a>
<ul class="toc">
<li class="tocline"><a class="tocxref"
href="#attributes-22"><span class="secno">3.11.2.1
</span>Attributes</a></li>
</ul>
</li>
</ul>
</li>
<li class="tocline"><a class="tocxref" href="#technical-interface"><span
class="secno">3.12 </span>Technical Properties</a>
<ul class="toc">
<li class="tocline"><a class="tocxref"
href="#framesize-interface"><span class="secno">3.12.1
</span><code>FrameSize</code> interface</a>
<ul class="toc">
<li class="tocline"><a class="tocxref"
href="#attributes-23"><span class="secno">3.12.1.1
</span>Attributes</a></li>
</ul>
</li>
<li class="tocline"><a class="tocxref"
href="#compression-interface"><span class="secno">3.12.2
</span><code>Compression</code> interface</a>
<ul class="toc">
<li class="tocline"><a class="tocxref"
href="#attributes-24"><span class="secno">3.12.2.1
</span>Attributes</a></li>
</ul>
</li>
<li class="tocline"><a class="tocxref"
href="#duration-interface"><span class="secno">3.12.3
</span><code>Duration</code> interface</a>
<ul class="toc">
<li class="tocline"><a class="tocxref"
href="#attributes-25"><span class="secno">3.12.3.1
</span>Attributes</a></li>
</ul>
</li>
<li class="tocline"><a class="tocxref" href="#format-interface"><span
class="secno">3.12.4 </span><code>Format</code> interface</a>
<ul class="toc">
<li class="tocline"><a class="tocxref"
href="#attributes-26"><span class="secno">3.12.4.1
</span>Attributes</a></li>
</ul>
</li>
<li class="tocline"><a class="tocxref"
href="#samplingrate-interface"><span class="secno">3.12.5
</span><code>Samplingrate</code> interface</a>
<ul class="toc">
<li class="tocline"><a class="tocxref"
href="#attributes-27"><span class="secno">3.12.5.1
</span>Attributes</a></li>
</ul>
</li>
<li class="tocline"><a class="tocxref"
href="#framerate-interface"><span class="secno">3.12.6
</span><code>Framerate</code> interface</a>
<ul class="toc">
<li class="tocline"><a class="tocxref"
href="#attributes-28"><span class="secno">3.12.6.1
</span>Attributes</a></li>
</ul>
</li>
<li class="tocline"><a class="tocxref"
href="#averagebitrate-interface"><span class="secno">3.12.7
</span><code>AverageBitrate</code> interface</a>
<ul class="toc">
<li class="tocline"><a class="tocxref"
href="#attributes-29"><span class="secno">3.12.7.1
</span>Attributes</a></li>
</ul>
</li>
<li class="tocline"><a class="tocxref"
href="#numtracks-interface"><span class="secno">3.12.8
</span><code>NumTracks</code> interface</a>
<ul class="toc">
<li class="tocline"><a class="tocxref"
href="#attributes-30"><span class="secno">3.12.8.1
</span>Attributes</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="tocline"><a class="tocxref" href="#usage-examples"><span
class="secno">4. </span>Usage examples</a></li>
<li class="tocline"><a class="tocxref" href="#api-status-codes"><span
class="secno">5. </span>API Status Codes</a></li>
<li class="tocline"><a class="tocxref" href="#conformance"><span
class="secno">6. </span>Conformance</a></li>
<li class="tocline"><a class="tocxref" href="#security-considerations"><span
class="secno">7. </span>Security Considerations</a></li>
<li class="tocline"><a class="tocxref" href="#webidl-for-api"><span
class="secno">A. </span>Web IDL description for API</a></li>
<li class="tocline"><a class="tocxref" href="#acknowledgements"><span
class="secno">B. </span>Acknowledgements</a></li>
<li class="tocline"><a class="tocxref" href="#references"><span
class="secno">C. </span>References</a>
<ul class="toc">
<li class="tocline"><a class="tocxref" href="#normative-references"><span
class="secno">C.1 </span>Normative references</a></li>
<li class="tocline"><a class="tocxref"
href="#informative-references"><span class="secno">C.2
</span>Informative references</a></li>
</ul>
</li>
</ul>
</div>
<div id="introduction" class="informative section">
<!--OddPage-->
<h2 id="x1.-introduction"><span class="secno">1. </span>Introduction</h2>
<p><em>This section is non-normative.</em></p>
<p>This specification defines a client-side API to access metadata information
related to media resources on the Web. The overall purpose of the API is to
provide developers with a convenient access to metadata information stored in
different metadata formats. Thereby, the <a
href="http://www.w3.org/TR/mediaont-10/#core-property-definitions">Media
Ontology Core Properties</a> will be used as a pivot vocabulary in the API. The
description of relations between these core properties and the metadata formats
in scope (<a href="http://www.w3.org/TR/mediaont-10/#formats-in-scope"><b>1.2
Formats in scope</b></a>) are stored in the Media Ontology in order to provide
cross-community data integration. The API is described using the interface
definition language [<a href="#bib-WEBIDL" rel="biblioentry"
class="bibref">WEBIDL</a>]. The decision to use Web IDL, which offers bindings
for ECMAScript and Java, can be based on the Use Cases and Requirements for
Ontology and API for Media Resource 1.0 [<a href="#bib-MEDIA-ANNOT-REQS"
rel="biblioentry" class="bibref">MEDIA-ANNOT-REQS</a>]. This document clearly
states that the focus for this API lies on multimedia services on the Web.</p>
<p>The API serves as a mediator between a developer and the underlying Ontology
for Media Resource 1.0 [<a href="#bib-MEDIA-ANNOT-ONTOLOGY" rel="biblioentry"
class="bibref">MEDIA-ANNOT-ONTOLOGY</a>] with the goal to support
interoperability between metadata formats. It offers operations to retrieve
particular metadata informations represented in a certain metadata format
related to media resources on the Web.</p>
<p>This document is being published with the aspiration to gather wide feedback
on the yet available API design.</p>
<div class="section" id="formats-in-scope">
<h3 id="x1.1-formats-in-scope"><span class="secno">1.1 </span>Formats in
scope</h3>
<p>Refers to the <a
href="http://www.w3.org/TR/mediaont-10/#formats-in-scope">formats in scope</a>
of <a href="http://www.w3.org/TR/mediaont-10/">Ontology for Media Resource
1.0</a>.</p>
</div>
<div class="section" id="formats-out-of-scope">
<h3 id="x1.2-formats-out-of-scope"><span class="secno">1.2 </span>Formats out
of scope</h3>
<p>Refers to the <a
href="http://www.w3.org/TR/mediaont-10/#formats-out-of-scope">Formats out of
scope</a> of <a href="http://www.w3.org/TR/mediaont-10/">Ontology for Media
Resource 1.0</a>.</p>
</div>
<div class="section" id="terminology">
<h3 id="x1.3-terminology"><span class="secno">1.3 </span>Terminology</h3>
<p>In this document the terms "Media Resource", "Property", "Mapping" and
"Property value type" are to be interpreted as defined in <a
href="http://www.w3.org/TR/mediaont-10/#Terminology">Section 2 of Ontology for
Media Resource 1.0</a>.</p>
</div>
</div>
<div class="section" id="design-consideration">
<!--OddPage-->
<h2 id="x2.-design-consideration"><span class="secno">2. </span>Design
consideration</h2>
<p>We consider two scenarios where the API could be implemented: either in a
user agent (scenario 1) or as a web service (scenario 2). The two scenarios are
shown in the figure.</p>
<dl>
<dt>Scenario 1: User agent</dt>
<dd>The API is implemented in a user agent (e.g., browser or browser
plugin) and exposed as a JavaScript API (using the WebIDL JavaScript
binding). The user agent includes the components for metadata access
(possibly extraction) and mappings for a supported set of formats. The
metadata sources (the media resource and/or metadata document(s)) must be
retrievable and access (establish connection, retrieval) of the metadata
sources is handled by the user agent. </dd>
<dt>Scenario 2: Web service</dt>
<dd>The API is implemented as a Web service. Such an implementation would
be typically used by a non-UI client, such as an agent harvesting
metadata. However, the API could be also accessed from a user agent, and
used the same way as described in scenario 1 by the help of a JavaScript
library for accessing the web service. At the back-end of the web
service, this scenario also allows supporting a media repository (e.g.
content provider's archive database, movie store) from which the user
agent could directly retrieve metadata sources and which might have a
custom metadata format not supported by a user agent. In contrast to an
integrated component (see scenario 1), an implementation of the API in a
web service could do more complex mappings on the fly as a component
integrated in a user agent, and can be more flexible (e.g., supporting
additional formats). </dd>
</dl>
<p align="center"><img src="API_options.png"
alt="Overview of different API options." /></p>
<p>In both scenarios, the access to the metadata properties needs the following
stack of components:</p>
<ul>
<li><p>An implementation of the API for Media Resource (as defined in this
document), which providers the actual getter methods for the properties.</p>
</li>
<li><p>An implementation of the mappings from a specific source format to the
properties of the media ontology (as defined in Ontology for Media Resource
1.0).</p>
</li>
<li><p>A format specific API to access the metadata. This can be an API for
accessing a metadata document describing a media resource (e.g. an XML
parser and a set of XPath statements) or an extractor to read metadata
embedded in the media resource (e.g. a library to read EXIF information
from JPEG images). In order to define the context on which the API for
Media Resource is working, it is assumed that there is at least a
unidirectional reference from the media resource to the metadata document
or vice versa. If this is not the case such a reference needs to be
provided by the web application (scenario 1), web service (scenario 2) or
media repository (scenario 2).</p>
</li>
</ul>
</div>
<div class="section" id="api-description">
<!--OddPage-->
<h2 id="x3.-api-description"><span class="secno">3. </span>API Description</h2>
<!--p class="note">There are many open issues about setting interfaces, meaning changing the value of properties, so these issues will be covered later.</p-->
<p class="note">The JavaScript examples in this document will only work if the
API is implemented by the browser.</p>
<p>The API exists of a number of interfaces, described using <cite><a
href="#webidl-for-api">Web IDL</a></cite>. Implementations of the API should
provide objects implementing the different interfaces. The entire description
can be found in <a href="#webidl-for-api">Appendix A</a>. The API is contained
within the <code>MediaResource</code> interface within the <code>mawg</code>
module. Objects implementing this interface provide the necessary methods to
access metadata properties of a Media Resource. The object holds methods to
identify the actual Media Resource and the metadata sources. All properties can
be accessed through a specific operation <code>getProperty</code>. When an
attempt to read a property fails, diagnostics information can be obtained using
a diagnosis operation. Subtypes in the API are relevant for those properties
mentioned in <a
href="http://www.w3.org/TR/mediaont-10/#core-property-lists">4.1.3 Core
properties</a> of <a href="http://www.w3.org/TR/mediaont-10/">Ontology for
Media Resource 1.0</a>. Lastly, methods are available that allow to iterate
through the available metadata. Next, the different interfaces and exposed
methods are discussed. Finally, examples of the usage of the API can be found
in <a href="#usage-examples">section 4</a>. </p>
<p></p>
<div class="section" id="mediaresource-interface">
<h3 id="x3.1-mediaresource-interface"><span class="secno">3.1
</span><code>MediaResource</code> interface</h3>
<p>The <code>MediaResource</code> interface offers a number of operations that
allow accessing the metadata of a Media Resource. </p>
<p>Example on how to introduce this in HTML5 by making the HTMLMediaElement
inherit from the <code>MediaResource</code> interface:</p>
<pre class="example sh_javascript sh_sourceCode"><span class="sh_keyword">interface</span> HTMLMediaElement <span class="sh_symbol">:</span> MediaResource<span class="sh_symbol">,</span> HTMLElement <span class="sh_cbracket">{</span><span class="sh_symbol">...</span><span class="sh_cbracket">}</span></pre>
<p>Example of usage in JavaScript:</p>
<pre class="example sh_javascript sh_sourceCode">mediaResource <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementsByTagName</span><span class="sh_symbol">(</span><span class="sh_string">"video"</span><span class="sh_symbol">)[</span><span class="sh_number">0</span><span class="sh_symbol">];</span>
<span class="sh_comment">//mediaResource implements the HTMLMediaElement interface and the MediaResource interface</span>
title <span class="sh_symbol">=</span> mediaResource<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"title"</span><span class="sh_symbol">);</span>
<span class="sh_symbol">...</span></pre>
<p>As shown, the <code>getElementsByTagName</code> returns a
<code>HTMLMediaElement</code> which inherits from the
<code>MediaResource</code> interface. The <code>getProperty</code> method is
part of this interface so the returned element has an implementation of this
method. By calling the <code>getProperty</code> method with the argument
"title" we can retrieve the title of the corresponding media resource.</p>
<p class="note">The JavaScript examples in this section all assume that
getElementsByTagName() returns an object implementing the MediaResource
interface.</p>
<p>Next, we give the Web IDL description of the <code>MediaResource</code>
interface and describe the different operations that are part of it.</p>
<pre class="idl"><span class="idlInterface" id="idl-def-MediaResource">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">MediaResource</span> {
<span class="idlMethod"> <span class="idlMethType"><a>boolean</a></span> <span class="idlMethName"><a href="#widl-MediaResource-selectMAResource">selectMAResource</a></span> (<span class="idlParam">in <span class="idlParamType"><a>DOMString</a></span> <span class="idlParamName">mediaResource</span></span>, <span class="idlParam">in optional <span class="idlParamType"><a class="idlType" href="#idl-def-MetadataSource"><code>MetadataSource</code></a>[]</span> <span class="idlParamName">metadataSources</span></span>);</span>
<span class="idlMethod"> <span class="idlMethType"><a class="idlType" href="#idl-def-MAObject"><code>MAObject</code></a>[]</span> <span class="idlMethName"><a href="#widl-MediaResource-getProperty">getProperty</a></span> (<span class="idlParam">in <span class="idlParamType"><a>DOMString</a></span> <span class="idlParamName">propertyName</span></span>, <span class="idlParam">in optional <span class="idlParamType"><a>DOMString</a></span> <span class="idlParamName">fragment</span></span>, <span class="idlParam">in optional <span class="idlParamType"><a>DOMString</a></span> <span class="idlParamName">sourceFormat</span></span>, <span class="idlParam">in optional <span class="idlParamType"><a>DOMString</a></span> <span class="idlParamName">subtype</span></span>, <span class="idlParam">in optional <span class="idlParamType"><a>DOMString</a></span> <span class="idlParamName">language</span></span>);</span>
<span class="idlMethod"> <span class="idlMethType"><a>DOMString</a>[]</span> <span class="idlMethName"><a href="#widl-MediaResource-getPropertyNamesWithValues">getPropertyNamesWithValues</a></span> (<span class="idlParam">in optional <span class="idlParamType"><a>DOMString</a></span> <span class="idlParamName">sourceFormat</span></span>, <span class="idlParam">in optional <span class="idlParamType"><a>DOMString</a></span> <span class="idlParamName">language</span></span>, <span class="idlParam">in optional <span class="idlParamType"><a>DOMString</a></span> <span class="idlParamName">fragment</span></span>);</span>
<span class="idlMethod"> <span class="idlMethType"><a>DOMString</a>[]</span> <span class="idlMethName"><a href="#widl-MediaResource-getSourceFormatsWithValues">getSourceFormatsWithValues</a></span> (<span class="idlParam">in optional <span class="idlParamType"><a>DOMString</a></span> <span class="idlParamName">language</span></span>);</span>
<span class="idlMethod"> <span class="idlMethType"><a>DOMString</a></span> <span class="idlMethName"><a href="#widl-MediaResource-getDiagnosis">getDiagnosis</a></span> ();</span>
<span class="idlMethod"> <span class="idlMethType"><a>DOMString</a>[]</span> <span class="idlMethName"><a href="#widl-MediaResource-getOriginalData">getOriginalData</a></span> (<span class="idlParam">in <span class="idlParamType"><a>DOMString</a></span> <span class="idlParamName">sourceFormat</span></span>);</span>
};</span></pre>
<div class="section" id="methods">
<h4 id="x3.1.1-methods"><span class="secno">3.1.1 </span>Methods</h4>
<dl class="methods">
<dt id="widl-MediaResource-getDiagnosis"><code>getDiagnosis</code></dt>
<dd><p>This operation allows to retrieve the status code(e.g., the
getProperty operation returning a null value). See <a
href="#api-status-codes">Section 4</a> for details. </p>
<div>
<em>No parameters.</em></div>
<div>
<em>No exceptions.</em></div>
<div>
<em>Return type: </em><code><a>DOMString</a></code></div>
</dd>
<dt id="widl-MediaResource-getOriginalData"><code>getOriginalData</code></dt>
<dd>This operation allows to retrieve the original metadata according to
the specified source format.
<table class="parameters">
<tbody>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Nullable</th>
<th>Optional</th>
<th>Description</th>
</tr>
<tr>
<td class="prmName">sourceFormat</td>
<td class="prmType"><code><a>DOMString</a></code></td>
<td class="prmNullFalse"></td>
<td class="prmOptFalse"></td>
<td class="prmDesc">This argument identifies a specific metadata
format. If a metadata format is defined, only the metadata
available in the corresponding metadata format are retrieved.
This parameter is <em title="optional"
class="rfc2119">optional</em>.</td>
</tr>
</tbody>
</table>
<div>
<em>No exceptions.</em></div>
<div>
<em>Return type: </em><code><a>DOMString</a>[]</code></div>
</dd>
<dt id="widl-MediaResource-getProperty"><code>getProperty</code></dt>
<dd>This operation allows to retrieve the value of a certain property. The
specific property is passed as an argument and a list of objects is
returned that hold the values according to the requested property. These
objects implement the <code>MAObject</code> interface, described in (<a
href="#maobject-interface"><b>MAObject interface</b></a>). Depending on
the requested property, the returned objects implement a different
sub-interface (inheriting from the <code>MAObject</code> interface).
Requesting for the title gives back an array of MAObjects implementing
the <code>Title</code> interface, requesting the creator results in
MAObjects implementing the <code>Creator</code> interface and so on.
These interfaces are described in section <a
href="#identification-interface"><b>3.5</b></a> to <a
href="#technical-interface"><b>3.12</b></a>.
<table class="parameters">
<tbody>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Nullable</th>
<th>Optional</th>
<th>Description</th>
</tr>
<tr>
<td class="prmName">propertyName</td>
<td class="prmType"><code><a>DOMString</a></code></td>
<td class="prmNullFalse"></td>
<td class="prmOptFalse"></td>
<td class="prmDesc">This argument identifies the property for which
the values need to be retrieved. Optional arguments allow to
refine the request </td>
</tr>
<tr>
<td class="prmName">fragment</td>
<td class="prmType"><code><a>DOMString</a></code></td>
<td class="prmNullFalse"></td>
<td class="prmOptTrue"></td>
<td class="prmDesc">This argument allows to identify the specific
media fragment for which the metadata is requested. This
parameter is <em title="optional"
class="rfc2119">optional</em>.</td>
</tr>
<tr>
<td class="prmName">sourceFormat</td>
<td class="prmType"><code><a>DOMString</a></code></td>
<td class="prmNullFalse"></td>
<td class="prmOptTrue"></td>
<td class="prmDesc">This argument identifies a specific metadata
format. If a metadata format is defined, only the metadata
available in the corresponding metadata format are retrieved.
This parameter is <em title="optional"
class="rfc2119">optional</em>.</td>
</tr>
<tr>
<td class="prmName">subtype</td>
<td class="prmType"><code><a>DOMString</a></code></td>
<td class="prmNullFalse"></td>
<td class="prmOptTrue"></td>
<td class="prmDesc">This argument identifies a subtype. Some
properties can be filtered on subtypes. This parameter is <em
title="optional" class="rfc2119">optional</em>.</td>
</tr>
<tr>
<td class="prmName">language</td>
<td class="prmType"><code><a>DOMString</a></code></td>
<td class="prmNullFalse"></td>
<td class="prmOptTrue"></td>
<td class="prmDesc">This argument allows to identify the language
of the metadata. Only if the metadata is available in the
specified language, the values are returned. This parameter is
<em title="optional" class="rfc2119">optional</em>.</td>
</tr>
</tbody>
</table>
<div>
<em>No exceptions.</em></div>
<div>
<em>Return type: </em><code><a class="idlType"
href="#idl-def-MAObject"><code>MAObject</code></a>[]</code></div>
</dd>
<dt
id="widl-MediaResource-getPropertyNamesWithValues"><code>getPropertyNamesWithValues</code></dt>
<dd>This operation allows to retrieve all property names for which metadata
is available. If this operation returns a property name, this means that
a call to the <code>getProperty</code> operation with the corresponding
property name will return at least one object.
<table class="parameters">
<tbody>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Nullable</th>
<th>Optional</th>
<th>Description</th>
</tr>
<tr>
<td class="prmName">sourceFormat</td>
<td class="prmType"><code><a>DOMString</a></code></td>
<td class="prmNullFalse"></td>
<td class="prmOptTrue"></td>
<td class="prmDesc">This argument identifies a specific metadata
format. If a metadata format is defined, only the metadata
available in the corresponding metadata format are retrieved.
This parameter is <em title="optional"
class="rfc2119">optional</em>.</td>
</tr>
<tr>
<td class="prmName">language</td>
<td class="prmType"><code><a>DOMString</a></code></td>
<td class="prmNullFalse"></td>
<td class="prmOptTrue"></td>
<td class="prmDesc">This argument allows to identify the language
of the metadata. Only if the metadata is available in the
specified language, the values are returned. This parameter is
<em title="optional" class="rfc2119">optional</em>.</td>
</tr>
<tr>
<td class="prmName">fragment</td>
<td class="prmType"><code><a>DOMString</a></code></td>
<td class="prmNullFalse"></td>
<td class="prmOptTrue"></td>
<td class="prmDesc">This argument allows to identify the specific
media fragment for which the metadata is requested. This
parameter is <em title="optional"
class="rfc2119">optional</em>.</td>
</tr>
</tbody>
</table>
<div>
<em>No exceptions.</em></div>
<div>
<em>Return type: </em><code><a>DOMString</a>[]</code></div>
</dd>
<dt
id="widl-MediaResource-getSourceFormatsWithValues"><code>getSourceFormatsWithValues</code></dt>
<dd>This operation allows to retrieve all source formats for which metadata
is available. If this operation returns a source format, this means that
a call to the <code>getProperty</code> operation with the corresponding
source format will return at least one object.
<table class="parameters">
<tbody>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Nullable</th>
<th>Optional</th>
<th>Description</th>
</tr>
<tr>
<td class="prmName">language</td>
<td class="prmType"><code><a>DOMString</a></code></td>
<td class="prmNullFalse"></td>
<td class="prmOptTrue"></td>
<td class="prmDesc">This argument allows to identify the language
of the metadata. Only if the metadata is available in the
specified language, the values are returned. This parameter is
<em title="optional" class="rfc2119">optional</em>.</td>
</tr>
</tbody>
</table>
<div>
<em>No exceptions.</em></div>
<div>
<em>Return type: </em><code><a>DOMString</a>[]</code></div>
</dd>
<dt
id="widl-MediaResource-selectMAResource"><code>selectMAResource</code></dt>
<dd>This operation allows to set the specific Media Resource and metadata
sources for which the API applies.
<table class="parameters">
<tbody>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Nullable</th>
<th>Optional</th>
<th>Description</th>
</tr>
<tr>
<td class="prmName">mediaResource</td>
<td class="prmType"><code><a>DOMString</a></code></td>
<td class="prmNullFalse"></td>
<td class="prmOptFalse"></td>
<td class="prmDesc">The mediaResource argument identifies the Media
Resource. The implementation of the API should try to find
relevant metadata sources for this Media Resource </td>
</tr>
<tr>
<td class="prmName">metadataSources</td>
<td class="prmType"><code><a class="idlType"
href="#idl-def-MetadataSource"><code>MetadataSource</code></a>[]</code></td>
<td class="prmNullFalse"></td>
<td class="prmOptTrue"></td>
<td class="prmDesc">This argument is an array of objects, each
implementing the MetadataSource interface. This interface holds
an uri identifying the metadata source (metadataSource) and the
name of the actual metadata format (sourceFormat). This parameter
is <em title="optional" class="rfc2119">optional</em>.</td>
</tr>
</tbody>
</table>
<div>
<em>No exceptions.</em></div>
<div>
<em>Return type: </em><code><a>boolean</a></code></div>
</dd>
</dl>
</div>
</div>
<div class="section" id="metadatasource-interface">
<h3 id="x3.2-metadatasource-interface"><span class="secno">3.2
</span><code>MetadataSource</code> interface</h3>
<p><code>MetadataSource</code> interface is used to identify other metadata
sources.</p>
<pre class="idl"><span class="idlInterface" id="idl-def-MetadataSource">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">MetadataSource</span> {
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-MetadataSource-metadataSource">metadataSource</a></span>;</span>
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-MetadataSource-sourceFormat">sourceFormat</a></span>;</span>
};</span></pre>
<div class="section" id="attributes">
<h4 id="x3.2.1-attributes"><span class="secno">3.2.1 </span>Attributes</h4>
<dl class="attributes">
<dt id="widl-MetadataSource-metadataSource"><code>metadataSource</code> of
type <span class="idlAttrType"><a>DOMString</a></span></dt>
<dd>An URI identifying the metadata source.
<div>
<em>No exceptions.</em></div>
</dd>
<dt id="widl-MetadataSource-sourceFormat"><code>sourceFormat</code> of type
<span class="idlAttrType"><a>DOMString</a></span></dt>
<dd>The name of the actual metadata format.
<div>
<em>No exceptions.</em></div>
</dd>
</dl>
</div>
</div>
<div class="section" id="language--interface">
<h3 id="x3.3-language--interface"><span class="secno">3.3 </span><code>Language
</code> interface</h3>
<p><code>Language </code> interface is used to identify the language of the
metadata.</p>
<pre class="idl"><span class="idlInterface" id="idl-def-Language">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">Language</span> {
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-Language-language">language</a></span>;</span>
};</span></pre>
<div class="section" id="attributes-1">
<h4 id="x3.3.1-attributes"><span class="secno">3.3.1 </span>Attributes</h4>
<dl class="attributes">
<dt id="widl-Language-language"><code>language</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute holds the language of the metadata.
<div>
<em>No exceptions.</em></div>
</dd>
</dl>
</div>
</div>
<div class="section" id="maobject-interface">
<h3 id="x3.4-maobject-interface"><span class="secno">3.4
</span><code>MAObject</code> interface</h3>
<p><code>MAObject</code> interface is used as the return type of
<code>MediaResource.getProperty</code> method. This is used to hold the values
of the requested property. Depending on the requested property, these objects
implement a different interface. </p>
<pre class="idl"><span class="idlInterface" id="idl-def-MAObject">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">MAObject</span> {
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-MAObject-unstructuredValue">unstructuredValue</a></span>;</span>
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-MAObject-uri">uri</a></span>;</span>
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-MAObject-sourceFormat">sourceFormat</a></span>;</span>
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-MAObject-fragmentIdentifier">fragmentIdentifier</a></span>;</span>
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-MAObject-mappingType">mappingType</a></span>;</span>
};</span></pre>
<div class="section" id="attributes-2">
<h4 id="x3.4.1-attributes"><span class="secno">3.4.1 </span>Attributes</h4>
<dl class="attributes">
<dt id="widl-MAObject-fragmentIdentifier"><code>fragmentIdentifier</code> of
type <span class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute determines the fragment for which the metadata is
relevant.
<div>
<em>No exceptions.</em></div>
</dd>
<dt id="widl-MAObject-mappingType"><code>mappingType</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute specifies the kind of mapping as discussed in <a
href="http://www.w3.org/TR/mediaont-10/#semantic-level-mappings">the
semantic level mappings</a>.
<div>
<em>No exceptions.</em></div>
</dd>
<dt id="widl-MAObject-sourceFormat"><code>sourceFormat</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute allows to specify the metadata source from which the
metadata was retrieved.
<div>
<em>No exceptions.</em></div>
</dd>
<dt id="widl-MAObject-unstructuredValue"><code>unstructuredValue</code> of
type <span class="idlAttrType"><a>DOMString</a></span></dt>
<dd>If it is not clear how a certain value for a property should be
structured, this attribute allows to describe the value in plain text.
<div>
<em>No exceptions.</em></div>
</dd>
<dt id="widl-MAObject-uri"><code>uri</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute is provided which should hold an URI. This can for
example be used to represent labels as URIs.
<div>
<em>No exceptions.</em></div>
</dd>
</dl>
</div>
</div>
<div class="section" id="identification-interface">
<h3 id="x3.5-identification-properties"><span class="secno">3.5
</span>Identification Properties</h3>
<div class="section" id="identifier--interface">
<h4 id="x3.5.1-identifier--interface"><span class="secno">3.5.1
</span><code>Identifier </code> interface</h4>
<p><code>Identifier </code> interface is used as the specific return type of
<code>MediaResource.getProperty</code> method which has "Identifier" as a value
of <code>propertyName</code> parameter.</p>
<pre class="idl"><span class="idlInterface" id="idl-def-Identifier">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">Identifier</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MAObject"><code>MAObject</code></a></span> {
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-Identifier-value">value</a></span>;</span>
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-Identifier-type">type</a></span>;</span>
};</span></pre>
<div class="section" id="attributes-3">
<h5 id="x3.5.1.1-attributes"><span class="secno">3.5.1.1 </span>Attributes</h5>
<dl class="attributes">
<dt id="widl-Identifier-type"><code>type</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute holds the type of the identifier, which can be filtered
on in the <code>getProperty</code> operation. Possible values are " UMID"
and "ISAN".
<div>
<em>No exceptions.</em></div>
</dd>
<dt id="widl-Identifier-value"><code>value</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute should represent a URI identifying the resource.
<div>
<em>No exceptions.</em></div>
</dd>
</dl>
</div>
<p>Example in JavaScript is as below:</p>
<pre class="example sh_javascript sh_sourceCode">image <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementsByTagName</span><span class="sh_symbol">(</span><span class="sh_string">"img"</span><span class="sh_symbol">)[</span><span class="sh_number">0</span><span class="sh_symbol">];</span>
id <span class="sh_symbol">=</span> image<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"identifier"</span><span class="sh_symbol">);</span>
<span class="sh_comment">/*Resulting in:</span>
<span class="sh_comment">id[0].value = "</span><a href="http://www.w3.org/2008/WebVideo/Annotations/wiki/Image" class="sh_url">http://www.w3c.org/2008/WebVideo/Annotations/wiki/Image</a><span class="sh_comment">:MAWG-Stockholm-20090626.JPG"</span>
<span class="sh_comment">id[0].type = "URI"</span>
<span class="sh_comment">id[1].value= "ISAN 0000-3BAB-9352-0000-G-0000-0000-Q"</span>
<span class="sh_comment">id[1].type="ISAN"</span>
<span class="sh_comment">id[2].value= "urn:uuid:36a87260-1102-11df-8a39-0800200c9a66"</span>
<span class="sh_comment">id[2].type="UUID"</span>
<span class="sh_comment">*/</span></pre>
<p>Usage as a service:</p>
<ul>
<li><p>Request: http://example.com/my-media-resource/?ma-query=identifier</p>
</li>
<li><p>Response (JSON format): { "identifier" : [ {"value" :
"http://www.w3c.org/2008/WebVideo/Annotations/wiki/Image:MAWG-Stockholm-20090626.JPG",
"type" : "URI" } , { "value" : "ISAN 0000-3BAB-9352-0000-G-0000-0000-Q",
"type" : "ISAN" }, { "value" :
"urn:uuid:36a87260-1102-11df-8a39-0800200c9a66", "type" : "UUID" } ] }</p>
</li>
</ul>
</div>
<div class="section" id="title--interface">
<h4 id="x3.5.2-title--interface"><span class="secno">3.5.2 </span><code>Title
</code> interface</h4>
<p><code>Title </code> interface is used as the specific return type of
<code>MediaResource.getProperty</code> method which has "Title" as a value of
<code>propertyName</code> parameter.</p>
<pre class="idl"><span class="idlInterface" id="idl-def-Title">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">Title</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MAObject"><code>MAObject</code></a></span>, <span class="idlSuperclass"><a class="idlType" href="#idl-def-Language"><code>Language</code></a></span> {
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-Title-value">value</a></span>;</span>
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-Title-type">type</a></span>;</span>
};</span></pre>
<div class="section" id="attributes-4">
<h5 id="x3.5.2.1-attributes"><span class="secno">3.5.2.1 </span>Attributes</h5>
<dl class="attributes">
<dt id="widl-Title-type"><code>type</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute contains the type of the title, which can be filtered on
in the <code>getProperty</code> operation.
<div>
<em>No exceptions.</em></div>
</dd>
<dt id="widl-Title-value"><code>value</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute should hold the title as a plain string.
<div>
<em>No exceptions.</em></div>
</dd>
</dl>
</div>
<p>Example in JavaScript is as below:</p>
<pre class="example sh_javascript sh_sourceCode">song <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementsByTagName</span><span class="sh_symbol">(</span><span class="sh_string">"audio"</span><span class="sh_symbol">)[</span><span class="sh_number">0</span><span class="sh_symbol">];</span>
title <span class="sh_symbol">=</span> song<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"title"</span><span class="sh_symbol">);</span>
<span class="sh_comment">/*Resulting in:</span>
<span class="sh_comment">title[0].value = "Artificial Horizon"</span>
<span class="sh_comment">title[0].type = "Album title"</span>
<span class="sh_comment">*/</span></pre>
<p>Usage as a service:</p>
<ul>
<li><p>Request: http://example.com/my-media-resource/?ma-query=title</p>
</li>
<li><p>Response (JSON format): { "title" : { "value" : "Artificial Horizon" ,
"type" : "Album title" } }</p>
</li>
</ul>
</div>
<div class="section" id="language--interface-1">
<h4 id="x3.5.3-language--interface"><span class="secno">3.5.3
</span><code>Language </code> interface</h4>
<p><code>Language </code> interface is used as the specific return type of
<code>MediaResource.getProperty</code> method which has "Language" as a value
of <code>propertyName</code> parameter. Recommended best practice is to use BCP
47 [<a href="#bib-BCP-47" rel="biblioentry" class="bibref">BCP-47</a>]. </p>
<pre class="idl"><span class="idlInterface" id="idl-def-Language2">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">Language</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MAObject"><code>MAObject</code></a></span> {
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-Language-value">value</a></span>;</span>
};</span></pre>
<div class="section" id="attributes-5">
<h5 id="x3.5.3.1-attributes"><span class="secno">3.5.3.1 </span>Attributes</h5>
<dl class="attributes">
<dt id="widl-Language-value"><code>value</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute should represent the language as a plain string.
<div>
<em>No exceptions.</em></div>
</dd>
</dl>
</div>
<p>Example in JavaScript is as below:</p>
<pre class="example sh_javascript sh_sourceCode">video <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementsByTagName</span><span class="sh_symbol">(</span><span class="sh_string">"video"</span><span class="sh_symbol">)[</span><span class="sh_number">0</span><span class="sh_symbol">];</span>
language <span class="sh_symbol">=</span> video<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"language"</span><span class="sh_symbol">);</span>
<span class="sh_comment">/*Resulting in:</span>
<span class="sh_comment">language[0].value = "en-us"</span>
<span class="sh_comment">*/</span></pre>
<p>Usage as a service:</p>
<ul>
<li><p>Request: http://example.com/my-media-resource/?ma-query=language</p>
</li>
<li><p>Response (JSON format): { "language" : { "value" : "en-us" } }</p>
</li>
</ul>
</div>
<div class="section" id="locator--interface">
<h4 id="x3.5.4-locator--interface"><span class="secno">3.5.4
</span><code>Locator </code> interface</h4>
<p><code>Locator </code> interface is used as the specific return type of
<code>MediaResource.getProperty</code> method which has "Locator" as a value of
<code>propertyName</code> parameter.</p>
<pre class="idl"><span class="idlInterface" id="idl-def-Locator">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">Locator</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MAObject"><code>MAObject</code></a></span> {
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-Locator-value">value</a></span>;</span>
};</span></pre>
<div class="section" id="attributes-6">
<h5 id="x3.5.4.1-attributes"><span class="secno">3.5.4.1 </span>Attributes</h5>
<dl class="attributes">
<dt id="widl-Locator-value"><code>value</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute should hold the URI.
<div>
<em>No exceptions.</em></div>
</dd>
</dl>
</div>
<p>Example in JavaScript is as below:</p>
<pre class="example sh_javascript sh_sourceCode">image <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementsByTagName</span><span class="sh_symbol">(</span><span class="sh_string">"img"</span><span class="sh_symbol">)[</span><span class="sh_number">0</span><span class="sh_symbol">];</span>
locator <span class="sh_symbol">=</span> image<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"locator"</span><span class="sh_symbol">);</span>
<span class="sh_comment">/*Resulting in:</span>
<span class="sh_comment">locator[0].value = "</span><a href="http://www.w3.org/2008/WebVideo/Annotations/wiki/images/9/93/MAWG-Stockholm-20090626.JPG" class="sh_url">http://www.w3.org/2008/WebVideo/Annotations/wiki/images/9/93/MAWG-Stockholm-20090626.JPG</a><span class="sh_comment">"</span>
<span class="sh_comment">*/</span></pre>
<p>Usage as a service:</p>
<ul>
<li><p>Request: http://example.com/my-media-resource/?ma-query=locator</p>
</li>
<li><p>Response (JSON format): { "locator" : { "value" :
"http://www.w3.org/2008/WebVideo/Annotations/wiki/images/9/93/MAWG-Stockholm-20090626.JPG"
} }</p>
</li>
</ul>
</div>
</div>
<div class="section" id="creation-properties">
<h3 id="x3.6-creation-properties"><span class="secno">3.6 </span>Creation
Properties</h3>
<div class="section" id="contributor--interface">
<h4 id="x3.6.1-contributor--interface"><span class="secno">3.6.1
</span><code>Contributor </code> interface</h4>
<p><code>Contributor </code> interface is used as the specific return type of
<code>MediaResource.getProperty</code> method which has "Contributor" as a
value of <code>propertyName</code> parameter.</p>
<pre class="idl"><span class="idlInterface" id="idl-def-Contributor">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">Contributor</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MAObject"><code>MAObject</code></a></span> {
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-Contributor-id">id</a></span>;</span>
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-Contributor-role">role</a></span>;</span>
};</span></pre>
<div class="section" id="attributes-7">
<h5 id="x3.6.1.1-attributes"><span class="secno">3.6.1.1 </span>Attributes</h5>
<dl class="attributes">
<dt id="widl-Contributor-id"><code>id</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute identifies the contributor.
<div>
<em>No exceptions.</em></div>
</dd>
<dt id="widl-Contributor-role"><code>role</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute defines the role, which can be filtered on in the
<code>getProperty</code> operation. For the latter a number of suggested
terms are defined:
<ul>
<li><p>editor (EBU 11.1)</p>
</li>
<li><p>actor (EBU 25.9)</p>
</li>
<li><p>composer</p>
</li>
<li><p>featured_in</p>
</li>
<li><p>cinematographer</p>
</li>
<li><p>director</p>
</li>
<li><p>musicproducer</p>
</li>
<li><p>producer</p>
</li>
<li><p>screenplayer</p>
</li>
<li><p>writer</p>
</li>
<li><p>distributor (company)</p>
</li>
<li><p>production company</p>
</li>
</ul>
<div>
<em>No exceptions.</em></div>
</dd>
</dl>
</div>
<p>Example in JavaScript is as below:</p>
<pre class="example sh_javascript sh_sourceCode">video <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementsByTagName</span><span class="sh_symbol">(</span><span class="sh_string">"video"</span><span class="sh_symbol">)[</span><span class="sh_number">0</span><span class="sh_symbol">];</span>
contributor <span class="sh_symbol">=</span> video<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"contributor"</span><span class="sh_symbol">);</span>
<span class="sh_comment">/*Resulting in:</span>
<span class="sh_comment">contributor[0].id = "</span><a href="http://individuals.example.com/Contributor1" class="sh_url">http://individuals.example.com/Contributor1</a><span class="sh_comment">"</span>
<span class="sh_comment">contributor[0].role = "editor"</span>
<span class="sh_comment">*/</span></pre>
<p>Usage as a service:</p>
<ul>
<li><p>Request:
http://example.com/my-media-resource/?ma-query=contributors</p>
</li>
<li><p>Response (JSON format): { "contributors" : { "id" :
"http://individuals.example.com/Contributor1", "role" : "editor" } }</p>
</li>
</ul>
</div>
<div class="section" id="creator--interface">
<h4 id="x3.6.2-creator--interface"><span class="secno">3.6.2
</span><code>Creator </code> interface</h4>
<p><code>Creator </code> interface is used as the specific return type of
<code>MediaResource.getProperty</code> method which has "Creator" as a value of
<code>propertyName</code> parameter.</p>
<pre class="idl"><span class="idlInterface" id="idl-def-Creator">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">Creator</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MAObject"><code>MAObject</code></a></span> {
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-Creator-value">value</a></span>;</span>
};</span></pre>
<div class="section" id="attributes-8">
<h5 id="x3.6.2.1-attributes"><span class="secno">3.6.2.1 </span>Attributes</h5>
<dl class="attributes">
<dt id="widl-Creator-value"><code>value</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute should hold an identifier for an author.
<div>
<em>No exceptions.</em></div>
</dd>
</dl>
</div>
<p>Example in JavaScript is as below:</p>
<pre class="example sh_javascript sh_sourceCode">video <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementsByTagName</span><span class="sh_symbol">(</span><span class="sh_string">"video"</span><span class="sh_symbol">)[</span><span class="sh_number">0</span><span class="sh_symbol">];</span>
creator <span class="sh_symbol">=</span> video<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"creator"</span><span class="sh_symbol">);</span>
<span class="sh_comment">/*Resulting in:</span>
<span class="sh_comment">creator[0].value = "</span><a href="http://individuals.example.com/Author1" class="sh_url">http://individuals.example.com/Author1</a><span class="sh_comment">"</span>
<span class="sh_comment">*/</span></pre>
<p>Usage as a service:</p>
<ul>
<li><p>Request: http://example.com/my-media-resource/?ma-query=creator</p>
</li>
<li><p>Response (JSON format): { "creator" : { "value" :
"http://individuals.example.com/Author1" } }</p>
</li>
</ul>
</div>
<div class="section" id="createdate--interface">
<h4 id="x3.6.3-createdate--interface"><span class="secno">3.6.3
</span><code>CreateDate </code> interface</h4>
<p><code>CreateDate </code> interface is used as the specific return type of
<code>MediaResource.getProperty</code> method which has "CreateDate" as a value
of <code>propertyName</code> parameter.</p>
<pre class="idl"><span class="idlInterface" id="idl-def-Date">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">Date</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MAObject"><code>MAObject</code></a></span> {
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-Date-date">date</a></span>;</span>
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-Date-type">type</a></span>;</span>
};</span></pre>
<div class="section" id="attributes-9">
<h5 id="x3.6.3.1-attributes"><span class="secno">3.6.3.1 </span>Attributes</h5>
<dl class="attributes">
<dt id="widl-Date-date"><code>date</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>The exact format of this attribute is currently undefined.
<div>
<em>No exceptions.</em></div>
</dd>
<dt id="widl-Date-type"><code>type</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute define the particular category of creation date (e.g.
"release date", "date recorded" and "date edited".), which can be
filtered on in the <code>getProperty</code> operation.
<div>
<em>No exceptions.</em></div>
</dd>
</dl>
</div>
<p>Example in JavaScript is as below:</p>
<pre class="example sh_javascript sh_sourceCode">video <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementsByTagName</span><span class="sh_symbol">(</span><span class="sh_string">"video"</span><span class="sh_symbol">)[</span><span class="sh_number">0</span><span class="sh_symbol">];</span>
createdate <span class="sh_symbol">=</span> video<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"createdate"</span><span class="sh_symbol">);</span>
<span class="sh_comment">/*Resulting in:</span>
<span class="sh_comment">createdate[0].date = "2009-06-26T15:30:00"</span>
<span class="sh_comment">createdate[0].type = "date recorded"</span>
<span class="sh_comment">*/</span></pre>
<p>Usage as a service:</p>
<ul>
<li><p>Request: http://example.com/my-media-resource/?ma-query=createDate</p>
</li>
<li><p>Response (JSON format): { "createDate" : { "date":
"2009-06-26T15:30:00", "type" : "date recorded" } }</p>
</li>
</ul>
</div>
<div class="section" id="location--interface">
<h4 id="x3.6.4-location--interface"><span class="secno">3.6.4
</span><code>Location </code> interface</h4>
<p><code>Location </code> interface is used as the specific return type of
<code>MediaResource.getProperty</code> method which has "Location" as a value
of <code>propertyName</code> parameter.</p>
<pre class="idl"><span class="idlInterface" id="idl-def-Location">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">Location</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MAObject"><code>MAObject</code></a></span>, <span class="idlSuperclass"><a class="idlType" href="#idl-def-Language"><code>Language</code></a></span> {
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-Location-name">name</a></span>;</span>
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>Float</a></span> <span class="idlAttrName"><a href="#widl-Location-longitude">longitude</a></span>;</span>
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>Float</a></span> <span class="idlAttrName"><a href="#widl-Location-latitude">latitude</a></span>;</span>
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>Float</a></span> <span class="idlAttrName"><a href="#widl-Location-altitude">altitude</a></span>;</span>
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-Location-system">system</a></span>;</span>
};</span></pre>
<div class="section" id="attributes-10">
<h5 id="x3.6.4.1-attributes"><span class="secno">3.6.4.1 </span>Attributes</h5>
<dl class="attributes">
<dt id="widl-Location-altitude"><code>altitude</code> of type <span
class="idlAttrType"><a>Float</a></span></dt>
<dd>This attribute holds the altitude value from system defined in
<code>system</code>.
<div>
<em>No exceptions.</em></div>
</dd>
<dt id="widl-Location-latitude"><code>latitude</code> of type <span
class="idlAttrType"><a>Float</a></span></dt>
<dd>This attribute holds the latitude value from system defined in
<code>system</code>.
<div>
<em>No exceptions.</em></div>
</dd>
<dt id="widl-Location-longitude"><code>longitude</code> of type <span
class="idlAttrType"><a>Float</a></span></dt>
<dd>This attribute holds the longitude value from system defined in
<code>system</code>.
<div>
<em>No exceptions.</em></div>
</dd>
<dt id="widl-Location-name"><code>name</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute holds a free text name of the location.
<div>
<em>No exceptions.</em></div>
</dd>
<dt id="widl-Location-system"><code>system</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute holds the name of location system.
<div>
<em>No exceptions.</em></div>
</dd>
</dl>
</div>
<p>Example in JavaScript is as below:</p>
<pre class="example sh_javascript sh_sourceCode">video <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementsByTagName</span><span class="sh_symbol">(</span><span class="sh_string">"video"</span><span class="sh_symbol">)[</span><span class="sh_number">0</span><span class="sh_symbol">];</span>
location <span class="sh_symbol">=</span> video<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"location"</span><span class="sh_symbol">);</span>
<span class="sh_comment">/*Resulting in:</span>
<span class="sh_comment">location[0].name = "San Jose"</span>
<span class="sh_comment">location[0].longitude = 37.33986481118008</span>
<span class="sh_comment">location[0].latitude = -121.88507080078125</span>
<span class="sh_comment">location[0].altitude = 0</span>
<span class="sh_comment">location[0].system = "GPS"</span>
<span class="sh_comment">*/</span></pre>
<p>Usage as a service:</p>
<ul>
<li><p>Request: http://example.com/my-media-resource/?ma-query=location</p>
</li>
<li><p>Response (JSON format): { "location" : { "name" : "San Jose",
"longitude" : 37.33986481118008, "latitude" : -121.88507080078125,
"altitude" : 0, system : "GPS" } }</p>
</li>
</ul>
</div>
</div>
<div class="section" id="content-properties">
<h3 id="x3.7-content-properties"><span class="secno">3.7 </span>Content
Properties</h3>
<div class="section" id="description--interface">
<h4 id="x3.7.1-description--interface"><span class="secno">3.7.1
</span><code>Description </code> interface</h4>
<p><code>Description </code> interface is used as the specific return type of
<code>MediaResource.getProperty</code> method which has "Description" as a
value of <code>propertyName</code> parameter.</p>
<pre class="idl"><span class="idlInterface" id="idl-def-Description">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">Description</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MAObject"><code>MAObject</code></a></span>, <span class="idlSuperclass"><a class="idlType" href="#idl-def-Language"><code>Language</code></a></span> {
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-Description-value">value</a></span>;</span>
};</span></pre>
<div class="section" id="attributes-11">
<h5 id="x3.7.1.1-attributes"><span class="secno">3.7.1.1 </span>Attributes</h5>
<dl class="attributes">
<dt id="widl-Description-value"><code>value</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute should hold a description of the content of the media
resource.
<div>
<em>No exceptions.</em></div>
</dd>
</dl>
</div>
<pre class="example sh_javascript sh_sourceCode">image <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementsByTagName</span><span class="sh_symbol">(</span><span class="sh_string">"img"</span><span class="sh_symbol">)[</span><span class="sh_number">0</span><span class="sh_symbol">];</span>
description <span class="sh_symbol">=</span> image<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"description"</span><span class="sh_symbol">);</span>
<span class="sh_comment">/*Resulting in:</span>
<span class="sh_comment">description[0].value = "Group picture of the </span><acronym title="World Wide Web Consortium"><span class="sh_comment">W3C</span></acronym><span class="sh_comment"> Media Annotations WG at the face-to-face meeting in Stockholm."</span>
<span class="sh_comment">*/</span></pre>
<p>Usage as a service:</p>
<ul>
<li><p>Request: http://example.com/my-media-resource/?ma-query=description</p>
</li>
<li><p>Response (JSON format): { "description" : { "value" : "Group picture
of the <acronym title="World Wide Web Consortium">W3C</acronym> Media
Annotations WG at the face-to-face meeting in Stockholm." } }</p>
</li>
</ul>
</div>
<div class="section" id="keyword-interface">
<h4 id="x3.7.2-keyword-interface"><span class="secno">3.7.2
</span><code>Keyword</code> interface</h4>
<p><code>Keyword</code> interface is used as the specific return type of
<code>MediaResource.getProperty</code> method which has "Keyword" as a value of
<code>propertyName</code> parameter.</p>
<pre class="idl"><span class="idlInterface" id="idl-def-Keyword">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">Keyword</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MAObject"><code>MAObject</code></a></span>, <span class="idlSuperclass"><a class="idlType" href="#idl-def-Language"><code>Language</code></a></span> {
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-Keyword-value">value</a></span>;</span>
};</span></pre>
<div class="section" id="attributes-12">
<h5 id="x3.7.2.1-attributes"><span class="secno">3.7.2.1 </span>Attributes</h5>
<dl class="attributes">
<dt id="widl-Keyword-value"><code>value</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute should hold one keyword.
<div>
<em>No exceptions.</em></div>
</dd>
</dl>
</div>
<pre class="example sh_javascript sh_sourceCode">image <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementsByTagName</span><span class="sh_symbol">(</span><span class="sh_string">"img"</span><span class="sh_symbol">)[</span><span class="sh_number">0</span><span class="sh_symbol">];</span>
keyword <span class="sh_symbol">=</span> image<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"keyword"</span><span class="sh_symbol">);</span>
<span class="sh_comment">/*Resulting in:</span>
<span class="sh_comment">keyword[0].value = "</span><acronym title="World Wide Web Consortium"><span class="sh_comment">W3C</span></acronym><span class="sh_comment"> Media Annotations WG"</span>
<span class="sh_comment">keyword[1].value = "meeting"</span>
<span class="sh_comment">keyword[2].value = "group picture"</span>
<span class="sh_comment">*/</span></pre>
<p>Usage as a service:</p>
<ul>
<li><p>Request: http://example.com/my-media-resource/?ma-query=keyword</p>
</li>
<li><p>Response (JSON format): { "keyword" : [ { "value" : "<acronym
title="World Wide Web Consortium">W3C</acronym> Media Annotations WG" }, {
"value" : "meeting" }, { "value" : "group picture" } ] }</p>
</li>
</ul>
</div>
<div class="section" id="genre-interface">
<h4 id="x3.7.3-genre-interface"><span class="secno">3.7.3
</span><code>Genre</code> interface</h4>
<p><code>Genre</code> interface is used as the specific return type of
<code>MediaResource.getProperty</code> method which has "Genre" as a value of
<code>propertyName</code> parameter.</p>
<pre class="idl"><span class="idlInterface" id="idl-def-Genre">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">Genre</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MAObject"><code>MAObject</code></a></span>, <span class="idlSuperclass"><a class="idlType" href="#idl-def-Language"><code>Language</code></a></span> {
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-Genre-value">value</a></span>;</span>
};</span></pre>
<div class="section" id="attributes-13">
<h5 id="x3.7.3.1-attributes"><span class="secno">3.7.3.1 </span>Attributes</h5>
<dl class="attributes">
<dt id="widl-Genre-value"><code>value</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute should represent the genre of the media resource.
<div>
<em>No exceptions.</em></div>
</dd>
</dl>
</div>
<pre class="example sh_javascript sh_sourceCode">image <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementsByTagName</span><span class="sh_symbol">(</span><span class="sh_string">"img"</span><span class="sh_symbol">)[</span><span class="sh_number">0</span><span class="sh_symbol">];</span>
genre <span class="sh_symbol">=</span> image<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"genre"</span><span class="sh_symbol">);</span>
<span class="sh_comment">/*Resulting in:</span>
<span class="sh_comment">genre[0].value = "Work"</span>
<span class="sh_comment">*/</span></pre>
<p>Usage as a service:</p>
<ul>
<li><p>Request: http://example.com/my-media-resource/?ma-query=genre</p>
</li>
<li><p>Response (JSON format): { "genre" : { "value" : "Work" } }</p>
</li>
</ul>
</div>
<div class="section" id="rating-interface">
<h4 id="x3.7.4-rating-interface"><span class="secno">3.7.4
</span><code>Rating</code> interface</h4>
<p><code>Rating</code> interface is used as the specific return type of
<code>MediaResource.getProperty</code> method which has "Rating" as a value of
<code>propertyName</code> parameter.</p>
<pre class="idl"><span class="idlInterface" id="idl-def-Rating">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">Rating</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MAObject"><code>MAObject</code></a></span>, <span class="idlSuperclass"><a class="idlType" href="#idl-def-Language"><code>Language</code></a></span> {
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-Rating-issuer">issuer</a></span>;</span>
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>short</a></span> <span class="idlAttrName"><a href="#widl-Rating-value">value</a></span>;</span>
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>short</a></span> <span class="idlAttrName"><a href="#widl-Rating-minimum">minimum</a></span>;</span>
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>short</a></span> <span class="idlAttrName"><a href="#widl-Rating-maximum">maximum</a></span>;</span>
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-Rating-type">type</a></span>;</span>
};</span></pre>
<div class="section" id="attributes-14">
<h5 id="x3.7.4.1-attributes"><span class="secno">3.7.4.1 </span>Attributes</h5>
<dl class="attributes">
<dt id="widl-Rating-issuer"><code>issuer</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute identifies the rating person or organization
<div>
<em>No exceptions.</em></div>
</dd>
<dt id="widl-Rating-maximum"><code>maximum</code> of type <span
class="idlAttrType"><a>short</a></span></dt>
<dd>This attribute specifies the maximum rating.
<div>
<em>No exceptions.</em></div>
</dd>
<dt id="widl-Rating-minimum"><code>minimum</code> of type <span
class="idlAttrType"><a>short</a></span></dt>
<dd>This attribute specifies the minimum rating.
<div>
<em>No exceptions.</em></div>
</dd>
<dt id="widl-Rating-type"><code>type</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute specifies the type of the rating, which can be filtered
on in the <code>getProperty</code> operation. Examples are "Review
Rating", "MPAA", "Personal Rating".
<div>
<em>No exceptions.</em></div>
</dd>
<dt id="widl-Rating-value"><code>value</code> of type <span
class="idlAttrType"><a>short</a></span></dt>
<dd>This attribute indicates the average rating.
<div>
<em>No exceptions.</em></div>
</dd>
</dl>
</div>
<pre class="example sh_javascript sh_sourceCode">image <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementsByTagName</span><span class="sh_symbol">(</span><span class="sh_string">"img"</span><span class="sh_symbol">)[</span><span class="sh_number">0</span><span class="sh_symbol">];</span>
rating <span class="sh_symbol">=</span> image<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"rating"</span><span class="sh_symbol">);</span>
<span class="sh_comment">/*Resulting in:</span>
<span class="sh_comment">rating[0].issuer = "</span><a href="http://individuals.example.com/ChrisPoppe" class="sh_url">http://individuals.example.com/ChrisPoppe</a><span class="sh_comment">"</span>
<span class="sh_comment">rating[0].value = 10.0</span>
<span class="sh_comment">rating[0].minimum = 0</span>
<span class="sh_comment">rating[0].maximum = 10.0</span>
<span class="sh_comment">rating[0].type = "Personal Rating"</span>
<span class="sh_comment">*/</span></pre>
<p>Usage as a service:</p>
<ul>
<li><p>Request: http://example.com/my-media-resource/?ma-query=rating</p>
</li>
<li><p>Response (JSON format): "rating" : { "rating" : { "issuer" :
"http://individuals.example.com/ChrisPoppe", "value" : 10.0, "minimum" : 0,
"maximum" : 10.0, "type" : "Personal Rating" } }</p>
</li>
</ul>
</div>
</div>
<div class="section" id="relational-properties">
<h3 id="x3.8-relational-properties"><span class="secno">3.8 </span>Relational
Properties</h3>
<div class="section" id="relation-interface">
<h4 id="x3.8.1-relation-interface"><span class="secno">3.8.1
</span><code>Relation</code> interface</h4>
<p><code>Relation</code> interface is used as the specific return type of
<code>MediaResource.getProperty</code> method which has "Relation" as a value
of <code>propertyName</code> parameter.</p>
<pre class="idl"><span class="idlInterface" id="idl-def-Relation">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">Relation</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MAObject"><code>MAObject</code></a></span> {
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-Relation-id">id</a></span>;</span>
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-Relation-relationship">relationship</a></span>;</span>
};</span></pre>
<div class="section" id="attributes-15">
<h5 id="x3.8.1.1-attributes"><span class="secno">3.8.1.1 </span>Attributes</h5>
<dl class="attributes">
<dt id="widl-Relation-id"><code>id</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute identifies the entitiy.
<div>
<em>No exceptions.</em></div>
</dd>
<dt id="widl-Relation-relationship"><code>relationship</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute specifies textual description of the relationship, which
can be filtered on in the <code>getProperty</code> operation. For the
latter a number of suggested terms are defined:
<div>
<em>No exceptions.</em></div>
</dd>
</dl>
</div>
<pre class="example sh_javascript sh_sourceCode">image <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementsByTagName</span><span class="sh_symbol">(</span><span class="sh_string">"img"</span><span class="sh_symbol">)[</span><span class="sh_number">0</span><span class="sh_symbol">];</span>
relation <span class="sh_symbol">=</span> image<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"relation"</span><span class="sh_symbol">);</span>
<span class="sh_comment">/*Resulting in:</span>
<span class="sh_comment">relation[0].id = "</span><a href="http://www.w3.org/2008/WebVideo/Annotations/wiki/Image" class="sh_url">http://www.w3.org/2008/WebVideo/Annotations/wiki/Image</a><span class="sh_comment">:MAWG-Stockholm-20090626_thumb.JPG"</span>
<span class="sh_comment">relation[0].relationship = "re-edit"</span>
<span class="sh_comment">*/</span></pre>
<p>Usage as a service:</p>
<ul>
<li><p>Request: http://example.com/my-media-resource/?ma-query=relation</p>
</li>
<li><p>Response (JSON format): { "relation" : { "id" :
"http://www.w3.org/2008/WebVideo/Annotations/wiki/Image:MAWG-Stockholm-20090626_thumb.JPG"
, "relationship" : "re-edit" } }</p>
</li>
</ul>
</div>
<div class="section" id="collection-interface">
<h4 id="x3.8.2-collection-interface"><span class="secno">3.8.2
</span><code>Collection</code> interface</h4>
<p><code>Collection</code> interface is used as the specific return type of
<code>MediaResource.getProperty</code> method which has "Collection" as a value
of <code>propertyName</code> parameter.</p>
<pre class="idl"><span class="idlInterface" id="idl-def-Collection">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">Collection</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MAObject"><code>MAObject</code></a></span>, <span class="idlSuperclass"><a class="idlType" href="#idl-def-Language"><code>Language</code></a></span> {
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-Collection-value">value</a></span>;</span>
};</span></pre>
<div class="section" id="attributes-16">
<h5 id="x3.8.2.1-attributes"><span class="secno">3.8.2.1 </span>Attributes</h5>
<dl class="attributes">
<dt id="widl-Collection-value"><code>value</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute should hold the name of the collection from which the
media resource originates.
<div>
<em>No exceptions.</em></div>
</dd>
</dl>
</div>
<pre class="example sh_javascript sh_sourceCode">image <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementsByTagName</span><span class="sh_symbol">(</span><span class="sh_string">"img"</span><span class="sh_symbol">)[</span><span class="sh_number">0</span><span class="sh_symbol">];</span>
collection <span class="sh_symbol">=</span> image<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"collection"</span><span class="sh_symbol">);</span>
<span class="sh_comment">/*Resulting in:</span>
<span class="sh_comment">collection[0].value = "My Work Pictures"</span>
<span class="sh_comment">*/</span></pre>
<p>Usage as a service:</p>
<ul>
<li><p>Request: http://example.com/my-media-resource/?ma-query=collection</p>
</li>
<li><p>Response (JSON format): { "collection" : { "value" : "My Work
Pictures" } }</p>
</li>
</ul>
</div>
</div>
<div class="section" id="rights-properties">
<h3 id="x3.9-rights-properties"><span class="secno">3.9 </span>Rights
Properties</h3>
<div class="section" id="copyright-interface">
<h4 id="x3.9.1-copyright-interface"><span class="secno">3.9.1
</span><code>Copyright</code> interface</h4>
<p><code>Copyright</code> interface is used as the specific return type of
<code>MediaResource.getProperty</code> method which has "Copyright" as a value
of <code>propertyName</code> parameter.</p>
<pre class="idl"><span class="idlInterface" id="idl-def-Copyright">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">Copyright</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MAObject"><code>MAObject</code></a></span>, <span class="idlSuperclass"><a class="idlType" href="#idl-def-Language"><code>Language</code></a></span> {
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-Copyright-statement">statement</a></span>;</span>
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a>[]</span> <span class="idlAttrName"><a href="#widl-Copyright-holder">holder</a></span>;</span>
};</span></pre>
<div class="section" id="attributes-17">
<h5 id="x3.9.1.1-attributes"><span class="secno">3.9.1.1 </span>Attributes</h5>
<dl class="attributes">
<dt id="widl-Copyright-holder"><code>holder</code> of type array of <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute denotes the copyright holders.
<div>
<em>No exceptions.</em></div>
</dd>
<dt id="widl-Copyright-statement"><code>statement</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute should holds the copyright statement.
<div>
<em>No exceptions.</em></div>
</dd>
</dl>
</div>
<pre class="example sh_javascript sh_sourceCode">image <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementsByTagName</span><span class="sh_symbol">(</span><span class="sh_string">"img"</span><span class="sh_symbol">)[</span><span class="sh_number">0</span><span class="sh_symbol">];</span>
copyright <span class="sh_symbol">=</span> image<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"copyright"</span><span class="sh_symbol">);</span>
<span class="sh_comment">/*Resulting in:</span>
<span class="sh_comment">copyright[0].statement = "All images in the collection are copyrighted by John Doe"</span>
<span class="sh_comment">copyright[0].holder[0] = "</span><a href="http://individuals.example.com/JohnDoe" class="sh_url">http://individuals.example.com/JohnDoe</a><span class="sh_comment">"</span>
<span class="sh_comment">*/</span></pre>
<p>Usage as a service:</p>
<ul>
<li><p>Request:
http://example.com/my-media-resource/?ma-query=rights-properties</p>
</li>
<li><p>Response (JSON format): { "rights-properties" : { "statement" : "All
images in the collection are copyrighted by John Doe", "holder" :
"http://individuals.example.com/JohnDoe" } }</p>
</li>
</ul>
</div>
<div class="section" id="policy-interface">
<h4 id="x3.9.2-policy-interface"><span class="secno">3.9.2
</span><code>Policy</code> interface</h4>
<p><code>Policy</code> interface is used as the specific return type of
<code>MediaResource.getProperty</code> method which has "Policy" as a value of
<code>propertyName</code> parameter.</p>
<pre class="idl"><span class="idlInterface" id="idl-def-Policy">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">Policy</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MAObject"><code>MAObject</code></a></span>, <span class="idlSuperclass"><a class="idlType" href="#idl-def-Language"><code>Language</code></a></span> {
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-Policy-value">value</a></span>;</span>
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-Policy-link">link</a></span>;</span>
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-Policy-organization">organization</a></span>;</span>
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-Policy-type">type</a></span>;</span>
};</span></pre>
<div class="section" id="attributes-18">
<h5 id="x3.9.2.1-attributes"><span class="secno">3.9.2.1 </span>Attributes</h5>
<dl class="attributes">
<dt id="widl-Policy-link"><code>link</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute holds a link to the license if it is externally
available.
<div>
<em>No exceptions.</em></div>
</dd>
<dt id="widl-Policy-organization"><code>organization</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute identifies the organization that issued the license.
<div>
<em>No exceptions.</em></div>
</dd>
<dt id="widl-Policy-type"><code>type</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute holds the actual type of the policy, which can be
filtered on in the <code>getProperty</code> operation. Examples are
"license", "access", and "privacy".
<div>
<em>No exceptions.</em></div>
</dd>
<dt id="widl-Policy-value"><code>value</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute holds the description of the license.
<div>
<em>No exceptions.</em></div>
</dd>
</dl>
</div>
<pre class="example sh_javascript sh_sourceCode">image <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementsByTagName</span><span class="sh_symbol">(</span><span class="sh_string">"img"</span><span class="sh_symbol">)[</span><span class="sh_number">0</span><span class="sh_symbol">];</span>
policy <span class="sh_symbol">=</span> image<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"policy"</span><span class="sh_symbol">);</span>
<span class="sh_comment">/*Resulting in:</span>
<span class="sh_comment">policy[0].value = "Attribution 2.5"</span>
<span class="sh_comment">policy[0].organization = "</span><a href="http://creativecommons.org/licenses/by/2.5" class="sh_url">http://creativecommons.org/licenses/by/2.5</a><span class="sh_comment">"</span>
<span class="sh_comment">policy[0].type = "license"</span>
<span class="sh_comment">*/</span></pre>
<p>Usage as a service:</p>
<ul>
<li><p>Request: http://example.com/my-media-resource/?ma-query=policy</p>
</li>
<li><p>Response (JSON format): { "policy" : { "value": "Attribution 2.5 ",
"organization" : "http://creativecommons.org/licenses/by/2.5", "type":
"license" } }</p>
</li>
</ul>
</div>
</div>
<div class="section" id="distribution-properties">
<h3 id="x3.10-distribution-properties"><span class="secno">3.10
</span>Distribution Properties</h3>
<div class="section" id="publisher-interface">
<h4 id="x3.10.1-publisher-interface"><span class="secno">3.10.1
</span><code>Publisher</code> interface</h4>
<p><code>Publisher</code> interface is used as the specific return type of
<code>MediaResource.getProperty</code> method which has "Publisher" as a value
of <code>propertyName</code> parameter.</p>
<pre class="idl"><span class="idlInterface" id="idl-def-Publisher">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">Publisher</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MAObject"><code>MAObject</code></a></span> {
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-Publisher-value">value</a></span>;</span>
};</span></pre>
<div class="section" id="attributes-19">
<h5 id="x3.10.1.1-attributes"><span class="secno">3.10.1.1
</span>Attributes</h5>
<dl class="attributes">
<dt id="widl-Publisher-value"><code>value</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute should represent the name of the publisher.
<div>
<em>No exceptions.</em></div>
</dd>
</dl>
</div>
<pre class="example sh_javascript sh_sourceCode">image <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementsByTagName</span><span class="sh_symbol">(</span><span class="sh_string">"img"</span><span class="sh_symbol">)[</span><span class="sh_number">0</span><span class="sh_symbol">];</span>
publisher <span class="sh_symbol">=</span> image<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"publisher"</span><span class="sh_symbol">);</span>
<span class="sh_comment">/*Resulting in:</span>
<span class="sh_comment">publisher[0].value = "</span><a href="http://individuals.example.com/JohnDoe" class="sh_url">http://individuals.example.com/JohnDoe</a><span class="sh_comment">"</span>
<span class="sh_comment">*/</span></pre>
<p>Usage as a service:</p>
<ul>
<li><p>Request: http://example.com/my-media-resource/?ma-query=publisher</p>
</li>
<li><p>Response (JSON format): { "publisher" : { "value" :
"http://individuals.example.com/JohnDoe" } }</p>
</li>
</ul>
</div>
<div class="section" id="targetaudience-interface">
<h4 id="x3.10.2-targetaudience-interface"><span class="secno">3.10.2
</span><code>TargetAudience</code> interface</h4>
<p><code>TargetAudience</code> interface is used as the specific return type of
<code>MediaResource.getProperty</code> method which has "TargetAudience" as a
value of <code>propertyName</code> parameter.</p>
<pre class="idl"><span class="idlInterface" id="idl-def-TargetAudience">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">TargetAudience</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MAObject"><code>MAObject</code></a></span>, <span class="idlSuperclass"><a class="idlType" href="#idl-def-Language"><code>Language</code></a></span> {
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-TargetAudience-issuer">issuer</a></span>;</span>
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-TargetAudience-classification">classification</a></span>;</span>
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-TargetAudience-type">type</a></span>;</span>
};</span></pre>
<div class="section" id="attributes-20">
<h5 id="x3.10.2.1-attributes"><span class="secno">3.10.2.1
</span>Attributes</h5>
<dl class="attributes">
<dt id="widl-TargetAudience-classification"><code>classification</code> of
type <span class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute defines the actual classification.
<div>
<em>No exceptions.</em></div>
</dd>
<dt id="widl-TargetAudience-issuer"><code>issuer</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute identifies the issuer of the classification.
<div>
<em>No exceptions.</em></div>
</dd>
<dt id="widl-TargetAudience-type"><code>type</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute specifies the type of the classification, which can be
filtered on in the <code>getProperty</code> operation. Examples are "Age
group" and "Geographical".
<div>
<em>No exceptions.</em></div>
</dd>
</dl>
</div>
<pre class="example sh_javascript sh_sourceCode">image <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementsByTagName</span><span class="sh_symbol">(</span><span class="sh_string">"img"</span><span class="sh_symbol">)[</span><span class="sh_number">0</span><span class="sh_symbol">];</span>
targetAudience <span class="sh_symbol">=</span> image<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"targetaudience"</span><span class="sh_symbol">);</span>
<span class="sh_comment">/*Resulting in:</span>
<span class="sh_comment">targetAudience[0].issuer = "</span><a href="http://www.fosi.org/icra" class="sh_url">http://www.fosi.org/icra</a><span class="sh_comment">"</span>
<span class="sh_comment">targetAudience[0].classification = "no nudity"</span>
<span class="sh_comment">targetAudience[0].type = "Age Group"</span>
<span class="sh_comment">*/</span></pre>
<p>Usage as a service:</p>
<ul>
<li><p>Request:
http://example.com/my-media-resource/?ma-query=targetaudience</p>
</li>
<li><p>Response (JSON format): { "targetaudience" : { "issuer" :
"http://www.fosi.org/icra", "classification" : "no nudity", "type" : "Age
Group" } }</p>
</li>
</ul>
</div>
</div>
<div class="section" id="fragments-properties">
<h3 id="x3.11-fragments-properties"><span class="secno">3.11 </span>Fragments
Properties</h3>
<div class="section" id="fragments-interface">
<h4 id="x3.11.1-fragments-interface"><span class="secno">3.11.1
</span><code>Fragments</code> interface</h4>
<p><code>Fragments</code> interface is used as the specific return type of
<code>MediaResource.getProperty</code> method which has "Fragments" as a value
of <code>propertyName</code> parameter.</p>
<pre class="idl"><span class="idlInterface" id="idl-def-Fragments">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">Fragments</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MAObject"><code>MAObject</code></a></span> {
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-Fragments-role">role</a></span>;</span>
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-Fragments-id">id</a></span>;</span>
};</span></pre>
<div class="section" id="attributes-21">
<h5 id="x3.11.1.1-attributes"><span class="secno">3.11.1.1
</span>Attributes</h5>
<dl class="attributes">
<dt id="widl-Fragments-id"><code>id</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute identifies the fragment.
<div>
<em>No exceptions.</em></div>
</dd>
<dt id="widl-Fragments-role"><code>role</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute holds the role of the fragment, which can be filtered on
in the <code>getProperty</code> operation.
<div>
<em>No exceptions.</em></div>
</dd>
</dl>
</div>
<pre class="example sh_javascript sh_sourceCode">movie <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementsByTagName</span><span class="sh_symbol">(</span><span class="sh_string">"movie"</span><span class="sh_symbol">)[</span><span class="sh_number">0</span><span class="sh_symbol">];</span>
fragments <span class="sh_symbol">=</span> movie<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"fragments"</span><span class="sh_symbol">);</span>
<span class="sh_comment">/*Resulting in:</span>
<span class="sh_comment">fragments[0].role = "Person"</span>
<span class="sh_comment">fragments[0].id = "</span><a href="http://www.example.com/movie.mov" class="sh_url">http://www.example.com/movie.mov</a><span class="sh_comment">#xywh=320,320,40,100"</span>
<span class="sh_comment">*/</span></pre>
<p>Usage as a service:</p>
<ul>
<li><p>Request: http://example.com/my-media-resource/?ma-query=fragments</p>
</li>
<li><p>Response (JSON format): { "fragments" : { "role" : "Person",
"identifier" : "http://www.example.com/movie.mov#xywh=320,320,40,100" }
}</p>
</li>
</ul>
</div>
<div class="section" id="namedfragments-interface">
<h4 id="x3.11.2-namedfragments-interface"><span class="secno">3.11.2
</span><code>NamedFragments</code> interface</h4>
<p><code>NamedFragments</code> interface is used as the specific return type of
<code>MediaResource.getProperty</code> method which has "NamedFragments" as a
value of <code>propertyName</code> parameter.</p>
<pre class="idl"><span class="idlInterface" id="idl-def-NamedFragments">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">NamedFragments</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MAObject"><code>MAObject</code></a></span> {
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-NamedFragments-name">name</a></span>;</span>
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-NamedFragments-id">id</a></span>;</span>
};</span></pre>
<div class="section" id="attributes-22">
<h5 id="x3.11.2.1-attributes"><span class="secno">3.11.2.1
</span>Attributes</h5>
<dl class="attributes">
<dt id="widl-NamedFragments-id"><code>id</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute identifies the fragment.
<div>
<em>No exceptions.</em></div>
</dd>
<dt id="widl-NamedFragments-name"><code>name</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute specifies the name given to the fragment.
<div>
<em>No exceptions.</em></div>
</dd>
</dl>
</div>
<pre class="example sh_javascript sh_sourceCode">image <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementsByTagName</span><span class="sh_symbol">(</span><span class="sh_string">"img"</span><span class="sh_symbol">)[</span><span class="sh_number">0</span><span class="sh_symbol">];</span>
namedFragments <span class="sh_symbol">=</span> image<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"NamedFragments"</span><span class="sh_symbol">);</span>
<span class="sh_comment">/*Resulting in:</span>
<span class="sh_comment">namedFragments[0].name = "Joakim Söderberg"</span>
<span class="sh_comment">namedFragments[0].id = "</span><a href="http://www.w3.org/2008/WebVideo/Annotations/wiki/Image" class="sh_url">http://www.w3.org/2008/WebVideo/Annotations/wiki/Image</a><span class="sh_comment">:MAWG-Stockholm-20090626.JPG#xywh=1600,550,80,150"</span>
<span class="sh_comment">*/</span></pre>
<p>Usage as a service:</p>
<ul>
<li><p>Request:
http://example.com/my-media-resource/?ma-query=namedFragments</p>
</li>
<li><p>Response (JSON format): { "namedfragments" : { "name" : "Joakim
Söderberg", "identifier" :
"http://www.w3.org/2008/WebVideo/Annotations/wiki/Image:MAWG-Stockholm-20090626.JPG#xywh=1600,550,80,150"
} }</p>
</li>
</ul>
</div>
</div>
<div class="section" id="technical-interface">
<h3 id="x3.12-technical-properties"><span class="secno">3.12 </span>Technical
Properties</h3>
<div class="section" id="framesize-interface">
<h4 id="x3.12.1-framesize-interface"><span class="secno">3.12.1
</span><code>FrameSize</code> interface</h4>
<p><code>FrameSize</code> interface is used as the specific return type of
<code>MediaResource.getProperty</code> method which has "FrameSize" as a value
of <code>propertyName</code> parameter.</p>
<pre class="idl"><span class="idlInterface" id="idl-def-FrameSize">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">FrameSize</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MAObject"><code>MAObject</code></a></span> {
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>unsigned long</a></span> <span class="idlAttrName"><a href="#widl-FrameSize-width">width</a></span>;</span>
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>unsigned long</a></span> <span class="idlAttrName"><a href="#widl-FrameSize-height">height</a></span>;</span>
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-FrameSize-unit">unit</a></span>;</span>
};</span></pre>
<div class="section" id="attributes-23">
<h5 id="x3.12.1.1-attributes"><span class="secno">3.12.1.1
</span>Attributes</h5>
<dl class="attributes">
<dt id="widl-FrameSize-height"><code>height</code> of type <span
class="idlAttrType"><a>unsigned long</a></span></dt>
<dd>This attribute represents the height of the frame.
<div>
<em>No exceptions.</em></div>
</dd>
<dt id="widl-FrameSize-unit"><code>unit</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute represents the unit of the frame. The default value is
pixels.
<div>
<em>No exceptions.</em></div>
</dd>
<dt id="widl-FrameSize-width"><code>width</code> of type <span
class="idlAttrType"><a>unsigned long</a></span></dt>
<dd>This attribute represents the width of the frame.
<div>
<em>No exceptions.</em></div>
</dd>
</dl>
</div>
<pre class="example sh_javascript sh_sourceCode">image <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementsByTagName</span><span class="sh_symbol">(</span><span class="sh_string">"img"</span><span class="sh_symbol">)[</span><span class="sh_number">0</span><span class="sh_symbol">];</span>
frameSize <span class="sh_symbol">=</span> image<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"framesize"</span><span class="sh_symbol">);</span>
<span class="sh_comment">/*Resulting in:</span>
<span class="sh_comment">frameSize[0].width = 3.072</span>
<span class="sh_comment">frameSize[0].height = 2.304</span>
<span class="sh_comment">*/</span></pre>
<p>Usage as a service:</p>
<ul>
<li><p>Request: http://example.com/my-media-resource/?ma-query=frameSize</p>
</li>
<li><p>Response (JSON format): { "framesize" : { "width" : 3.072, "height" :
2.304 } }</p>
</li>
</ul>
</div>
<div class="section" id="compression-interface">
<h4 id="x3.12.2-compression-interface"><span class="secno">3.12.2
</span><code>Compression</code> interface</h4>
<p><code>Compression</code> interface is used as the specific return type of
<code>MediaResource.getProperty</code> method which has "Compression" as a
value of <code>propertyName</code> parameter.</p>
<pre class="idl"><span class="idlInterface" id="idl-def-Compression">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">Compression</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MAObject"><code>MAObject</code></a></span>, <span class="idlSuperclass"><a class="idlType" href="#idl-def-Language"><code>Language</code></a></span> {
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-Compression-value">value</a></span>;</span>
};</span></pre>
<div class="section" id="attributes-24">
<h5 id="x3.12.2.1-attributes"><span class="secno">3.12.2.1
</span>Attributes</h5>
<dl class="attributes">
<dt id="widl-Compression-value"><code>value</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute specifies the compression type as a plain string.
<div>
<em>No exceptions.</em></div>
</dd>
</dl>
</div>
<pre class="example sh_javascript sh_sourceCode">video <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementsByTagName</span><span class="sh_symbol">(</span><span class="sh_string">"video"</span><span class="sh_symbol">)[</span><span class="sh_number">0</span><span class="sh_symbol">];</span>
compression <span class="sh_symbol">=</span> video<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"compression"</span><span class="sh_symbol">);</span>
<span class="sh_comment">/*Resulting in:</span>
<span class="sh_comment">compression[0].value = "H.264/AVC"</span>
<span class="sh_comment">*/</span></pre>
<p>Usage as a service:</p>
<ul>
<li><p>Request: http://example.com/my-media-resource/?ma-query=compression</p>
</li>
<li><p>Response (JSON format): { "compression" : { "value" : "H.264/AVC" }
}</p>
</li>
</ul>
</div>
<div class="section" id="duration-interface">
<h4 id="x3.12.3-duration-interface"><span class="secno">3.12.3
</span><code>Duration</code> interface</h4>
<p><code>Duration</code> interface is used as the specific return type of
<code>MediaResource.getProperty</code> method which has "Duration" as a value
of <code>propertyName</code> parameter.</p>
<pre class="idl"><span class="idlInterface" id="idl-def-Duration">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">Duration</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MAObject"><code>MAObject</code></a></span> {
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>unsigned long</a></span> <span class="idlAttrName"><a href="#widl-Duration-value">value</a></span>;</span>
};</span></pre>
<div class="section" id="attributes-25">
<h5 id="x3.12.3.1-attributes"><span class="secno">3.12.3.1
</span>Attributes</h5>
<dl class="attributes">
<dt id="widl-Duration-value"><code>value</code> of type <span
class="idlAttrType"><a>unsigned long</a></span></dt>
<dd>This attribute should represent the duration (in secs).
<div>
<em>No exceptions.</em></div>
</dd>
</dl>
</div>
<pre class="example sh_javascript sh_sourceCode">video <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementsByTagName</span><span class="sh_symbol">(</span><span class="sh_string">"video"</span><span class="sh_symbol">)[</span><span class="sh_number">0</span><span class="sh_symbol">];</span>
duration <span class="sh_symbol">=</span> video<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"duration"</span><span class="sh_symbol">);</span>
<span class="sh_comment">/*Resulting in:</span>
<span class="sh_comment">duration[0].value = 3600</span>
<span class="sh_comment">*/</span></pre>
<p>Usage as a service:</p>
<ul>
<li><p>Request: http://example.com/my-media-resource/?ma-query=duration</p>
</li>
<li><p>Response (JSON format): { "duration" : { "value" : 3600 } }</p>
</li>
</ul>
</div>
<div class="section" id="format-interface">
<h4 id="x3.12.4-format-interface"><span class="secno">3.12.4
</span><code>Format</code> interface</h4>
<p><code>Format</code> interface is used as the specific return type of
<code>MediaResource.getProperty</code> method which has "Format" as a value of
<code>propertyName</code> parameter.</p>
<pre class="idl"><span class="idlInterface" id="idl-def-Format">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">Format</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MAObject"><code>MAObject</code></a></span> {
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-Format-value">value</a></span>;</span>
};</span></pre>
<div class="section" id="attributes-26">
<h5 id="x3.12.4.1-attributes"><span class="secno">3.12.4.1
</span>Attributes</h5>
<dl class="attributes">
<dt id="widl-Format-value"><code>value</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute specifies the MIME type as a plain string.
<div>
<em>No exceptions.</em></div>
</dd>
</dl>
</div>
<pre class="example sh_javascript sh_sourceCode">image <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementsByTagName</span><span class="sh_symbol">(</span><span class="sh_string">"img"</span><span class="sh_symbol">)[</span><span class="sh_number">0</span><span class="sh_symbol">];</span>
format <span class="sh_symbol">=</span> image<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"format"</span><span class="sh_symbol">);</span>
<span class="sh_comment">/*Resulting in:</span>
<span class="sh_comment">format[0].value = "image/jpeg"</span>
<span class="sh_comment">*/</span></pre>
<p>Usage as a service:</p>
<ul>
<li><p>Request: http://example.com/my-media-resource/?ma-query=format</p>
</li>
<li><p>Response (JSON format): { "format" : { "value" : "image/jpeg" } }</p>
</li>
</ul>
</div>
<div class="section" id="samplingrate-interface">
<h4 id="x3.12.5-samplingrate-interface"><span class="secno">3.12.5
</span><code>Samplingrate</code> interface</h4>
<p><code>Samplingrate</code> interface is used as the specific return type of
<code>MediaResource.getProperty</code> method which has "Samplingrate" as a
value of <code>propertyName</code> parameter.</p>
<pre class="idl"><span class="idlInterface" id="idl-def-Samplingrate">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">Samplingrate</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MAObject"><code>MAObject</code></a></span> {
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>unsigned long</a></span> <span class="idlAttrName"><a href="#widl-Samplingrate-value">value</a></span>;</span>
};</span></pre>
<div class="section" id="attributes-27">
<h5 id="x3.12.5.1-attributes"><span class="secno">3.12.5.1
</span>Attributes</h5>
<dl class="attributes">
<dt id="widl-Samplingrate-value"><code>value</code> of type <span
class="idlAttrType"><a>unsigned long</a></span></dt>
<dd>This attribute specifies the samplingrate (in Hz).
<div>
<em>No exceptions.</em></div>
</dd>
</dl>
</div>
<pre class="example sh_javascript sh_sourceCode">audio <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementsByTagName</span><span class="sh_symbol">(</span><span class="sh_string">"audio"</span><span class="sh_symbol">)[</span><span class="sh_number">0</span><span class="sh_symbol">];</span>
samplingrate <span class="sh_symbol">=</span> audio<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"samplingrate"</span><span class="sh_symbol">);</span>
<span class="sh_comment">/*Resulting in:</span>
<span class="sh_comment">samplingrate[0].value = 44100</span>
<span class="sh_comment">*/</span></pre>
<p>Usage as a service:</p>
<ul>
<li><p>Request:
http://example.com/my-media-resource/?ma-query=samplingrate</p>
</li>
<li><p>Response (JSON format): { "samplingrate" : { "value" : 44100 } }</p>
</li>
</ul>
</div>
<div class="section" id="framerate-interface">
<h4 id="x3.12.6-framerate-interface"><span class="secno">3.12.6
</span><code>Framerate</code> interface</h4>
<p><code>Framerate</code> interface is used as the specific return type of
<code>MediaResource.getProperty</code> method which has "Framerate" as a value
of <code>propertyName</code> parameter.</p>
<pre class="idl"><span class="idlInterface" id="idl-def-Framerate">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">Framerate</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MAObject"><code>MAObject</code></a></span> {
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>float</a></span> <span class="idlAttrName"><a href="#widl-Framerate-value">value</a></span>;</span>
};</span></pre>
<div class="section" id="attributes-28">
<h5 id="x3.12.6.1-attributes"><span class="secno">3.12.6.1
</span>Attributes</h5>
<dl class="attributes">
<dt id="widl-Framerate-value"><code>value</code> of type <span
class="idlAttrType"><a>float</a></span></dt>
<dd>This attribute specifies the framerate (in fps).
<div>
<em>No exceptions.</em></div>
</dd>
</dl>
</div>
<pre class="example sh_javascript sh_sourceCode">video <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementsByTagName</span><span class="sh_symbol">(</span><span class="sh_string">"video"</span><span class="sh_symbol">)[</span><span class="sh_number">0</span><span class="sh_symbol">];</span>
framerate <span class="sh_symbol">=</span> video<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"framerate"</span><span class="sh_symbol">);</span>
<span class="sh_comment">/*Resulting in:</span>
<span class="sh_comment">framerate[0].value = 30</span>
<span class="sh_comment">*/</span></pre>
<p>Usage as a service:</p>
<ul>
<li><p>Request: http://example.com/my-media-resource/?ma-query=framerate</p>
</li>
<li><p>Response (JSON format): { "framerate" : { "value" : 30 } }</p>
</li>
</ul>
</div>
<div class="section" id="averagebitrate-interface">
<h4 id="x3.12.7-averagebitrate-interface"><span class="secno">3.12.7
</span><code>AverageBitrate</code> interface</h4>
<p><code>AverageBitrate</code> interface is used as the specific return type of
<code>MediaResource.getProperty</code> method which has "AverageBitrate" as a
value of <code>propertyName</code> parameter.</p>
<pre class="idl"><span class="idlInterface" id="idl-def-AverageBitrate">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">AverageBitrate</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MAObject"><code>MAObject</code></a></span> {
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>float</a></span> <span class="idlAttrName"><a href="#widl-AverageBitrate-value">value</a></span>;</span>
};</span></pre>
<div class="section" id="attributes-29">
<h5 id="x3.12.7.1-attributes"><span class="secno">3.12.7.1
</span>Attributes</h5>
<dl class="attributes">
<dt id="widl-AverageBitrate-value"><code>value</code> of type <span
class="idlAttrType"><a>float</a></span></dt>
<dd>This attribute specifies the average bitrate (in kbps).
<div>
<em>No exceptions.</em></div>
</dd>
</dl>
</div>
<p>Example is as below:</p>
<pre class="example sh_javascript sh_sourceCode">video <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementsByTagName</span><span class="sh_symbol">(</span><span class="sh_string">"video"</span><span class="sh_symbol">)[</span><span class="sh_number">0</span><span class="sh_symbol">];</span>
bitrate <span class="sh_symbol">=</span> video<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"averagebitrate"</span><span class="sh_symbol">);</span>
<span class="sh_comment">/*Resulting in:</span>
<span class="sh_comment">bitrate[0].value = 45.06</span>
<span class="sh_comment">*/</span></pre>
<p>Usage as a service:</p>
<ul>
<li><p>Request:
http://example.com/my-media-resource/?ma-query=averageBitrate</p>
</li>
<li><p>Response (JSON format): { "bitrate" : { "value" : 45.06 } }</p>
</li>
</ul>
</div>
<div class="section" id="numtracks-interface">
<h4 id="x3.12.8-numtracks-interface"><span class="secno">3.12.8
</span><code>NumTracks</code> interface</h4>
<p><code>NumTracks</code> interface is used as the specific return type of
<code>MediaResource.getProperty</code> method which has "NumTracks" as a value
of <code>propertyName</code> parameter.</p>
<pre class="idl"><span class="idlInterface" id="idl-def-NumTracks">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">NumTracks</span> : <span class="idlSuperclass"><a class="idlType" href="#idl-def-MAObject"><code>MAObject</code></a></span> {
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>unsigned short</a></span> <span class="idlAttrName"><a href="#widl-NumTracks-value">value</a></span>;</span>
<span class="idlAttribute"> attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-NumTracks-type">type</a></span>;</span>
};</span></pre>
<div class="section" id="attributes-30">
<h5 id="x3.12.8.1-attributes"><span class="secno">3.12.8.1
</span>Attributes</h5>
<dl class="attributes">
<dt id="widl-NumTracks-type"><code>type</code> of type <span
class="idlAttrType"><a>DOMString</a></span></dt>
<dd>This attribute specifies the type of the tracks e.g., "Songs", "Data
streams".
<div>
<em>No exceptions.</em></div>
</dd>
<dt id="widl-NumTracks-value"><code>value</code> of type <span
class="idlAttrType"><a>unsigned short</a></span></dt>
<dd>This attribute specifies the number of tracks.
<div>
<em>No exceptions.</em></div>
</dd>
</dl>
</div>
<pre class="example sh_javascript sh_sourceCode">video <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementsByTagName</span><span class="sh_symbol">(</span><span class="sh_string">"video"</span><span class="sh_symbol">)[</span><span class="sh_number">0</span><span class="sh_symbol">];</span>
numTracks <span class="sh_symbol">=</span> video<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"NumTracks"</span><span class="sh_symbol">);</span>
<span class="sh_comment">/*Resulting in:</span>
<span class="sh_comment">numTracks[0].value = 2</span>
<span class="sh_comment">numTracks[0].type = "Data streams"</span>
<span class="sh_comment">*/</span></pre>
<p>Usage as a service:</p>
<ul>
<li><p>Request: http://example.com/my-media-resource/?ma-query=numtracks</p>
</li>
<li><p>Response (JSON format): { "numtracks" : { "value" : 2 } }</p>
</li>
</ul>
</div>
</div>
</div>
<div class="section" id="usage-examples">
<!--OddPage-->
<h2 id="x4.-usage-examples"><span class="secno">4. </span>Usage examples</h2>
<p>This part illustrates some examples to show how to use the API using
JavaScript in actual implementations. The examples assume that the methods
getElementsByTagName() and getElementsById() return an element that implements
the <code>MediaResource</code> interface. Moreover, in these examples it is
assumed that the implementation of the API knows where to find the metadata
that corresponds to a specific media resource (if necessary the location of the
metadata can be configured using the <code>selectMAResource</code> method). The
implementation should provide the mappings of different metadata formats to the
core properties. </p>
<dl>
<dt>Example 1: Return the name of the director of the movie "Apocalypse now".
</dt>
<dd><pre class="example sh_javascript sh_sourceCode"><span class="sh_comment">//assume that the video elements in HTML5 inherit from the MediaResource interface </span>
video <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementsByTagName</span><span class="sh_symbol">(</span><span class="sh_string">"video"</span><span class="sh_symbol">);</span>
<span class="sh_comment">//search the video's for the one with title "Apocalypse now" </span>
<span class="sh_keyword">for</span><span class="sh_symbol">(</span>i<span class="sh_symbol">=</span><span class="sh_number">0</span><span class="sh_symbol">;</span> i<span class="sh_symbol">&lt;</span>video<span class="sh_symbol">.</span>length<span class="sh_symbol">;</span> i<span class="sh_symbol">++)</span>
<span class="sh_cbracket">{</span>
<span class="sh_comment">//request for the titles of the video </span>
titles <span class="sh_symbol">=</span> video<span class="sh_symbol">[</span>i<span class="sh_symbol">].</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"title"</span><span class="sh_symbol">);</span>
<span class="sh_keyword">for</span><span class="sh_symbol">(</span>j <span class="sh_symbol">=</span> <span class="sh_number">0</span><span class="sh_symbol">;</span> j<span class="sh_symbol">&lt;</span>titles<span class="sh_symbol">.</span>length<span class="sh_symbol">;</span> j<span class="sh_symbol">++)</span>
<span class="sh_cbracket">{</span>
<span class="sh_comment">//check if the title matches </span>
<span class="sh_keyword">if</span><span class="sh_symbol">(</span>titles<span class="sh_symbol">[</span>j<span class="sh_symbol">].</span>value <span class="sh_symbol">==</span> <span class="sh_string">"Apocalypse Now"</span><span class="sh_symbol">)</span>
<span class="sh_cbracket">{</span>
<span class="sh_comment">//request for the director of the video </span>
director <span class="sh_symbol">=</span> video<span class="sh_symbol">[</span>i<span class="sh_symbol">].</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"contributor"</span><span class="sh_symbol">,</span><span class="sh_string">""</span><span class="sh_symbol">,</span><span class="sh_string">""</span><span class="sh_symbol">,</span><span class="sh_string">"director"</span><span class="sh_symbol">);</span>
<span class="sh_comment">/*Resulting in: </span>
<span class="sh_comment"> director[0].id = "Francis Ford Coppola"; </span>
<span class="sh_comment"> */</span>
<span class="sh_cbracket">}</span>
<span class="sh_cbracket">}</span>
<span class="sh_cbracket">}</span> </pre>
</dd>
<dt>Example 2: Retrieve the title of the second song from the album "Josuha
Tree" by U2. </dt>
<dd><pre class="example sh_javascript sh_sourceCode"><span class="sh_comment">//somehow get the mediaResource object that represents the corresponding album </span>
album <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementById</span><span class="sh_symbol">(</span><span class="sh_string">"JosuhaTree_U2"</span><span class="sh_symbol">);</span>
<span class="sh_comment">//get the id of the second song using the fragments property </span>
trackid <span class="sh_symbol">=</span> album<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"Fragments"</span><span class="sh_symbol">,</span><span class="sh_string">""</span><span class="sh_symbol">,</span><span class="sh_string">""</span><span class="sh_symbol">,</span><span class="sh_string">"Song"</span><span class="sh_symbol">)[</span><span class="sh_number">1</span><span class="sh_symbol">].</span>id<span class="sh_symbol">;</span>
<span class="sh_comment">//use this identifier to get the mediaResource object that represents the track </span>
mediaResource <span class="sh_symbol">=</span> <span class="sh_keyword">new</span> <span class="sh_function">MediaResource</span><span class="sh_symbol">();</span>
mediaResource<span class="sh_symbol">.</span><span class="sh_function">selectMediaResource</span><span class="sh_symbol">(</span>trackid<span class="sh_symbol">);</span>
<span class="sh_comment">//get the title of the track </span>
title <span class="sh_symbol">=</span> mediaResource<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"Title"</span><span class="sh_symbol">)[</span><span class="sh_number">0</span><span class="sh_symbol">].</span>value<span class="sh_symbol">;</span> </pre>
</dd>
<dt>Example 3: Return the copyright of the movie "Planet of the apes".</dt>
<dd><pre class="example sh_javascript sh_sourceCode"><span class="sh_comment">//somehow get the mediaResource object that represents the movie (e.g., see first example) </span>
movie <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementById</span><span class="sh_symbol">(</span><span class="sh_string">"Planet_of_the_apes_id"</span><span class="sh_symbol">);</span>
copyright <span class="sh_symbol">=</span> movie<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"copyright"</span><span class="sh_symbol">,</span><span class="sh_string">""</span><span class="sh_symbol">,</span><span class="sh_string">""</span><span class="sh_symbol">,</span><span class="sh_string">""</span><span class="sh_symbol">,</span><span class="sh_string">"en-us"</span><span class="sh_symbol">)[</span><span class="sh_number">0</span><span class="sh_symbol">].</span>statement<span class="sh_symbol">;</span> </pre>
</dd>
<dt>Example 4: Return the genre of the movie "Apocalypse Now".</dt>
<dd><pre class="example sh_javascript sh_sourceCode"><span class="sh_comment">//somehow get the mediaResource object that represents the movie (e.g., see first example) </span>
movie <span class="sh_symbol">=</span> document<span class="sh_symbol">.</span><span class="sh_function">getElementById</span><span class="sh_symbol">(</span><span class="sh_string">"Apocalypse_Now_id"</span><span class="sh_symbol">);</span>
genre <span class="sh_symbol">=</span> movie<span class="sh_symbol">.</span><span class="sh_function">getProperty</span><span class="sh_symbol">(</span><span class="sh_string">"genre"</span><span class="sh_symbol">,</span><span class="sh_string">""</span><span class="sh_symbol">,</span><span class="sh_string">""</span><span class="sh_symbol">,</span><span class="sh_string">""</span><span class="sh_symbol">,</span><span class="sh_string">"en-us"</span><span class="sh_symbol">);</span>
<span class="sh_comment">/*Resulting in: </span>
<span class="sh_comment">genre[0].value = "Action"; </span>
<span class="sh_comment">genre[1].value = "Drama"; </span>
<span class="sh_comment">*/</span> </pre>
</dd>
</dl>
</div>
<div class="section" id="api-status-codes">
<!--OddPage-->
<h2 id="x5.-api-status-codes"><span class="secno">5. </span>API Status
Codes</h2>
<p>This section introduces a set of status codes for the defined API to
indicate the system behaviour. It uses a subset of the <cite>HTML/1.1 [<a
href="#bib-HTTP11" rel="biblioentry" class="bibref">HTTP11</a>] status
codes</cite> for general informations (e.g., bad request), but also system
specific ones (e.g., property not defined in source format). The specific
status codes have been arranged in the <cite>HTML/1.1 [<a href="#bib-HTTP11"
rel="biblioentry" class="bibref">HTTP11</a>] status codes</cite> categories.
These codes can be retrieved by calling the <code>getDiagnosis</code>
method.</p>
<p class="note">The set of status codes my be enlarged or changed in later
versions of this document. The numerical code range for the system specific
status codes start with x62 (x = number of <cite>HTML/1.1 [<a
href="#bib-HTTP11" rel="biblioentry" class="bibref">HTTP11</a>] status
codes</cite> category and 62 = MA).</p>
<table border="1" width="100%">
<tbody>
<tr>
<td align="center">Numerical Code</td>
<td align="center">Textual Description</td>
<td align="center">Example</td>
</tr>
<tr>
<td>200</td>
<td>Ok</td>
<td>property delivered correctly</td>
</tr>
<tr>
<td>204</td>
<td>No Content</td>
<td>property retrieved without content</td>
</tr>
<tr>
<td>206</td>
<td>Partial Content</td>
<td>only a subset of the available data stored in the result set</td>
</tr>
<tr>
<td>262</td>
<td>Syntactic Mapping</td>
<td>retrieval used a syntactic mapping</td>
</tr>
<tr>
<td>263</td>
<td>Semantic Mapping</td>
<td>retrieval used a semantic mapping</td>
</tr>
<tr>
<td>264</td>
<td>Structured Return Value</td>
<td>result is structured</td>
</tr>
<tr>
<td>265</td>
<td>Unstructured Return Value</td>
<td>result is unstructured</td>
</tr>
<tr>
<td>400</td>
<td>Bad Request</td>
<td>syntactical error with respect to the GET method used</td>
</tr>
<tr>
<td>404</td>
<td>Not Found</td>
<td>the queries resource is not found</td>
</tr>
<tr>
<td>415</td>
<td>Unsupported Media Type</td>
<td>get duration call on an image data store</td>
</tr>
<tr>
<td>462</td>
<td>Property not defined in Source Format</td>
<td>location is not defined in MediaRSS</td>
</tr>
<tr>
<td>500</td>
<td>Internal Server Error</td>
<td>internal library (e.g., extractor) crashes</td>
</tr>
<tr>
<td>501</td>
<td>Not Implemented</td>
<td>only a subset of GET methods for properties implemented</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="conformance">
<!--OddPage-->
<h2 id="x6.-conformance"><span class="secno">6. </span>Conformance</h2>
<p>As well as sections marked as non-normative, all authoring guidelines,
diagrams, examples, and notes in this specification are non-normative.
Everything else in this specification is normative.</p>
<p>The key words <em title="must" class="rfc2119">must</em>, <em
title="must not" class="rfc2119">must not</em>, <em title="required"
class="rfc2119">required</em>, <em title="should" class="rfc2119">should</em>,
<em title="should not" class="rfc2119">should not</em>, <em title="recommended"
class="rfc2119">recommended</em>, <em title="may" class="rfc2119">may</em>, and
<em title="optional" class="rfc2119">optional</em> in this specification are to
be interpreted as described in [<a href="#bib-RFC2119" rel="biblioentry"
class="bibref">RFC2119</a>].</p>
</div>
<div id="security-considerations" class="informative section">
<!--OddPage-->
<h2 id="x7.-security-considerations"><span class="secno">7. </span>Security
Considerations</h2>
<p><em>This section is non-normative.</em></p>
<!--p class="note">It is required to be considered in the perspectives of developer, user and content’s provider. This will be revised with more security issues.</p-->
<p>This specification defines a client-side API to access metadata information
related to media resources on the Web. These APIs will provide the methods for
getting metadata information which can be in one of different formats, either
as separate document or embedded in media resources.</p>
<p>There are related activity and technical documents in <acronym
title="World Wide Web Consortium">W3C</acronym> such as Policy Requirements [<a
href="#bib-POLICY-REQS" rel="biblioentry" class="bibref">POLICY-REQS</a>] in
DAP WG, ODRL 1.1 [<a href="#bib-ODRL11" rel="biblioentry"
class="bibref">ODRL11</a>], P3P 1.1 [<a href="#bib-P3P11" rel="biblioentry"
class="bibref">P3P11</a>] and PLING Wiki [<a href="#bib-PLING-WIKI"
rel="biblioentry" class="bibref">PLING-WIKI</a>].</p>
</div>
<div class="appendix section" id="webidl-for-api">
<!--OddPage-->
<h2 id="a.-web-idl-description-for-api"><span class="secno">A. </span>Web IDL
description for API</h2>
<pre>module mawg {
interface MediaResource {
//Media Resource context
boolean selectMAResource(in DOMString mediaResource, in optional MetadataSource[] metadataSources );
// Property Access
MAObject[] getProperty(in DOMString propertyName, in optional DOMString fragment, in optional DOMString sourceFormat, in optional DOMString subtype,
in optional DOMString language );
//Iterating
DOMString[] getPropertyNamesWithValues(in optional DOMString sourceFormat,
in optional DOMString language, in optional DOMString fragment);
DOMString[] getSourceFormatsWithValues(in optional DOMString language);
DOMString getOriginalData(in DOMString sourceFormat);
//Operation for retrieval of the reason of an error
DOMString getDiagnosis();
};
interface MetadataSource {
attribute DOMString metadataSource;
attribute DOMString sourceFormat;
};
module returnValues {
interface MAObject {
attribute DOMString unstructuredValue;
attribute DOMString uri;
attribute DOMString sourceFormat;
attribute DOMString fragmentIdentifier;
attribute DOMString mappingType;
};
interface Language {
attribute DOMString language;
};
interface UnsignedLongObject: MAObject {
attribute unsigned long value;
};
interface UnsignedShortObject: MAObject {
attribute unsigned short value;
};
interface FloatObject: MAObject {
attribute float value;
};
interface Identifier: MAObject {
attribute DOMString value;
attribute DOMString type;
};
interface Title: MAObject, Language {
attribute DOMString value;
attribute DOMString type;
};
interface Language : MAObject {
attribute DOMString value;
};
interface Locator : MAObject {
attribute DOMString value;
};
interface Contributor: MAObject {
attribute DOMString id;
attribute DOMString role;
};
interface Creator : MAObject {
attribute DOMString value;
};
interface Date: MAObject {
attribute DOMString date;
attribute DOMString type;
};
interface Location: MAObject, Language {
attribute DOMString name;
attribute Float longitude;
attribute Float latitude;
attribute Float altitiude;
attribute DOMString system;
};
interface Description : MAObject, Language {
attribute DOMString value;
};
interface Keyword : MAObject, Language {
attribute DOMString value;
};
interface Genre : MAObject, Language {
attribute DOMString value;
};
interface Rating: MAObject, Language {
attribute DOMString issuer;
attribute short value;
attribute short minimum;
attribute short maximum;
attribute DOMString context;
attribute DOMString type;
};
interface Relation: MAObject, Language {
attribute DOMString id;
attribute DOMString relationship;
};
interface Copyright: MAObject, Language {
attribute DOMString statement;
attribute DOMString[] holder;
};
interface Policy: MAObject, Language {
attribute DOMString statement;
attribute DOMString link;
attribute DOMString organization;
attribute DOMString type;
};
interface Publisher: MAObject {
attribute DOMString value;
};
interface TargetAudience: MAObject, Language {
attribute DOMString issuer;
attribute DOMString classification;
};
interface Fragment: MAObject, Language {
attribute DOMString role;
attribute DOMString id;
};
interface NamedFragment: MAObject, Language {
attribute DOMString name;
attribute DOMString id;
};
interface FrameSize: MAObject {
attribute unsigned long width;
attribute unsigned long height;
attribute DOMString unit;
};
interface Compression : MAObject, Language {
attribute DOMString value;
};
interface Duration : MAObject {
attribute unsigned long value;
};
interface Format : MAObject {
attribute DOMString value;
};
interface Samplingrate : MAObject {
attribute unsigned long value;
};
interface Framerate : MAObject {
attribute float value;
};
interface AverageBitrate : MAObject {
attribute float value;
};
interface NumTracks : MAObject {
attribute unsigned short value;
attribute DOMString type;
};
};
};</pre>
</div>
<div id="acknowledgements" class="appendix section">
<!--OddPage-->
<h2 id="b.-acknowledgements"><span class="secno">B. </span>Acknowledgements</h2>
<p>This document is the work of the <a
href="http://www.w3.org/2008/WebVideo/Annotations/"><acronym
title="World Wide Web Consortium">W3C</acronym> Media Annotations Working
Group</a>.</p>
<p>Members of the Working Group are (at the time of writing, and by
alphabetical order): Members of the Working Group are (at the time of writing,
and by alphabetical order): Werner Bailer (JOANNEUM RESEARCH), Tobias B체rger
(University of Innsbruck), Eric Carlson (Apple, Inc.), Pierre-Antoine Champin
((public) Invited expert), Ashish Chawla ((public) Invited expert), Jaime
Delgado (Universitat Polit챔cnica de Catalunya), Jean-Pierre EVAIN ((public)
Invited expert), Philip J채genstedt (Opera Software), Ralf Klamma ((public)
Invited expert), WonSuk Lee (Electronics and Telecommunications Research
Institute (ETRI)), V챕ronique Malais챕 (Vrije Universiteit), Erik Mannens
(IBBT), Hui Miao (Samsung Electronics Co., Ltd.), Thierry Michel (<acronym
title="World Wide Web Consortium">W3C</acronym>/<acronym
title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym>),
Frank Nack (University of Amsterdam), Soohong Daniel Park (Samsung Electronics
Co., Ltd.), Silvia Pfeiffer (<acronym
title="World Wide Web Consortium">W3C</acronym> Invited Experts), Chris Poppe
(IBBT), V챠ctor Rodr챠guez (Universitat Polit챔cnica de Catalunya), Felix
Sasaki (Potsdam University of Applied Sciences), David Singer (Apple, Inc.),
Florian Stegmaier ((public) Invited expert), John Strassner ((public) Invited
expert), Joakim S철derberg (ERICSSON), Thai Wey Then (Apple, Inc.), Ruben Tous
(Universitat Polit챔cnica de Catalunya), Rapha챘l Troncy (CWI), Vassilis
Tzouvaras (K-Space), Davy Van Deursen (IBBT). </p>
<p>The people who have contributed to <a
href="http://lists.w3.org/Archives/Public/public-media-annotation/">discussions
on public-media-annotation@w3.org</a> are also gratefully acknowledged. </p>
</div>
<div class="appendix section" id="references">
<!--OddPage-->
<h2 id="c.-references"><span class="secno">C. </span>References</h2>
<div class="section" id="normative-references">
<h3 id="c.1-normative-references"><span class="secno">C.1 </span>Normative
references</h3>
<dl class="bibliography">
<dt id="bib-MEDIA-ANNOT-ONTOLOGY">[MEDIA-ANNOT-ONTOLOGY]</dt>
<dd>이원석(WonSuk Lee), Tobias Bürger, Felix Sasaki, Véronique
Malaisé, Florian Stegmaier and Joakim Söderberg. <a
href="http://www.w3.org/TR/2010/WD-mediaont-10-20100309/"><cite>Ontology
for Media Resource 1.0.</cite></a> 09 March 2010. W3C Working Draft.
(Work in progress.) URL: <a
href="http://www.w3.org/TR/2010/WD-mediaont-10-20100309/">http://www.w3.org/TR/2010/WD-mediaont-10-20100309/</a>
</dd>
<dt id="bib-MEDIA-ANNOT-REQS">[MEDIA-ANNOT-REQS]</dt>
<dd>WonSuk Lee; Felix Sasaki; Tobias Bürger; Véronique Malaisé. <a
href="http://www.w3.org/TR/2010/WD-media-annot-reqs-20100121"><cite>Use
Cases and Requirements for Ontology and API for Media Object
1.0.</cite></a> 21 January 2010. W3C Working Draft. (Work in progress.)
URL: <a
href="http://www.w3.org/TR/2010/WD-media-annot-reqs-20100121">http://www.w3.org/TR/2010/WD-media-annot-reqs-20100121</a>
</dd>
<dt id="bib-RFC2119">[RFC2119]</dt>
<dd>S. Bradner. <a href="http://www.ietf.org/rfc/rfc2119.txt"><cite>Key
words for use in RFCs to Indicate Requirement Levels.</cite></a> Internet
RFC 2119. URL: <a
href="http://www.ietf.org/rfc/rfc2119.txt">http://www.ietf.org/rfc/rfc2119.txt</a>
</dd>
</dl>
</div>
<div class="section" id="informative-references">
<h3 id="c.2-informative-references"><span class="secno">C.2 </span>Informative
references</h3>
<dl class="bibliography">
<dt id="bib-BCP-47">[BCP-47]</dt>
<dd>A. Phillips; M. Davis. <a
href="http://tools.ietf.org/html/rfc5646"><cite>Tags for Identifying
Languages.</cite></a> Internet RFC 5646. URL: <a
href="http://tools.ietf.org/html/rfc5646">http://tools.ietf.org/html/rfc5646</a>
</dd>
<dt id="bib-HTTP11">[HTTP11]</dt>
<dd>R. Fielding; et al. <a
href="http://www.ietf.org/rfc/rfc2616.txt"><cite>Hypertext Transfer
Protocol - HTTP/1.1.</cite></a> June 1999. Internet RFC 2616. URL: <a
href="http://www.ietf.org/rfc/rfc2616.txt">http://www.ietf.org/rfc/rfc2616.txt</a>
</dd>
<dt id="bib-ODRL11">[ODRL11]</dt>
<dd><a href="http://www.w3.org/TR/odrl"><cite>Open Digital Rights Language
(ODRL) Version 1.1.</cite></a> W3C Note. 19 September 2002. URL: <a
href="http://www.w3.org/TR/odrl">http://www.w3.org/TR/odrl</a> </dd>
<dt id="bib-P3P11">[P3P11]</dt>
<dd>Matthias Schunter; Rigo Wenning. <a
href="http://www.w3.org/TR/2006/NOTE-P3P11-20061113"><cite>The Platform
for Privacy Preferences 1.1 (P3P1.1) Specification.</cite></a> 13
November 2006. W3C Note. URL: <a
href="http://www.w3.org/TR/2006/NOTE-P3P11-20061113">http://www.w3.org/TR/2006/NOTE-P3P11-20061113</a>
</dd>
<dt id="bib-PLING-WIKI">[PLING-WIKI]</dt>
<dd><a href="http://www.w3.org/Policy/pling/"><cite>PLING Wiki.</cite></a>
URL: <a
href="http://www.w3.org/Policy/pling/">http://www.w3.org/Policy/pling/</a>
</dd>
<dt id="bib-POLICY-REQS">[POLICY-REQS]</dt>
<dd>Laura Arribas; Paddy Byers; Marcin Hanclik; Frederick Hirsch; David
Rogers. <a href="http://dev.w3.org/2009/dap/policy-reqs"><cite>Device API
Policy Requirements.</cite></a> 13 April 2010. W3C Editor's Draft. (Work
in progress.) URL: <a
href="http://dev.w3.org/2009/dap/policy-reqs/">http://dev.w3.org/2009/dap/policy-reqs/</a>
</dd>
<dt id="bib-WEBIDL">[WEBIDL]</dt>
<dd>Cameron McCormack. <a
href="http://www.w3.org/TR/2008/WD-WebIDL-20081219"><cite>Web
IDL.</cite></a> 19 December 2008. W3C Working Draft. (Work in progress.)
URL: <a
href="http://www.w3.org/TR/2008/WD-WebIDL-20081219">http://www.w3.org/TR/2008/WD-WebIDL-20081219</a>
</dd>
</dl>
</div>
</div>
</body>
</html>