Logilab a participé au hackathon "Des archives aux données" organisé par la Comédie Française autour des questions de l'interopérabilité des données du spectacle vivant. Cet article regroupe les réflexions et conclusions autour de cet hackathon.

1500 mots: ~7min

Du 1er au 3 juin 2023 a eu lieu le colloque "Des archives aux données" au cours duquel deux jours de hackathon ont permis de s'interroger sur l'interopérabilité des données entre différentes institutions culturelles.

Les données présentées concernaient les représentations théâtrales de la Comédie Française (Base RCF), de la Comédie Italienne, du théâtre d'Amsterdam (Base On Stage) et du théâtre français des XVIIe et XVIIIe siècles (Base CESAR).

Ce fut l'occasion d'éprouver dans un contexte concret les avantages des technologies du Web Sémantique. Les requêtes fédérées ont en effet permis d'assembler et de manipuler des données publiées sans concertation préalable par les différents participants.

Tempête de cerveaux sur les besoins en interopérabilité

Lors de la première journée nous avons commencé par faire émerger des idées de traitements qui nécessitent une interopérabilité des données. Cette session a été très riche et il nous a fallu quelques efforts pour résumér les diverses idées et choisir vers quoi nous diriger.

Nos sources de données divergent principalement sur le périmètre étudié: les registres de la Comédie Française concernent une unique troupe, la base "ON_Stage" se focalise sur le théâtre d'Amsterdam et la base CESAR se limite à une période de temps.

La date des représentation théâtrales a été clairement identifiée comme centrale puisqu'elle permet de les aligner de manière non ambigüe. Chaque source de données décrit différemment les représentations, mais toutes ont renseigné la date.

Les lieux des représentations constituent un autre point de contact, pour autant que les périodes temporelles soient les mêmes.

Partant de ces deux constats, nous nous sommes demandé s'il serait possible d'afficher un graphique qui rendrait compte de l'évolution géographique d'une pièce dans une période de temps donnée.

Maquette d'une potentielle application

Dans la maquette ci-dessous, nous pouvons observer l'évolution dans le temps d'une pièce donnée. Au centre on voit l'enchaînement des villes où la pièce a été jouée. Une ville peut apparaître plusieurs fois si la pièce y a été rejouée après avoir tourné ailleurs. En bas figure la ligne de temps, qui est sous-divisée par année. A droite, on trouve un cadre avec des boutons qui permettent de choisir le mode de représentation.

Dans la première figure, la taille des cercles qui représentent les villes est liée au nombre de représentations.

Dans la deuxième figure, la taille des cercles qui représentent les villes est liée au revenu généré.

Dans la troisième figure, les données sont affichées sur une carte plutôt qu'avec un graphe.

Analyse des sources de données

Nous avons choisi de nous focaliser sur les sources déjà publiées dans des entrepôts SPARQL pour deux raisons. D'une part le hackathon était court, donc il fallait éviter de onsacrer du temps à des questions de lecture de formats de fichiers qui ne produiraient aucun résultat visible. D'autre part les gens autour de la table connaissaient déjà bien ces jeux de données.

Nous avons donc privilégié l'utilisation de ces trois sources de données: * Les registres de la Comédie Française / accès sparql * La base CESAR / accès sparql * La base ON-STAGE / accès sparql

Nous avons tout d'abord écrit des requêtes SPARQL fédérées afin de pouvoir joindre avec une seule requête des données de plusieurs bases.

Ce faisant, nous avons rencontré un premier problème technique, à savoir que l'entrepôt qui héberge les données de la Comédie Française n'était pas configuré pour accepter les requêtes fédérées. Nous avons donc essayé l'inverse, à savoir interroger l'entrepôt de la base CESAR, mais ce dernier repose sur Ontop, qui ne permet pas non plus les requêtes fédérées. Nous avons finalement utilisé l'entrepôt de la base ONSTAGE, déployé avec TriplyDB, pour exécuter une requête fédérée assemblant des données de RCF et CESAR... mais aucune de ONSTAGE. Ceci nous a rappelé que la fédération de requêtes, séduisante sur le papier, est parfois plus compliquée qu'il n'y paraît.

