Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create interconnected FAIR-DOs #247

Draft
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

maximiliani
Copy link
Member

@maximiliani maximiliani commented Dec 13, 2024

Relationship management API

see issue #109

Why?

While creating a more complex use case of FAIR-DOs, I needed to create connected FAIR-DOs. The Typed PID Maker couldn't do it, therefore I initially planned to write a (highly disposable) Python script. Until I saw this open issue...

In issue #109 an idea of managing relationships of already existing FAIR-DOs was introduced. This was not quite what I needed for my use case, because I had to create a not small amount of FAIR-DOs (>2500 per data source --> 3*2500 = 7.500 FAIR-DOs). This made it undesirable to first create some half-finished FAIR-DOs, just to extend them later... Therefore, I extended the existing /pit/pid endpoint to create connected FAIR-DOs from a list of PIDRecords with "fantasy PIDs" just for referencing. These "fantasy PIDs" are mapped to freshly-generated PIDs and simply replaced in the value fields of all the records in the same request.

What?

  • create POST /api/v1/pit/pids endpoint for creating connected FAIR-DOS
    • accept a list of PIDRecords with "fantasy PIDs" that are referenced in other PIDRecords values and simply replace them
    • OpenAPI v3 documentation
    • add implementation for createPIDs() method
    • Testing

See future ideas in issue #109

@maximiliani maximiliani changed the title relationsship management API Relationship management API Dec 13, 2024
@Pfeil
Copy link
Member

Pfeil commented Dec 18, 2024

Note: bidirectional relations should be properly defined. Some bidirectional relations have different relation types. For example, "hasMetadata" and "isMetadataFor". Should / can we (reliably) support these cases?

@maximiliani maximiliani changed the title Relationship management API Create interconnected FAIR-DOs Jan 13, 2025
@maximiliani
Copy link
Member Author

Note: bidirectional relations should be properly defined. Some bidirectional relations have different relation types. For example, "hasMetadata" and "isMetadataFor". Should / can we (reliably) support these cases?

Probably, this would be useful at some point in time. For now, due to time constraints and a lack of a concrete use case, I moved these ideas to the original issue (#109).

@Pfeil Pfeil added this to the 3.0.0 milestone Jan 26, 2025
@Pfeil Pfeil added the enhancement New feature or request label Jan 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants