Page History
Table of Contents | ||||||
---|---|---|---|---|---|---|
|
OAI-PMH Data Provider 2.0 (Internals)
The DSpace platform supports the Open Archives Initiative Protocol for Metadata Harvesting (OAI-PMH) version 2.0 as a data provider. This is accomplished using the XOAI OAI-PMH Java Toolkit.
The DSpace build process builds a Web application archive, _\[dspace-source\]/build/oai.war_), in much the same way as the Web UI build process described above. The only differences are that the JSPs are not included. This '"webapp' " is deployed to receive and respond to OAI-PMH requests via HTTP. In In a typical configuration, this is deployed at _oai_, containing request, driver and openaire contexts, for example: Wiki Markup
Code Block |
---|
http://dspace.myu.edu/oai/request?verb=Identify |
The '"base URL' " of this DSpace deployment would be:
...
But one could also provide the Driver or OpenAIRE contexts:
Code Block |
---|
http://dspace.myu.edu/oai/driver
http://dspace.myu.edu/oai/openaire
|
...
DSpace exposes collections and communities as sets.
Each community and collection has a corresponding OAI set, discoverable by harvesters via the ListSets verb. The setSpec is the Handle of the collectionbased on the community/collection handle, with the ':' and '/' converted to underscores so that the Handle is a legal setSpec, for "/" converted to underscore to form a legal setSpec. The setSpec is prefixed by "com_" or "col_" for communities and collections, respectively (this is a change in set names in DSpace 3.0 / OAI 2.0). For example:
Code Block |
---|
hdlcol_1721.1_1234 |
Naturally enough, the community/collection name is also the name of the corresponding set.
...
Code Block |
---|
oai:dspace.myu.edu:123456789/345 |
If you wish to use a different scheme, this can easily be changed by editing the value of identifier.prefix at \prefix at [dspace\]/config/modules/oai.cfg file. Wiki Markup
Access control
OAI provides no authentication/authorisation details, although these could be implemented using standard HTTP methods. It is assumed that all access will be anonymous for the time being.unmigrated-wiki-markup
A question is, "is all metadata public?" Presently the answer to this is yes; all metadata is exposed via OAI-PMH, even if the item has restricted access policies. The reasoning behind this is that people who do actually have permission to read a restricted item should still be able to use OAI-based services to discover the content. But, exposed data could be changed by changing the XSLT defined at \defined at [dspace\]/config/modulescrosswalks/oai/metadataFormats.
Modification Date (OAI Date Stamp)
OAI-PMH harvesters need to know when a record has been created, changed or deleted. DSpace keeps track of a '"last modified' " date for each item in the system, and this date is used for the OAI-PMH date stamp. This means that any changes to the metadata (e.g. admins correcting a field, or a withdrawal) will be exposed to harvesters.
...
"About
...
" Information
As part of each record given out to a harvester, there is an optional, repeatable "about" section which can be filled out in any (XML-schema conformant) way. Common uses are for provenance and rights information, and there are schemas in use by OAI communities for this. Presently DSpace does not provide any of this information, but XOAI core library allows its definition. This require requires to dive into code and perform some changes.
...
DSpace keeps track of deletions (withdrawals). These are exposed via OAI, which has a specific mechansim for dealing with this. Since DSpace keeps a permanent record of withdrawn items, in the OAI-PMH sense DSpace supports deletions '"persistently'". This is as opposed to '"transient' " deletion support, which would mean that deleted records are forgotten after a time.
Once an item has been withdrawn, OAI-PMH harvests of the date range in which the withdrawal occurred will find the '"deleted' " record header. Harvests of a date range prior to the withdrawal will not find the record, despite the fact that the record did exist at that time.
As an example of this, consider an item that was created on 2002-05-02 and withdrawn on 2002-10-06. A request to harvest the month 2002-10 will yield the '"record deleted' " header. However, a harvest of the month 2002-05 will not yield the original record.
Note that presently, the deletion of '"expunged' " items is not exposed through OAI.
...
DSpace supports resumption tokens for '"ListRecords'", '"ListIdentifiers' " and '"ListSets' " OAI-PMH requests.
Each OAI-PMH ListRecords request will return at most 100 records (by default) but it could be configured in file \the Wiki Markup [dspace
\]/config/
modulescrosswalks/oai/xoai.xml
file.
When a resumption token is issued, the optional completeListSize and cursor attributes are included. OAI 2.0 resumption tokens are persistent, so expirationDate of the resumption token is undefined, they do not expire.
...