Alignement des modèles

Nous avons ensuite cherché quel modèle utiliser pour assembler les données obtenues avec ces requêtes.

La base CESAR décrit des "Séances", qui peuvent être définies comme des ensembles de représentations contigües. Cette notion peut être rapprochée de celle de "Journée" dans le modèle RCF, mais cet alignement n'est pas tout à fait exact puisqu'il est possible qu'il y ait plusieurs "Séances" à la même date, donc plusieurs "Séances" dans une "Journée". Les registres de la Comédie Française ne détiennent pas cette information de "Séance" spécifique et se contentent de considérer uniquement la "Journée".

Ces différences de modélisation sont monnaie courante et nous avons dû, sans surprise, définir un modèle intermédiaire adapté à notre objectif et des opérations de transformation des données pour les convertir de leur modèle d'origine vers ce modèle afin de les fusionner.

Nous avons retenu les notions de Pièce, de Représentation, de Séance et de Lieu.

Alignement des données

L'objectif de notre maquette étant de rendre visible les évolutions des pièces qui apparaissent quand on fusionne les données complémentaires issues des différentes sources, nous avons ensuite aligné les pièces.

Pour cela, nous avons utilisé la date de représentation pour restreindre les candidats à l'alignement, puis le nom de la pièce. Par exemple, nous savons que le 30 septembre 1681 on a joué d'après la base CESAR une pièce 123303 intitulée "Phèdre et Hippolyte" et une pièce 23287 intitulée "Les Fragments de Molière". A la même date, d'après la base RCF, on a joué une pièce 5772 intitulée "Phèdre et Hippolyte ou Phèdre" et une pièce 5396 intitulée "Fragments de Molière (Les)". Avec une simple distance de Levenshtein entre chaînes de caractères, nous pouvons aligner les pièces et affimer que 123303 chez CESAR correspond à 5396 chez RCF.

En appliquant ce traitement sur l'ensemble des dates, nous avons obtenu un alignement entre les 49 pièces de CESAR et RCF.

Vu le temps imparti, nous nous sommes limité aux pièces, mais on pourrait pousser plus loin et par exemple inclure dans le modèle les personnes, puis les aligner en utilisant des critères appropriés.

Exploitation des données

Une fois les données importées depuis les différentes sources, converties dans le même modèle et alignées automatiquement entre CESAR et RCR ou une par une pour quelques pièces de ONSTAGE, il devient possible de les exploiter.

Les bases RCF et ONSTAGE ne contenant pas de lieux, nous avons supposé que toutes les représentations RCF étaient à Paris et toutes celles d'ONSTAGE à Amsterdam. C'est probablement faux, donc pour améliorer la qualité du résultat il faudrait trouver des sources complémentaires à partir desquelles importer les lieux exacts des représentations.

Dans le calepin Jupyter qui nous a servi pour consigner nos expérimentations de manière reproductible, nous avons finalement produit le graphique ci-dessous:

Le menu déroulant en haut à gauche permet de choisir une pièce.

Nous voyons au centre un nuage de points, avec l'année en abscisse et la ville en ordonnée. La couleur des points reflète la source de données et leur taille dépend du nombre de représentations.

L'histogramme au-dessus du graphique est l'aggrégation des données par an pour toutes les villes. L'histogramme de droite est l'agrégation par ville pour toutes les années.

Ce graphique démontre que nous avons produit les données souhaitées, mais il aurait fallu plus de temps pour les représenter comme imaginé en début de hackathon lorsque nous avons dessiné les maquettes graphiques.

Conditions de l'interopérabilité et gouvernance

