# Description Definition Language

DDL (Description Definition Language) is part of the MPEG-7 standard. It gives an important set of tools for the users to create their own Description Schemes (DSs) and Descriptors (Ds). DDL defines the syntax rules to define, combine, extend and modify Description Schemes and Descriptors.

## Introduction

DDL is not a modeling language, such as the Unified Modeling Language (UML), but a schematic language to represent the audiovisual data results, which must conform to the descriptors, the description schemes and the MPEG-7 descriptions.
MPEG-7 DDL Must:
* Be able to express relationships of elements within a DS or between two DS, whether they are structural, spatial, temporal, conceptual or hierarchical.
* Give a rich set of unions and references between one or more descriptions and the data they describe.
* Be application and platform independent.
* Be able to specify the descriptors data type, whether they are primary (integers, text, time, ...) or derived (enumerated, ...).

## History

In 1999, the team in charge of MPEG-7 DDL was comparing and evaluating proposals in the MPEG-7 AHG Test And Evaluation Meeting held in Lancaster. The main agreement was that DDL had to use the XML syntax, support object-oriented semantics, as well as being able to validate structural, relational and data typing constraints.
Although no proposal satisfied the requirements the DSTC proposal was used as a starting point, extending it with the additions of ideas and components from other proposals and contributors. Moreover, the strategy was to keep tracking and influencing the W3C community, specially the XML Schema, XLink, XPath and XPointer working groups.
At the 51st MPEG meeting, the adoption of the XML Schema syntax with specific MPEG-7 extensions was decided.

## Requirements

As defined in the MPEG-7 requirements document:
* Compositional capabilities: DDL shall allow new DSs and Ds to be created and existing DSs to be modified or extended.
* Unique Identification: A unique identifier should be allowed for each D or DS.
* Primitive Data Types: A set of primitive data type, such as integer, real, date, ..., shall be provided.
* Composite Data Types: Composite data types, as color histograms, RGB values, enumerated types, ..., shall be allowed to be described.
* Multiple Media Types: DDL shall provide a mechanism to relate Ds to data of multiple media types, not necessarily of the same nature.
* Various types of DS instantiations: Full, partial, full-mandatory and partial-mandatory instantiations should be allowed.
* Relationships within a DS and between DSs: DDL shall be able to express spatial, temporal, structural and conceptual relationships between the elements of a DS or between different DSs.
* Relationships between description and data: A rich model for links and references between one or more descriptions and the described data shall be supplied.
* Link to ontologies: A link mechanism between a description and several ontologies shall be supplied too.
* Platform independent: DDL shall be platform and application independent.
* Grammar: DDL's grammar shall be unambiguous and easily parsed.
* Validation of constraints: DDL's parser shall be able to validate: values of properties, structures, related classes and values of properties of related classes.
* Intellectual property management: A mechanism for the expression of Intellectual Property Management and Protection (IPMP), that is what digital rights management (DRM) is known as in the MPEG world, for DSs and Ds.
* Human readability: DDL shall allow DSs and Ds to be read by humans.

## MPEG-7 Specific Extensions To XML Schema

They are basic to satisfy the MPEG-7 DDL requirements
* Distribution and datatype matrix
* Written references
* Enumerated datatypes, such as MimeType, CountryCode, RegionCode, Character-SetCode, ...