-
Notifications
You must be signed in to change notification settings - Fork 1
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
OntoPortal federation #38
Labels
Comments
Complement information from the OntoPortal Workshop 2023 report: The OntoPortal Alliance is discussing the “federation” of all/some portals (metadata, search, content, …) Do you have any suggestions on this?
|
Additionnal requirement from report:
|
7 tasks
7 tasks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Context
This topic was introduced and discussed in the OntoPortal 2023 workshop. For more details, please refer to the OntoPortal Federated services session notes
Definition of federation
Federation refers to capacity to integrate and federate multiple (not necessarily all) OntoPortals. This allows a user of a
Portal A
to remotely access various types of information such as ontology metadata, concepts, properties, instances, users, notes, and more, stored remotely inPortal B
or even C, D, etc. The federation does not necessarily involve all the portals. Technically speaking it's possible to federate with all, but it can be customized portal per portal. We have to keep in mind that federated queries can create technical challenges (delays, connections, etc.) that could produce bad user experience.Canonical portal
A federation system, introduces certain content management challenges, specifically regarding duplication, provenance, and ownership. A proposed solution is to establish a
Canonical portal
for a given resource (ontology, user, project, note, etc.), signifying that ifPortal A
is designated as the canonical portal of a resource, it assumes responsibility for maintenance and curation. In such cases, the content from this canonical portal takes precedence over duplicates found in other portals within the federation.Types of federation
As we utilize the same OntoPortal technology, for storing and sharing resources, we benefit significantly from sharing a (relatively) common API and UI. This commonality greatly facilitates the potential success of the federation. To address the introduced specificity, we differentiate between
Internal OntoPortal Federation
andExternal OntoPortal Federation.
This distinction is crucial in navigating the nuanced aspects of our federated approach.In addition, federation can occur on multiple levels:
Portal A
can be discovered/found and accessed by all members of the federation. This means federating the metadata.Portal A
can log in to all portals in the federation.Goal
In this initial iteration, our primary focus will be on implementing the
Content
andSearch
federation within an Internal Federation.External federations
involving other repositories/tools, such as OLS, ShowVoc, SKOSMOS, and others, require extensive discussions with these entities to establish a consensus on a common API. Note: the FAIR-IMPACT project is working on a shared API that could enabled the external federation depicted. See https://github.com/FAIR-IMPACT/MOD-APIThe implementation of Users, Mappings, and Annotator/Recommender federation is planned for a subsequent iteration.
How to achieve an OntoPortal federation
Currently, an OntoPortal isntance works, as described below: we have the three main components involved, the UI displaying the content, the API handling the storage and retrieval of data, and an intermediate component bridging the connection between the UI and API over HTTP. This intermediate component translates the UI code into HTTP requests for the API, and conversely, parses the returned JSON into code that the UI can comprehend and render.
The key factor that shall enable the OntoPortal federation relatively easily is enhancing the intermediate component connecting the UI with the API. By upgrading it to handle multiple parallel calls to different APIs without altering the current deployed APIs, we can capitalize on each instance having already indexed and cached its data. This eliminates the need for a centralized index, which could be complex to maintain in the long term.
Requirements
To be continued
Action items
The text was updated successfully, but these errors were encountered: