-
Notifications
You must be signed in to change notification settings - Fork 492
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Usage of datestamp from Record during harvest using oai_dc format #8693
Comments
Hi @tcoupin, as I have my fingers dirty with XOAI and harvesting code right now, I tried to dig around the Dataverse OAI-PMH Client code to look if this might be a problem with the Digging deeper, I tried to find places where the dataverse/src/main/java/edu/harvard/iq/dataverse/harvest/client/FastGetRecord.java Lines 521 to 533 in e8435ac
The import of the Dublin Core metadata written out as a file by |
Digging through the server code, I find that Possible ways to get there:
There is a check in place comparing the last export time of the record and the dataset, so the entry will only be updated if the last metadata export is newer than the OAI records last creation. Of course this might be prone to a race condition or other error, where a dataset keeps getting exported etc. Someone would need to debug this more closely... |
In the client side: dataverse/src/main/java/edu/harvard/iq/dataverse/harvest/client/HarvesterServiceBean.java Line 257 in e8435ac
The release date is finaly set in import service bean: dataverse/src/main/java/edu/harvard/iq/dataverse/api/imports/ImportServiceBean.java Line 278 in e8435ac
In the server side:
With oai_dc format, there are only 2 dates: in the header and in date tag (not set in dataverse oai server responses). The date tag refers to the creation or publication date so it's not appropriate to use it to store the last modification date. Currently, the date is map to the publication date field of the dataset (https://github.com/IQSS/dataverse/blob/develop/src/main/resources/db/migration/afterMigrate__1-7256-upsert-referenceData.sql#L20) I still don't unterdand why the datestamp is the date of the export and not the date of the last modification. |
You Sir @tcoupin are absolutely right about the client code using the header About the date missing from the Looking at And with regards to the |
When I setup a client using oai_dc format, the datestamp from Record is used as release time and is display above the citation:
and result :
I think it is the good behavior because of the definition of datestamp tag: "the date of creation, modification or deletion of the record for the purpose". This is coherent with hosted datasets, this date is used as release time of datasetversion object and so for sorting dataset on display.
But when I harvest an other dataverse with this format, the datestamp is the export date of the record and this date can be updated without a new version of the dataset.
So I have 2 questions:
1- Why can the datestamp be updated without new version of the dataset?
2- Can I modify the code so that the datestamp will be the release time? A full haversting will be necessary for the client to rollback to the release time older than the current record datestamp
Which version of Dataverse are you using?
5.5 or 5.10.1
Any related open or closed issues to this bug report?
The text was updated successfully, but these errors were encountered: