You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

MPEG21 DIDL Document Specifications for repositories


Document information

Project: DARE/SHARE(NL) / DRIVER(EU)
Subject: MPEG21-DIDL Document Specifications for repositories with high quality output.
Date: 22 Januari 2008
Version: 2.3.1

Versions

Date

Version

 

22 Januari 2008

2.3.1

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.

05 December 2007

2.3

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

Some changes and little tweaks.

23 March 2007

2.2.1

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

6 March 2007

2.2

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

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

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

Translated into English for DRIVER

11 July 2006

1.1.1

Few typos are removed.

10 July 2006

1.1

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

Initial document

 

 

 





What's new

V 2.3.1

  1. Minor change in the schema path. ISO changed the path .../dii.xsd/dii.xsd to .../dii/dii.xsdNothing major, only to keep the validity check consistent.
  2. Minor change in the examples the mimetype for humanStartPage resources changed from "application/html" to "text/html". "application/html" is not a valid mimetype.


V 2.3

  1. The use of Persistent Identifiers are addressed in this version of the DIDL document.
  2. Added explanation about the Persistent Identifier.
  3. Use of the uri namespace info:eu-repo info:eu-repo/semantics/descriptiveMetadatainfo:eu-repo/semantics/objectFileinfo:eu-repo/semantics/humanStartPage


V 2.2.2

  1. Uses the official URL for the DIDL schema's stored at http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-21_schema_files
  2. Removed the comparison with the FRBR model to minimize confusions.
  3. More clear agreements about making some attributes or items Mandatory.
  4. Metadata prefix reduced to "didl"



V 2.2

  1. Uses the name "DIDL document" more consistently
  2. The value of the OAI-PMH verb MetadataPrefix has a more neutral name: "didl_document"
  3. hbo-kennisbank.nl link has been removed, along with other text revisions in advise of the Koninklijke Bibliotheek, National Library of The Netherlands.
  4. for interoperability reasons we use DIDL with a minimum of exotic extentions. The only extensions are of the MPEG21 standard itself and Dublin Core.
  5. to introduce the use of semantics of the assets contained in the DIDL Document, the urn:mpeg:mpeg21:2002:01-DIP-NS namespace is used to relate Items to an ObjectType.
  6. to determine semantic relations we use URI's (info:eu-repo) to represent the typical three ObjectTypes for Items in repositories. (Metadata, Object, Jump-off-page)
  7. uses Zulu data (ISO8601) with the YYYY-MM-DDThh:mm:ssZ granularity consistently in examples.
  8. every "text/xml" has been changed to "application/xml"
  9. every identifier, where possible, has to have a registered namespace! Example: info:doi/10.1075/123123, or info:hdl/...., or urn:nbn:nl:....
  10. the examples of the content type names have to be in lowercase, as is recommended.
  11. date modified elements and identifier elements have to be consistent in the statement of every Item, not as attributes in for example the <didl:DIDL> tag.


V 2.1

  1. Now only one <Item> is at top level.
  2. Child elements of <Item> are <Component> elements with different DRIVERtype attributes. (DescriptiveMetadata, ResourceLocation, IntermediatePageLocation) All Components are part of the Item. Therefore the semantic relationship between the two elements is a "has a" relationship. This relationship we have defined with DriverComponentTypes. We now can say, "The article has a Descriptive Metadata Component and has also a Recourse Location Component".
  3. The order in which the ResourceLocation components are placed in the DIDL does not have to be in the reading order any more.



V 2.0

  1. Semantic XML description for the Items involving metadata, digital object location and intermediate pages, replacing the description/Statement/text construct. Preview: <!-- Introducing the area for metadata --> <didl:Item dit:DriverContentType="DescriptiveMetadata" xmlns:dit="http://www.darenet.nl/upload.view/" xsi:schemaLocation="http://www.darenet.nl/upload.view/ http://www.darenet.nl/upload.view/DriverContentType.xsd" >
  2. The <Container> tag had been replaced by the <Item>, due to semantic compatibility with the DIDL Mpeg-21 standard.
  3. A new schema location (2006-09) replaces the old (2004-08).
  4. The descriptor/statement/dii:identifier construct for the DIDL root element has been replaced by the DIDLDocumentId attribute within the DIDL tag.
  5. The descriptor/statement/dcterms:modified construct for the DIDL root element has been replaced by the didlext:DIDLDocumentModified attribute within the DIDL tag.
  6. The diext:DIDcreated attribute for the DIDL root element has been replaced by the didlext:DIDLDocumentCreated attribute within the DIDL tag.




