Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The DIDL document is part of an OAI-PMH response. The DIDL document will be returned within an OAI-record when using didl as value of the metadataPrefix verb. This enables the repository to generate this particular didl format that is described in the document below.
Within the OAI XML structure, the DIDL resides within the metadata element. See below:

Code Block
xml
xml
<OAI-PMH ...>
  ...
  <request ... metadataPrefix="didl">
  ...
  <record>
    <header>...</header>
    <metadata>
      <didl:DIDL
	 xmlns:didl="urn:mpeg:mpeg21:2002:02-DIDL-NS"
	 xmlns:dc="http://purl.org/dc/elements/1.1/"
	 xmlns:dcterms="http://purl.org/dc/terms/"
	 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	 xmlns:dii="urn:mpeg:mpeg21:2002:01-DII-NS"
	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	 xsi:schemaLocation="
         urn:mpeg:mpeg21:2002:02-DIDL-NS
  http://standards.iso.org/ittf/PubliclyAvailableStandards/
     MPEG-21_schema_files/did/didl.xsd

         urn:mpeg:mpeg21:2002:01-DII-NS
  http://standards.iso.org/ittf/PubliclyAvailableStandards/
     MPEG-21_schema_files/dii/dii.xsd">
	  ...
       </didl:DIDL>
    </metadata>
    <about>...</about>
  </record>
  ...
</OAI-PMH>

...

Example on level one

Code Block
xml
xml
<didl:DIDL ...>
  <didl:Item>
    <didl:Descriptor>...</didl:Descriptor> <!--Identification, mandatory-->
    <didl:Descriptor>...</didl:Descriptor> <!--Modification date, mandatory-->
    <didl:Item>...</didl:Item>
    <didl:Item>...</didl:Item>
    <didl:Item>...</didl:Item>
    ...
  </didl:Item>
</didl:DIDL>

Example on level two

Object type added

Code Block
xml
xml
<didl:DIDL ...>
  <didl:Item>
    <didl:Item>
      <didl:Descriptor>...</didl:Descriptor> <!--Identification, mandatory-->
      <didl:Descriptor>...</didl:Descriptor> <!--Modification date, optional-->
      <didl:Descriptor>...</didl:Descriptor> <!—-Type, mandatory-->
      ...
    </didl:Item>
    <didl:Item>...</didl:Item>
    <didl:Item>...</didl:Item>
    <didl:Item>...</didl:Item>
    ...
  </didl:Item>
</didl:DIDL>

...

The first Descriptor contains the ID of the Item elements. This is used to uniquely identify the digital object (e.g. with an urn:nbn). This ID is wrapped in a Statement with a DII Identifier element. For example:

Code Block
xml
xml
 <didl:Item>
  <didl:Item>
    <didl:Descriptor>
      <didl:Statement mimeType="application/xml">
        <dii:Identifier>urn:nbn:nl:ui:13-6748398729821</dii:Identifier>
      </didl:Statement>
    </didl:Descriptor>
    ...
  </didl:Item>
  ...
</didl:Item>

...

The second Descriptor contains a modification date. When something changes inside an Item, this modification date element has to be up-dated. Modification date is mandatory in the top level Item and is optional in the second level Items. This modification date is being specified by the modified element from dcterms:

Code Block
xml
xml
 <didl:Item>
  <didl:Item>
  ...
    <didl:Descriptor>
      <didl:Statement mimeType="application/xml">
        <dcterms:modified>2006-12-20T10:29:12Z</dcterms:modified>
      </didl:Statement>
    </didl:Descriptor>
    ...
  </didl:Item>
  ...
</didl:Item>

...

The third descriptor contains the Digital Item type. This type is mainly used the second level Item elements, however, it is also possible to type the top Digital Item.

Code Block
xml
xml
 <didl:Item>
  <didl:Item>
  ...
    <didl:Descriptor>
      <didl:Statement mimeType="application/xml">
        <rdf:type rdf:resource="info:eu-repo/semantics/descriptiveMetadata" />
      </didl:Statement>
    </didl:Descriptor>
    ...
  </didl:Item>
  ...
</didl:Item>

...

The top-Item element contains one mandatory Item sub-element that describes a Digital Item of type 'info:eu-repo/semantics/descriptiveMetadata'. There can be more Digital Items that are descriptive metadata or that are object files.
Optionally there can be a Item sub-element that describes a Digital Item of a third type: 'info:eu-repo/semantics/humanStartPage'. A Digital Item of this type is a jump-off-page, i.e., an html intermediate page that describes in a human readable way which objects are involved. In this way a reader can be informed about the fact that a file is available in different formats such as PDF, MS Word or HTML, or that a dissertation consists of separate files (e.g. when the thesis consists of a set of previously published articles).

