Skip to content

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

@srosset81

Description

@srosset81

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.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions