Versions Compared

Key

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

...

The digital objects that populate institutional repositories can be seen as compound objects that consist of parts or components that are also digital objects. In the DIDL model the basic entity is a Digital Item. The compound objects and their objects play the role of Digital Items in the model that underlies DIDL. In a DIDL document the Item elements represent the Digital Items. The top Item element that is situated directly below the DIDL root element is used for the compound object. The Item elements that are the children of the top Item element represent the objects that are part of the compound object. The objects that are part of a compound object can themselves be a compound object. When a part object is also a compound object, then its parts are not described in the same DIDL document, but a separate DIDL document is used to describe this compound object with its parts. This means that in this application profile there are only two levels of Digital Items within a DIDL document. Although DIDL allows for a hierarchy of Digital Items, this profile restricts the hierarchy to two levels: the level of the top Digital Item, the compound object and the level of the Digital Items that are parts of the top Digital Item. This version of the application profile doesn't give (yet) guidelines for the case of a compound object that is part of another compound object.
This profile distinguishes three types of digital objects: descriptive metadata, object files and jump-off pages. This list is extensible; other types can be added.
The figure below is a schematic representation of a DIDL document of a compound object that consists of one or more descriptive metadata records, zero or more object files and zero or one jump-off page. Metadata that apply to the metadata records, object files and jump-off pages can be placed in Descriptor elements within the respective Item elements. In the figure the most used Descriptors are shown. The list of Descriptor elements in an Item is extensible.
A digital object can have one or more representations. A representation is the thing that can be displayed on a computer screen or that can be printed. A representation MUST have a medium type (mimetype). In DIDL, representations are handled by the Resource element. A Resource is contained in a Component element which in its turn is a child of the Item element. There are two ways of including a representation in a Resource element. The first way is by-value: the representation as such is included as content of the Resource element. This is the usual way that metadata records formatted in XML are included. The second way is by-ref: the Resource element stays empty, but the representation is referred to by an URL that is the value of the ref-attribute of the Resource element. Normally, the URL will point to a file in the repository.
Each Digital Item MUST have an identifier with the exception of jump-off pages for which the identifier is optional. This identifier MUST be an URI. The URI of a Digital Item should be different from the URLs of its representations. The identifiers of the Digital Items must be persistent. The URLs of the representations and the medium types can change, while the identifier of the Digital Item stays the same. This allows, e.g., for replacing a file that can only be processed by an old-fashioned word processor by a version with the same content that can be read at all contemporary desk tops. Or a file can be moved to another location; the identifier of the Digital Items stays the same indicating that it is still the same file. If the policy of a repository is to preserve the different representations of a Digital Item then the repository is advised to treat the representations as separate Digital Items, each with its own persistent identifier. So it is possible that in one repository the PDF, the Word and the HTML versions of a publication are combined into one Digital Item, while in another repository they are treated as separate Digital Items. Another use of Digital Item identifiers is to relate Digital Items to each other.

Anchor
_Toc191176433
_Toc191176433
OAI Response with a DIDL document

...

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>
Item>
<didl:
Item>
Item>...</didl:Item>


<didl:
Item>
Item>...</didl:Item>


<didl:
Item>
Item>...</didl:Item>


</didl:Item>


</didl:DIDL>


</metadata>



Anchor
_Toc191176435
_Toc191176435
Item Descriptors

...

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

<didl:Item>


<didl:Item>


<didl:Descriptor>


<didl:Statement mimeType="application/xml">

<dii:Identifier>urn

<dii:Identifier>urn:nbn:nl:ui:13-
6748398729821<
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
    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.

...

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

<didl:Item>


<didl:Item>


...


<didl:
Descriptor>
Descriptor>
<didl:Statement mimeType="application/xml">

<dcterms:modified>2006

<dcterms:modified>2006-12-20T10:29:
12Z<
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.

...

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

<didl:Item>


<didl:Item>


...


<didl:
Descriptor>
Descriptor>
<didl:Statement mimeType="application/xml">

<rdf

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

...

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

<didl:DIDL ...>


<didl:Item>


<didl*:Item*>...</didl:
Item>
Item> <!-- metadata -->


<didl*:Item*>...</didl:
Item>
Item> <!-- object files -->


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

 <didl:Item>



<didl
*
:
*
Item> <!-- one or many occurrences -->


<didl:
Descriptor>
Descriptor>
<didl:Statement mimeType="application/xml">

<rdf

<rdf:type rdf:resource="info:eu-repo/semantics/descriptiveMetadata" />


</didl:Statement>


</didl:Descriptor>


...


</didl:Item>