Code Block
xml
xml
 <didl:DIDL ...>
  <didl:Item>
    <didl:Item>...</didl:Item> <!-- metadata -->
    <didl:Item>...</didl:Item> <!-- object files -->
    <didl:Item>...</didl:Item> <!-- jump-off-page -->
  </didl:Item>
</didl:DIDL>

The DIDL document contains at least one metadata Item element. This metadata can be in different formats, simple Dublin Core, qualified Dublin Core, MODS, MARC21, etc. The metadata can be included by-value or can be pointed to by-reference. one of the metadata Item elements MUST contain MODS, and the MODS record MUST be included by-value.

Code Block
xml
xml
 <didl:Item>

  <didl:Item> <!—one or many occurrences-->
    <didl:Descriptor>
      <didl:Statement mimeType="application/xml">
        <rdf:type rdf:resource="info:eu-repo/semantics/descriptiveMetadata" />
      </didl:Statement>
    </didl:Descriptor>
    ...
  </didl:Item>

  <didl:Item>    <!—zero or many occurrences-->
    <didl:Descriptor>
      <didl:Statement mimeType="application/xml">
        <rdf:type rdf:resource="info:eu-repo/semantics/objectFile" />
      </didl:Statement>
    </didl:Descriptor>
    ...
  </didl:Item>

  <didl:Item> <!—zero or one occurrences-->
    <didl:Descriptor>
      <didl:Statement mimeType="application/xml">
        <rdf:type rdf:resource="info:eu-repo/semantics/humanStartPage" />
      </didl:Statement>
    </didl:Descriptor>
    ...
  </didl:Item>

</didl:Item>

...

When the metadata are included by-value in an Item element, then the metadata form the content of a Resource element. The case of by-reference is described in the "Object File Item" section. The Resource element is contained by a Component element. If there are several representations of the same metadata record, e.g., a version in MODS and a version in MARCXML, it is recommended to use separate Item elements for each representation.
MODS is mandatory; the MODS records MUST be included by-value. Notice that the guidelines of Driver still mention Simple Dublin Core. To be compliant with both the present Application Profile and Driver, separate metadata Items must be included, one for MODS and the other for Dublin Core.

Code Block
xml
xml
 <didl:Item>
Code Block
xml
xml
   <didl:Descriptor>
    <didl:Statement mimeType="application/xml">
      <rdf:type rdf:resource="info:eu-repo/semantics/descriptiveMetadata" />
    </didl:Statement>
  </didl:Descriptor>
Code Block
xml
xml
 <didl:Descriptor> <!-- This metadata instance has its own ID number -->
    <didl:Statement mimeType="application/xml">
      <dii:Identifier>urn:nbn:nl:ui:13-74836724783</dii:Identifier>
    </didl:Statement>
 </didl:Descriptor>
Code Block
xml
xml
   <didl:Descriptor> <!-- This record has its own Modification date -->
    <didl:Statement mimeType="application/xml">
      <dcterms:modified>2006-12-20T10:29:12Z</dcterms:modified>
    </didl:Statement>
  </didl:Descriptor>
Code Block
xml
xml
 <didl:Component>
Code Block
xml
xml
     <didl:Resource mimeType="application/xml"> <!-- the MODS data -->
      <mods:mods
        xmlns:mods="http://www.loc.gov/mods/v3"
        xsi:schemaLocation=
          "http://www.loc.gov/mods/v3
           http://www.loc.gov/standards/mods/v3/mods-3-3.xsd">
        <mods:titleInfo>...</mods:titleInfo>
        <mods:name>...</mods:name>
        <mods:typeOfResource> ... </mods:typeOfResource>
          ...
      </mods:mods>
    </didl:Resource>
Code Block
xml
xml
 </didl:Component>
Code Block
xml
xml
 </didl:Item>

Remarks:

  1. If the date of the metadata has been changed, make sure that the date of the root-level Item modification date is also being changed.
  2. Declare the mods namespace in the start-tag of MODS record, i.e., in the mods element.

...

Code Block
xml
xml
 <didl:Item>
  ...

  <!-- Below this line one can find links to one or more digital objects -->
