Stream: troubleshooting

Topic: OAI feed change


view this post on Zulip Deirdre Kirmis (Apr 17 2025 at 03:28):

I had a different question, but deleted it. I see the issues related to dc:type and dc:date fields and noticed that dc:rights was discussed. So is it in the plan to eventually include dc:rights in the oai_dc feed? We are trying to figure out a way to designate records as not open access, or restricted just to asu affiliates so that the feed to Primo can recognize it and also mark them that way. I think Primo requires the oai_dc format. Is there a way to add the dc:rights field to the oai_dc feed manually in the dataverse code?

view this post on Zulip Juan (Apr 22 2025 at 06:53):

Hi @Deirdre Kirmis,

We have changed the oai dc:rights output in e-cienciaDatos. You can check it here: https://edatos.consorciomadrono.es/oai?verb=ListRecords&metadataPrefix=oai_dc

Our implementation is based in Dataverse v6.5, you can find the differences with the IQSS implementation here: https://github.com/IQSS/dataverse/compare/v6.5...Consorcio-Madrono:dataverse:v6.5Madrono

dc:rights changes are in the file DublinCoreExportUtil.java. Searching "rigths" in this file you can find our changes.

The information about closed / open access is copied from the oai_datacite oai output, but in this case is automatic, not manual.

view this post on Zulip Deirdre Kirmis (Apr 22 2025 at 15:40):

This is awesome .. thank you for sharing! That is exactly what we need. We may want to do a similar thing for now, although I'm hoping eventually it will be added back as part of the default feed.

view this post on Zulip Deirdre Kirmis (Apr 22 2025 at 15:56):

Do you have any records in the repo that are marked as "closedAccess" or "restrictedAccess"? Just want to see how the feed looks.

view this post on Zulip Juan (Apr 22 2025 at 16:05):

We only have some datasets with embargoed files that are shown as "restrictedAccess". Here is an example: https://edatos.consorciomadrono.es/oai?verb=GetRecord&metadataPrefix=oai_dc&identifier=doi:10.21950/3XF0IT

view this post on Zulip Deirdre Kirmis (Apr 22 2025 at 16:18):

Perfect! Thank you!

view this post on Zulip Philip Durbin πŸš€ (Apr 28 2025 at 14:25):

Over at https://github.com/IQSS/dataverse/issues/5920#issuecomment-2339072490 I mentioned some unfinished dc:rights work that needs to be done.

@Juan please feel free to make a pull request. :big_smile:

view this post on Zulip Philip Durbin πŸš€ (Apr 28 2025 at 14:27):

Basically, I started working on dc:rights but backed out my changes when it got tricky.

view this post on Zulip Juan (Apr 29 2025 at 11:19):

@Philip Durbin β˜€οΈ , sorry for the delay in the response, It was a little dark yesterday: https://edition.cnn.com/2025/04/28/europe/spain-portugal-power-outages-intl/index.html .

I am not sure that our approach is the best one for the general case. I think that for the dc metadata, it could be better to either:

What do you think? I can create a pull request with our current approach or any of the alternatives above.

view this post on Zulip Philip Durbin πŸš€ (Apr 29 2025 at 13:10):

@Julian Gautier and @Philipp Conzett are active on #5920. I'd like to hear what they think. Thanks for being willing to create a pull request! :heart:

view this post on Zulip Julian Gautier (Apr 29 2025 at 14:18):

Hey all. @Philip Durbin β˜€οΈ thanks for the ping. I'd say I was active on #5920 but haven't been in a while and can't refocus on it for now. Too many other projects :sweat_smile:

view this post on Zulip Philip Durbin πŸš€ (Apr 29 2025 at 14:20):

real

view this post on Zulip Deirdre Kirmis (Aug 17 2026 at 20:11):

