IQSS / IQSS/dataverse

Feature Request: OAI-PMH interoperability/access-status feature for oai_dc format

Open
#12,641 4 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Type: Feature
Dominant language
Java
Stars
1.1k
Forks
564
Avg merge
2d 2h
Merged PRs (30d)
29

Description

Dataverse installations need a supported way to communicate dataset-level access status through OAI-PMH oai_dc, independently of file-level restrictions and licenses.

We harvest all of our Dataverse dataset records into our library discovery system (Primo) using the OAI-PMH oai_dc feed. Primo treats these records as Open Access by default. However, some of our Dataverse records describe datasets that are not openly accessible, including metadata-only records for resources whose access is limited to ASU affiliates. Because these records may have no files in Dataverse, file-level restrictions cannot be used to identify them as non-open.

Previously, we used the value asu-affiliates-only in the Dataverse Kind of Data field. When Kind of Data was exported as dc:type, a Primo normalization rule detected this value and removed the Open Access designation. Now that the OAI-DC export correctly uses dc:type to identify the resource as Dataset, that local access indicator is no longer available to Primo.

As an interim workaround, we have modified DublinCoreExportUtil so that when Kind of Data contains asu-affiliates-only, the OAI-DC record also contains <dc:rights>asu-affiliates-only</dc:rights>. Primo can use this value to identify records that should not be presented as Open Access.

We are also aware of at least one other Dataverse organization maintaining a local modification to DublinCoreExportUtil to communicate access status through dc:rights. Their implementation determines whether a dataset should be represented as open, restricted, or closed and communicates those access statuses through dc:rights. While their specific use case and access rules differ from ours, it suggests that the need to communicate dataset access status to OAI-PMH harvesters is not unique to our installation.

Our workaround requires us to build and maintain a custom Dataverse WAR and carry the modification forward whenever Dataverse is upgraded. Other installations appear to be maintaining similar local customizations for this purpose. We would like a supported way for an institution to communicate that a dataset should not be considered Open Access through the metadata supplied to OAI-PMH harvesters, without requiring local modifications to the Dataverse application code.

Additional discussion: #troubleshooting > OAI feed change @ 💬

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with DublinCoreExportUtil and the existing OAI-PMH oai_dc export behavior, then review the linked Zulip discussion for the different access-status requirements. Define a supported institution-level way to communicate dataset access status without local WAR changes; done means non-open dataset records can be identified independently of file restrictions and licenses.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
api, backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.