Code Block
xml
xml
 <didl:Item> <!-- First Item for a File/Bitstream -->
    <didl:Descriptor>
      <didl:Statement mimeType="application/xml">
        <rdf:type rdf:resource="info:eu-repo/semantics/objectFile" />
      </didl:Statement>
    </didl:Descriptor>
    <didl:Descriptor> <!-- This Object Item has its own persistent ID -->
      <didl:Statement mimeType="application/xml">
        <dii:Identifier>urn:nbn:nl:ui:13-36724783</dii:Identifier>
      </didl:Statement>
    </didl:Descriptor>
    <didl:Descriptor> <!-- This Item has its own Modification date -->
      <didl:Statement mimeType="application/xml">
        <dcterms:modified>2006-12-20T10:29:12Z</dcterms:modified>
      </didl:Statement>
    </didl:Descriptor>

    <didl:Component>
      <didl:Resource
        mimeType="application/pdf"
        ref="http://my.server.nl/report.pdf"/>
    </didl:Component>
  </didl:Item>
Code Block
xml
xml
 <didl:Item> <!-- Second Item for a File/Bitstream -->
    <didl:Descriptor>
      <didl:Statement mimeType="application/xml">
        <rdf:type rdf:resource="info:eu-repo/semantics/objectFile" />
      </didl:Statement>
    </didl:Descriptor>
    <didl:Descriptor> <!-- This Object Item has its own persistent ID -->
      <didl:Statement mimeType="application/xml">
        <dii:Identifier>urn:nbn:nl:ui:13-36724784</dii:Identifier>
      </didl:Statement>
    </didl:Descriptor>
    <didl:Descriptor> <!-- This Item has its own Modification date -->
      <didl:Statement mimeType="application/xml">
        <dcterms:modified>2006-12-20T10:29:12Z</dcterms:modified>
      </didl:Statement>
    </didl:Descriptor>
    <didl:Descriptor> <!-- this file is the appendix -->
      <didl:Statement mimeType="application/xml">
        <dc:description>Appendix</dc:description>
      </didl:Statement>
    </didl:Descriptor>

    ...
    <didl:Component>
      <didl:Resource
        mimeType="application/pdf"
        ref="http://my.server.nl/appendix.pdf"/>
    </didl:Component>
  </didl:Item>
Code Block
xml
xml
 <didl:Item> <!-- Third Item for a File/Bitstream -->
    <didl:Descriptor>
      <didl:Statement mimeType="application/xml">
        <rdf:type rdf:resource="info:eu-repo/semantics/objectFile" />
      </didl:Statement>
    </didl:Descriptor>
    <didl:Descriptor> <!-- This Object Item has its own persistent ID -->
      <didl:Statement mimeType="application/xml">
        <dii:Identifier>urn:nbn:nl:ui:13-36724785</dii:Identifier>
      </didl:Statement>
    </didl:Descriptor>
    <didl:Descriptor> <!-- This Item has its own Modification date -->
      <didl:Statement mimeType="application/xml">
        <dcterms:modified>2006-12-20T10:29:12Z</dcterms:modified>
      </didl:Statement>
    </didl:Descriptor>
    <didl:Descriptor> <!—- deposit date -->
      <didl:Statement mimeType="application/xml">
        <dcterms:issued>2010-12-01</dcterms:issued>
      </didl:Statement>
    </didl:Descriptor>
    <didl:Descriptor> <!—- embargo on file -->
      <didl:Statement mimeType="application/xml">
        <dcterms:available>2010-12-01</dcterms:available>
      </didl:Statement>
    </didl:Descriptor>

    ...
    <didl:Component>
      <didl:Resource
        mimeType="application/pdf"
        ref="http://my.server.nl/datasheets.xls"/>
    </didl:Component>
Code Block
xml
xml
   </didl:Item>
Code Block
xml
xml
 </didl:Item>

In the above example, the Resource locations are not repeated within Component element, but each Resource location is wrapped in its own Item element. The rationale behind this is that each Bitstream or file can have its own Identifier and its own Descriptors.

...

The third ObjectType Item element contains a link to the jump-off page or intermediate page. This is done in the same way as for the Object Item element. This Item element is optional. There should not be more than one Item of this type. The identifier element and modified elements are optional.

Code Block
xml
xml
 <didl:Item>
  ...

  <!-- Below this line; an Item with a link to one optional Intermediate page -->
Code Block
xml
xml
   <didl:Item>
    <didl:Descriptor>
      <didl:Statement mimeType="application/xml">
        <rdf:type rdf:resource="info:eu-repo/semantics/humanStartPage" />
      </didl:Statement>
    </didl:Descriptor>
    ...
    <didl:Component>
      <didl:Resource
         mimeType="text/html"
         ref="http://my.server.nl/mypub.html"/>
    </didl:Component>
  </didl:Item>
Code Block
xml
xml
 </didl:Item>

Remarks:

  1. Using a Persistent Identifier for this HTML page means that you always need to resolve this page in the distant future. This is not recommended!

...