Skip to content
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

Auto-populate DCMI hierarchical relationship fields #71

Open
mpadge opened this issue Apr 24, 2023 · 4 comments
Open

Auto-populate DCMI hierarchical relationship fields #71

mpadge opened this issue Apr 24, 2023 · 4 comments
Assignees
Labels
enhancement New feature or request

Comments

@mpadge
Copy link
Member

mpadge commented Apr 24, 2023

To enable a workflow that automatically relates multiple deposits. Something like:

cli <- depositsClient$new()
cli$deposit_new()
id1 <- cli$id

Now consider that that deposit is one output of some multi-part project, and make a new output for that main project of which id1 is a part, with corresponding DOI 10.1234/foo:

metadata <- list (
  # ... other metadata plus ...
  hasPart = list (list (relation = "hasPart", identifier = "10.1234/foo"))
)
cli <- depositsClient$new(metadata = metadata)
cli$deposit_new()
id2 <- cli$id

Creation of that new deposit at a higher hierarchical level should then automatically populate the "isPartOf" field of the initial deposit "id1" with the DOI (or equivalent) of "id2", and update the "datapackage.json" file.

The obverse procedure should happen when "isPartOf" is specified, so the deposit pointed to by "isPartOf" should also be updated to have "hasPart" specified and pointing to that deposit. (And of course that form of updating should only be triggered if the two deposits have the same "owner" (Zenodo) or "account_id" (Figshare).)

@mpadge
Copy link
Member Author

mpadge commented Apr 24, 2023

@noamross I'd appreciate any thoughts you might have here before proceeding. Thanks!

@noamross
Copy link

A couple of thoughts:

  1. Should this relation have a special workflow different from setting other relations (such as isIdenticalTo, isSupplementOf)? Or should those be part of this workflow?
  2. I suspect there are a lot of edge cases in terms of actual relationships, authorship, ownership, etc. I think perhaps this should trigger a message in the publishing workflow, like "this deposit has a relation to another data set .... do you want to attempt to automatically add a reverse relation to that set?"

@mpadge
Copy link
Member Author

mpadge commented Apr 24, 2023

1. Should this relation have a special workflow different from setting other relations
  (such as `isIdenticalTo`,  `isSupplementOf`)?  Or should those be part of this workflow?

No, the idea is that they can all be part of same general workflow (importantly also including "isVersionOf").

2. I suspect there are a lot of edge cases in terms of actual relationships, authorship, ownership, etc. 
   I think perhaps this should trigger a message in the publishing workflow, like "this deposit has a 
   relation to another data set .... do you want to attempt to automatically add a reverse relation to
   that set?"

Good idea! Do you then think it's worthwhile going ahead an implementing this?

@noamross
Copy link

I would table this as a feature as a nice-to-have to implement after higher priority items.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants