Voici un aperçu de la méthode et des enjeux de l’importation de ces données dans le modèle d’Incommon.
Données GeoJSON vers Incommon
Les données GeoJSON diffèrent de celles saisies depuis le formulaire d’ajout d’initiatives du RCR. La table ci-dessous se base sur les données GeoJSON.
RCR | Incommon | Notes |
---|---|---|
name | Resource.name | |
description | Resource.summary | Ici nous préférons utiliser un champ plus simple et réserver les informations de popup pour la description, sous réserve de la longueur de ces données. |
nid | Resource.properties | Les champs inconnus du modèle externe se retrouvent dans Resource.properties, qui se présente sous la forme d’un objet JSON arbitraire. |
title | Resource.summary | |
type | Resource.type | Le type originel est ‘donnerie’, toutefois il s’agit dans Incommon d’un Tag ou d’une Classification, le type étant de l’ordre de Place ou Entity dans ce cas. |
Communes | Resource.properties | Le champs Communes semble être une liste de communes dans lesquelles est active la donnerie. Comme il ne correspond à aucun champ d’une Resource d’Incommon, on la notera dans les properties. |
popup | N/A | Le champs popup donne un exemple d’un gain d’information à entrer dans Incommon, mais qui nécessite une intervention humaine pour effectuer cette capture d’information à partir de données arbitraires. Nous conservons les données de popup telles quelles afin d’assurer la compatibilité avec l’existant, cependant nous en profitons pour renseigner les champs utiles commes telephone, email, url, etc. En outre nous requalifions la description en Markdown. |
Nous voyons dans cette table récapitulative que l’importation des données existantes n’est pas nécessairement un processus automatique. Afin qu’il le devienne, RCR devrait harmoniser ses champs avec le modèle d’Incommon qui offre une granularité d’information plus fine.
Chaque Resource suivant un modèle unique, on peut importer le GeoJSON, donné comme FeatureCollection, comme une Collection liée à un Agent RCR (qui en a la responsabilité).
Agent RCR
L’Agent est une Resource. On le crée une fois avec des données minimales nous permettant de sauver l’objet histoire d’avoir son identifiant disponible pour y attacher les ressources à importer.
FeatureCollection
Une “collection d’objets remarquables” en GeoJSON se traduit par une Collection dans Incommon. Pour chaque objet importé, nous allons donc l’assigner à cette collection des donneries. Ainsi nous conservons au sein de la base de données d’Incommon les informations originales concernant la source des données.
URL de la ressource
Nous observons qu’une ressource dont le nid
est 12345 est accessible à l’URL http://www.asblrcr.be/carto#overlay=node/12345
, aussi nous pouvons inscrire cette URL dans le champ correspondant au cas où il n’y a pas de site web indiqué dans le popup.
Note: dans la version de développement (v0), une Resource ne peut avoir qu’une URL et qu’un numéro de téléphone. Il est possible que certaines données de RCR contiennent plusieurs de ces éléments. Dans ce cas on les conservera dans Resource.properties afin de faciliter la transition.
Données accessibles
Les données concernant les donneries en provenance du Réseau Consommateurs Responsables sont disponibles à https://www.asblrcr.be/donnerie_geojson.txt sous forme de GeoJSON. Le fichier comporte 71 entrées.
@sylvainlohest est-ce que ces informations te sont utiles ?
Penses-tu qu’il faille d’ores et déjà intégrer une UUID pour les ressources “externes” (à Incommon) afin d’en conserver la maîtrise dans votre base et ne prendre dans Incommon qu’une version en cache ? Dans ce cas, les Resources auraient un champ uuid
qui servirait de référence globale et permettrait donc la modification hors-ligne des données (pour être synchronisées plus tard). On aura ainsi des “ressources gérées ailleurs” comportant un UUID et une URL pour lire (et éventuellement modifier) les données ; la version dans Incommon sera donc plus un cache qu’une donnée interne. Par la suite on pourra synchroniser et/ou utiliser l’API pour modifier les données directement.