Stream: dev

Topic: CrossRef DOI provider


view this post on Zulip Konrad Perłowski (Oct 10 2023 at 08:51):

Hello, I want to add the ability to add CrossRef as a new DOI provider. I wrote some code (mainly inspired by the DataCite code), but I encountered one problem - after creating the dataset, Dataverse calls the 'reserveIdentifier' method, which in the case of DataCite reserves the DOI number, which is impossible in the case of CrossRef (CrossRef does not provide the option to reserve DOI). How can I deal with this problem?
I would also like to ask if I should create some kind of draft pull request where I can show my code?

view this post on Zulip Oliver Bertuch (Oct 10 2023 at 08:53):

Hi @Konrad Perłowski and welcome! :wave:

view this post on Zulip Oliver Bertuch (Oct 10 2023 at 08:56):

Heads up that there are plans to make PID providers pluggable as we now enabled for exporters. How urgent is your development? Are you fine with sticking to a fork for now? (I somewhat doubt a PR to add a CrossRef provider would make it into upstream soon, but let's ask @Philip Durbin to verify that)

view this post on Zulip Oliver Bertuch (Oct 10 2023 at 08:59):

Back to your original problem (and please let's stick to that in this topic, please create a new topic for the fork vs plugin thing):

Dataverse calls the 'reserveIdentifier' method

Are you referring to DOIDataCiteServiceBean.createIdentifier(DvObject dvObject) here? I'm not aware of a "reserveIdentifier" method coming from the interface GlobalIdServiceBean.

view this post on Zulip Oliver Bertuch (Oct 10 2023 at 09:02):

Maybe better examples to learn from are https://github.com/IQSS/dataverse/blob/develop/src/main/java/edu/harvard/iq/dataverse/pidproviders/PermaLinkPidProviderServiceBean.java and https://github.com/IQSS/dataverse/blob/develop/src/main/java/edu/harvard/iq/dataverse/pidproviders/FakePidProviderServiceBean.java

view this post on Zulip Oliver Bertuch (Oct 10 2023 at 09:03):

The DataCite Provider is quite messy... :see_no_evil:

view this post on Zulip Konrad Perłowski (Oct 10 2023 at 09:05):

Yes, that is the method calling reserveIdentifier. The problem is if I don't post any doi to CrossRef after creating new draft dataset, this doi could be taken later on by some other dataset, but I can't post draft dataset as published one

view this post on Zulip Oliver Bertuch (Oct 10 2023 at 09:06):

Who would take that?

view this post on Zulip Oliver Bertuch (Oct 10 2023 at 09:06):

Which way of PID generation are you planning to use?

view this post on Zulip Oliver Bertuch (Oct 10 2023 at 09:07):

Dataverse will take care of not creating a PID again for two different entities for you.

view this post on Zulip Oliver Bertuch (Oct 10 2023 at 09:08):

(For a very long time, you could not reserve DOIs at DataCite as well.)

view this post on Zulip Philip Durbin 🚀 (Oct 10 2023 at 11:17):

Yes, we should check with Jim Myers (qqmyers) about refactoring the PID code. He has made a lot of progress recently and I just left a comment about this here: https://github.com/IQSS/dataverse/issues/8581#issuecomment-1755100912

view this post on Zulip Andrzej Zemla (Oct 10 2023 at 13:07):

I guess that we can handle it with Konrad our problem (the discussion helped me to better understand the issue). But we are very interested in pluggable PID's since we are hosting repositories for 6 Universities, and were forced by DataCite policy to use 6 different doi's - so we have to run 6 instances, and then harvest them. But still, DV only supports DataCite as a provider, so support for Crossref should be useful.

What is the roadmap for these plugged PID providers?

view this post on Zulip Philip Durbin 🚀 (Oct 10 2023 at 13:14):

I'm not sure. I don't see anything on the roadmap or the backlog board.

view this post on Zulip Oliver Bertuch (Oct 10 2023 at 13:20):

Well it will probably not be this year... And probably putting money in the game will push things forward...

view this post on Zulip Philip Durbin 🚀 (Oct 10 2023 at 13:23):

I feel like there's an issue about multiple DOI authorities in a single installation.

view this post on Zulip Philip Durbin 🚀 (Oct 10 2023 at 13:39):

Ah ha. Found it: Support flexible option for DOI and Handle registration, in same installation #3623

view this post on Zulip Philip Durbin 🚀 (Oct 10 2023 at 13:40):

And it's currently tagged as a 6.1 proposal.

view this post on Zulip Philip Durbin 🚀 (Oct 10 2023 at 13:43):

@Andrzej Zemla I left a comment with your use case.

view this post on Zulip Philip Durbin 🚀 (Aug 27 2024 at 17:50):

@Konrad Perłowski hi! We've been leaving comments on your PR #10235. It has merge conflicts and we created a new PR #10803. We'd love to hear what you think. Also, we'd like to make sure you get credit somehow, if you want it, for kicking this off!


Last updated: Nov 01 2025 at 14:11 UTC