inveniosoftware / inveniosoftware/rfcs

[Proposal] [OAI-PMH] Extensible record search

Open
#60 0 comments 1 reaction 4 assignees Claimed by @ntarocco View on GitHub
Proposal: Pending
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.