Copyright © 2012 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules appl
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
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 yes (passed), no (failed), not supported (not executed) or blank (not tested).
PASSED 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/.
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.
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 |
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 | Implementation 1 | Implementation 2 | Implementation 3 | Normative JSON response |
---|---|---|---|---|---|---|
G1 | Format independent | Implemented Mode | Not tested | passed | passed | Implemented Mode Response |
G2 | Format independent | Not-existent property | Not tested | passed | passed | Not existant property Response |
G3 | Format independent | Passing NULL value instead property array | Not tested | passed | passed | Passing NULL value instead property array Response |
G4 | Format independent | Property array filled with duplicates | Not tested | passed | passed | Property array filled with duplicates Response |
G5 | Format independent | Multiple metadata sources specified | Not tested | passed | passed | Multiple metadata sources specified Response |
G6 | Format independent | No metadata source specified | Not tested | passed | passed | No metadata source specified Response |
G7 | Format independent | Non-existent metadata source | Not tested | passed | passed | Non-existent metadata source Response |
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 | failed | 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 |
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 | failed | 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 | failed | 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 |