<didl*:*Item>    <!-- zero or many occurrences -->


<didl:
Descriptor>
Descriptor>
<didl:Statement mimeType="application/xml">

<rdf

<rdf:type rdf:resource="info:eu-repo/semantics/objectFile" />


</didl:Statement>


</didl:Descriptor>


...


</didl:Item>



  <didl:
Item>
Item> <!-- zero or one occurrences -->


<didl:
Descriptor>
Descriptor>
<didl:Statement mimeType="application/xml">

<rdf

<rdf:type rdf:resource="info:eu-repo/semantics/humanStartPage" />


</didl:Statement>


</didl:Descriptor>


...


  </didl:
Item>
Item>

</didl:Item>


The URIs 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 URIs are used:

...

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

 <didl:Item>


Code Block

<didl:
Descriptor>
Descriptor>
<didl:Statement mimeType="application/xml">

<rdf

<rdf:type rdf:resource="info:eu-repo/semantics/descriptiveMetadata" />


</didl:Statement>


</didl:Descriptor>


Code Block

<didl:
Descriptor>
Descriptor> <!-- This metadata instance has its own ID number ->


  <didl:Statement mimeType="application/xml">


  <dii:
Identifier>urn
Identifier>urn:nbn:nl:ui:13-
74836724783<
74836724783</dii:Identifier>


  </didl:Statement>


  </didl:Descriptor>



Code Block

<didl:
Descriptor>
Descriptor> <!-- This record has its own Modification date ->


  <didl:Statement mimeType="application/xml">


  <dcterms:
modified>2006
modified>2006-12-20T10:29:
12Z<
12Z</dcterms:modified>


  </didl:Statement>


  </didl:Descriptor>


Code Block

 <didl:Component>


Code Block

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

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.

...

An Object File Item contains a link to a digital object. This is 'by_ref', and the Item element has a type statement with an info:eu-repo/semantics/objectFile URI. An Object File Item can occur zero, one or more times.
When there are more representations of the same object file, then this can be handled in two ways:

  1. for each representation there is a separate Resource element within the same Component element. The Descriptors of the Item element apply to both representations. The representations only differ in medium type (mimetype).
  2. for each representation there is a separate Item element. The representations can differ not only in medium type but also in other respects as reflected in their respective Descriptors.

...

  /* Font Definitions */
 @font-face
	{font-family:Verdana;
	panose-1:2 11 6 4 3 5 4 4 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:536871559 0 0 0 415 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:9.0pt;
	mso-bidi-font-size:12.0pt;
	font-family:Verdana;
	mso-fareast-font-family:"Times New Roman";
	mso-bidi-font-family:"Times New Roman";
	mso-ansi-language:EN-US;
	mso-fareast-language:EN-US;}
@page Section1
	{size:612.0pt 792.0pt;
	margin:70.85pt 70.85pt 70.85pt 70.85pt;
	mso-header-margin:35.4pt;
	mso-footer-margin:35.4pt;
	mso-paper-source:0;}
div.Section1
	{page:Section1;} /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:Standaardtabel;
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";
	mso-ansi-language:#0400;
	mso-fareast-language:#0400;
	mso-bidi-language:#0400;}
<!-- 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

</didl:Component>
Code Block

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

Anchor
_Toc191176442
_Toc191176442
Object File Item

An Object File Item contains a link to a digital object. This is 'by_ref', and the Item element has a type statement with an info:eu-repo/semantics/objectFile URI. An Object File Item can occur zero, one or more times.
When there are more representations of the same object file, then this can be handled in two ways:

  1. for each representation there is a separate Resource element within the same Component element. The Descriptors of the Item element apply to both representations. The representations only differ in medium type (mimetype).
  2. for each representation there is a separate Item element. The representations can differ not only in medium type but also in other respects as reflected in their respective Descriptors.


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.

  • To add descriptions like "Introduction", "Chapter1" and "Glossary", the dc:description element can be used within the Statement element of a Descriptor. The dc:description element can also be used for other (unstructured) information for which there is no specific element.


  • The date at which the object file is deposited can be expressed as a dcterms:dateSubmitted element.


  • If there is an embargo on a file, the dcterms:available element can be used with the date that the file will become available.





Code Block

<!--
 /* Font Definitions */
 @font-face
	{font-family:"MS Mincho";
	panose-1:2 2 6 9 4 2 5 8 3 4;
	mso-font-alt:"Arial Unicode MS";
	mso-font-charset:128;
	mso-generic-font-family:roman;
	mso-font-format:other;
	mso-font-pitch:fixed;
	mso-font-signature:1 134676480 16 0 131072 0;}
