W3C

Implementation report for the API for Media Resources 1.0

This version:
http://www.w3.org/2008/WebVideo/Annotations/drafts/API/implementation-report.html
Editors:
Thierry Michel, W3C
Florian Stegmaier, University of Passau
Werner Bailer, JOANNEUM RESEARCH
Authors:
이원석(WonSuk Lee), Samsung Electronics Co., Ltd.
Thomas Kurz, Salzburg Research Forschungsgesellschaft m.b.H.
Sebastian Schaffer, Salzburg Research Forschungsgesellschaft m.b.H.

Table of contents

1 Summary

This document reports the interoperability test results for multiple implementations of features of the API for Media Resources 1.0 specification and is maintained by the Media Annotations Working Group.

The purpose of the implementation report is to document that at least two independent implementers can independently read the same specification and produce two independent interoperable implementations for a given feature. This tests both the clarity of the specification, in that the specification language must be clear enough to sufficiently describe an interoperable implementation, as well as the implementability of the specification itself. This implementation test report is not meant to test conformance of any given API for Media Resources 1.0 implementation.

Implementations tested

Note:

a) Availability of the code:
All implementations are open source projects. Linked Media Framework (LMF) is hosted at Github, the browser extension can be downloaded at the prototype page (the dpi includes the source files and can be extracted similar to a ZIP file). The third implementation (web service) can be downloaded at source forge.

b) Usage of the API
Two papers explain the implementations and  provide details for the browser extension and the server side implementation. The code pieces of the API will soon be available in the LMF branch at Github (maybe with the next major release). Currently it can be found here: https://svn.salzburgresearch.at/svn/lmf-media/ This project needs the complete LMF as dependency. That´s why it seems to be a little bit "tiny".

2 Results of the implementation report

The Implementation results are publicly released and are intended solely to be used as a proof of API for Media Resources 1.0 specification implementability. It is only a snap shot of the actual implementation behaviors at one moment of time, as these implementations may not be immediately available to the public. The interoperability data is not intended to be used for assessing or grading the performance of any individual implementation. Any feedback on implementation and use of this specification would be very welcome. To the extent possible, please provide a separate email message for each distinct comment.

The test cases are devided into two groups: test cases independent of metadata formats (see Section 4.1) and test cases, that need format specific information to be conducted (see Section 4.2 & 4.3). In terms of the metadata format specific test cases, every property has to be listed in two instantiations (core attributes vs. specific attributes). Here, an implementation has to at least behave correct for the core properties (specific properties are optional).

Results are "passed","failed", "not supported" (not executed) or "not tested".

All tests have fulfill the exit criteria of the API for Media Resources 1.0 CR version. Each test has at least two passing implementations which have been developed independently.

Comments on this document should be sent to public-media-annotation@w3.org. The archive of public comments is available at http://lists.w3.org/Archives/Public/public-media-annotation/.

3. Formats in scope

The following tables lists the formats that were selected as in-scope. We distinguish multimedia metadata formats that focus on the description of multimedia resources from multimedia container formats. In the case of the latter, only few technical properties are relevant, because of they widespread usage.

The API for Media Resources 1.0 specification defines a specific JSON response structure, to which a implementation has to be compliant. To enable an (automatic) evaluation, a normative JSON response for a example media resource for each metadata format has been created covering all properties defined in the corresponding mapping table. These files are available in Section 3.1 & 3.2.

Note: The example media resources have been taken from the in the Ontology for Media Resource 1.0 test suite. The normative JSON responses provided in sections 3.1 & 3.2 only consider the properties that have a corresponding property in the core vocabulary defined in the Ontology for Media Resource 1.0. An example for a response for a property wihout a corresponding partner in the core vocabulary can be found in the atomic examples, e.g., Y3-a in section 5.2.

Note: The example media resources have been taken from the Ontology for Media Resource 1.0 test suite.

3.1 Multimedia metadata formats in scope