Ce hackathon a mis en lumière pour tous les participants des questions bien connues de ceux qui ont l'habitude de ce genre d'exercice:

  1. un modèle commun est nécessaire pour communiquer entre les bases et celles et ceux qui administrent ces bases
  2. la qualité des données d'entrée détermine l'efficacité du traitement, c'est à dire le rapport entre la qualité du résultat et l'effort nécessaire pour le produire
  3. l'alignement est une étape cruciale de la fusion des données issues de plusieurs sources
  4. les standards du Web Sémantique, et particulièrement le RDF et le SPARQL sont des atouts indéniables pour faire interopérer plusieurs sources de données

Ces constats ont fait émerger, au sein de la communauté présente à ce colloque, la question du partage des bonnes pratiques de publication de données. Effectivement, maintenir un modèle commun d'échange, rédiger une guide de bonnes pratiques pour la publication, accompagner les institutions dans leur parcours d'apprentissage, tout cela est un travail long, mais primordial pour supprimer les obstacles à l'interopérabilité.

Il a été discuté de créer un consortium Huma-Num consacré à la gestion des données du spectacle vivant et à l'expression de ces bonnes pratiques, pour orienter la suite des travaux vers des solutions communes et faciliter les interactions entre les données de différentes institutions.

A Logilab, nous apprécions le travail que nous réalisons depuis plusieurs années pour le projet des Registres de la Comédie François et nous avons été honorés d'être invités à ce colloque. Ce hackathon nous a permis de relier les données de RCF, que nous connaissons bien, à d'autres jeux de données, que nous avons découverts, mais aussi de prendre part aux débats sur leur gouvernance future. Nous espérons pouvoir continuer à apporter nos compétences techniques à ces projets, pour faciliter le travail de recherche sur le théâtre et son histoire.

a pour créateur

Inscrivez-vous et venez participer à cette journée d'échange dédié au web sémantique et ses applications à Toulouse

Un nouvel événement dédié au Web Semantique dans la ville rose s'organise !

Nous avons le plaisir de vous annoncer le programme de la journée d'atelier SemWeb.Pro que nous organisons le 13 Juin prochain à Toulouse.

Cette journée aura lieu le 13 Juin à Toulouse, dans l'espace de coworking et de réunion O'Local, dans une belle bâtisse typiquement toulousaine, avec comme objectif de favoriser au maximum les interactions.

Pensez à vous inscrire !

Le programme de cette journée s'articule en deux temps, le matin une session de présentations et l'après-midi dédié aux échanges autour des thématiques et des questions ayant animé le débat le matin même. Une restitution rapide des ateliers clôturera la journée.

Au programme :
Créneau Titre de la présentation Intervenant
10h00-10h30 Création automatique d'ontologies à partir de documents techniques M. Lalanne (Airbus)
10h30-11h00 Intérêt des Systèmes d'Informations pilotés par des ontologies. Illustration avec OpenSilex P. Neuveu (INRAE - MISTEA)
11h30-12h00 Génération d'un contexte JSON-LD à partir d'un méta-modèle : exemple avec Asset Administration Shell É. Thiéblin (Logilab)
11h30-12h00 En cours de définition ...

Tous les détails relatifs à l'inscription sont sur le site SemWeb.pro Attention, le nombre de places est limité.

Nous espérons que cet événement tiendra ses promesses en rassemblant et vous permettra d'entretenir votre réseau tout en découvrant un large spectre des possibilités du web sémantique.


Nos retours après notre participation à la PyConFR 2023. L'événement immanquable de la communauté Python en France.

500 mots - 3 minutes

La PyConFR est le rendez-vous immanquable de la communauté Python en France. Hébergé cette année par l'Université de Bordeaux, cet évènement a rassemblé des développeurs, novices et expérimentés, pendant quatre jours autour de sprints, conférence et ateliers. Après presque trois ans d'attente, nous étions contents de pouvoir enfin retrouver la communauté Python.

Sprint ReservoirPy

Les jeudi et vendredi 15 et 16 étaient consacrés aux sprints, ces ateliers qui rassemblent plusieurs personnes pour faire avancer des projets choisis au préalable.