@font-face
	{font-family:Verdana;
	panose-1:2 11 6 4 3 5 4 4 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:536871559 0 0 0 415 0;}
@font-face
	{font-family:"\@MS Mincho";
	panose-1:0 0 0 0 0 0 0 0 0 0;
	mso-font-charset:128;
	mso-generic-font-family:roman;
	mso-font-format:other;
	mso-font-pitch:fixed;
	mso-font-signature:1 134676480 16 0 131072 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:9.0pt;
	mso-bidi-font-size:12.0pt;
	font-family:Verdana;
	mso-fareast-font-family:"Times New Roman";
	mso-bidi-font-family:"Times New Roman";
	mso-ansi-language:EN-US;
	mso-fareast-language:EN-US;}
@page Section1
	{size:612.0pt 792.0pt;
	margin:70.85pt 70.85pt 70.85pt 70.85pt;
	mso-header-margin:35.4pt;
	mso-footer-margin:35.4pt;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
-->
<didl:Item>
...

  <!-- Below this line one can find links to
one or more digital objects -->



Code Block

<didl:Item> <!-- First Item for a File/Bitstream -->
<didl:Descriptor>
<didl:Statement mimeType="application/xml">
<rdf:type 
  • 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.

  • To add descriptions like "Introduction", "Chapter1" and "Glossary", the dc:description element can be used within the Statement element of a Descriptor. The dc:description element can also be used for other (unstructured) information for which there is no specific element.
  • The date at which the object file is deposited can be expressed as a dcterms:dateSubmitted element.
  • If there is an embargo on a file, the dcterms:available element can be used with the date that the file will become available.
<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">
<rdf:type
rdf:resource="info:eu-repo/semantics/objectFile" />


</didl:Statement>


</didl:Descriptor>


  <didl:
Descriptor>
Descriptor> <!-- This Object Item has its own persistent ID ->


  <didl:Statement mimeType="application/xml"
>
>
  <dii:
Identifier>urn
Identifier>urn:nbn:nl:ui:13-
36724783<
36724783</dii:Identifier>


  </didl:Statement>


  </didl:Descriptor>


  <didl:
Descriptor>
Descriptor> <!-- This Item has its own Modification date ->


  <didl:Statement mimeType="application/xml">


  <dcterms:
modified>2006
modified>2006-12-20T10:29:
12Z<
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

<didl:Item> <!-- Second Item
for
 in a File/Bitstream -->


<didl:
Descriptor>
Descriptor>
<didl:Statement mimeType="application/xml">

<rdf

<rdf:type rdf:resource="info:eu-repo/semantics/objectFile" />


</didl:Statement>


</didl:Descriptor>


  <didl:
Descriptor>
Descriptor> <!-- This Object Item has its own persistent ID ->


  <didl:Statement mimeType="application/xml">


  <dii:
Identifier>urn
Identifier>urn:nbn:nl:ui:13-
36724784<
36724784</dii:Identifier>


  </didl:Statement>


  </didl:Descriptor>


  <didl:
Descriptor>
Descriptor> <!-- This Item has its own Modification date ->


  <didl:Statement mimeType="application/xml">


  <dcterms:
modified>2006
modified>2006-12-20T10:29:
12Z<
12Z</dcterms:modified>


  </didl:Statement>


  </didl:Descriptor>


<didl:
Descriptor>
Descriptor> <!--
this
 This file is the appendix -->


<didl:Statement mimeType="application/xml">

<dc:description>Appendix<

<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

<didl:Item> <!-- Third Item for a File/Bitstream -->


<didl:
Descriptor>
Descriptor>
<didl:Statement mimeType="application/xml">

<rdf

<rdf:type rdf:resource="info:eu-repo/semantics/objectFile" />


</didl:Statement>


</didl:Descriptor>


  <didl:
Descriptor>
Descriptor> <!-- This Object Item has its own persistent ID ->


  <didl:Statement mimeType="application/xml">


  <dii:
Identifier>urn
Identifier>urn:nbn:nl:ui:13-
36724785<
36724785</dii:Identifier>


  </didl:Statement>


  </didl:Descriptor>


  <didl:
Descriptor>
Descriptor> <!-- This Item has its own Modification date ->


  <didl:Statement mimeType="application/xml">


  <dcterms:
modified>2006
modified>2006-12-20T10:29:
12Z<
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>
Code Block

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

<didl:Item>


...



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

<didl:Item>


<didl:
Descriptor>
Descriptor>
<didl:Statement mimeType="application/xml">

<rdf

<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

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

...