Metadata format Example Normative JSON response
DIG35 DIG35 example
JSON
Dublin Core Dublin Core example
JSON
EBU Core EBU Core example
JSON
Exif 2.2 Exif 2.2 example
JSON
ID3 ID3 example
JSON
IPTC IPTC example
JSON
LOM 2.1 LOM 2.1 example
JSON
Media RSS Media RSS example
JSON
MPEG-7 MPEG-7 example
JSON
DMS-1 DMS-1 example
JSON
TTML TTML example
JSON
TV-Anytime TV-Anytime example
JSON
TXFeed TXFeed example
JSON
XMP XMP example
JSON
YouTube YouTube example
JSON

3.2 Multimedia container formats

Metadata format Example Normative JSON response
3gp 3GP example
JSON
f4v F4V example
JSON
flv FLV example
JSON
mp4 MP4 example
JSON
quicktime Quicktime example
JSON

4 General behaviour tests

For some of the general behaviour test cases no input data can be given. For this test cases, only a valid JSON response shall be produced.

test # Metadata format Coverage relevant parameters of the method call Implementation 1 Implementation 2 Implementation 3 Normative JSON response
G1 Format independent Implemented Mode n/a passed passed passed
G2-incorrect G2-correct Format independent Not-existent property propertyNames=["fakeIdentifier"] passed passed passed Not existant property Response G2 correct

G3-incorrect G3-correct

Format independent Passing NULL value instead property array propertyNames=NULL passed passed passed Passing NULL value instead property array Response
G4-incorrect G4-correct Format independent Property array filled with duplicates propertyNames=["identifier","identifier"] passed passed passed Property array filled with duplicates Response
G5 Format independent Multiple metadata sources specified Two metadata sources need to be created passed passed passed Multiple metadata sources specified Response
G6 Format independent No metadata source specified metadataSources = NULL; passed passed passed No metadata source specified Response
G7 Format independent Non-existent metadata source metadataSources = new MetadataSource[1]; metadataSources[0] = new MetadataSource("http://a.non.existing.url/file.xml","dc") passed passed passed Non-existent metadata source Response

Note: In the above general behaviour test cases, the following test cases

1- The following test cases need no input

5 Test cases for specific metadata formats

5.1 Tests for DC format