hi there .. jumping back into this conversation as we still haven't figured out a solution to the issue of marking records in the default Dataverse OAI feed as "NOT open access" or "restricted" .. is there a plan to include the dc:rights field back into that feed ever, or does anyone have a solution for sending the feed and using one of the fields to designate a "type" (ie: open access, affiliates-only) for datasets, other than hard-coding the oai output? We could try sending the feed in a different format but Primo is really set up for dc .. it would require a lot of mapping to make a different one work ..

view this post on Zulip Philip Durbin πŸš€ (Aug 18 2026 at 13:32):

@Deirdre Kirmis I probably should have said this over a year ago when you started this thread but could you please create an issue describing your use case? It makes sense to me!

view this post on Zulip Deirdre Kirmis (Aug 18 2026 at 16:21):

Yes will do .. I probably should have done that before! :slight_smile: I was just curious if anyone else had figured out a cool way to accomplish this. I do see that Juan (above) has managed to hard-code the dc:rights field .. so we may try that for now.

view this post on Zulip Philip Durbin πŸš€ (Aug 18 2026 at 16:21):

Sure, sure. If you get something working, please feel free to make a pull request!

view this post on Zulip Juan (Aug 19 2026 at 06:07):

Hi @Deirdre Kirmis ,
We have some new changes in the DublinCoreExportUtilClass and now the dc:rights is not harcoded.
The dc:rights metadata is taken from the dataset version reusing code from the DataCite metadata:
https://edatos.consorciomadrono.es/oai?verb=ListRecords&metadataPrefix=oai_dc
You can see the code here in the lines 260-291: https://github.com/Consorcio-Madrono/dataverse/blob/v6.11Madrono/src/main/java/edu/harvard/iq/dataverse/export/dublincore/DublinCoreExportUtil.java

view this post on Zulip Deirdre Kirmis (Aug 19 2026 at 22:25):

Oh hmm this is interesting .. so what gets written to dc:type is based on whether there are restricted access files and/or if request access to the files is enabled?

view this post on Zulip Deirdre Kirmis (Aug 20 2026 at 17:23):

thanks for the code change idea .. i was able to do a similar thing .. modify the OAI export to read the Kind of Data field (where we currently have the label to show NOT open access) and if that is there, add that label to the dc:rights OAI feed field and export that .. I will have to rebuild the war file every time we upgrade, but i'm also going to put a ticket in asking for something like this as a permanent solution

view this post on Zulip Juan (Aug 20 2026 at 18:00):

You are right, we use the dc:rights to indicate the open/embargoed/closed access to the dataset, I didn't see that you wanted to use the dc:type. I also think that having a permanent solution in the Dataverse code is a good idea.

view this post on Zulip Deirdre Kirmis (Aug 21 2026 at 18:07):

oops i wrote dc:type and meant dc:rights .. dc:type is defaulted to "Dataset" .. we are using dc:rights since it isn't in the feed otherwise .. i will submit a ticket requesting .. perhaps that dc:rights field could just display all of the licenses applied to the dataset and one of those could be a custom label? idk?

view this post on Zulip Philip Durbin πŸš€ (Aug 21 2026 at 18:08):

Generally, I like it when the issue doesn't specify the solution.

I mean, it doesn't hurt to suggest some options, but I'm usually more interested in the pain point.

view this post on Zulip Deirdre Kirmis (Aug 21 2026 at 18:21):

got it .. I don't know the solution anyway

view this post on Zulip Philip Durbin πŸš€ (Aug 21 2026 at 18:23):

We used to have this whole pattern.

"As a [type of user], I [description of problem]".

view this post on Zulip Philip Durbin πŸš€ (Aug 21 2026 at 18:24):

"As a contributor, I'd like the dev environment to allow uploading files (LocalStack instead of AWS with credentials)" -- https://github.com/IQSS/dataverse-frontend/issues/1056

Maybe a bad example because I'm suggesting a solution there. :sweat_smile:

view this post on Zulip Philip Durbin πŸš€ (Aug 21 2026 at 18:25):

Anyway, I do love it when you all open issues and they are expressed in your own words, unfiltered by us.

view this post on Zulip Deirdre Kirmis (Aug 24 2026 at 19:18):

