Input for the call: comparing DOI's and handles

25 views
Skip to first unread message

Joke Pol

unread,
Apr 29, 2016, 10:38:27 AM4/29/16
to dataverse-m...@googlegroups.com
Hi,

Sorry for cross posting, I initially targeted the wrong group.

I tried to analyse the code base related to handles and DOI's. This could serve as some concrete input to discus during the community call planned for May 10.

I examined the DatasetCommand classes and service beans that seemed relevant to me leving resolving out of scope. As the DOI beans looked quite similar I tried to create and apply an interface for these two classes, this research exercise resulted in my observations in the following overview.


Command classes: 

CreateDatasetCommand
UpdateDatasetCommand
PublishDatasetCommand
DeleteDatasetCommand
DestroyDatasetCommand
UpdateTargetDatasetTargetUrlCommand

Beans:

DOIEZIdServiceBean
DOIDataCiteServiceBean
HandlenetServiceBean

None of the three beans are called by DeleteDatasetCommand nor DestroyDatasetCommand

I would expect the DOI and HandleNet beans being used by the dataset commands in a similar way, yet:

* DOIEZIdServiceBean lacks the method alreadyExists, HandlenetServiceBean has a completely different API
* DOIEZIdServiceBean is not called for by UpdateDatasetCommand nor UpdateTargetDatasetTargetUrlCommand
* HandlenetServiceBean is only called by UpdateTargetDatasetTargetUrlCommand

I suppose other subtle changes (especially error handling) are different evolutions after copy-pasting.


It looks like handles are only supported for changes to the target URL. I did not research whether the DOIEZIdServiceBean could implement the alreadyExists method somehow.

As handles should be persistent we (DANS) require to let the handle point to something after (deletion? and) destruction of a dataset. That something should at least produce the original citation, the reason for deletion, who requested it, gave permission and when it was destroyed.




Joke Pol
Software Developer
+31 6 20 10 55 18

Data Archiving and Networked Services (DANS)
DANS promotes sustained access to digital research data. Please visit www.dans.knaw.nl for more information. DANS is an institute of KNAW and NWO.
DANS | Anna van Saksenlaan 51 | 2593 HW The Hague | P.O. Box 93067 | 2509 AB The Hague | +31 70 349 44 50 | in...@dans.knaw.nl | www.dans.knaw.nl

kcondo...@gmail.com

unread,
May 11, 2016, 11:30:26 AM5/11/16
to Dataverse Migration Working Group

This reply was posted in the main google group:

Hi Jo,

A quick response to a couple of your observations about the DOI implementation.

1) We only update the metadata sited at DataCite/EZid on dataset publish so it is intentional that nothing happens in the UpdateDatasetCommand.
2) The UpdateTargetDatasetTargetUrlCommand calls the EZidServiceBean via the command context (ctxt.doiEZId().modifyIdentifier(target, metadata))
I am currently modifying this command to include support for DataCite.

Pengcheng Luo from Peking University wrote the DOIDataCiteServiceBean modeling it after the DOIEZidServiceBean which I wrote. I was responsible for integrating the DOIDataCiteServiceBean into the Dataverse code base. We can discuss your project in more detail outside the context of the community call if you would like.

Best,
Steve Kraffmiller
IQSS

Reply all
Reply to author
Forward
0 new messages