Nous avons pu contribuer à reservoirpy, une bibliothèque de Reservoir Computing développée à l'INRIA. Nous avons travaillé sur la publication automatique via l'intégration continue (GitHub Actions en l'occurrence) de nouvelles versions de la bibliothèque sur Pypi et sur un entrepôt Anaconda.

Pour en savoir plus sur le Reservoir Computing, vous pouvez regarder cette vidéo d'introduction captée à Dataquitaine en février 2022).

Conférences

Le programme des conférences était très riche et nous avons apprécié la diversité des thématiques (généralistes, web, science des données, devops, ...). Nous n'avons pas pu aller voir toutes les conférences, mais voici un échantillon de celles qui ont particulièrement retenu notre attention.

NucliaDB, une base de données pour le machine learning et les données non-structurées

Éric Bréhault (Nuclia) a présenté NucliaDB qui est une base de données vectorielle, c'est-à-dire qu'elle permet d'associer des données à des vecteurs situés dans un espace ayant de nombreuses dimensions. Adaptée à un usage en machine learning, cette base de données propose une API permettant d'indexer des données non structurées, de faire des recherches sémantiques, etc.

À la découverte de Polars (ou pourquoi vous pourriez quitter pandas)

Cette présentation de Olivier Hervieu nous a fait découvrir une alternative à Pandas pour le traitement de données tabulaires, nommée Polars. Cette bibliothèque est utilisable en Rust et en Python. Nous avons retenu sa capacité à charger des données de manière paresseuse à partir de fichiers.

Python moderne et fonctionnel pour des logiciels robustes

La présentation de Guillaume Desforges (Tweag) a mis en avant les avantages de la programmation fonctionnelle et son applicabilité au langage Python. Elle s'est terminée par une présentation de l'architecture en oignon appliquée à une application Flask.

Psycopg, troisième du nom

Durant cette conférence, Denis Laxalde (Dalibo) a présenté l'historique de la bibliothèque Psycopg. Nous avons également pu découvrir le protocole de communication utilisé pour parler avec un cluster PostgreSQL. Enfin, nous avons observé comment Psycopg s'appuie sur la bibliothèque libpq pour proposer une API haut niveau aux développeurs Python. La version 3 de Psycopg apporte de nombreuses améliorations dont le support de async/await, le support du mode pipeline ou encore le typage statique. Nous sommes fiers à Logilab d'avoir contribué à son financement.

Conclusion

Les PyConFR sont toujours un grand moment partagé avec la communauté Python. Que ce soit pendant les sprints ou entre les conférences, nous avons eu l'opportunité de rencontrer des développeurs de tous horizons et d'échanger avec eux sur des problématiques communes. Rendez-vous dans un an pour la prochaine édition et le 16 mars dans nos locaux parisiens pour un Afpyro.

posté dans

Actualités
a pour créateur

Comme annoncé en novembre dernier, nous allons essayer de diversifier les événements SemWeb.Pro. Nous commençons par organiser une journée d'ateliers Semweb.pro à Toulouse.

Comme annoncé en novembre dernier, nous allons essayer de diversifier les événements SemWeb.Pro. Nous commençons par organiser une journée d'ateliers Semweb.pro à Toulouse au sujet du web sémantique et orientée vers les données industrielles.

L'idée est de réunir les acteurs industriels locaux ou non pour échanger ensemble sur l'usage des standards du web sémantique, qu'il s'agisse de décrire des installations, des processus ou des équipements, exploiter des réseaux de capteurs, etc.

Cette journée aura lieu le 14 Mars à Toulouse, dans l'espace de coworking et de réunion O'Local, dans une belle bâtisse typiquement toulousaine, avec comme objectif de favoriser au maximum les interactions.

La matinée sera dédiée à des présentations sur le thème du Web Sémantique pour l'industrie. L'après-midi sera l'occasion de mener des ateliers en petits groupes pour prendre le temps d'échanger. Une restitution rapide des ateliers clôturera la journée.

Tous les détails relatifs à l'inscription sont sur le site semweb.pro. Attention, le nombre de places est limité.

posté dans

Technique
a pour créateur

Logilab a assisté au congrès [Nafems](http://www.nafems.org/2014/france/) les 4 et 5 juin 2014 à Paris, notamment pour accompagner EDF R&D lors de la présentation de [Code\_TYMPAN](http://www.code-tympan.org), le seul logiciel libre de simulation de la propagation du bruit dans l'environne...

Logilab a assisté au congrès Nafems les 4 et 5 juin 2014 à Paris, notamment pour accompagner EDF R&D lors de la présentation de Code_TYMPAN, le seul logiciel libre de simulation de la propagation du bruit dans l'environnement.

Logilab participe au développement de Code_TYMPAN, qui est utilisé par EDF pour limiter les nuisances sonores de ses sites industriels et par le CEREMA pour prévoir l'impact qu'auraient des modifications des équipements routiers.

Pour découvrir les fonctionnalités de ce logiciel, lisez la présentation ou visitez la forge.

posté dans

Actualités

Membre toujours actif de la communauté Python, Logilab soutient le *meetup Python Nantes sur luigi et behave* qui aura lieu ce soir, à 19h au site de Voyages-Sncf.com situé au sud de la Gare SNCF, au 5ème étage du bâtiment Jalais dont l'entrée principale se trouve au 34 rue du Pré Gauchet....

Membre toujours actif de la communauté Python, Logilab soutient le meetup Python Nantes sur luigi et behave qui aura lieu ce soir, à 19h au site de Voyages-Sncf.com situé au sud de la Gare SNCF, au 5ème étage du bâtiment Jalais dont l'entrée principale se trouve au 34 rue du Pré Gauchet.

image

Entrée gratuite, mais inscription obligatoire.

INSCRIVEZ-VOUS !

posté dans

Actualités

Logilab exposera au salon Solutions Linux 2006 du 31 janvier au 2 février, au CNIT à Paris La Défense. Retrouvez-nous sur le stand C15 et venez assister à la conférence dédiée aux modèles économiques propres au logiciel libre. Nous vous présenterons l'avancement du projet européen PyPy ain...
Logilab exposera au salon Solutions Linux 2006 du 31 janvier au 2 février, au CNIT à Paris La Défense. Retrouvez-nous sur le stand C15 et venez assister à la conférence dédiée aux modèles économiques propres au logiciel libre. Nous vous présenterons l'avancement du projet européen PyPy ainsi que notre nouveau logiciel Erudi et nos dernières réalisations fondées sur Zope.

posté dans

Évènements

Membre toujours actif de la communauté Python, Logilab soutient le *meetup Python Nantes monitoring* qui aura lieu ce soir, à 19h à la [Cantine](https://www.lacantine.co/), située au 11 impasse Juton à Nantes. ![image](https://www.logilab.fr/file/2661/raw) À cette occasion, [Arthur L...

Membre toujours actif de la communauté Python, Logilab soutient le meetup Python Nantes monitoring qui aura lieu ce soir, à 19h à la Cantine, située au 11 impasse Juton à Nantes.

image

À cette occasion, Arthur Lutz, de Logilab, présentera divers outils dédiés au test en python. Au programme :

  • introduction aux tests unitaires
  • lancer les tests : unitest de base, py.test, nose, pytest, etc.
  • tox pour lancer les tests dans des virtualenv
  • l'intégration continue avec python (jenkins, travis, etc.)
  • les tests en production : healthcheck au cœur de l'application

Entrée gratuite, mais inscription obligatoire.

INSCRIVEZ-VOUS !

posté dans

Actualités

Logilab vous invite le lundi 3 novembre à une présentation de [Saltstack](http://www.saltstack.com/) à la cantine de Toulouse. Cela se passera de 18 à 20h, avec une présentation suivie d'un moment convivial autour d'un apéritif afin de continuer la discussion. Plus d'information et inscri...

Logilab vous invite le lundi 3 novembre à une présentation de Saltstack à la cantine de Toulouse. Cela se passera de 18 à 20h, avec une présentation suivie d'un moment convivial autour d'un apéritif afin de continuer la discussion.

Plus d'information et inscription sur le site de la cantine.

image