UA-64832042-1

Quelles solutions pour maintenir et collaborer sur une même base de données ouverte ?

+1 vote
asked Feb 22, 2016 in Data by Olivier Active (510 points)

Dans la dynamique collaborative d'Epidemium, nous cherchons à mettre en place une solution de gestion collaborative de bases de données. Une sorte de mélange d'outils existants (github, DSS, micro-tasks management, etc.) permettant sur la base d'un premier jeux de données, de laisser chacun l'utiliser et contribuer à son développement en ajoutant des données pour obtenir à la fin une base la plus complète possible, propre et prêtes à être utilisée par toute la communauté. 

Il s'agit de pouvoir : 

  • Ajouter des données dans la base pour un nouvel arrivant / contributeur récurrent. 
  • Vérifier que les données sont bien chargées. 
  • Versionning 
  • Documenter les ajouts 
  • Faire des analyses avec les données ajoutées
  • Ajouter des micro-taches des besoins de variables dans la base

Vos réponses, avis et commentaires sont les bienvenus. 

Merci. 

1 Answer

+1 vote
answered Feb 22, 2016 by anonymous

Si l'idée est de partir d'un dataset "de base" et de l'enrichir petit à petit, pourquoi pas simplement un repo Github? 

Ajouter des données dans la base pour un nouvel arrivant / contributeur récurrent. 

-> Reprendre le principe des pull requests de Github pour quelqu'un qui veut soumettre une modification/un ajout. Utiliser les issues pour signaler les besoins (suggestion de type de données à ajouter) et les problèmes (si quelqu'un détecte une erreur dans les données par ex.) 

Vérifier que les données sont bien chargées

-> Mettre en place des tests de déploiement (par ex. avec l'outil Travis (https://travis-ci.org/), directement utilisable sur Github) + un "data review" de la part d'un ou plusieurs admins

Versioning

Intrinsèque à Github ;-)

Documenter les ajouts

Quasi automatique avec le texte des commits et des pull requests. Possibilité de refuser des commits si pas assez documenté. Et la syntaxe Markdown utilisée par Github permet beaucoup de mises en formes complexes (LaTeX, tableaux, etc.)

Faire des analyses avec les données ajoutées

Possibilité de séparer les données (dans un dossier data) et les analyses (dans un dossier notebook) au sein d'un repo Github unique. A noter que depuis peu Github permet le rendering automatique des Jupyter notebook, et plus encore, si on veut avoir une version "active" d'un notebook on peut utiliser l'outil Binder (http://mybinder.org/).

Ajouter des micro-taches des besoins de variables dans la base

Voir la partie issues de Github. 

Pour plus de détails et quelques idées sur le principe des pull requests et des issues, voir notamment cette vidéo https://youtu.be/JQRiwZKJktE?t=7m53s qui résume pas mal de choses de façon accessible.

commented Feb 22, 2016 by Olivier Active (510 points)
Merci. C'est en effet l'une des solutions les plus pertinentes et que nous envisageons. Cependant, les membres de la communauté maitrisant GitHub sont peu nombreux. Nous envisageons donc, si cette solution est choisie de diffuser des liens de tutoriels pour que chacun puisse apprendre à utiliser l'outils. En tout cas, merci pour votre contribution et les liens que vous partagez.
Welcome to Epidemium Q&A, where you can ask questions and receive answers from other members of the community.
...