https://github.com/IQSS/dataverse/issues/12641

view this post on Zulip Philip Durbin πŸš€ (Aug 24 2026 at 19:21):

@Deirdre Kirmis looks great. I added a link back to this topic in Zulip.

oai_dc is the only format you care about for this, right? If so, can you please add that to the title?

view this post on Zulip Deirdre Kirmis (Aug 24 2026 at 19:38):

For our use case this is specifically about the oai_dc feed. Primo harvests our Dataverse records with oai_dc, and that is the standard format our current Primo configuration is built around. Using a different metadata format would require us to create and maintain a custom mapping in Primo and could have other implications for the harvest, so changing formats isn't a good solution. There may be similar use cases involving other export formats, but for this ticket I think it makes sense to focus the request to oai_dc.

view this post on Zulip Philip Durbin πŸš€ (Aug 24 2026 at 19:39):

Cool. Often a smaller, more focused issue is better, anyway. Thanks for updating the title!

view this post on Zulip Philip Durbin πŸš€ (Aug 24 2026 at 19:42):

@Juan do you want to go ahead and create a pull request that closes #12641? Can you make the solution cover both your use case and Deirdre's?

view this post on Zulip Deirdre Kirmis (Aug 24 2026 at 20:12):

Well, our solutions are different .. although we are both using the dc:rights field .. we are using the value in one field (Data Type) to populate the dc:rights. They are using file restrictions or access control state to populate it. I don't think we could use their solution as some of our datasets are metadata only.

Is there a way to just populate the dc:rights field with the selected license name, and perhaps add a "Custom Label" option?

IDK .. there I go speculating solutions again! :smile:

view this post on Zulip Philip Durbin πŸš€ (Aug 24 2026 at 20:15):

Ha, no the ideas are good!

view this post on Zulip Philip Durbin πŸš€ (Aug 24 2026 at 20:16):

Sorry I guess I was just hoping for a single fix. Sounds complicated.

view this post on Zulip Philip Durbin πŸš€ (Aug 24 2026 at 20:30):

@Deirdre Kirmis ooo, did you see Jim's idea of creating a custom exporter?

view this post on Zulip Deirdre Kirmis (Aug 24 2026 at 20:42):

yes I looked at that briefly before our code modification .. that would be a great solution but I was unsure of how it worked .. i think we can use that if an external exporter registered as oai_dc can replace the built-in OAI-DC exporter used for OAI-PMH harvesting .. I put a question on there about it .. and i will look into that more as well .. that could be our solution .. thanks!

view this post on Zulip Philip Durbin πŸš€ (Aug 24 2026 at 20:43):

You're right. You have to replace the entire exporter.

view this post on Zulip Philip Durbin πŸš€ (Aug 24 2026 at 20:44):

Or create a new one, I guess. If you can point Primo at it.

view this post on Zulip Deirdre Kirmis (Aug 24 2026 at 21:01):

okay i'll look into that .. i'm honestly not sure how much work it would be on the Primo side but I'll find out .. would be better than modifying the war file.

view this post on Zulip Juan (Sep 02 2026 at 12:43):

Sorry for the late responseβ€”I was on vacation and then catching up on all the information here and on GitHub.

As you mentioned, finding a comprehensive global solution is tricky.

A potential option that can cover @Deirdre Kirmis needs is using the COAR vocabularies (https://vocabularies.coar-repositories.org/access_rights/printable/). However, this doesn't address complex cases like those indicated on GitHub (such as files with different access levels or distinguishing between closed and restricted access). Another challenge is that DC doesn't handle identifiers particularly well.

Creating a new exporter could be also complex. I am sorry but I think that I can't be useful in searching a global solution.

view this post on Zulip Deirdre Kirmis (Sep 02 2026 at 15:19):

No worries .. thank you for the suggestion. I think the best option for us at this point is just adding a little custom code and rebuilding the war file after upgrading. That is working for now, and it is not as complicated as I thought it would be. For now that is our plan.


Last updated: Oct 02 2026 at 18:51 UTC