Expose internal data model to allow mapping configurations
Status: proposed
Date: 2022-03-21
Context and Problem Statement
Single instances of target repositories may need specific fields to be mapped. Therefore, mapping from our data model to the required model for these repos must be configurable, through either
a mapping file
a required function
Our deliverable should also include base templates for vanilla InvenioRDM and Dataverse installations of the latest* version.
Decision Drivers
Ensure usability for customized instances, i.e., instances that use data models extending the vanilla repo data models, such as providing custom metadata blocks, different versions of the data model, forks, etc.
Must be packagable to provide to end users, who shouldn’t need to configure individually
Considered Options
Mapping file
Required mapping function
Provide both ways
Decision Outcome
Chosen option: “”, because comes out best.
Pros and Cons of the Options
Mapping file
Good, because Simple to configure (no Python knowledge needed)
Good, because Could be provided as a simple function reading a csv/*ML file
Bad, because Need to definbe a semantic
Required mapping function
Good, because extremely versatile
Good, because Can implement, e.g., composed fields (many fields to one composed field and vice versa)
Bad, because Python knowledge needed