Table of Contents

MPEG21 DIDL Document Specifications for repositories
1 Document information
2 Versions
2.1 What's new
3 Table of Contents
4 Introduction and Goal
5 Background information
5.1 Persistent Identifier
6 OAI Response with a DIDL document
Remarks:
7 DIDL as wrapper
7.1 Item Descriptors
7.1.1 Item 'Identifier' Statement
Remarks:
7.1.2 Item 'modified' Statement
Remarks:
7.1.3 Item 'ObjectType' Statement
Remarks:
7.2 Compound Item - representation of the complex work
Remarks:
7.2.1 Metadata Item
Remarks:
7.2.2 Object Item
Remarks:
7.2.3 Jump-off-page / Human Start page Item
Remarks:
7.3 Example of full OAI-PMH record (thesis) as MPEG-21 DIDL


Introduction and Goal

This document is an addition to the existing DIDL document specification document for repositories which is being used by the Dutch Universities, Koninklijke Bibliotheek, National Library of The Netherlands, and DAREnet. The goal of this document is to make the use of DIDL unambiguously clear by describing:

  1. the nature of the different parts "metadata", "objects" and "jump-off-page"
  2. What the identification is.
  3. What the modification-date is.

When used correctly, this specification will create a valid XML MPEG-21 DIDL record for use with OAI-PMH responses.
This specification of the DIDL document for repositories is based on decisions that were proposed early in the development of this XML format to use MPEG-21 DIDL. The proposition was a rough sketch of a wrapper format that has room for metadata, object and jump-off-page resources.
This specification is a more precise workout.

Background information

