Transformation du répertoire SIRENE (CSV) et données connexes au format RDF pour publication en Linked Data.
Le projet est en chantier total, mais quand il y a du nouveau, c'est sur sireneld.io et sur Twitter via le hashtag #sireneLD.
Le répertoire SIRENE est administré et publié par l'INSEE et rassemble de nombreuses informations sur les organisations publiques (collectivités, administrations centrales) et privées (à but lucratif ou non-lucratif).
Chaque organisation est composée :
- d'une unité légale : l'unité légale rassemble toutes les informations centrales sur l'entreprise, indistinctement de son emplacement géographique.
- d'un ou plusieurs établissements : chaque établissement correspond à un lieu rattaché à l'entreprise, avec une adresse, une enseigne, un type d'activité, un nombre d'employés (par tranches), etc.
Le CSV source des établissements provient du fichier SIRENE géo-taggé et publié par @cquest et disponible ici : http://data.cquest.org/geo_sirene/v2019/last/.
La source ouverte officielle est le jeu de données publié sur data.gouv.fr. C'est également depuis ce jeu de données que sireneLD récupère les données des unité légales.
Les identifiants SIREN et SIRET sont les identifiants les plus courants pour identifier une organisation française. Ils sont donc logiquement présents dans des données qui décrivent leur activité. L'un des objectif de ce projet est de publier également ces données connexes, pour qu'elles ne forme un ensemble lié et requêtable.
La liste complète et à jour est là.
Quelques exemples, par ordre d'intégration :
- attributions de marchés publics (DECP)
- données des greffes (RNCS)
- données spécifiques aux associations (RNA)
Je pense que des entités aussi cruciales que les entreprises et les organismes publics doivent avoir des identifiants ancrés dans le Web, des URI. Cela vaut aussi pour les données périphériques, tels que les marchés publics. Je pense aussi que l'accessibilité de ces données est insuffisant compte tenu de leur importance.
Ainsi, en suivant les principes du Linked Data, ces URI
- servent d'identifiants universels (
81223113200034
est ambigu sans contexte,https://sireneld.io/siret/81223113200034
est univoque) - l'ancrage dans le Web permet une clarification de la responsabilité (il suffit d'ouvrir sireneld.io pour savoir qui contrôle les URI basées sur ce domaine)
- ces identifiants retournent une description de l'entité, sous forme de données (JSON, XML, ...) ou de HTML (pour les humains) en fonction de l'en-tête
Accept-Type
envoyé dans le requête HTTP GET - bonus : les données de cette entité contiennent des paramètres sous forme d'URI, et des références d'autres entités identifiées par des URI, que vous pouvez également interroger, qui elles mêmes retournent des URI, etc.
Si vous souhaitez en savoir plus sur le Linked Data, j'ai créé une liste de recommandations de lecture en bas de la page d'accueil de mon site Web.
Le second objectif est de proposer une interface graphique et une API permettant le requêtage des données.
Fait | Description | Progression |
---|---|---|
✓ | Transformer les données CSV au format RDF, en utilisant Tarql et une requête SPARQL de type CONSTRUCT (Etablissement2rdf.rq et [UniteLegale2rdf.rq](https://github.com/ ColinMaudry/sirene-ld/blob/master/sparql/UniteLegale2rdf.rq)).Résultat. Pour un requêtage efficace et pour remplacer le triple store, la production d'une archive HDT est également nécessaire. |
transform |
Abandonné | Charger les données dans un triple store, une base données dédiée au stockage et au requêtages de triplets RDF (GraphDB Free ou Apache Fuseki) Résultat. |
triplestore |
Exposer l'archive HDT à traver un point de requête SPARQL via le Comunica HDT SPARQL actor pour des requêtes SPARQL résilientes. | ldf | |
✓ | Créer et publier une ou plusieurs ontologies pour définir les classes et propriétés des entreprises et établissements décrits dans les données du SIRENE. Résultat |
ontology |
Développer une application Web où les données seront visibles et mises en valeur (en cours : sireneld.io (source) | api | frontend | |
Intégrer automatiquement les mises à jour quotidiennes publiées par l'INSEE et géocodées par @cquest. | data-update | |
Enrichir les données à partir d'autres sources de données ouvertes (marchés publics, RNA, RNCS, etc.) externes. | enrich | |
Intégrer le tout au Service public de la donnée (chiche !?) |
1.2.0 (23 avril 2020)
- adoption du format binaire HDT (Header, Dictionary, Triples) pour la publication des données
- adoption des requêtes SPARQL à la structure 2019 du SIRENE
- utilisation d'un serveur temporaire pour la création du fichier HDT
1.1.0 (15 janvier 2019)
- suppression des .nt téléversés pour économiser de l'espace disque
1.0.0 (15 janvier 2019)
- conversion du SIRENE vers RDF
- ontologies
- chargement dans le triple store par fragments
Je compte consacrer pas mal de temps à ce projet et je devrai louer un serveur dédié afin de traiter, héberger et publier la masse de données que représente le SIRENE une fois transformé en graphe (en moyenne 500 Mo par département), sans compter les données périphériques (codes officiels géographiques, nomenclature NAF, etc.).
Ainsi, pour soutenir ce projet vous pouvez :
- ajouter une étoile dans Github (en haut à droite de l'écran)
- retweeter les tweets qui ont le hashtag #sireneLD
- m'envoyer vos commentaires et encouragements par email (colin@maudry.com)