test # Metadata format MA Property coverage Implementation 1 Implementation 2 Implementation 3 Normative JSON response
D1-a DC identifier core attributes passed not supported passed identifier core response
D1-b DC identifier specific attributes passed not supported passed identifier specific response
D2-a DC title core attributes passed not supported passed title core response
D2-b DC title specific attributes passed not supported passed title specific response
D3-a DC language core attributes passed not supported passed language core response
D3-b DC language specific attributes passed not supported passed language specific response
D4-a DC locator core attributes passed not supported passed No existing property mapped in DC
D4-b DC locator specific attributes passed not supported passed No existing property mapped in DC
D5-a DC contributor core attributes passed not supported passed contributor core response
D5-b DC contributor specific attributes passed not supported passed contributor specific response
D6-a DC creator core attributes passed not supported passed creator core response
D6-b DC creator specific attributes passed not supported passed creator specific response
D7-a DC date core attributes passed not supported passed date core response
D7-b DC date specific attributes passed not supported passed date specific response
D8-a DC location core attributes passed not supported passed location core response
D8-b DC location specific attributes passed not supported passed location specific response
D9-a DC description core attributes passed not supported passed description core response
D9-b DC description specific attributes passed not supported passed description specific response
D10-a DC keyword core attributes passed not supported passed keyword core response
D10-b DC keyword specific attributes passed not supported passed keyword specific response
D11-a DC genre core attributes passed not supported passed genre core response
D11-b DC genre specific attributes passed not supported passed genre specific response
D12-a DC rating core attributes passed not supported passed No existing property mapped in DC
D12-b DC rating specific attributes passed not supported passed No existing property mapped in DC
D13-a DC relation core attributes passed not supported passed relation core response
D13-b DC relation specific attributes passed not supported passed relation specific response
D14-a DC collection core attributes passed not supported passed collection core response
D14-b DC collection specific attributes passed not supported passed collection specific response
D15-a DC copyright core attributes passed not supported passed copyright core response
D15-b DC copyright specific attributes passed not supported passed copyright specific response
D16-a DC policy core attributes passed not supported passed No existing property mapped in DC
D16-b DC policy specific attributes passed not supported passed No existing property mapped in DC
D17-a DC publisher core attributes passed not supported passed publisher core response
D17-b DC publisher specific attributes passed not supported passed publisher specific response
D18-a DC targetAudience core attributes passed not supported passed No existing property mapped in DC
D18-b DC targetAudience specific attributes passed not supported passed No existing property mapped in DC
D19-a DC fragment core attributes passed not supported passed No existing property mapped in DC
D19-b DC fragment specific attributes passed not supported passed No existing property mapped in DC
D20-a DC namedFragment core attributes passed not supported passed No existing property mapped in DC
D20-b DC namedFragment specific attributes passed not supported passed No existing property mapped in DC
D21-a DC frameSize core attributes passed not supported passed No existing property mapped in DC
D21-b DC frameSize specific attributes passed not supported passed No existing property mapped in DC
D22-a DC compression core attributes passed not supported passed No existing property mapped in DC
D22-b DC compression specific attributes passed not supported passed No existing property mapped in DC
D23-a DC duration core attributes passed not supported passed No existing property mapped in DC
D23-b DC duration specific attributes passed not supported passed No existing property mapped in DC
D24-a DC format core attributes passed not supported passed format core response
D24-b DC format specific attributes passed not supported passed format specific response
D25-a DC samplingRate core attributes passed not supported passed No existing property mapped in DC
D25-b DC samplingRate specific attributes passed not supported passed No existing property mapped in DC
D26-a DC frameRate core attributes passed not supported passed No existing property mapped in DC
D26-b DC frameRate specific attributes passed not supported passed No existing property mapped in DC
D27-a DC averageBitRate core attributes passed not supported passed No existing property mapped in DC
D27-b DC averageBitRate specific attributes passed not supported passed No existing property mapped in DC
D28-a DC numTracks core attributes passed not supported passed No existing property mapped in DC
D28-b DC numTracks specific attributes passed not supported passed No existing property mapped in DC
test # Metadata format Function call Implementation 1 Implementation 2 Implementation 3 Normative JSON response
D29 DC getOriginalMetadata passed not supported passed getOriginalMetadata response

5.1.2 Filter Tests for DC format

test # Metadata format MA Property coverage Implementation 1 Implementation 2 Implementation 3 Normative JSON response
D2-f DC title filter criteria "de" language passed not supported passed title filter response for "de" language
D9-f DC description filter criteria "de" language passed not supported passed title filter response for "de" language

5.2 Tests for YouTube format

