Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin
Section
Column
width50%

Table of contents

Table of Contents
h1.

Document

information

| *

Column
width50%
Wiki Markup

Title:

*

MPEG21

DIDL

Application

Profile

for

Institutional

Repositories

\\ *


Subject:

*

MPEG21

DIDL

\\ *


Moderator:

*

Thomas

Place

\\ *


Version:

*

3.0

\\ *


Date

published:

*

2009-04-18

\\ *


Excerpt

*

:

{excerpt} This document is an adaptation of "MPEG21 DIDL Application Profile for NEEO" version 0.4 ([http://drcwww.uvt.nl/~place/neeo/didl%20application%20profile.0.4.doc|http://drcwww.uvt.nl/~place/neeo/didl%20application%20profile.0.4.doc]). The latter was based on Maurice Vanderfeesten (2008), "MPEG21 DIDL Document Specifications for repositories" version 2.3.1 [https://www.surfgroepen.nl/sites/oai/complexobjects/Shared%20Documents/DIDLdocumentSpecification_EN_v2.3.doc|https://www.surfgroepen.nl/sites/oai/complexobjects/Shared%20Documents/DIDLdocumentSpecification_EN_v2.3.doc]{excerpt}\\ \\ (Optional information) \\ *Type:* \\ *Format:* \\ *Identifier:* \\ *Language:* \\ *Rights:* \\ *Tags:* {page-info:labels}Macro om labels te geven niet mogelijk in huidige installatie, wordt nog geupdate |

Document History

Excerpt

Write an excerpt



(Optional information)
Type:
Format:
Identifier:
Language:
Rights:
Tags:

Document History

Date

Version history

Owner

Changelog

PDF

18 April 2009

3.0

SURFshare

Start of version 3.0. Based on NEEO document "MPEG21 DIDL Application Profile for Institutional Repositories" version 0.4, which is based on "MPEG21 DIDL Document Specifications for repositories" version 2.3.1.

Date

Version history

Owner

Changelog

PDF

18 April 2009

3.0

SURFshare

Start of version 3.0. Based on NEEO document "MPEG21 DIDL Application Profile for Institutional Repositories" version 0.4, which is based on "MPEG21 DIDL Document Specifications for repositories" version 2.3.1.

See also history. Note that this is the first version of this document. The version number (3.0) indicates that it is more recent and more up-to-date than the predecessors on which it is based by having a higher number than their latest versions.
Changes:

  1. Less strict remarks on the location of the namespace declarations.
  2. The number of Descriptors is unlimited.
  3. Type of a Digital Item is expressed as an URI being the value of the rdf:resource attribute of a rdf:type element.
  4. Type statements are also allowed at the top level.
  5. Instead of using not yet registered terms from info:eu-repo/semantics/, the terms from the Eprints Access Rights Vocabulary must be used for expressing the accessibility of an object
  6. For the date of deposit of an object in a repository dcterms:dateSubmitted is to be used (was dcterms:issued)

Download

PDF

22 Januari 2008

2.3.1

SURFshare

Minor change in the schema path. ISO changed the path .../dii.xsd/dii.xsd to .../dii/dii.xsd
Minor change in the examples the mimetype for humanStartPage resources changed from "application/html" to "text/html". "application/html" is not a valid mimetype.

Download

PDF

05 December 2007

2.3

SURFshare

Changes to stress the use of Persistent Identifiers in the DIDL document. The addition of the ORE compliant info:eu-repo namespace

 

23 May 2007

2.2.2

SURFshare

Some changes and little tweaks.

 

23 March 2007

2.2.1

SURFshare

Added comment of Peter van Huisstede, small corrections in the example XML.

 

6 March 2007

2.2

SURFshare

The Committee for Complex Objects looked at this document and came with more elegant improvements. Thanks to: Thomas Place, Renze Brandsma, Henk Ellermann, Peter van Huisstede and Ruud Bronmans.

 

20 February 2007

2.1

SURFshare

A closer look at the recommendations of Herbert vd Sompel gave more insight in the DIDL semantics, and thus leading to a better XMLspecification.

 

2 January 2007

2.0

SURFshare

Fundamental change of element and attribute use; for better representation of the semantics.
Additional texts for driver guidelines from Martin Feijen, new DIDL according to comments of Herbert vd Sompel, new DIDL schema. (http://purl.lanl.gov/STB-RL/schemas/2006-09/DIDL.xsd)

 

4 December 2006

1.1.2

SURFshare

Translated into English for DRIVER

 

11 July 2006

1.1.1

SURFshare

Few typos are removed.

 

10 July 2006

1.1

SURFshare

Extension with:

  • Version numbering and information
  • Complete namespace declaration in 'metadata'-item.
  • The three Items are not case sensitively discriminated by: metadata, objects and jump-off-page.
  • Extended explanation about the use of Namespace-declarations.

 

30 March 2006

1.0

SURFshare

Initial document

 

 

0.4

NEEO

  1. Some minor editorial changes
  2. 3.3.2 - Object File Item
    • Addition of deposit date as a <dcterms:issued>
    • Vocabulary for <dcterms:accessRights>

 

 

0.3

NEEO

Only minor changes

 

 

0.2

NEEO

  1. One or more object files is changed in zero, one or more object files
  2. Removed example; has to be replaced by a new example.

 

 

0.1

NEEO

Changes with respect to version 2.3.1 of "MPEG21 DIDL Document Specifications for repositories" by Maurice Vanderfeesten (SURF)

  1. Relaxed the requirement that the top Item identifier must be persistent.
  2. More strict formulation
for Item identifiers not being the same as the OAI identifier and the DIDL document identifier.
  • Replaced dip:objectType by rdf:type.
  • The use of simple Dublin Core is not mandatory and is not even recommended.
  • MODS is the recommended metadata scheme.
  • Left out all references to 'work' or 'expression'.
  • Item elements stand for Digital Items (they are Digital Item Declarations). Type statements (using rdf:type) type the Digital Items.
  • The use of identifiers (URIs) for Digital Items is mandatory.
  • Added new semantics: publishedVersion|authorVersion, embargo, description, access rights.
  •  

    Abstract

    The abstract describes what the application profile is about. It should contain a problem definition, the standards described by the application profile and the goal of the application profile.

    ...

    1. for Item identifiers not being the same as the OAI identifier and the DIDL document identifier.
    2. Replaced dip:objectType by rdf:type.
    3. The use of simple Dublin Core is not mandatory and is not even recommended.
    4. MODS is the recommended metadata scheme.
    5. Left out all references to 'work' or 'expression'.
    6. Item elements stand for Digital Items (they are Digital Item Declarations). Type statements (using rdf:type) type the Digital Items.
    7. The use of identifiers (URIs) for Digital Items is mandatory.
    8. Added new semantics: publishedVersion|authorVersion, embargo, description, access rights.

     

    Abstract

    The abstract describes what the application profile is about. It should contain a problem definition, the standards described by the application profile and the goal of the application profile.

    Introduction

    This document is an adaptation of "MPEG21 DIDL Application Profile for NEEO" version 0.4 (http://drcwww.uvt.nl/~place/neeo/didl%20application%20profile.0.4.doc). The latter was based on Maurice Vanderfeesten (2008), "MPEG21 DIDL Document Specifications for repositories" version 2.3.1 https://www.surfgroepen.nl/sites/oai/complexobjects/Shared%20Documents/DIDLdocumentSpecification_EN_v2.3.doc

    This document describes the use of DIDL in the context of institutional repositories. The DIDL Document Specification was originally developed within the DARE programme of SURF as a solution for:

    ...


    DIDL has been in use by the DARE community since the summer of 2006. One of the results is that the content of all Dutch repositories are now part of the E-Depot of the Royal Library, the national library of The Netherlands.

    Compound and Digital Objects as Digital Items

    ...

    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>
    

    Remarks:

    1. Don't forget the DIDL tag in the OAI-PMH response.
      1. Make a declaration of the didl, dii, dc and dcterms namespaces here, in the DIDL tag.
    2. The about element is optional in OAI-PMH

    ...

    The DIDL document is a document with one top-level Item element. The Item contains several child Item elements. These child Item elements describe three different types: descriptive metadata, object files and jump-off pages. Between brackets the cardinality of the XML elements are shown:

    Code Block
    <metadata> \\
    
    <didl:DIDL ...>
     \\
    <didl:Item>
     \\
    <didl:Item>...</didl:Item>
     \\
    <didl:Item>...</didl:Item>
     \\
    <didl:Item>...</didl:Item>
     \\
    </didl:Item> \\
    
    </didl:DIDL> \\
    </metadata> \\ \\
    \\
     

    Image Modified

     

    Item Descriptors


    Item Descriptors provide information about the Digital Item. A Descriptor contains a Statement with information about the Item. For each "statement" a new Descriptor is used.
    The top level Item element MUST contain two Descriptor elements. One Descriptor element for the (Persistent) Identifier and one Descriptor element for the modification date.

    1. Modifications MUST be made visible by changing the modification date. When there are no modifications the modification date can be left out from the second level Items.
    2. Changes of the modification date in child Item elements MUST be propagated to the parent Item element.
    3. When a Descriptor element for modification date is used also a Descriptor element with an identifier MUST be used (they go in pairs). Rationale: In order to compare similar harvested Item elements wrt modification date, an identifier must be added.
    4. For the second level Item elements:
      1. the "type" Descriptor element MUST always be used
      2. the "identifier" Descriptor element MUST be used in the metadata and objectfile Descriptor elements. This is optional for the jump-off page Descriptor element
      3. the "modification date" Descriptor element MAY be used in all of the second level Item elements.

     

    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> \\ \\
    \\
     


    Apart from the Identifier, modified date and type, Descriptors with other semantic content can be used, see section 3.2.

    ...

    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>
    

    Remarks:

    1. In this example the root Item has a Persistent Identifier.
    2. The identifier MUST be an URI. Some repositories can make use of registered URIs, e.g., in the Netherlands the repositories can make use of National Bibliography Numbers. If a repository doesn't have access to registered URIs, UUIDs or TAGs can be used. More information about UUIDs can be found at [http://en.wikipedia
      Anchor
      _Hlt190750088
      _Hlt190750088
      Anchor
      _Hlt190750089
      _Hlt190750089
      .org/wiki/UUID|http://en.wikipedia.org/wiki/UUID] and for TAGs the best starting point is http://www.taguri.org/. TAGs for the repository of Tilburg University could be constructed in the following way. All TAGs start with 'tag:uvt.nl,<year>:<record id>'. <year> is the year that the compound object entered the repository. The URIs for MODS records can look like 'tag:uvt.nl,<year>:<record id>/mods' and the URIs for object files can look like 'tag:uvt.nl,<year>:<record id>/<file id>'.
    3. The identifiers of the root Item and the second level Item elements SHOULD NOT be equal to the OAI identifier or the DIDL document identifier.
    4. Identifiers should not change. Different identifier implies a different object.
    5. The namespace for dii SHOULD be declared in the DIDL tag.

    ...

    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>
    

    Remarks:

    1. Declare the dcterms namespace in the DIDL tag.
    2. The format of the date is Zulu-time; which means that it can be sorted as text.
    3. There can be only one Statement element in a Descriptor element, which means that dii:identifier and dcterms:modified reside in separate Descriptor elements.

     

    Item 'type' Statement

    (In Maurice Vanderfeesten (2008), "MPEG21 DIDL Document Specification for repositories", version 2.3.1, the dip:ObjectType is used. Here, this is replaced by rdf:type as more appropriate. For compatibility with Driver and SURFshare both Descriptors can be used. In "MPEG21 DIDL Application Profile for NEEO Repositories" the URI is placed as a literal in the content of the rdf:type element. This is not in line with the use of rdf. Service providers should be aware of these different versions of expressing the type of a Digital 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>
    


    See for more information about the type statement the next section.

    ...

    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>
    

    ...

    Code Block
    xml
    xml
     <didl:Item>
    
      <didl:Item> <\!—one-\--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-\--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-\--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
    collapsetrue
     <didl:Item>
       <didl:Descriptor>
        <didl:Statement mimeType="application/xml">
          <rdf:type rdf:resource="info:eu-repo/semantics/descriptiveMetadata" />
        </didl:Statement>
      </didl:Descriptor>
      <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>
      <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>
      <didl:Component>
         <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>
     </didl:Component>
    </didl:Item>
    

    ...


    Additional Descriptor elements can be used to describe certain aspects of the object file:

    • To indicate whether the file is a (exact copy of the) published version or the version of the author that is accepted by the publisher for publication a Descriptor with a type statement can be used. The proposal is to use the following URIs:
      • info:eu-repo/semantics/publishedVersion
      • info:eu-repo/semantics/authorVersion
        These proposed URIs are not yet officially registered.

    ...

    Code Block
    xml
    xml
    collapsetrue
     
    <didl:Item>
      ...
    
      <\!-\- Below this line one can find links to one or more digital objects -->
      <didl:Item> <\!-\- First Item for a File/Bitstream -->
        <didl:Descriptor>
          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>
          Component>
    <didl:Resource
            mimeType="application/pdf"
            ref="http://my.server.nl/report.pdf"/>
        </didl:Component>
      </didl:Item>
    
      <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>
    
      <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>
      </didl:Item>
    </didl:Item>
    

    ...

    Code Block
    xml
    xml
    collapsetrue
     
    <didl:Item>
      ...
    
      <\!-\- Below this line; an Item with a link to one optional Intermediate page -->
      <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>
    </didl:Item>
    

    ...

    Example of full OAI-PMH record with a MPEG-21 DIDL document

     

    Note

    ===== TO DO =====