Utiliser rdfs:label au lieu de pair:label
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 😉
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.
Deux remarques:
- On ne devrait pas utiliser
pair:labelmaisrdfs: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.
++ 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.