semapps icon indicating copy to clipboard operation
semapps copied to clipboard

Utiliser rdfs:label au lieu de pair:label

Open scenaristeur opened this issue 4 years ago • 3 comments

Problématique De ce que j'ai lu sur jsonld, le context est là pour apporter des précisions sur un json classique comme

{ label: "guillaume",
type: "Person",
involvedIn: "Av"
...
}

Or en utilisant la lib jsonld avec la fonction compacted je me retrouve avec des choses comme


{ pair:label: "guillaume",
pair:type: "Person",
pair:involvedIn: "Av"
...
}

Ce qui est à mon sens anti-interoperabilité et contre productif pour les devs qui souhaitent se brancher sur semapps

Proposition Le context devrait inclure des trucs du style

label: "http://.....#pair:label

Cela permettrait au consommateur de l'API d'utiliser des clés simples courantes, intuitives.

On peut en reparler si je ne suis pas très clair 😉

scenaristeur avatar Mar 06 '21 09:03 scenaristeur

En quoi utiliser label au lieu de pair:label favorise l'interoperabilité ? Les deux sont parfaitement compatible JSON-LD et le premier à l'avantage d'indiquer explicitement l'ontologie utilisée, au cas où il y en a plusieurs (c'est le cas pour Archipel, où on utilise PAIR et ActivityPub)

Dans tous les cas, chaque logiciel est libre d'utiliser le contexte qu'il préfère, en recompactant éventuellement les données.

srosset81 avatar Mar 06 '21 09:03 srosset81

Deux remarques:

  • On ne devrait pas utiliser pair:label mais rdfs:label, qui est plus standard. A mon avis ça n'a pas trop de sens d'avoir réinventé un concept de label pour l'ontologie PAIR.
  • Ce qui pourrait être chouette, c'est une spécification officielle qui permettrait d'indiquer (par exemple dans le header) le contexte JSON dans lequel on veut recevoir la donnée. De cette manière, plutôt que de compacter une fois les données avec un certain contexte au niveau du serveur, puis une deuxième fois côté frontend, on n'aurait qu'à exécuter l'opération qu'une seule fois et on aurait les données dans le format qui nous convient.

srosset81 avatar Mar 06 '21 22:03 srosset81

++ pour que le client précise les contexte à utiliser par le middleware : l'AV va se mettre à faire des specs :-)

pour le pair:label. Il y a un intérêt limité: Définir des range ou d'autre information sur cette property qui est très large en rdfs:label. de plus rdfs:label est conçu pour mettre un label dans des ontologies et pas sur des data. Spécifier un label dans une ontologie permet de dissocier clairement le concept de label dédié aux classes et property de l'ontologie de celui dédié au data.

simonLouvet avatar Mar 08 '21 08:03 simonLouvet