Media Annotations Working Group Publishes Drafts
The W3C Media Annotations Working Group has recently posted drafts of its Ontology for Media Resource 1.0 and API for Media Resource 1.0 efforts. They have also updated the Use Cases document to reflect some of the intentions of these projects.
The basic goal of the Working Group is to produce an API and domain model for handling the explosion of media content on the Web. There is not and never will be a single set of audio and video formats used by all residents of the Internet, so they felt the need to establish a mechanism for describing this content and connecting it to other content of different formats. Leveraging the power of Semantic Web technologies, they want to be able to do things such as:
- Retrieve media metadata in a common form, even if it is stored differently in different formats
- Define a mapping between the metadata supported by the source formats
- Manage user-specified metadata for the media resources (e.g. reviews, ratings, tagging)
- Handle structured annotations from the various sources
The drafts support twenty-five different formats including Cable Labs's Video-On-Demand formats, Dublin Core publication metadata, the exchangeable image file format (EXIF) for digital camera, Digital Bazaar's Video Metadata, MPEG ID3 tags, QuickTime, Adobe's XMP, YouTube's Data API Protocol, etc.
The ontology reuses many terms from popular vocabularies such as Dublin Core, but wanted to define its key ideas in its own terminology. The draft not only defines these terms, but also specifies a one-way mapping into the metadata and annotations of the native formats.
The properties include terms such as:
|ma:identifier||URI for the resource|
|ma:title||Title of the resource|
|ma:language||BCP 47 language used in the resource|
|ma:locator||URL associated with the content|
|ma:creator||A primary author of the content|
|ma:contributor||A contributing agent to the content|
|ma:location||Where resource was filmed or recorded|
|ma:createDate||Date/time of creation|
|ma:keyword||Tags associated with the content|
|ma:description||A short textual description of the resource|
|ma:genre||Genre associated with the resource (pref. EBU)|
|ma:copyright||Description of the copyright associated with the resource|
|ma:publisher||Person or organization responsible for publishing the content|
|ma:compression||Compression codecs used|
|ma:duration||Duration (in s)|
|ma:samplingrate||Audio sampling rate (in sps)|
|ma:framerate||Video frame rate (in fps)|
|ma:bitrate||Average bit rate (in kpbs)|
Not every property maps to every format, but where there is overlap it should be possible to handle disparate content similarly to make it easier for people to find and describe these files. As an example, the "ma:creator" property maps to the "com.apple.quicktime.author" property in QuickTime, "dc:creator" in Dublin Core and "media:credit@role" in the YouTube Data API. Because of subtleties between the intended meanings of the different properties, it is not currently possible to map between the different formats, only to the common terminology.
The API being defined is intended to manage these mappings and provide a common programming model for interacting with the content so that format-specific code is not required. The API can be used by either client or server-side code as suggested by the two different scenarios depicted here:
Additionally, there are several Candidates for Additional Elements being considered by the Working Group for inclusion in the specification.
This is very much a work in progress, but shows promising signs of producing useful abstractions and working code for managing the commonalities between these and potentially other media formats.