Feature Request: OAI-PMH interoperability/access-status feature for oai_dc format
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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