assemblee-virtuelle / semapps

A toolbox to create semantic web applications
https://semapps.org
Apache License 2.0
88 stars 9 forks source link

InferenceService: ajouter la relation inverse sur le serveur fédéré #652

Closed srosset81 closed 2 years ago

srosset81 commented 3 years ago

Interopérabilité entre instances SemApps (2)

Tension Lorsqu'on ajoute une relation vers une donnée d'un serveur fédéré, on ne peut pas, comme pour des données internes, ajouter la relation inverse directement dans le triple store. C'est dommage car cela permettrait de rendre visible les relations entre instances.

Proposition Au niveau de l'inference service, lorsqu'on détecte qu'une donnée fait partie d'un serveur distant, faire un appel PATCH sur la ressource avec la relation inverse. Si jamais l'appel échoue, réessayer plus tard (permettre d'utiliser une Queue, comme on fait pour ActivityPub). Lorsque la relation est supprimée, faire un PATCH pour supprimer la relation inverse sur le serveur distant.

Attention: Ne pas créer le triple au niveau du triplestore local, sinon on risque d'avoir des données qui ne sont pas synchronisées (notamment si le serveur distant supprime le triple ou si l'appel PATCH échoue).

Si les WebACL sont activés sur l'instance distante, il faudra peut-être un mécanisme de token entre serveurs "amis", indiquant qu'un serveur est autorisé à modifier les données sur un autre serveur.

Alternative Utiliser ActivityPub, avec une activité de type Offer (qui pourrait être acceptée ou refusée), mais cela obligerait toutes les instances SemApps à supporter ActivityPub. On pourra proposer cette option dans le futur, en complément à un appel direct LDP.

GuillaumeAV commented 3 years ago

Ce serait une bonne chose non que toutes les instances SemApps supportent ActivityPub non ?

Je comprends l'intérêt de la modularité mais s'il y a des besoins d'interopérabilité et de fédération, je me dis qu'AP peut faire partie de la solution ...

srosset81 commented 3 years ago

Pour maintenir une instance avec ActivityPub depuis une année (pour Colibris), je peux dire que ça ajoute plus de complexité, notamment au niveau des données. Je pense pas qu'il faut obliger à utiliser ActivityPub, sauf s'il y a un réel besoin.

srosset81 commented 3 years ago

Commentaires suite à la réunion de ce jour (voir le CR complet):

srosset81 commented 3 years ago

Implémentation