inveniosoftware / product-rdm

InvenioRDM Product Roadmap
10 stars 0 forks source link

Support for user and admin manageable public person profile and public organization profile #152

Closed ulysseus-eu closed 3 months ago

ulysseus-eu commented 8 months ago

Problem statement

In the scope of Ulysseus European University we are building a RDM based on Invenio. We want to extend InvenioRDM so that it becomes our Current Research Information System as well, containing public researcher profiles and public affiliation profiles, the same way DSpace CRIS does it. ex for Universitad de Sevilla:

Describe the solution you'd like

We'd like to contribute and build the required modules (person, organization), required workflows:

Describe alternatives you've considered

We have already added custom fields and built custom pages that connect to an external database but we feel it's limited and we miss an opportunity to contribute and to make the ecosystem benefit from such a feature.

Additional context

We (Ulysseus digital team) are open to be the main contributor of this development if we get collaborative guidance on the best ways to integrate these features (vs communities, vs users) and software architecture. We'd develop in late 2023 and along 2024.

What do you think?

ulysseus-eu commented 6 months ago

We have been working on this feature design today to further discuss with the product and architecture teams. Here are few diagrams attached. First a class diagram of database objects InvenioPublicProfileClassDiagram drawio

Then we thought users would file claims on public profiles or on specific records to add them to their public profile ( records added by a third party in our case). Those claims would be resolved by global public profile admins.

Here is the sequence diagram for the resolution of claim for a list of records GrantClaimGetRecordsForProfile drawio

Here is the sequence diagram for the resolution of a claim to administrate an existing (pre-generated) public profile. GrantClaimGetProfileWithOrWithoutReplacement drawio

We'll contact you on discord to discuss live and will update this issue with the conclusions and next steps.

ulysseus-eu commented 6 months ago

We have added some more details in our fork of invenio-docs: https://github.com/ulysseus-eu/docs-invenio-rdm/blob/ulysseus/docs/develop/architecture/claim_profile_or_record.md

ulysseus-eu commented 5 months ago

While I was investigating, I started to have a look at invenio-communities module which seemed to have similar features. Doing so, I realized that invenio-communities could even fit the requirement by translating the following concept: A claim would be a Request A PublicProfile would be a Community addressing only one researcher A ProfileAdmin would be a Community member with owner role ProfileToRecordAttribution object would be the association between records and the PublicProfile community

And the workflows are already existing within community objects: creating a community => public profile requesting to be part of a community => claiming a profile add a record to a community => adding a record to a public profile etc.

So it seems I could have sort of a backend or a parent class to use.

lnielsen commented 5 months ago

Hi @ulysseus-eu,

Thanks a lot for the interest to contribute to InvenioRDM. I think the easiest approach would be to setup a meeting to discuss further. Can you reach out to me on lars.holm.nielsen@cern.ch and we can organise a call.

Indeed requests module can handle quite a lot of all the claim requests. Also, there's Invenio-accounts and invenio-userprofiles who could extended to address some of the use cases. Also Invenio-Vocabularies already has names and affiliations vocabularies that match up with profiles and organisations.

I would probably not use communities as the public profile for a researchers as communities have a lot of features around collaboration (managing members, submission rules to the communities, etc) which would seem quite odd on a researcher profile page. For organisation profiles I think communities could work well.

I can also explain more about how we try to manage the contributions etc.

lnielsen commented 5 months ago

FYI: Here's also a very old issues with some ideas for research profiles that never got realised: https://github.com/zenodo/zenodo/issues/1212

github-actions[bot] commented 3 months ago

This issue was automatically marked as stale.