test # Metadata format MA Property coverage Implementation 1 Implementation 2 Implementation 3 Normative JSON response
Y1-a YouTube identifier core attributes passed passed not supported identifier core response
Y1-b YouTube identifier specific attributes passed passed not supported identifier specific response
Y2-a YouTube title core attributes passed passed not supported title core response
Y2-b YouTube title specific attributes passed passed not supported title specific response
Y3-a YouTube language core attributes passed passed not supported No existing property mapped in YouTube
Y3-b YouTube language specific attributes passed passed not supported No existing property mapped in YouTube
Y4-a YouTube locator core attributes passed passed not supported locator core response
Y4-b YouTube locator specific attributes passed passed not supported locator specific response
Y5-a YouTube contributor core attributes passed passed not supported No existing property mapped in YouTube
Y5-b YouTube contributor specific attributes passed passed not supported No existing property mapped in YouTube
Y6-a YouTube creator core attributes passed passed not supported No existing property mapped in YouTube
Y6-b YouTube creator specific attributes passed passed not supported No existing property mapped in YouTube
Y7-a YouTube date core attributes passed passed not supported date core response
Y7-b YouTube date specific attributes passed passed not supported date specific response
Y8-a YouTube location core attributes passed passed not supported location core response
Y8-b YouTube location specific attributes passed passed not supported location specific response
Y9-a YouTube description core attributes passed passed not supported description core response
Y9-b YouTube description specific attributes passed passed not supported description specific response
Y10-a YouTube keyword core attributes passed passed not supported keyword core response
Y10-b YouTube keyword specific attributes passed passed not supported keyword specific response
Y11-a YouTube genre core attributes passed passed not supported genre core response
Y11-b YouTube genre specific attributes passed passed not supported genre specific response
Y12-a YouTube rating core attributes passed passed not supported rating core response
Y12-b YouTube rating specific attributes passed passed not supported rating specific response
Y13-a YouTube relation core attributes passed passed not supported No existing property mapped in YouTube
Y13-b YouTube relation specific attributes passed passed not supported No existing property mapped in YouTube
Y14-a YouTube collection core attributes passed passed not supported No existing property mapped in YouTube
Y14-b YouTube collection specific attributes passed passed not supported No existing property mapped in YouTube
Y15-a YouTube copyright core attributes passed passed not supported No existing property mapped in YouTube
Y15-b YouTube copyright specific attributes passed passed not supported No existing property mapped in YouTube
Y16-a YouTube policy core attributes passed passed not supported No existing property mapped in YouTube
Y16-b YouTube policy specific attributes passed passed not supported No existing property mapped in YouTube
Y17-a YouTube publisher core attributes passed passed not supported publisher core response
Y17-b YouTube publisher specific attributes passed passed not supported publisher specific response
Y18-a YouTube targetAudience core attributes passed passed not supported targetAudience core response
Y18-b YouTube targetAudience specific attributes passed passed not supported targetAudience specific response
Y19-a YouTube fragment core attributes passed passed not supported No existing property mapped in YouTube
Y19-b YouTube fragment specific attributes passed passed not supported No existing property mapped in YouTube
Y20-a YouTube namedFragment core attributes passed passed not supported No existing property mapped in YouTube
Y20-b YouTube namedFragment specific attributes passed passed not supported No existing property mapped in YouTube
Y21-a YouTube frameSize core attributes passed passed not supported No existing property mapped in YouTube
Y21-b YouTube frameSize specific attributes passed passed not supported No existing property mapped in YouTube
Y22-a YouTube compression core attributes passed passed not supported compression core response
Y22-b YouTube compression specific attributes passed passed not supported compression specific response
Y23-a YouTube duration core attributes passed passed not supported duration core response
Y23-b YouTube duration specific attributes passed passed not supported duration specific response
Y24-a YouTube format core attributes passed passed not supported format core response
Y24-b YouTube format specific attributes passed passed not supported format specific response
Y25-a YouTube samplingRate core attributes passed passed not supported No existing property mapped in YouTube
Y25-b YouTube samplingRate specific attributes passed passed not supported No existing property mapped in YouTube
Y26-a YouTube frameRate core attributes passed passed not supported No existing property mapped in YouTube
Y26-b YouTube frameRate specific attributes passed passed not supported No existing property mapped in YouTube
Y27-a YouTube averageBitRate core attributes passed passed not supported No existing property mapped in YouTube
Y27-b YouTube averageBitRate specific attributes passed passed not supported No existing property mapped in YouTube
Y28-a YouTube numTracks core attributes passed passed not supported No existing property mapped in YouTube
Y28-b YouTube numTracks specific attributes passed passed not supported No existing property mapped in YouTube
test # Metadata format Function call Implementation 1 Implementation 2 Implementation 3 Normative JSON response
Y29 YouTube getOriginalMetadata passed passed not supported getOriginalMetadata response


A References

