[{"cw_etype": "BlogEntry", "eid": 27573060, "title": "Hackathon \"Des archives aux donn\u00e9es\" 2023", "content": "1500 mots: ~7min\r\n\r\n\r\n\r\nDu 1er au 3 juin 2023 a eu lieu le colloque \"Des archives aux donn\u00e9es\" au cours duquel deux jours de hackathon ont permis de s'interroger sur l'interop\u00e9rabilit\u00e9 des donn\u00e9es entre diff\u00e9rentes institutions culturelles.\r\n\r\nLes donn\u00e9es pr\u00e9sent\u00e9es concernaient les repr\u00e9sentations th\u00e9\u00e2trales de la Com\u00e9die Fran\u00e7aise ([Base RCF](https://www.cfregisters.org/)), de la Com\u00e9die Italienne, du th\u00e9\u00e2tre d'Amsterdam ([Base On Stage](https://lod.uba.uva.nl/CREATE/ONSTAGE/))  et du th\u00e9\u00e2tre fran\u00e7ais des XVIIe et XVIIIe si\u00e8cles ([Base CESAR](https://cesar.huma-num.fr/cesar2/)).\r\n\r\nCe fut l'occasion d'\u00e9prouver dans un contexte concret les avantages des technologies du Web S\u00e9mantique. Les requ\u00eates f\u00e9d\u00e9r\u00e9es ont en effet permis d'assembler et de manipuler des donn\u00e9es publi\u00e9es sans concertation pr\u00e9alable par les diff\u00e9rents participants.\r\n\r\n## Temp\u00eate de cerveaux sur les besoins en interop\u00e9rabilit\u00e9\r\n\r\nLors de la premi\u00e8re journ\u00e9e nous avons commenc\u00e9 par faire \u00e9merger des id\u00e9es de traitements qui n\u00e9cessitent une interop\u00e9rabilit\u00e9 des donn\u00e9es. Cette session a \u00e9t\u00e9 tr\u00e8s riche et il nous a fallu quelques efforts pour r\u00e9sum\u00e9r les diverses id\u00e9es et choisir vers quoi nous diriger.\r\n\r\nNos sources de donn\u00e9es divergent principalement sur le p\u00e9rim\u00e8tre \u00e9tudi\u00e9: les registres de la Com\u00e9die Fran\u00e7aise concernent une unique troupe, la base \"ON_Stage\" se focalise sur le th\u00e9\u00e2tre d'Amsterdam et la base CESAR se limite \u00e0 une p\u00e9riode de temps.\r\n\r\nLa date des repr\u00e9sentation th\u00e9\u00e2trales a \u00e9t\u00e9 clairement identifi\u00e9e comme centrale puisqu'elle permet de les aligner de mani\u00e8re non ambig\u00fce. Chaque source de donn\u00e9es d\u00e9crit diff\u00e9remment les repr\u00e9sentations, mais toutes ont renseign\u00e9 la date.\r\n\r\nLes lieux des repr\u00e9sentations constituent un autre point de contact, pour autant que les p\u00e9riodes temporelles soient les m\u00eames.\r\n\r\nPartant de ces deux constats, nous nous sommes demand\u00e9 s'il serait possible d'afficher un graphique qui rendrait compte de l'\u00e9volution g\u00e9ographique d'une pi\u00e8ce dans une p\u00e9riode de temps donn\u00e9e.\r\n\r\n## Maquette d'une potentielle application\r\n\r\nDans la maquette ci-dessous, nous pouvons observer l'\u00e9volution dans le temps d'une pi\u00e8ce donn\u00e9e. Au centre on voit l'encha\u00eenement des villes o\u00f9 la pi\u00e8ce a \u00e9t\u00e9 jou\u00e9e. Une ville peut appara\u00eetre plusieurs fois si la pi\u00e8ce y a \u00e9t\u00e9 rejou\u00e9e apr\u00e8s avoir tourn\u00e9 ailleurs. En bas figure la ligne de temps, qui est sous-divis\u00e9e par ann\u00e9e. A droite, on trouve un cadre avec des boutons qui permettent de choisir le mode de repr\u00e9sentation.\r\n\r\nDans la premi\u00e8re figure, la taille des cercles qui repr\u00e9sentent les villes est li\u00e9e au nombre de repr\u00e9sentations.\r\n\r\n![](https://www.logilab.fr/file/27573054/raw/rcf_hackathon_1.png)\r\n\r\nDans la deuxi\u00e8me figure, la taille des cercles qui repr\u00e9sentent les villes est li\u00e9e au revenu g\u00e9n\u00e9r\u00e9.\r\n\r\n![](https://www.logilab.fr/file/27573055/raw/rcf_hackathon_2.png)\r\n\r\nDans la troisi\u00e8me figure, les donn\u00e9es sont affich\u00e9es sur une carte plut\u00f4t qu'avec un graphe.\r\n\r\n![](https://www.logilab.fr/file/27573056/raw/rcf_hackathon_3.png)\r\n\r\n\r\n## Analyse des sources de donn\u00e9es\r\n\r\nNous avons choisi de nous focaliser sur les sources d\u00e9j\u00e0 publi\u00e9es dans des entrep\u00f4ts SPARQL pour deux raisons. D'une part le hackathon \u00e9tait court, donc il fallait \u00e9viter de onsacrer du temps \u00e0 des questions de lecture de formats de fichiers qui ne produiraient aucun r\u00e9sultat visible. D'autre part les gens autour de la table connaissaient d\u00e9j\u00e0 bien ces jeux de donn\u00e9es. \r\n\r\nNous avons donc privil\u00e9gi\u00e9 l'utilisation de ces trois sources de donn\u00e9es: \r\n* Les registres de la Com\u00e9die Fran\u00e7aise / [acc\u00e8s sparql](https://rcf-sparql.demo.logilab.fr/)\r\n* La base CESAR / [acc\u00e8s sparql](https://cesar2.huma-num.fr/)\r\n* La base ON-STAGE / [acc\u00e8s sparql](https://lod.uba.uva.nl/CREATE/ONSTAGE/sparql/ONSTAGE#)\r\n\r\nNous avons tout d'abord \u00e9crit des [requ\u00eates SPARQL f\u00e9d\u00e9r\u00e9es](https://www.w3.org/TR/2013/REC-sparql11-federated-query-20130321/) afin de pouvoir joindre avec une seule requ\u00eate des donn\u00e9es de plusieurs bases.\r\n\r\nCe faisant, nous avons rencontr\u00e9 un premier probl\u00e8me technique, \u00e0 savoir que l'entrep\u00f4t qui h\u00e9berge les donn\u00e9es de la Com\u00e9die Fran\u00e7aise n'\u00e9tait pas configur\u00e9 pour accepter les requ\u00eates f\u00e9d\u00e9r\u00e9es. Nous avons donc essay\u00e9 l'inverse, \u00e0 savoir interroger l'entrep\u00f4t de la base CESAR, mais ce dernier repose sur Ontop, qui ne permet pas non plus les requ\u00eates f\u00e9d\u00e9r\u00e9es. Nous avons finalement utilis\u00e9 l'entrep\u00f4t de la base ONSTAGE, d\u00e9ploy\u00e9 avec TriplyDB, pour ex\u00e9cuter une requ\u00eate f\u00e9d\u00e9r\u00e9e assemblant des donn\u00e9es de RCF et CESAR... mais aucune de ONSTAGE. Ceci nous a rappel\u00e9 que la f\u00e9d\u00e9ration de requ\u00eates, s\u00e9duisante sur le papier, est parfois plus compliqu\u00e9e qu'il n'y para\u00eet.\r\n\r\n## Alignement des mod\u00e8les\r\n\r\nNous avons ensuite cherch\u00e9 quel mod\u00e8le utiliser pour assembler les donn\u00e9es obtenues avec ces requ\u00eates.\r\n\r\nLa base CESAR d\u00e9crit des \"S\u00e9ances\", qui peuvent \u00eatre d\u00e9finies comme des ensembles de repr\u00e9sentations contig\u00fces. Cette notion peut \u00eatre rapproch\u00e9e de celle de  \"Journ\u00e9e\" dans le mod\u00e8le RCF, mais cet alignement n'est pas tout \u00e0 fait exact puisqu'il est possible qu'il y ait plusieurs \"S\u00e9ances\" \u00e0 la m\u00eame date, donc plusieurs \"S\u00e9ances\" dans une \"Journ\u00e9e\". Les registres de la Com\u00e9die Fran\u00e7aise ne d\u00e9tiennent pas cette information de \"S\u00e9ance\" sp\u00e9cifique et se contentent de consid\u00e9rer uniquement la \"Journ\u00e9e\".\r\n\r\nCes diff\u00e9rences de mod\u00e9lisation sont monnaie courante et nous avons d\u00fb, sans surprise, d\u00e9finir un mod\u00e8le interm\u00e9diaire adapt\u00e9 \u00e0 notre objectif et des op\u00e9rations de transformation des donn\u00e9es pour les convertir de leur mod\u00e8le d'origine vers ce mod\u00e8le afin de les fusionner. \r\n\r\nNous avons retenu les notions de Pi\u00e8ce, de Repr\u00e9sentation, de S\u00e9ance et de Lieu.\r\n\r\n![](https://www.logilab.fr/file/27573057/raw/rcf_hackathon_4.png)\r\n\r\n## Alignement des donn\u00e9es\r\n\r\nL'objectif de notre maquette \u00e9tant de rendre visible les \u00e9volutions des pi\u00e8ces qui apparaissent quand on fusionne les donn\u00e9es compl\u00e9mentaires issues des diff\u00e9rentes sources, nous avons ensuite align\u00e9 les pi\u00e8ces.\r\n\r\nPour cela, nous avons utilis\u00e9 la date de repr\u00e9sentation pour restreindre les candidats \u00e0 l'alignement, puis le nom de la pi\u00e8ce. Par exemple, nous savons que le 30 septembre 1681 on a jou\u00e9 d'apr\u00e8s la base CESAR une pi\u00e8ce 123303 intitul\u00e9e \"Ph\u00e8dre et Hippolyte\" et une pi\u00e8ce 23287 intitul\u00e9e \"Les Fragments de Moli\u00e8re\". A la m\u00eame date, d'apr\u00e8s la base RCF, on a jou\u00e9 une pi\u00e8ce 5772 intitul\u00e9e \"Ph\u00e8dre et Hippolyte ou Ph\u00e8dre\"  et une pi\u00e8ce 5396 intitul\u00e9e \"Fragments de Moli\u00e8re (Les)\". Avec une simple [distance de Levenshtein](https://fr.wikipedia.org/wiki/Distance_de_Levenshtein) entre cha\u00eenes de caract\u00e8res, nous pouvons aligner les pi\u00e8ces et affimer que 123303 chez CESAR correspond \u00e0 5396 chez RCF.\r\n\r\nEn appliquant ce traitement sur l'ensemble des dates, nous avons obtenu un alignement entre les 49 pi\u00e8ces de CESAR et RCF.\r\n\r\n![](https://www.logilab.fr/file/27573058/raw/rcf_hackathon_5.png)\r\n\r\nVu le temps imparti, nous nous sommes limit\u00e9 aux pi\u00e8ces, mais on pourrait pousser plus loin et par exemple inclure dans le mod\u00e8le les personnes, puis les aligner en utilisant des crit\u00e8res appropri\u00e9s.\r\n\r\n## Exploitation des donn\u00e9es\r\n\r\nUne fois les donn\u00e9es import\u00e9es depuis les diff\u00e9rentes sources, converties dans le m\u00eame mod\u00e8le et align\u00e9es automatiquement entre CESAR et RCR ou une par une pour quelques pi\u00e8ces de ONSTAGE, il devient possible de les exploiter.\r\n\r\nLes bases RCF et ONSTAGE ne contenant pas de lieux, nous avons suppos\u00e9 que toutes les repr\u00e9sentations RCF \u00e9taient \u00e0 Paris et toutes celles d'ONSTAGE \u00e0 Amsterdam. C'est probablement faux, donc pour am\u00e9liorer la qualit\u00e9 du r\u00e9sultat il faudrait trouver des sources compl\u00e9mentaires \u00e0 partir desquelles importer les lieux exacts des repr\u00e9sentations.\r\n\r\nDans le calepin Jupyter qui nous a servi pour consigner nos exp\u00e9rimentations de mani\u00e8re reproductible, nous avons finalement produit le graphique ci-dessous:\r\n\r\n![](https://www.logilab.fr/file/27573059/raw/rcf_hackathon_6.png)\r\n\r\nLe menu d\u00e9roulant en haut \u00e0 gauche permet de choisir une pi\u00e8ce.\r\n\r\nNous voyons au centre un nuage de points, avec l'ann\u00e9e en abscisse et la ville en ordonn\u00e9e. La couleur des points refl\u00e8te la source de donn\u00e9es et leur taille d\u00e9pend du nombre de repr\u00e9sentations.\r\n\r\nL'histogramme au-dessus du graphique est l'aggr\u00e9gation des donn\u00e9es par an pour toutes les villes. L'histogramme de droite est l'agr\u00e9gation par ville pour toutes les ann\u00e9es.\r\n\r\nCe graphique d\u00e9montre que nous avons produit les donn\u00e9es souhait\u00e9es, mais il aurait fallu plus de temps pour les repr\u00e9senter comme imagin\u00e9 en d\u00e9but de hackathon lorsque nous avons dessin\u00e9 les maquettes graphiques.\r\n\r\n## Conditions de l'interop\u00e9rabilit\u00e9 et gouvernance\r\n\r\nCe hackathon a mis en lumi\u00e8re pour tous les participants des questions bien connues de ceux qui ont l'habitude de ce genre d'exercice:\r\n\r\n1. un mod\u00e8le commun est n\u00e9cessaire pour communiquer entre les bases et celles et ceux qui administrent ces bases\r\n2. la qualit\u00e9 des donn\u00e9es d'entr\u00e9e d\u00e9termine l'efficacit\u00e9 du traitement, c'est \u00e0 dire le rapport entre la qualit\u00e9 du r\u00e9sultat et l'effort n\u00e9cessaire pour le produire\r\n3. l'alignement est une \u00e9tape cruciale de la fusion des donn\u00e9es issues de plusieurs sources\r\n4. les standards du Web S\u00e9mantique, et particuli\u00e8rement le RDF et le SPARQL sont des atouts ind\u00e9niables pour faire interop\u00e9rer plusieurs sources de donn\u00e9es\r\n\r\nCes constats ont fait \u00e9merger, au sein de la communaut\u00e9 pr\u00e9sente \u00e0 ce colloque, la question du partage des bonnes pratiques de publication de donn\u00e9es. Effectivement, maintenir un mod\u00e8le commun d'\u00e9change,  r\u00e9diger 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 \u00e0 l'interop\u00e9rabilit\u00e9.\r\n\r\nIl a \u00e9t\u00e9 discut\u00e9 de cr\u00e9er un consortium Huma-Num consacr\u00e9 \u00e0 la gestion des donn\u00e9es du spectacle vivant et \u00e0 l'expression de ces bonnes pratiques, pour orienter la suite des travaux vers des solutions communes et faciliter les interactions entre les donn\u00e9es de diff\u00e9rentes institutions.\r\n\r\nA Logilab, nous appr\u00e9cions le travail que nous r\u00e9alisons depuis plusieurs ann\u00e9es pour le projet des Registres de la Com\u00e9die Fran\u00e7ois et nous avons \u00e9t\u00e9 honor\u00e9s d'\u00eatre invit\u00e9s \u00e0 ce colloque. Ce hackathon nous a permis de relier les donn\u00e9es de RCF, que nous connaissons bien, \u00e0 d'autres jeux de donn\u00e9es, que nous avons d\u00e9couverts, mais aussi de prendre part aux d\u00e9bats sur leur gouvernance future. Nous esp\u00e9rons pouvoir continuer \u00e0 apporter nos comp\u00e9tences techniques \u00e0 ces projets, pour faciliter le travail de recherche sur le th\u00e9\u00e2tre et son histoire.", "content_format": "text/markdown", "heading": "Logilab a particip\u00e9 au hackathon \"Des archives aux donn\u00e9es\" organis\u00e9 par la Com\u00e9die Fran\u00e7aise autour des questions de l'interop\u00e9rabilit\u00e9 des donn\u00e9es du spectacle vivant. Cet article regroupe les r\u00e9flexions et conclusions autour de cet hackathon.", "word_count": 1500, "creation_date": "2023/06/26 12:11:52", "modification_date": "2023/06/26 12:12:04", "cwuri": "https://www.logilab.fr/27573060"}, {"cw_etype": "BlogEntry", "eid": 23568298, "title": "Logilab sera au Capitole du libre 2022", "content": "Ce week end, samedi 19 et dimanche 20 novembre, aura lieu le [Capitole du libre](capitoledulibre.org/) \u00e0 Toulouse. Cet \u00e9v\u00e8nement est toujours important dans notre calendrier car Logilab porte depuis sa cr\u00e9ation les valeurs du Logiciel Libre et dispose de locaux \u00e0 Paris et \u00e0 Toulouse. Nous serons donc, cette ann\u00e9e encore, sponsor de cette conf\u00e9rence et pr\u00e9voyons d'assister \u00e0 de nombreuses pr\u00e9sentations.\r\n\r\nNous pr\u00e9senterons, le samedi 19 novembre \u00e0 17h en salle A202, les derni\u00e8res avanc\u00e9es de nos travaux de recherche, \u00e0 savoir [\"CubicWeb-as-a-Service: Publier des donn\u00e9es ouvertes \u2018as a service\u2019\"](https://cfp.capitoledulibre.org/cdl-2022/talk/3T9FD7/).\r\n\r\nNous serons enchant\u00e9s de faire de nouvelles rencontres \u00e0 l'occasion de Capitole du Libre. Contactez-nous par les r\u00e9seaux sociaux si vous voulez convenir d'un moment pour discuter. Au plaisir de vous croiser cette fin de semaine \u00e0 Toulouse !", "content_format": "text/markdown", "heading": "Comme chaque ann\u00e9e, Logilab sponsorise et participe au Capitole du libre. Nous pr\u00e9senterons nos avanc\u00e9s sur le projet CubicWeb as a Service \u00e0 17h en salle A202.", "word_count": 129, "creation_date": "2022/11/17 16:02:41", "modification_date": "2022/11/17 16:25:37", "cwuri": "https://www.logilab.fr/23568298"}, {"cw_etype": "BlogEntry", "eid": 21317776, "title": "Logilab \u00e9tait \u00e0 PFIA 2022 \u00e0 Saint-Etienne", "content": "*Temps de lecture 2\u00a0min (325 mots)*\r\n\r\nNous sommes all\u00e9s \u00e0 la [Plateforme Fran\u00e7aise en Intelligence Artificielle 2022](https://ci.mines-stetienne.fr/pfia2022/) \u00e0 Saint-\u00c9tienne cette ann\u00e9e. Cet ensemble de conf\u00e9rences rassemble chaque ann\u00e9e les acteurs de l'intelligence artificielle francophone. Nous \u00e9tions tr\u00e8s heureux et heureuses de pouvoir y participer cette ann\u00e9e encore.\r\n\r\n![](https://www.logilab.fr/file/21317747/raw/2db172b5e850787b30543be0e.jpg)\r\n\r\nNous avons suivi la conf\u00e9rence d'[Ing\u00e9nierie des Connaissances](https://ci.mines-stetienne.fr/pfia2022/conferences/ic/), qui est la plus proche de notre domaine d'expertise. Nous y avons pr\u00e9sent\u00e9 nos travaux actuels sur OWL2YAMS et avons eu des retours positifs avec plusieurs perspectives dont nous vous ferons part dans de futurs articles.\r\n\r\nM\u00eame si toutes les pr\u00e9sentations \u00e9taient enrichissantes (nous avons appris beaucoup de choses !), nous avons choisi d'en mettre trois en lumi\u00e8re.\r\n\r\n**DAGOBAH** est un outil permettant de g\u00e9n\u00e9rer un graphe RDF \u00e0 partir d'un fichier CSV, en alignant au passage les donn\u00e9es avec Wikidata et DBPedia. Cet outil est arriv\u00e9 premier \u00e0 [SemTab 2021](https://www.cs.ox.ac.uk/isg/challenges/sem-tab/2021/index.html), un challenge de s\u00e9mantisation de donn\u00e9es tabulaires. Cet outil, que nous avions d\u00e9j\u00e0 vu lors de [SemWeb.Pro 2021](https://www.semweb.pro/15014450) pourrait nous servir de base de d\u00e9part pour les projets de s\u00e9mantisation de donn\u00e9es CSV, mais ses conditions d'utilisation (libre ou non ?), restent \u00e0 pr\u00e9ciser.\r\n\r\nUn [\u00e9tat de l'art](https://ci.mines-stetienne.fr/cntf/home) sur **la n\u00e9gociation de contenu** a \u00e9t\u00e9 pr\u00e9sent\u00e9. Il cat\u00e9gorise les approches existantes et ouvre des perspectives en proposant de la n\u00e9gociation de contenu par vocabulaire ou par forme SHACL sur les donn\u00e9es RDF disponibles. Nous allons voir comment utiliser ces r\u00e9sultats dans nos travaux sur la n\u00e9gociation de contenu dans [CubicWeb](https://www.cubicweb.org). Les derni\u00e8res propositions, si elles sont standardis\u00e9es, pourraient \u00eatre utiles dans notre [navigateur pour le web de donn\u00e9es](https://hal.archives-ouvertes.fr/hal-02283368v1).\r\n\r\nLe projet **ATLANTIS** a pour but de s\u00e9mantiser des instructions nautiques, jusque l\u00e0 conserv\u00e9es dans un document textuel, afin de simplifier la recherche en leur sein. Ce projet est une application tr\u00e8s concr\u00e8te des technologies du Web s\u00e9mantique, qui montre comment elles peuvent aider les utilisateurs et utilisatrices. Nous essayons, \u00e0 Logilab, de promouvoir les m\u00eames id\u00e9es \u00e0 travers de projets comme [data.bnf.fr](https://www.logilab.fr/blogentry/1888), ou encore [FranceArchives](https://www.logilab.fr/blogentry/4716152).", "content_format": "text/markdown", "heading": "Logilab \u00e9tait pr\u00e9sent \u00e0 #PFIA2022 cette ann\u00e9e ! Nous avons pr\u00e9sent\u00e9 les derni\u00e8res \u00e9volutions de #CubicWeb avec #OWL2YAMS et nous avons assist\u00e9 \u00e0 quantit\u00e9 de pr\u00e9sentations int\u00e9ressantes. Nous en citons trois qui sont proches de nos propres travaux.", "word_count": 330, "creation_date": "2022/08/17 07:25:03", "modification_date": "2022/08/17 12:43:47", "cwuri": "https://www.logilab.fr/21317776"}]