inveniosoftware / inveniosoftware/rfcs
[Proposal] [OAI-PMH] Extensible record search
- Dominant language
- No language data
- Stars
- 4
- Forks
- 22
- PR merge metrics
- No merged PRs in 30d
Description
### Motivation
> Why are we doing this? What user stories does it support? What is the expected outcome?
Currently, there is no support for different record data models (f.e. `LOM`, `Marc21`). Modules that bring support for other record data models should also have their own elasticsearch index (f.e. `lom-records`, `marc21-records`), database tables, services, etc., as the metadata format differs from `rdm-records`.
This change would allow other modules to hook into the `invenio-oaiserver` module and provide the respective records via the `OAI` protocol, without having to implement this themselves.
Outcome is to have one endpoint for a combined harvesting possibility of all records - no matter the model. Further filtering can be achieved via sets.
### Summary
> What are you proposing to change (high-level overview only)?
- Introduce data model configuration variable(s) which other modules can extend
- f.e.
```python
OAISERVER_DATA_MODELS = {
'rdm_records': {
'es_index': 'rdmrecords-records',
'record_cls': invenio_rdm_records.records.api:RDMRecord,
...
}
}
```
- Adapt implementation of `OAI-PMH` verbs to take data model configuration into account
- Provide endpoint per data model and/or one global endpoint
### Resources
> Which resources do you have available to implement this RFC and what is your overall timeline?
2 days per week from my side (as of right now)
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.