The DIDL was originally developed within the DARE programme of SURF as a first, implementation of MPEG-21 DIDL.
The rationale behind this development was:

  • a solution for resource harvesting via OAI-PMH for transport of the digital resources (PDF's etc) from the local repository to a National Library for ingest of the resources into the E-Depot system for long term preservation
  • a solution for resource harvesting via OAI-PMH for transport of the digital resources (PDF's etc) from the local repository system to a service provider (e.g. a search portal that indexes the full text of documents)
  • a (partial) solution for representing complex documents. At first focused on theses that consist of multiple digital resource files
  • a solution for the confusing use of dc:identifier in case of a link to a so called jump-off page (JOP); many repositories place a link to a jump-off page in dc:identifier instead of a direct link to the digital resource file


The DIDL has been in use within DARE since the summer of 2006. One of the results is that the contents of all Dutch repositories are now part of the E-Depot of the Koninklijke Bibliotheek, National Library of The Netherlands.

Persistent Identifier

The Persistent Identifier is used to retrieve information also over hundreds of years despite of the underlying future technology. When a Persistent Identifier is used to Identify a Digital Object or Information, the Repository commits itself to keep the information resolvable.
The is particular DIDL document can also being used to transport the Persistent Identifier with the representations to the Resolver.
A national resolution mechanism is used to translate the Persistent Identifier into the current representations. The representation might be anno 2007 MSWord2007, or PDF8.0, but in the future that might be XYZ that represents the current information. The resolver keeps track of the updates.
In the SURFshare program the URN:NBN is used. (the arguments are not included here) We encourage to use the urn:nbn throughout Europe.
Use a persistent Identifier to Identify the information a representation represents, not to Identify the representation itself. This means Don't Identify the physical digital object like a Word file, but on a more abstract level the information it contains. The W3C URI model is as follows URN is a resource that contains static or dynamic content and refers to an URL. The URL provides the location of the representation.
In DIDL the DIDL Item Element contains an Persistent Identifier as a URN, the DIDL Resource Element contains the URL. This is how the National Resolution Services can link the URN to a URL.
DIDL[1]Item[1]Descriptor/Identifier
(persistent Identifier) Component/Resource
(URL of this DIDL representation)Item[1..8] (of type metadata)Item[1..8] (of type objects)
Item[0..1] (of type jump-off page)
Component/Resource
(representation by value (XML) or by refrerence (URL))Descriptor/Identifier
(persistent Identifier)Descriptor/ObjectType Component/Resource
(representation by ref. (URL)) Component/Resource
(representation by ref. (URL))Descriptor/dateModifiedDescriptor/Identifier
(persistent Identifier)Descriptor/ObjectTypeDescriptor/dateModifiedDescriptor/Identifier
(normal Identifier)Descriptor/ObjectTypeDescriptor/dateModified

OAI Response with a DIDL document

The DIDL document is part of an OAI-PMH response. The DIDL document will be returned within a 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:

<OAI-PMH ...>
...
<request ... metadataPrefix="didl">
...
<record>
<header>...</header>
<metadata>
<didl:DIDL
xmlns:didl="urn:mpeg:mpeg21:2002:02-DIDL-NS"
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:dii="urn:mpeg:mpeg21:2002:01-DII-NS"
xmlns:dip=" urn:mpeg:mpeg21:2005:01-DIP-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-NShttp://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-21_schema_files/dii/dii.xsd

urn:mpeg:mpeg21:2005:01-DIP-NShttp://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-21_schema_files/dip/dip.xsd "
>
...
</didl:DIDL>
</metadata>
<about>...</about>
</record>
...
</OAI-PMH>

Remarks:

  1. Don't forget the DIDL tag in the OAI-PMH response.
  2. Make a declaration of the didl , dii, dip and dcterms namespaces here, in the DIDL tag. These namespaces are needed throughout the whole DIDL document.
    1. Do not create these namespaces in the <OAI-PMH> tag, because the rationale of a DIDL document is that is an autonomous entity that can exist out of the context of OAI-PMH.
  3. The about element is optional in OAI-PMH



DIDL as wrapper

The DIDL document is a document with one top-level Item element. The Item contains several child Item elements. These child item elements appear in three different kind of Object process types (metadata, objects and jump-off page). Between brackets the cardinality of the XML elements are shown:

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="396c3a4d-23d6-47b6-9d45-41e049d49b96"><ac:plain-text-body><![CDATA[

DIDL[1]<metadata>
]]></ac:plain-text-body></ac:structured-macro>
<didl:DIDL ...>
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="d5435544-0419-49ad-9188-98c28535fb2f"><ac:plain-text-body><![CDATA[Item[1] <didl:Item>
]]></ac:plain-text-body></ac:structured-macro>
<didl:Item>...</didl:Item>
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="07af965b-5ff0-4974-83a8-77d7c5a0724f"><ac:plain-text-body><![CDATA[Item[1..8] (of type metadata)Item[1..8] (of type objects)
]]></ac:plain-text-body></ac:structured-macro>
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="d830e25d-4d1c-4b75-9430-746b65a03468"><ac:plain-text-body><![CDATA[Item[0..1] (of type jump-off page)
]]></ac:plain-text-body></ac:structured-macro>
<didl:Item>...</didl:Item>
<didl:Item>...</didl:Item>
</didl:Item>
</didl:DIDL>
</metadata>


Item Descriptors

DIDL[1]Item[1]Item[1..8] (of type metadata)Item[1..8] (of type objects)
Item[0..1] (of type jump-off page)
Descriptor[2]Descriptor[1..3]Descriptor[1..3]Descriptor[1..3]
Item descriptors provide information about the Item. This information can be semantic hints for automatic processing or reusing the XML.

  1. 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.
  2. Modifications MUST be made visible in changing the modification date.
  3. Changes in modification date in child Item elements MUST be propagated to the parent Item element.
  4. When a Descriptor element for modification date is used also an Descriptor element MUST be used (they go in pairs). Rationale: To compare similar harvested Item elements on modification date, an identifier must be added.
  5. For the second level Item elements the Object type Descriptor element MUST be used.The Identifier and Modification date MAY be used.

    Example on level one

    <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

    <didl:DIDL ...>
    <didl:Item>
    <didl:Item>
    <didl:Descriptor>...</didl:Descriptor> <!—Identification, optional -->
    <didl:Descriptor>...</didl:Descriptor> <!-- Modification date, optional-->
    <didl:Descriptor>...</didl:Descriptor> <!—- Object type, mandatory -->
    ...
    </didl:Item>
    <didl:Item>...</didl:Item>
    <didl:Item>...</didl:Item>
    <didl:Item>...</didl:Item>
    ...
    </didl:Item>
    </didl:DIDL>

    Item 'Identifier' Statement

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

    <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 our case the root Item has a Persistent Identifier to represent the
    For second level Item elements accounts that this Identifier is NOT equal to the used OAI identifier or DIDL identifier.
    2. The Identifier in the root Item element MAY be the same as the DIDL or OAI Identifier, but is not recommended.
    3. The namespace for dii MUST be declared in the DIDL tag.
    4. The Identifier MUST be an URI when applicable.

    Item 'modified' Statement

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

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

  6. Declare the dcterms namespace in the DIDL tag.
  7. The format of the date is Zulu-time; which means that it can be sorted as text.
  8. 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 'ObjectType' Statement

The third descriptor contains the object type. This Object type appears on the second level of Item elements. In other words; this applies only on child Item elements of the first Item.
This object type is being specified by the ObjectType element from the MPEG-21 Digital Item Processing (DIP) namespace that specifies an architecture pertaining to the dissemination of Digital Item Documents (DIDs).

<didl:Item>
<didl:Item>
...
<didl:Descriptor>
<didl:Statement mimeType="application/xml">
<dip:ObjectType>info:eu-repo/semantics/descriptiveMetadata</dip:ObjectType>
</didl:Statement>
</didl:Descriptor>
...
</didl:Item>
...
</didl:Item>

In section 7.3 this ObjectType statement will be further elaborated upon.

Remarks:

  1. Declare the dip namespace in the DIDL tag.
  2. The ObjectType in the MUST be described as an URI.
  3. For object types we use the info:eu-repo namespace. This is still in development.

Compound Item - representation of the complex work

The top-Item element contains at least two mandatory Item element ObjectTypes. These Item-ObjectTypes are expressions of the root Item: one for the metadata and one for the digital object file, e.g. a PDF, as described by the metadata.
Optionally there can be a third Item element ObjectType for a jump-off-page: The jump-off page is an html intermediate page that is used for human readable presentations when an Item that has more than one digital object file. This situation typically occurs with dissertations (theses) with separate object files (e.g. when the thesis consists of a set of previously published articles). It also occurs when the content provider has a PDF, MS Word DOC and a HTML version of the same article.

<didl:DIDL ...>
<didl:Item>
<didl:Item>...</didl:Item> <!-- metadata -->
<didl:Item>...</didl:Item> <!-- objects -->
<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. This can be done by refference (link to metadata XML) or by value (embedding the metadata in the DIDL XML). The use of simple Dublin Core is mandatory.
The second Item contains one or more links to the digital objects, and the third Item contains a link to a jump-off page.

<didl:Item>

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

<didl:Item> <!—one or many occurrences-->
<didl:Descriptor>
<didl:Statement mimeType="application/xml">
<dip:ObjectType>info:eu-repo/semantics/objectFile</dip:ObjectType>
</didl:Statement>
</didl:Descriptor>
...
</didl:Item>

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

</didl:Item>


The URI's will be processed case un-sensitive. It is recommended to use camelCase writing. It is VERY important to use the exact combinations of characters, otherwise automatic processing will not be possible. To make it very clear the following URI's are used:

  • Info:eu-repo/semantics/descriptiveMetadata (used to be known as the 'metadata' label in the DARE project) (This Item occurs 1 or many times)
  • Info:eu-repo/semantics/objectFile (used to be known as the 'objects' label in the DARE project) (This Item occurs 1 or many times)
  • Info:eu-repo/semantics/humanStartPage (used to be known as the 'jump-off-page' label in the DARE project) (This Item occurs 0 or 1 time)

Remarks:

    1. The info:eu-repo namespace is used with the following syntax:info:eu-repo/type/identifier like in info:lanl-repo. For more information see http://info-uri.info/registry/OAIHandler?verb=GetRecord&metadataPrefix=reg&identifier=info:lanl-repo/
    2. The semantics of the ObjectTypes mean for example that this Item states that the first sub-Item has or contains Descriptive Metadata.


Metadata Item

The first Item ObjectType element contains the metadata. The metadata is put in a Component and then in a Resource element. This can be cone by reference or by value. Every other format of the metadata is considered as a separate entity. Different metadata formats MUST be in separate Item elements. Every Component (mostly one) has a label with the name of a metadata format that has been used.

 

<didl:Item>

 


<didl:Descriptor>
<didl:Statement mimeType="application/xml">
<dip:ObjectType>
info:eu-repo/semantics/descriptiveMetadata</dip:ObjectType>
</didl:Statement>
</didl:Descriptor>

1


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

2


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

3


<didl:Resource mimeType="application/xml"> <!-- the DC data -->
<oai_dc:dc
xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://www.openarchives.org/OAI/2.0/oai_dc/ *

http://www.openarchives.org/OAI/2.0/oai_dc.xsd

"*
>
<dc:creator>...</dc:creator>
<dc:creator>...</dc:creator>
<dc:title> ... </dc:title>
...
</oai_dc:dc>
</didl:Resource>

 


</didl:Component>

 


</didl:Item>

 

 

4

<didl:Item>

<didl:Descriptor>
<didl:Statement mimeType="application/xml">
<dip:ObjectType>
info:eu-repo/semantics/descriptiveMetadata</dip:ObjectType>
</didl:Statement>
</didl:Descriptor>

<didl:Component>

<didl:Resource
mimeType="application/xml"
ref="http://my.server.nl/file1-mods.xml
xmlns:mods="http://www.loc.gov/mods/v3"
xmlns:xlink=http://www.w3.org/1999/xlink
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.loc.gov/mods/v3
http://www.loc.gov/standards/mods/v3/mods-3-3-draft-for-final-review-april-13.xsd"
>
<!-- the MODS metadata by ref -->
</didl:Resource>

</didl:Component>

</didl:Item>

Remarks:

  1. (optional) Insert only an Identifier element for the metadata package when it is also useful in OAI-PMH. This metadata set has its own identifier, which is NOT the same as de DIDL identifier.
  2. If the date of the metadata has been changed, make sure the date of the root-level Item modification date is also being changed.
  3. Declare the dc namespace in the start-tag of the Resource element where you use Dublin core.
  4. An example where the metadata is by ref. Still use the namespace to identify the profile of the metadata format.

Object Item

The second Item ObjectType contains a link to one digital object. This is 'by ref', and the Item element has an ObjectType statement with an info:eu-repo/semantics/objectFile URI. An Item can occur more then once, see the following:


<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>
<didl:Statement mimeType="application/xml">
<dip:ObjectType>info:eu-repo/semantics/objectFile</dip:ObjectType>
</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>


<didl:Item> <!-- Second Item for a File/Bitstream -->
<didl:Descriptor>
<didl:Statement mimeType="application/xml">
<dip:ObjectType>info:eu-repo/semantics/objectFile</dip:ObjectType>
</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">
<dip:ObjectType>info:eu-repo/semantics/objectFile</dip:ObjectType>
</didl:Statement>
</didl:Descriptor>
...
<didl:Component>
<didl:Resource mimeType="application/pdf"
ref="http://my.server.nl/datasheets.xls"/><didl:Component>
</didl:Item>


</didl:Item>

As you can see in the above example, the Resource locations do not appear in several components within one Item, but each Resource location is wrapped in an Item element. The rationale behind this is that each Bitstream of file can have its own Identifier.
On the ... one may place the Identifier and modified tags, which is similar to the metadata Item.

Remarks:

  1. The order of the object components should be in a logical reading order! The Item with chapter 1 should be followed by the next sibling Item element that contains chapter 2, etc... This way the service provider can make a better presentation. Making the order explicit by placing sequence numbers is being specified in the next version of the specification.
  2. If there are important modification dates for the Resource element, propagate these date changes upwards until you reach the DIDLDocumentModified attribute in the DIDL tag.
  3. Only add Identifiers when there actually are any.
    1. Use Persistent Identifiers when this object needs a commitment that it can
  4. If there are no Identifiers for the ObjectType Item elements, the Identifier of the DIDL element will be used by the service provider.
  5. Use for a modified or Identifier element a separate <Descriptor> <Statement> element construction.
  6. The rule of thumb is that if a Bitstream or file has its own identifier, the wrapper is an Item element. To keep the possibility open for a Bitstream to have an Identifier, we use the Item element as default to wrap a resource location.

Jump-off-page / Human Start page Item

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. Currently this is restricted to 1 Item of this type; there are no identifier elements, nor modification date elements present. This Item element is optional:


<didl:Item>
...

<!-- Below this line; an Item with a link to one optional Intermediate page -->


<didl:Item>
<didl:Descriptor>
<didl:Statement mimeType="application/xml">
<dip:ObjectType>
info:eu-repo/semantics/humanStartPage</dip:ObjectType>
</didl:Statement>
</didl:Descriptor>
...
<didl:Component>
<didl:Resource mimeType="text/html"
ref="http://my.server.nl/mypub.html"/></didl:Component>
</didl:Item>


</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!

Example of full OAI-PMH record (thesis) as MPEG-21 DIDL


See for web presentation of this record via jump-off page:
http://igitur-archive.library.uu.nl/dissertations/2006-1206-200250/UUindex.html

<?xml version="1.0" encoding="UTF-8" ?>
<OAI-PMH
xmlns="http://www.openarchives.org/OAI/2.0/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd"
>
<responseDate>2006-12-20T10:29:11Z</responseDate>
<request
identifier="oai:dspace.library.uu.nl:1874/15290"
metadataPrefix="didl"
verb="GetRecord">
http://dspace.library.uu.nl:8080/dspace-oai/request
</request>
<GetRecord>
<record>
<header>
<identifier>oai:dspace.library.uu.nl:1874/15290</identifier>
<datestamp>2006-12-06T19:00:49Z</datestamp>
<setSpec>hdl_1874_69</setSpec>
<setSpec>hdl_1874_12233</setSpec>
</header>
<metadata>
<!-- Introducing the DIDL document. -->
<!--
<didl:DIDL> is the wrapper or container that can be seen as an autonomous entity
that can exist outside the OAI-PMH context.
The DIDLDocumentId attribute (optional) is the DIDL identifier
and it CAN be the same as the record Identifier!
Leave it out if you have no dedicated DIDL identifier.
-->
<didl:DIDL
DIDLDocumentId=" urn:NBN:nl:ui:10-1705/6748398729821"
xmlns:didl="urn:mpeg:mpeg21:2002:02-DIDL-NS"
xmlns:dii="urn:mpeg:mpeg21:2002:01-DII-NS"
xmlns:dip="urn:mpeg:mpeg21:2005:01-DIP-NS"
xmlns:dcterms="http://purl.org/dc/terms/"
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
urn:mpeg:mpeg21:2005:01-DIP-NS http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-21_schema_files/dip/dip.xsd"
>
<!-- The Item is the autonomous compound complex entity that is a representation of a work-->
<didl:Item>
<didl:Descriptor>
<didl:Statement mimeType="application/xml">
<dii:Identifier> urn:NBN:nl:ui:10-1705/6748398729821</dii:Identifier>
</didl:Statement>
</didl:Descriptor>
<didl:Descriptor>
<didl:Statement mimeType="application/xml">
<dcterms:modified>2006-12-20T10:29:12Z</dcterms:modified>
</didl:Statement>
</didl:Descriptor>
<didl:Component>
<!-- Actual resource of Item; Location of the DIDL document -->
<didl:Resource mimeType="application/xml"
ref="http://localhost/DIDLdocument-v2.3.xml"/>
</didl:Component>
<didl:Component>
<!-- Alternate resource of Item -->
<didl:Resource mimeType="application/xml"
ref="http://remote-server.nl/This_Item_represented_in_METS.xml"/>
</didl:Component>
<didl:Component>
<!-- Alternate resource of Item -->
<didl:Resource mimeType="application/xml"
ref="http://dx.doi.com/10.1705/6748398729821"/>
</didl:Component>
<didl:Component>
<!-- Alternate resource of Item -->
<didl:Resource mimeType="application/xml"
ref="http://ORE.resolve.org/?id={3F2504E0-4F89-11D3-9A0C-0305E82C3301}"/>
</didl:Component>
<!-- Introducing the area for metadata -->
<didl:Item>
<didl:Descriptor> <!-- ObjectType of Item -->
<didl:Statement mimeType="application/xml">
<dip:ObjectType>info:eu-repo/semantics/descriptiveMetadata</dip:ObjectType>
</didl:Statement>
</didl:Descriptor>
<didl:Component> <!-- Actual resource of Item -->
<didl:Resource mimeType="application/xml">
<oai_dc:dc
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xsi:schemaLocation="
http://www.openarchives.org/OAI/2.0/oai_dc/
http://www.openarchives.org/OAI/2.0/oai_dc.xsd
http://purl.org/dc/elements/1.1/
http://dublincore.org/schemas/xmls/simpledc20021212.xsd"
>
<dc:title>Neonatal Glucocorticoid Treatment and Predisposition to Cardiovascular Disease in Rats</dc:title>
<dc:creator>Bal, M.P.</dc:creator>
<dc:subject>Geneeskunde</dc:subject>
<dc:subject>glucocorticoid</dc:subject>
<dc:subject>dexamethasone</dc:subject>
<dc:subject><!--etc...--></dc:subject>
<dc:subject>cellular hypertrophy</dc:subject>
<dc:subject>contractile proteins</dc:subject>
<dc:description>The present thesis describes the issue of "neonatal glucocorticoid treatment and predisposition to cardiovascular disease in rats". </dc:description>
<dc:publisher>Utrecht University</dc:publisher>
<dc:date>2006-12-12</dc:date>
<dc:type>Doctoral thesis</dc:type>
<dc:format>image/jpeg</dc:format>
<dc:format>image/pdf</dc:format>
<dc:format>image/pdf</dc:format>
<dc:format><!--etc...--></dc:format>
<dc:identifier>http://igitur-archive.library.uu.nl/dissertations/2006-1206-200250/UUindex.html</dc:identifier>
<dc:language>en</dc:language>
<dc:rights>(c) Bal, M.P., 2006</dc:rights>
</oai_dc:dc>
</didl:Resource>
</didl:Component>
</didl:Item>
<!-- Introducing the area for MODS metadata -->
<didl:Item>
<didl:Descriptor> <!-- ObjectType of Item -->
<didl:Statement mimeType="application/xml">
<dip:ObjectType>info:eu-repo/semantics/descriptiveMetadata</dip:ObjectType>
</didl:Statement>
</didl:Descriptor>
<didl:Component>
<didl:Resource mimeType="application/xml">
<mods
version="3.2"
xmlns="http://www.loc.gov/mods/v3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.loc.gov/mods/v3
http://www.loc.gov/standards/mods/v3/mods-3-2.xsd">
<titleInfo xml:lang="en">
<title> Neonatal Glucocorticoid Treatment and Predisposition to Cardiovascular Disease in Rats </title>
</titleInfo>
<name type="personal" ID="n1">
<namePart type="family"> Bal </namePart>
<namePart type="given">M.P.</namePart>
<role>
<roleTerm authority="marcrelator" type="code">aut</roleTerm>
</role>
</name>
<name type="personal" ID="n2">
<namePart type="family">Winter, de</namePart>
<namePart type="given">R.J.</namePart>
<role>
<roleTerm authority="marcrelator" type="code">aut</roleTerm>
</role>
</name>
<extension>
<daiList
xmlns:dai="info:eu-repo/dai"
xsi:schemaLocation="info:eu-repo/dai
http://www.surfgroepen.nl/sites/oai/metadata/Shared%20Documents/dai-extension.xsd">
<identifier
IDref="n2"
authority="info:eu-repo/dai/nl">157455590</identifier>
<identifier
IDref="n1"
authority="info:eu-repo/dai/nl">123456678</identifier>
</daiList>
</extension>
</mods>
</didl:Resource>
</didl:Component>
</didl:Item>
<!-- Introducing the area for digital fulltext objects -->
<!--

Bitstream no: [0]

-->
<didl:Item>
<didl:Descriptor> <!-- ObjectType of Item -->
<didl:Statement mimeType="application/xml">
<dip:ObjectType>info:eu-repo/semantics/objectFile</dip:ObjectType>
</didl:Statement>
</didl:Descriptor>
<didl:Descriptor> <!-- Identifier of Item -->
<didl:Statement mimeType="application/xml">
<dii:Identifier>info:doi/10. 1874/15290/18</dii:Identifier>
</didl:Statement>
</didl:Descriptor>
<didl:Descriptor> <!-- Modified date of Item -->
<didl:Statement mimeType="application/xml">
<dcterms:modified>2006-12-20T10:29:12Z</dcterms:modified>
</didl:Statement>
</didl:Descriptor>
<didl:Component> <!-- Actual resource of Item -->
<didl:Resource
mimeType="text/html"
ref="https://dspace.library.uu.nl:8443/bitstream/1874/15290/18/index.htm" />
</didl:Component>
</didl:Item>

<!--

Bitstream no: [1]

-->
<didl:Item>
<didl:Descriptor> <!-- ObjectType of Item -->
<didl:Statement mimeType="application/xml">
<dip:ObjectType>info:eu-repo/semantics/objectFile</dip:ObjectType>
</didl:Statement>
</didl:Descriptor>
<didl:Descriptor> <!-- Identifier of Item -->
<didl:Statement mimeType="application/xml">
<dii:Identifier>info:doi/10.1874/15290/16</dii:Identifier>
</didl:Statement>
</didl:Descriptor>
<didl:Descriptor> <!-- Modified date of Item -->
<didl:Statement mimeType="application/xml">
<dcterms:modified>2006-12-20T10:29:12Z</dcterms:modified>
</didl:Statement>
</didl:Descriptor>
<didl:Component> <!-- Actual resource of Item -->
<didl:Resource
mimeType="image/jpeg"
ref="https://dspace.library.uu.nl:8443/bitstream/1874/15290/16/bal.jpg" />
</didl:Component>
</didl:Item>

<!--

Bitstream no: [2]

-->
<didl:Item>
<didl:Descriptor> <!-- ObjectType of Item -->
<didl:Statement mimeType="application/xml">
<dip:ObjectType>info:eu-repo/semantics/objectFile</dip:ObjectType>
</didl:Statement>
</didl:Descriptor>
<didl:Descriptor> <!-- Identifier of Item -->
<didl:Statement mimeType="application/xml">
<dii:Identifier>info:doi/10.1874/15290/15</dii:Identifier>
</didl:Statement>
</didl:Descriptor>
<didl:Descriptor> <!-- Modified date of Item -->
<didl:Statement mimeType="application/xml">
<dcterms:modified>2006-12-20T10:29:12Z</dcterms:modified>
</didl:Statement>
</didl:Descriptor>
<didl:Component> <!-- Actual resource of Item -->
<didl:Resource
mimeType="application/pdf"
ref="https://dspace.library.uu.nl:8443/bitstream/1874/15290/15/c1.pdf" />
</didl:Component>
</didl:Item>

<!--

Bitstream no: [3]

-->
<didl:Item>
<didl:Descriptor> <!-- ObjectType of Item -->
<didl:Statement mimeType="application/xml">
<dip:ObjectType>info:eu-repo/semantics/objectFile</dip:ObjectType>
</didl:Statement>
</didl:Descriptor>
<didl:Descriptor> <!-- Identifier of Item -->
<didl:Statement mimeType="application/xml">
<dii:Identifier>info:doi/10.1874/15290/14</dii:Identifier>
</didl:Statement>
</didl:Descriptor>
<didl:Descriptor> <!-- Modified date of Item -->
<didl:Statement mimeType="application/xml">
<dcterms:modified>2006-12-20T10:29:12Z</dcterms:modified>
</didl:Statement>
</didl:Descriptor>
<didl:Component> <!-- Actual resource of Item -->
<didl:Resource
mimeType="application/pdf"
ref="https://dspace.library.uu.nl:8443/bitstream/1874/15290/14/c2.pdf" />
</didl:Component>
</didl:Item>

<!--

Bitstream no: [etc...]

-->


<!-- Introducing the intermediate page -->
<didl:Item>
<didl:Descriptor> <!-- ObjectType of Item -->
<didl:Statement mimeType="application/xml">
<dip:ObjectType>info:eu-repo/semantics/humanStartPage </dip:ObjectType>
</didl:Statement>
</didl:Descriptor>
<didl:Component> <!-- Actual resource of Item -->
<didl:Resource
mimeType="text/html"
ref="http://igitur-archive.library.uu.nl/dissertations/2006-1206-200250/UUindex.html" />
</didl:Component>
</didl:Item>

</didl:Item>
</didl:DIDL>
</metadata>
</record>
</GetRecord>
</OAI-PMH>


  • No labels