I would like to propose removing the property "hasVersion" from ResearchProduct and adding "isVersionOf" (or some similar name) to ResearchProductVersion**.
The reason is that with the current system, to add a new RPV requires a user to have write permissions for both the RPV and the RP, whereas if we reverse the direction, the user only needs to have write permissions for the RPV. The same goes when deleting a RPV.
In an EBRAINS context, this situation often arises when adding a new RPV (in a collab space) to an already-released RP (in a curator-only space), particularly for Models and LivePapers. The logic needed to manage all the possible situations, juggling a user KG client and a service client, gets very complicated. It would be greatly simplified if the link direction were reversed.
**(we might want to consider renaming "isNewVersionOf" and "isAlternativeVersionOf" at the same time, to avoid confusion, e.g. "isNewerThan" and "isAlternativeTo")
I would like to propose removing the property "hasVersion" from ResearchProduct and adding "isVersionOf" (or some similar name) to ResearchProductVersion**.
The reason is that with the current system, to add a new RPV requires a user to have write permissions for both the RPV and the RP, whereas if we reverse the direction, the user only needs to have write permissions for the RPV. The same goes when deleting a RPV.
In an EBRAINS context, this situation often arises when adding a new RPV (in a collab space) to an already-released RP (in a curator-only space), particularly for Models and LivePapers. The logic needed to manage all the possible situations, juggling a user KG client and a service client, gets very complicated. It would be greatly simplified if the link direction were reversed.
**(we might want to consider renaming "isNewVersionOf" and "isAlternativeVersionOf" at the same time, to avoid confusion, e.g. "isNewerThan" and "isAlternativeTo")