25 Avril 2016

Open Data : Couple Drupal/CKAN ou distribution Drupal DKAN ?

Commentaires

De nombreux acteurs publics ont choisi CKAN (Comprehensive Kerbal Archive Network), mis au point par l'OKFN - qui au passage soutient également l'initiative Dkan. D'autres utilisent des outils de publication de contenu tradictionnels, parmi eux, le CMS Drupal. La plupart d'entre eux ont choisi d'accoster Drupal à CKAN...

Considéré comme un mouvement et une philosophie d’accès libre à l’information, encouragé et parfois exigé à raison par le public, notamment dans le but de garantir la transparence de la vie politique, le "mouvement Open Data" commence à faire partie du paysage numérique. Nous ne débattrons pas ici de la qualité des jeux de données libérés, ni de leur prise en main par le public... Plaçons-nous du côté de ceux qui libèrent, que les données soient publiques ou privées, au passage ! Quel socle technique choisir pour un projet Open data ?

De nombreux acteurs publics ont choisi  CKAN (Comprehensive Kerbal Archive Network), mis au point par l'OKFN - qui au passage soutient également l'initiative Dkan. D'autres utilisent des outils de publication de contenu tradictionnels, parmi eux, le CMS Drupal. La plupart d'entre eux ont choisi d'accoster Drupal à CKAN pour tirer profit des points forts de chaque outil. Nous avons fait les 2. Les 2 sont d'excellentes solutions, mais quelque chose nous échappe : Pourquoi utiliser le couple Drupal et Ckan quand Drupal répond au besoin, notamment par l'intermédiaire de sa ditribution Dkan ?

Bref rappel de CKAN

Avant de d'aborder la distribution Drupal DKAN, parlons d’abord de son inspirateur : CKAN. Application web permettant le stockage et la distribution de données, CKAN est un portail de donnés open source en Python (3). Il permet de référencer des jeux de données retrouvables grâce à un moteur de recherche intégré.  Ainsi, on injecte dans CKAN des données dans des thématiques, des groupes, avec des mots clés.

Cette solution a montré son intérêt grâce à son module spatial intégré, permettant de valoriser les données spatiales. Dans ce module, certains ont trouvé leur bonheur :

  • Un client CSW (4) qui permet de rechercher des données et des services associés au sein d’un ou plusieurs catalogues ;
  • Un widget cartographique destiné aux recherches sur une étendue géographique (Leaflet Inside), d’afficher son étendue voire d’afficher ses ressources WMS (Openlayers) (5).

CKAN dispose d’une interface propre favorisant la rapidité de recherche et est facilement personnalisable. Vous pouvez coupler CKAN avec votre CMS Drupal, Wordpress, Django…Par ailleurs, comme un réseau social, le portail CKAN offre la possibilité de s’abonner à différents groupes ou organisations.

Pourquoi le couple Ckan / Drupal ?

Dans ce contexte, et à l'époque de la libération de Ckan, l'accostage entre Drupal et Ckan permettait de tirer profit de la puissance de chaque outil : les jeux de données, le moteur, la géolocalisation, l'API de moissonnage et de diffusion et le volet "social" de Ckan d'un côté... La gestion des contenus, des utilisateurs, la modularité et la vitalité de la communauté pour Drupal. Dans ce contexte, de nombreux projets ont alors choisi le couple CKAN / Drupal. Ce choix technique présentait alors une sorte d'autorité normative dès lors que nous avions à faire à une libération de données. 

Et puis en mai 2013 une version stable de Dkan a été libérée...

Retour d’expérience avec CKAN / Drupal

2012. L'équipe de bluedrop.fr est mandatée, dans le cadre d'un projet de libération départemental, pour porter le module Drupal CKAN en version Drupal 7, sur la base de la version Drupal 6. Si l'opération a été concluante, nous avons rencontré quelques difficultés : 

  • Pour l’intégrateur, la documentation était assez lapidaire ;
  • Les changements fréquents du code sur le dépôt Github s’opéraient sans respecter le versionning sémantique et sans alerter la communauté des évolutions modifiant l’API (breaking changes) ;
  • Nous avons fait face à de nombreux problèmes lors des montées en version du CKAN ;
  • Le module CKAN est toujours en sandbox, c'est-à-dire qu’il n’est pas officiellement libéré ni correctement maintenu.

De plus, nous avons tendance à préconiser de réduire au maximum les technologies et langages de programmation nécessaires au bon fonctionnement du futur site afin de limiter les problèmes de maintenance et d’évolution. Certes Python est un langage de programmation remarquable, mais il faut prendre conscience :

  • Qu’il y a moins de développeurs maîtrisant ce langage que ceux maîtrisant le PHP ;
  • Que le nombre d’hébergeurs spécialistes est également moins répandu.

