The Device Description Repository (DDR) is a concept proposed by the Mobile Web Initiative Device Description Working Group (DDWG) of the World Wide Web Consortium. The DDR is supported by a standard interface and an initial core vocabulary of device properties. Implementations of the proposed repository are expected to contain information about Web-enabled devices (particularly mobile devices). Authors of Web content will be able to make use of repositories to adapt their content to best suit the requesting device. This will facilitate the interaction and viewing of Web pages across devices with widely varying capabilities.
Information in a repository should include information such as the screen dimensions, input mechanisms, supported colors, known limitations, special capabilities etc.
The "requirements for a single logical device descriptions repository"[1] were first published as a W3C Working Draft in April 2006, and completed as a "Working Group Note"[2] in December 2007.
The "DDR Core Vocabulary"[3] was published in April 2008. It illustrates how to create definitions of properties that can be used in conjunction with the DDR Simple API.
The "DDR Simple API"[4] specification was published as a W3C Recommendation in December 2008.
The DDWG formally closed in December 2008. The Chair and volunteers agreed to maintain the DDWG home page and wiki after this time,[5] to answer questions and encourage implementations.
The idea of implementing a Device Description Repository was discussed at an international workshop[6] held by the DDWG in Madrid, Spain in July, 2006. This resulted in a proposal to re-charter[7] DDWG to work on the formal design of the programming interfaces, and ways to populate a repository with data and make this available to anyone who wanted to build Web servers that could adapt content to suit the end user devices.
The architecture of the repository was not prescribed, but distributed solution are likely. In general, the desirable characteristics of a Device Description Repository are:
The interface to the repository should provide the means of retrieving contextual information based on some evidence that identifies the context. Typically this means providing request headers through the interface and subsequently retrieving values for named properties. The W3C DDWG produced an initial vocabulary of such properties (based on a formal ontology), and an interface for the retrieval functionality. The interface is designed in a language-neutral manner to enable many implementations on many platforms. The published specification includes samples in Java, IDL and WSDL.
Open and commercial implementations of the DDR Simple API are available. Some of these formed part of the W3C's implementation report[8] prior to the API becoming a Web standard. The W3C's Mobile Web Initiative also tracks implementations of relevant mobile standards and other developer resources, including the DDR Simple API.On November 4, 2011 during Mobile2Days event[9] the OpenDDR project was launched. It is an open source project aiming to be the reference community implementation of W3C's DDR Simple API and the reference community repository.In January 2012 Apache DeviceMap became an incubating project at the Apache Software Foundation, and in September 2012 the OpenDDR project was donated to Apache. After Apache DeviceMap had been archived in early 2017, OpenDDR was made available again on GitHub.