[3GP]
3GPP Specifications. Available for download at http://www.3gpp.org/specifications.
[DIG35]
DIG35 Specification - Metadata for Digital Image. April 2001. Available for download at http://www.bgbm.org/TDWG/acc/Documents/DIG35-v1.1WD-010416.pdf .
[DMS-1]
DMS-1 (SMPTE 380M-2004). April 2001. Available for download at http://www.smpte.org/standards .
[Dublin Core]
DCMI Metadata Terms. January 2008. Available for download at http://dublincore.org/documents/2008/01/14/dcmi-terms/ . The latest version of DCMI Metadata Terms is available at http://dublincore.org/documents/dcmi-terms/ .
[EBUCore]
EBUCore v.1.0. December 2008. Available for download at http://tech.ebu.ch/publications/tech3293.
[EXIF]
EXIF 2.2. Specification by JEITA, April 2002. Available for download at http://www.exif.org/Exif2-2.PDF .
[Flash]
Adobe Flash Video File Format Specification Version 10.1. 2010. Available for download at http://download.macromedia.com/f4v/video_file_format_spec_v10_1.pdf.
[LOM]
Draft Standard for Learning Object Metadata. July 2002. Available for download at http://ltsc.ieee.org/wg12/files/LOM_1484_12_1_v1_Final_Draft.pdf .
[ID3]
ID3 tag version 2.4.0. February 1999. Available for download at http://www.id3.org/Developer_Information .
[IPTC]
IPTC Standard Photo Metadata 2008. IPTC Core Specification Version 1.1, IPTC Extension Specification 1.0, Document Revision 2, June 2008. Available for download at http://www.iptc.org/std/photometadata/2008/specification/IPTC-PhotoMetadata-2008.pdf
[IPTC NewsML]
IPTC NewsML-G2. Available for download at http://www.iptc.org/cms/site/ .
[METS]
Metadata Encoding & Transmission Standard 1.7. Available for download at http://www.loc.gov/standards/mets/ .
[Media RDF]
Media RDF. Available for download at http://digitalbazaar.com/.
[Media RSS]
Yahoo! Media RSS Module - RSS 2.0 Module. March 2008. Available for download at http://video.search.yahoo.com/mrss .
[MP4]
ISO/IEC 14496-14 MP4 file format. date 2003. Available for download at http://www.iso.org/iso/catalogue_detail.htm?csnumber=38538.
[MPEG-7]
Information technology Multimedia content description interface Part 10: Schema definition. Available for download at http://www.chiariglione.org/mpeg/working_documents/mpeg-07/schema_def/cd.zip.
[OWL2 Profiles]
OWL 2 Web Ontology Language Profiles. W3C OWL Working Group. Available for download at http://www.w3.org/TR/owl2-profiles/.
[RDF]
Resource Description Framework (RDF). W3C RDF Working Group. Available for download at http://www.w3.org/RDF/ .
[SMPTE]
SMPTE Metadata. Available for download at http://www.smpte-ra.org/mdd/RP210v11-pub-20080415.2048.xls .
[TTML]
Glenn Adams. Timed Text Markup Language (TTML) 1.0. W3C Recommendation 18 November 2010. Available for download at http://www.w3.org/TR/2010/REC-ttaf1-dfxp-20101118/.
[TXFeed]
TXFeed standard 0.9. December 2007. Available for download at http://clearerchannel.org/docs/tx_metadata_standard_0_9.pdf .
[TV-Anytime]
ETSI 102 822-3-1 V1.4.1. November 2007. Broadcast and On-line Services: Search, select, and rightful use of content on personal storage systems("TV-Anytime"). Part 3: Metadata, Sub-part 1: Phase 1 - Metadata schemas .
[XML Schema 2]
Biron, P. V. and A. Malhotra. XML Schema Part 2: Datatypes Second Edition. W3C Recommendation, October 2004. Available for download at http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/ . The latest version of XML Schema Part 2 is available for download at http://www.w3.org/TR/xmlschema-2/ .
[XMP]
XMP Specification Part 1 - Standard Schemas. Adobe, 2010. Available for download at http://www.adobe.com/content/dam/Adobe/en/devnet/xmp/pdfs/XMPSpecificationPart1.pdf.
XMP Specification Part 2 - Standard Schemas. Adobe, 2010. Available for download at http://www.adobe.com/content/dam/Adobe/en/devnet/xmp/pdfs/XMPSpecificationPart2.pdf.
[YouTube Data API Protocol]
YouTube Data API Protocol. April 2008. Available for download at http://code.google.com/intl/en/apis/youtube/2.0/reference.html .