​Ces points de vigilance nous ont conduit à tester la distribution Dkan...

La distribution de Drupal DKAN : La bonne alternative ?

DKAN est une distribution Drupal qui fournit une solution complète et intégrée de gestion d’un portail "open data", conçue pour avoir des fonctionnalités compatibles avec CKAN. Son nom fait bien entendu référence à CKAN, mais c’est une solution tout à fait indépendante bien que l’interopérabilité soit possible. DKAN a une approche différente de CKAN, du fait qu’il intègre les fonctionnalités d’un portail open data à l’intérieur d’un CMS existant. Les jeux de données sont traités comme du contenu, proposant ainsi de riches workflows.

La conception de DKAN avait comme objectif de rendre facile pour quiconque, en s'appuyant sur un hébergement peu coûteux, de créer un portail de libération de données. Comme toutes les distributions Drupal, il est donc possible d'étendre aisément le périmètre fonctionnel du site : blogs, pages, actualités, etc. 

Elle permet à Drupal d’avoir une solution complète de Datastore :

  • Stockage des jeux de données (ou liens) ;
  • Visualisation des jeux de données (tables, graphes, cartes) ;
  • API Json pour accès aux données (import / export).

Ainsi, avec DKAN, vous pourrez :

  • Publier facilement des ensembles de données dans des formats standards dont JSON, XML, RDF et bien d’autres ;
  • Partager des ensembles de données par le biais d’une API ;
  • Gérer l’importation de grands ensembles de données.

Mais pas seulement !

Les fonctionnalités de DKAN

La distribution DKAN dispense de plusieurs fonctionnalités pour les projets d’Open Data, dont : 

  • Catalogue de données : DKAN fournit une API REST complète pour l'import et l'export de jeux de données ; 
  • Les jeux de données : Possibilité de créer des jeux de données et ajouter des métadonnées appropriées. L’API des jeux de données de DKAN expose les métadonnées pour chaque jeu de données comme un catalogue à part entière. De plus, les fonctionnalités de jeux de données de DKAN permettent de suivre les révisions affichant ainsi toutes les modifications en utilisant le système de révisons intégré de Drupal.
  • Solution complète de Datastore :
    • Stockage des jeux de données (ou liens) ;
    • Visualisation des jeux de données : tables, graphiques, cartes avec la possibilité d’utiliser le module Geocoder pour ajouter les coordonnées de latitude et longitude ;
    • API Json pour l’accès aux données : import/ export.

Pour les éditeurs de données -

DKAN offre les caractéristiques et avantages suivants pour les organismes publiant des données ouvertes :

  • Gestion des métadonnées, y compris la génération automatique de fichiers data.json ;
  • Suite de visualisation des données complète : graphiques, tableaux et cartes ;
  • Gestion des flux de validation sécurisée (rôles, groupes, permissions) ;
  • Accès hiérarchisés pour les audiences publiques et internes ;
  • Fonctions de recherche personnalisables ;
  • Publication de données dans des formats lisibles en utilisant des normes de données ouvertes y compris JSON, XML, RDF, EDSC et d'autres ;
  • Ajout de jeux de données individuels manuellement, et/ou import par programmation  via l'API / récolte à partir d'autres applications ;
  • Fédération de données avec d'autres plates-formes de données populaires, y compris CKAN ;
  • Stockage des données directement au sein de DKAN ou sur des sites externes ;
  • Récolte automatisée, migration, importation de données à grande échelle ;
  • Personnalisation des ensembles de données en créant et en gérant vos propres champs de métadonnées ;
  • Engagement des utilisateurs en leur permettant de commenter, intégrer, demander un jeu de données.
    etc.

Pour les utilisateurs de données
Les chercheurs, les journalistes, les entrepreneurs et les développeurs peuvent tirer parti de DKAN à bien des égards :

  • Télécharger facilement les ressources de données dans de multiples formats ;
  • Visualiser des données issues de feuilles de calcul, tableaux, graphiques ou cartes ;
  • Rechercher et requêter sur l'ensemble des jeux de données ;
  • Disposer de l'API d'accès en temps réel pour développer efficacement des applications web et mobiles.

Pour aller plus loin

Quelques liens :

Références de portails open data réalisés avec DKAN :

En conclusion : Faites en fonction de vos ressources et surtout de celles de votre client ! Choisissez CKAN ou Dkan... Les deux solutions font le travail.