ontoportal / ontoportal-project

OntoPortal Alliance centralized repository for the management of the OntoPortal project
https://ontoportal.org/
3 stars 1 forks source link

OntoPortal federation #38

Open syphax-bouazzouni opened 5 months ago

syphax-bouazzouni commented 5 months ago

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 in Portal 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 if Portal 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 and External OntoPortal Federation. This distinction is crucial in navigating the nuanced aspects of our federated approach.

image

In addition, federation can occur on multiple levels:

Goal

In this initial iteration, our primary focus will be on implementing the Content and Search 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-API

The 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.

image

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.

image

Requirements

To be continued

Action items

To be continued

jonquet commented 5 months ago

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?

jonquet commented 5 months ago

Additionnal requirement from report: