# Device Description Repository

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.

## Status

The "requirements for a single logical device descriptions repository" were first published as a W3C Working Draft in April 2006, and completed as a "Working Group Note" in December 2007.
The "DDR Core Vocabulary" 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" 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, to answer questions and encourage implementations.

## Background

The idea of implementing a Device Description Repository was discussed at an international workshop held by the DDWG in Madrid, Spain in July, 2006. This resulted in a proposal to re-charter 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.

## Design goals

The architecture of the repository was not prescribed, but distributed solution are likely. In general, the desirable characteristics of a Device Description Repository are:
* Relevance of data. The DDWG includes content adaptation specialists who have identified a core set of device properties that are useful for adaptation. Other groups are likely to refine this knowledge. Keeping the information up-to-date will also be a challenge.
* Ease of use. The interfaces should map easily to a variety of programming languages, and be as simple to use as other popular adaptation technologies (e.g. Augur Archived 2015-07-02 at the Wayback Machine).
* Ease of deployment. Existing technologies like DNS show that global repositories can be deployed on a real-time basis. The W3C is unlikely to specify a particular server architecture. The DDWG has already identified a Web Service interface (e.g. SOAP) as a minimum requirement, and implementations are free to create the logic any way they wish (e.g. relational database queries) so long as the formal interface is supported.
* Assured interoperability. The varied nature of the Web requires that the repository interfaces and data formats can be supported by the largest number of Web technologies. Formal descriptions of APIs and Data Vocabularies will be necessary.
* Assured availability. If Web servers rely on device descriptions to provide adapted content, then these descriptions must be available at all times. Multiple repository hosts and support for data caching are likely to be part of the repository architecture.
* Efficiency. To ensure that the repository does not create unnecessary burden on scarce resources, the load should be distributed and data formats should be designed for simple processing.
* Industry support. The backing of organisations like W3C and the Open Mobile Alliance, and of vendors, service providers and device manufacturers will be critical.
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.

## Implementations

Open and commercial implementations of the DDR Simple API are available. Some of these formed part of the W3C's implementation report 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 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.