Copyright © 2009 W3C ® ( MIT , ERCIM , Keio ), All Rights Reserved. W3C liability , trademark and document use rules apply.
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 W3C technical reports index at http://www.w3.org/TR/.
This is the First Public Working Draft of the API for Media Resource 1.0 specification. It has been produced by the Media Annotations Working Group , which is part of the W3C Video on the Web Activity .
Please send comments about this document to public-media-annotation@w3.org mailing list ( public archive ).
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.
This document was produced by a group operating under the 5 February 2004 W3C Patent Policy . W3C maintains a public list of any patent disclosures 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 Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy .
1
Introduction
1.1
Formats
in
scope
1.2
Formats
out
of
scope
1.3
Terminology
2
API
Description
2.1
Design
consideration
2.2
API
for
Descriptive
Properties
2.1.1
2.2.1
Identification
Properties
2.1.1.1
2.2.1.1
Identifier
2.1.1.2
2.2.1.2
Title
2.1.1.3
2.2.1.3
Language
2.1.1.4
2.2.1.4
Locator
2.1.2
2.2.2
Creation
Properties
2.1.2.1
Contributor
2.2.2.1
Contributors
2.1.2.2
Creator
2.2.2.2
Creators
2.1.2.3
2.2.2.3
CreateDate
2.1.2.4
2.2.2.4
Location
2.1.3
2.2.3
Content
description
Properties
2.1.3.1
2.2.3.1
Description
2.1.3.2
2.2.3.2
Keyword
2.1.3.3
2.2.3.3
Genre
2.1.3.4
2.2.3.4
Rating
2.1.4
2.2.4
Relational
Properties
2.1.4.1
2.2.4.1
Relation
2.1.4.2
2.2.4.2
Collection
2.1.5
2.2.5
Rights
Properties
2.1.5.1
2.2.5.1
Copyright
2.1.5.2
2.2.5.2
License
2.1.6
2.2.6
Distribution
Properties
2.1.6.1
2.2.6.1
Publisher
2.1.6.2
2.2.6.2
TargetAudience
2.1.7
2.2.7
Fragments
Properties
2.1.7.1
2.2.7.1
Fragments
2.1.7.2
2.2.7.2
NamedFragments
2.2
2.3
API
for
Technical
Properties
2.2.1
2.3.1
FrameSize
2.2.2
2.3.2
Compression
2.2.3
2.3.3
Duration
2.2.4
2.3.4
Format
2.2.5
2.3.5
Samplingrate
2.2.6
2.3.6
Framerate
2.2.7
2.3.7
Bitrate
2.2.8
2.3.8
NumTracks
2.3
2.4
API
for
Iterating
operation
3
Examples
of
how
to
use
the
API
A
References(Normative)
B
References(Non-Normative)
C
Acknowledgements
(Non-Normative)
Editorial note | |
This part will be elaborated in the perspectives of reason why we want to provide an API and an explanation on who should use/implement it. |
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
an
with
a
convenient
access
to
metadata
information
stored
in
different
metadata
formats.
Thereby,
the
Media
Ontology
Core
Properties
will
be
used
as
a
pivot
vocabulary
in
the
API.
The
description
of
relations
between
these
core
properties
and
the
metadata
formats
in
scope
(
1.1
Formats
in
scope
)
are
stored
in
the
Media
Ontology
in
order
to
provide
cross-community
data
integration.
The
API
will
be
introduced
in
an
abstract
manner
using
the
interface
definition
language
WebIDL
.
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
Object
1.0
.
This
document
clearly
states
that
the
focus
for
this
API
lies
on
multimedia
services
on
the
web.
Web.
The API serves as a mediator between a developer and the underlying Ontology for Media Resource 1.0 with the goal to support interoperability between metadata formats. It offers GET and SET operations to retrieve and to store particular metadata informations represented in a certain metadata format related to media ressources on the Web.
The
initial
version
of
this
document
is
not
contains
only
a
final
version.
limited
description
of
API.
In
addtion,
there
are
many
open
issues
including
definitions
of
return
types.
Nevertheless
it
is
being
published
with
the
aspiration
to
gather
wide
feedback
on
the
yet
available
API
design.
The
following
table
lists
the
formats
that
were
selected
by
the
working
group
as
in-scope,
along
with
the
identifiers
which
are
used
as
prefixes
Refers
to
identify
them
in
this
specification.
Note:
the
This
specification
is
based
on
a
review
of
existing
formats
and
the
properties
they
provide.
This
review
does
not
aim
to
be
complete,
and
this
specification
does
not
aim
to
cover
all
properties
defined
in
these
formats.
The
choice
of
properties
is
motivated
by
the
level
of
usage.
scope
of
Ontology
for
Media
Resource
1.0
.
LOM
Refers
to
the
ma
Core
properties
Formats
out
of
MA
WG
ma:creator
media
Media
RDF
media:Recording
Media
RDF
scope
mrss
Media
RSS
mrss:credit@role='author'
of
Ontology
for
Media
RSS
mets
METS
mets:agency
METS
mpeg7
MPEG-7
mpeg7:CreationInformation/Creation/Creator/Agent
MPEG-7
nmix
NISO
MIX
nmix:ImageCreation/ImageProducer
Resource
1.0
.
QuickTime
In
this
document
the
terms
"Media
Resource",
"Property",
"Mapping"
and
"Property
value
type"
are
to
be
interpreted
as
defined
in
media
SearchMonkey
Section
2
of
Ontology
for
Media
media:type
MediaMonkey
dms
DMS-1
dms:Participant/Person
Resource
1.0
.
Editorial note | |
This part will be elaborated with a precise description of the actual methods in the API, (so these are the methods that can be found in the Strawman API design and note), described using Web IDL. This section needs to define and explain all aspects of those methods (parameters and return values). |
Editorial note | |
There are many open issues about SET interfaces, so these issues will be covered later. |
The
following
formats
have
been
decided
to
be
out
of
scope
for
this
specification.
MPEG-21
2
API
Description
Editorial
note
This
part
will
be
elaborated
with
a
precise
description
of
the
actual
methods
in
the
API,
(so
these
are
the
methods
that
can
be
found
in
the
Strawman
API
design
and
note),
described
using
web
IDL.
This
section
needs
to
define
and
explain
all
aspects
of
those
methods
(parameters
and
return
values).
This
part
defines
the
interface
for
accessing
the
metadata.
The
API
has
been
described
using
WebIDL
.
All
properties
are
treated
as
attributes
and
have
been
grouped
in
the
MediaResource
interface
within
the
mawg
module.
Currently,
only
read
access
is
defined
(all
attributes
are
defined
as
readonly
).
Exceptions
have
been
defined
using
Web
IDL's
exception
constructs.
Certain
properties
have
complex
structures
so
the
return
type
consists
of
one
or
more
object
types.
For
these
objects,
different
interfaces
have
been
defined
which
are
part
of
the
returnValues
module.
Note
that,
all
of
these
interfaces
inherit
from
the
interface.
This
interface
has
an
attribute
unStructured
Unstructured
unstructeredValue
using
DOMString
.
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.
The
following
fragment
shows
the
entire
API
described
in
Web
IDL.
The
different
properties
have
been
grouped
in
categories
and
the
semantics
of
each
property
and
return
type
will
be
discussed
in
the
next
sections.
module mawg {
exception WrongMethod{
const DOMString errorMessage = ”Property undefined for this media type.”
};
exception NoValue{
const DOMString errorMessage = ”No value available for this property.”
};
interface MediaResource {
// Identification
readonly attribute DOMString identifier getraises (NoValue);
readonly attribute DOMString title getraises (NoValue);
readonly attribute DOMString language getraises (NoValue);
readonly attribute DOMString locator getraises (NoValue);
// Creation
readonly attribute object[] contributor getraises (NoValue);
readonly attribute DOMString[] creator getraises (NoValue);
readonly attribute object createDate getraises (NoValue);
readonly attribute object location getraises (NoValue);
//Content Description
readonly attribute DOMString description getraises (NoValue);
readonly attribute DOMString[] keyword getraises (NoValue);
readonly attribute DOMString genre getraises (NoValue);
readonly attribute object rating getraises (NoValue);
// Relational
readonly attribute object[] relation getraises (NoValue);
readonly attribute DOMString collection getraises (NoValue);
// Rights
readonly attribute object[] copyright getraises (NoValue);
readonly attribute object license getraises (NoValue);
// Distribution
readonly attribute DOMString publisher getraises (NoValue);
readonly attribute object targetAudience getraises (NoValue);
// Fragments
readonly attribute object[] fragments getraises (NoValue);
readonly attribute object[] namedFragments getraises (NoValue);
// Technical Properties
readonly attribute object frameSize getraises (NoValue);
readonly attribute DOMString compression getraises (NoValue);
readonly attribute unsigned long duration getraises (NoValue);
readonly attribute DOMString format getraises (NoValue);
readonly attribute unsigned long samplingrate getraises (NoValue);
readonly attribute float framerate getraises (NoValue);
readonly attribute float bitrate getraises (NoValue);
readonly attribute unsigned short numTracks getraises (NoValue);
};
module returnValues {
interface Unstructured {
attribute DOMString unstructuredValue;
};
interface Contributor: Unstructured {
attribute DOMString id;
attribute DOMString role;
};
interface Date: Unstructured {
// to be defined …
};
interface Location: Unstructured {
// to be defined what the Location is …
};
interface Rating: Unstructured {
attribute DOMString issuer;
attribute short value;
attribute short minimum;
attribute short maximum;
attribute DOMString context;
};
interface Relation: Unstructured {
attribute DOMString id;
attribute DOMString relationship;
};
interface Copyright: Unstructured {
attribute DOMString statement;
attribute DOMString[] holder;
};
interface License: Unstructured {
attribute DOMString statement;
attribute DOMString organization;
};
interface TargetAudience: Unstructured {
attribute DOMString issuer;
attribute DOMString classification;
};
interface Fragment: Unstructured {
attribute DOMString role;
attribute DOMString identifier;
};
interface NamedFragment: Unstructured {
attribute DOMString name;
attribute DOMString identifier;
};
interface FrameSize: Unstructured {
attribute unsigned long width;
attribute unsigned long height;
};
};
};
The
language
property
specifies
a
language
used
in
the
entity,
Recommended
best
practice
is
to
use
a
controlled
vocabulary
such
as
RFC
4646
[RFC4646].
BCP
47
[
BCP
47
].
A
DOMString
that
represents
the
language
as
a
plain
string.
The
NoValue
exception
is
thrown
if
no
value
is
available.
N/A
An
array
of
object
elements
implementing
the
interface.
This
object
has
an
attribute
Contributor
Contributors
id
which
identifies
the
contributor.
contributors.
Additionally,
the
role
attribute
defines
the
role.
For
the
latter
a
number
of
suggested
terms
are
defined.
interfaceContributor:Contributors: Unstructured { attribute DOMString id; attribute DOMString role; };
The
NoValue
exception
is
thrown
if
no
value
is
available.
[http://www.individuals.com/Author1, "author"], [http://www.individuals.com/Author2, "author"]
The
location
property
holds
the
location
where
the
resource
has
been
shot/recorded.
A
object
implementing
the
Location
interface.
This
object
is
currently
undefined.
"Sweden", " Stockholm, Kistavägen 25, KISTA, KMUM Building", "Ericsson", ...
The
description
property
holds
a
textual
description
of
the
content
of
the
resource.
An
DOMString
holds
the
description
of
the
content
of
the
resource.
"Group picture of the W3C Media Annotations WG at the face-to-face meeting in Stockholm."
Editorial note | |
It should be clarified about what the 'context' of a rating is |
An
array
of
object
elements
implementing
the
Relation
interface.
This
object
holds
an
attribute
id
to
identify
the
entitiy.
A
textual
description
of
the
relationship
is
represented
using
the
relationship
attribute.
For
the
latter
a
number
of
suggested
terms
are
defined.
interface Relation: Unstructured { attribute DOMString id; attribute DOMString relationship; };
The
NoValue
exception
is
thrown
if
no
value
is
available.
[http://www.w3.org/2008/WebVideo/Annotations/wiki/Image:MAWG-Stockholm-20090626_thumb.JPG, "re-edit"]
Editorial note | |
license/statement attribute: is this really free text? |
A
DOMString
representing
the
compression
type.
interface
FrameSize:
Unstructured
{
attribute
unsigned
long
width;
attribute
unsigned
long
height;
};
Editorial note | |
Further consideration is required for the unit of Duration. (e.g. Is it fixed to 'second'?) |
Editorial note | |
Should bitrate be a number? What about Variable Bit Rate? Or would we raise NoValue in that case? |
Editorial note | |
This part will be covered later in the perspectives of what kind API for iterating operation is helpful to application developers . |
Editorial note | |
This part will illustrate how to use the API in the actual (working) implementations |
This document is the work of the W3C Media Annotations Working Group .
Members of the Working Group are (at the time of writing, and by alphabetical order): Werner Bailer (K-Space), Tobias Bürger (University of Innsbruck), Eric Carlson (Apple, Inc.), Pierre-Antoine Champin ((public) Invited expert), Jaime Delgado (Universitat Politècnica de Catalunya), Jean-Pierre EVAIN ((public) Invited expert), 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 (W3C/ERCIM), Frank Nack (University of Amsterdam), Soohong Daniel Park (Samsung Electronics Co., Ltd.), Silvia Pfeiffer (W3C 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.), 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).
The people who have contributed to discussions on public-media-annotation@w3.org are also gratefully acknowledged.