inveniosoftware / invenio-rdm-records

DataCite-based data model for InvenioRDM flavour.
https://invenio-rdm-records.readthedocs.io
MIT License
15 stars 84 forks source link

DOI template fails if there is no DOI #70

Closed dfdan closed 3 years ago

dfdan commented 4 years ago

Similar to #69 - the DOI template assumes a DOI is present and fails to render if the identifier(s) are of a separate scheme.

EDIT from discussions below A record may not have a DOI. This task is about fixing the template to account for that without crashing.

fenekku commented 4 years ago

This: https://github.com/inveniosoftware/invenio-rdm-records/issues/71#issuecomment-592650825 applies here too: all records will have a DOI (@lnielsen can confirm I believe), so the template should be able to rely on it directly.

dfdan commented 4 years ago

That's not my understanding - I know that RDM will only be able to mint DOI's in its first instance - but I though it would support the use of other PID systems without requiring/privileging DOI.

It seems like requiring users to mint new DOI's for data with other PIDs that they simply want to import would be a barrier to adoption?

tmorrell commented 4 years ago

I agree - thought that the internal record identifier was required and DOI was optional.

fenekku commented 4 years ago

My understanding there is that users wouldn't mint the DOIs if their record doesn't have one. Rather the system would mint one for them (if none are given), so that every record eventually has one. So it shouldn't be a barrier to adoption, but we would have to be careful with imports (incremental DOI generation would presumably be very slow).

The internal identifier will exist (is guaranteed) and other identifiers are supported. DOI (and Handle I think...) were floated as being "privileged" in the sense of being required...

If 2 people understood it differently, then I may be wrong on this. Let's wait for @lnielsen to clarify :)

lnielsen commented 4 years ago

Records MUST have an internal persistent identifier (record identifier of the style "adf6e-122d2") which will be the primary identifier use by the system. Records MAY have other external system managed persistent identifiers such as DOIs, …

First version of InvenioRDM will only support 1) using the internal identifier or 2) using internal + DOI.

dfdan commented 4 years ago

Thanks for clarifying. I think in a lot of cases it would be important to be able to import data with pre-existing identifiers from other schemes - even if you can't mint new ones. Could these at least be stored (/displayed/searchable)?

fenekku commented 4 years ago

@dfdan I think we can store those in the identifiers field without issue.

@lnielsen Just to be extra clear from your explanation: it may be the case that at rendering/serialization time, a record has no DOI (e.g., record was imported without one), so that kind of identifier may not appear in the identifiers list, correct?