Diffusion de sources historiques via le protocole OAI-PMH (partie 1)

Bonsoir,
La mise au point du serveur OAI-PMH du CRHST est presque terminée. Il me manque la mise en place du ResumptionToken qui n’est d’ailleurs pas très simple a réaliser. J’ai utilisé PHP, mon langage préféré, pour le monter. En s’appuyant sur DOM XML, c’est très facile… donc il est en ligne : http://www.crhst.cnrs.fr/esources/
Moissonnez !
Stéphane.

METS, PREMIS dans des cases

Bonjour,
Got des Petites Cases propose un très bon articles dans son blog sur METS, PREMIS et nos fameux SIP dictés par l’OAIS : j’en profite pour signaler l’atelier technologique du CN2SV (dont je suis le chargé de mission pour le CNRS) qui se tient à Fréjus (Villa Clythia du CAES) à partir de demain (le 16 oct. 2006) et pour trois jours. Nous allons discuté autour de l’EAD, METS, XMP, Archives de scientifiques accessibles via le web (sémantique forcément), etc.
Je file donc à la gare de Lyon…
Stéphane.

Archiver de bases de données factuelles des scientifiques

Bonsoir, L’idée de l’archivage des données des scientifiques du passé et des chercheurs actuels fait son chemin dans les bureaux du CRHST et au sein de l’équipe du CN2SV. Il va nous falloir transmettre aux générations futures les données et leurs clés d’accès. Aujourd’hui la démocratisation du couple MySQL-PHP dans un environnement LAMP permet la création par beaucoup de chercheurs de mini bases de données factuelles. Elles sont très souvant au coeur des processus de recherche. Ils est important d’archiver ces bases en tenant compte de l’environnement technique. Cet archivage doit intégrer à la fois :

  • les données (sous la forme la plus simple possible : un fichier texte contenant toutes les données « purifiées » de l’environnement de gestion : un .xml ou un .txt tabulé)
  • les interfaces développés (PHP, Perl, Python, etc.) sous la forme d’une archive .zip, .tar ou .tgz
  • la modélisation et les commandes SQL (CREATE + INSERT) sous la forme d’un .xml ou .sql

Une initiative du CCSD du CNRS va dans ce sens : l’archive CIEL.

Les principales motivations de ce projet sont :
– “Promouvoir et valoriser les codes de calcul” c’est-à-dire mieux faire connaître les codes de recherche développés dans les laboratoires de recherche et permettre une reconnais- sance aux développeurs de ces codes de la même fa¸con qu’un article dans une revue avec comité de lecture.
– “Pérenniser les codes de calcul” pour parer au problème de la perte de savoir-faire due au départ d’un thésard ou d’un chercheur. C’est également l’un des moyens pour faire connaître l’existence de ce patrimoine scientifique dans notre communauté mais aussi dans le milieu industriel.
– “Assurer la reproductibilité des résultats de publication” pour permettre aux person- nes intéressées par les articles de disposer d’un outil mettant en oeuvre les méthodes proposés et permettant de reproduire les résultats décrits dans l’article. Ainsi, la publication d’un code qui a servi à produire les illustrations d’un papier de sci- ences appliqués accepté dans un journal “classique” va d’une part permettre de “reproduire” les résultats publiés, mais aussi de l’utiliser pour d’autres applications comme n’importe quel résultat théorique issu d’une publication. Par ailleurs, les personnes qui développent des codes de calcul en dehors d’un contexte de publication peuvent trouver ici un outil pour faire con- naitre leurs travaux et valoriser ceux-ci.

Il serait intéressant de concevoir structure d’archivage et de stockage de ces bases de données. Si vous souhaiter participer à ce projet n’hésitez pas à me contacter.

ICEberg 4 sur les rails.

Bonsoir,

Je profite des vacances pour avancer la mise en place d’ICEberg 4 ! Les tests avancent plutôt bien : il est sûr que préparer la nouvelle version de mon gestionnaire de corpus numériques au bord d’une piscine c’est assez génial : un plouf entre deux class php. Mes deux compagnons de programmation de cette nouvelle version : Romain et Frédéric ont maintenant terminé leur travail, j’ai pris la suite pour assembler les blocs, débuguer, relire, reprendre, améliorer le tout. ICEberg 4 s’appuyera sur MySQL et PHP 4 ou PHP 5 (nous avons prévu les deux versions au cas ou…la version « tout XML » : ICEbergXML reste toujours disponible…). La partie « berg » est nettement plus opérationnelle : les chercheurs maitrisant l’informatisation de leurs propres corpus vont être contents ! la partie ICE reste dans la même idée que celle de la version 3 : nous n’avons changé que de petites choses sur le plan de l’interface. Cependant, le code a été totalement ré-écrit par Frédéric avec des class en PHP 5.

L’autre jour, un chercheur me demandait pourquoi j’avais fait un outil « propre » alors qu’il en existe plein sur le web tel que PLEADE, ARCANE, etc. Je lui est dit qu’il arrive un moment ou il faut développer un outil dédié pour répondre à une demande forte qui apparaît. Il existe Photoshop, pourtant des programmeurs ont développé GIMP ! ICEberg répond à un besoin : la mise en ligne et la gestion de paquets de documents numériques (d’archives, issus de documents actuels, des photos, bref tout type de documents numérisés) en utilisant un gestionnaire de base de données « libre » ou du XML, rien de plus. J’ajoutais qu’il n’y a pas de moteur recherche puissant dans ICEberg, j’en prépare un avec l’aide du CNRS mais il ne sera pas dans ICEberg, mais il fonctionnera au-dessus ; balayant ainsi l’ensemble des corpus numériques, même chose pour le module OAI d’ICEberg.
Ainsi, ICEberg tend toujours vers le plus simple : des modules y sont ajoutés, mais toujours de façon annexe, sans toucher au noyau. Mais de temps en temps, nous réécrivons une nouvelle version de la partie « dure » d’ICEberg : nous y sommes.

Je m’en retour à mon code :-). Bonne soirée, Stéphane.

ICEberg 4 béta.

Bonjour, Nous allons sortir ICEberg 4.0.1 en version béta avec une démo sur le serveur du CRHST (http://www.crhst.cnrs.fr). ICEberg, le produit phare qui permet à nos corpus numériques de tourner a été totalement re-programmé par notre équipe (Frédéric Costantini, Romain Mindchella, sous ma direction et avec l’aide et les conseils de Lucie Secchiaroli, Delphine Usal, Christine Blondel, Marie-Hélene Wronesky et Françoise Cornière). Il est compatible avec PHP 5 et MySQL 4. D’un simple ensemble de scripts écrit en PHP, ICEberg est devenu un CMS ou plutôt un CM2S : Content Management System for Science.

Cette refonte d’ICEberg va d’ailleurs aller plus loin, ICEberg 4.0 changera de nom en octobre 2006 et il sera diffusé sous licence CeCILL. Car le concept de l’outil a évolué.

Stéphane.

XMP {suite}

La mise en ligne de documents numérique entraîne, outre la question des droits, toutes une série de questions techniques qui sont la plupart du temps le parent pauvre des projets de numérisation et de mise à disposition. Le format IPTC et aujourd’hui le framework XMP permettent, par exemple, d’ajouter des méta-données dans l’image (XMP – eXtensible Metadata Platform – repose sur une version simple de RDF). C’est à dire que les méta-données sont « encapsulées ». Encapsuler…Encapsuler : voici un terme technique qui paraît simple mais qui peut avoir des conséquences sur la pérennité des méta-informations. Le Grand ROBERT de la langue française nous dit :

Encapsuler [ãkapsyle] v.tr. – 1889, Renan, au fig. ; de en-, et capsule. Techn. Enfermer dans un capsule […].

Le fait « d’enfermer » doit attirer l’attention du fournisseur de ressources visuelles (photographiques dans notre exemple) sur la possibilité de « libérer » les méta-données ainsi encapsulés. C’est à dire de pouvoir dans le futur les lire, les exploiter en même temps que l’image, sans avoir de contraintes.
Il est important de ne s’appuyer que sur normes libres (si possible, attention XMP est fortement lié à Adobe Inc. alors que l’IPTC Core est développé par International Press and Telecommunications Council (1965) et succède à l’IPTC « classique »), internationnales et reconnues par les professionels de l’information (iconographes, documentalistes, etc).
Avec un outil simple, tel que PixVue (voir ci-dessus), il est facile à l’aide de la souris et du clavier d’ajouter des « méta » dans une image suivant la norme IPTC.

Bonne fin de semaine,

Stéphane.

Schéma XMP / IPTC parseur

Bonsoir,

Dans le développement du CN2SV, j’ai programmé un parser XMP, IPTC à partir de la librairie « PHP JPEG Metadata Toolkit » de E. Hunter. Le schéma XMP est prometteur même s’il est lié à Adobe. Mais la programmation d’un programme en php lisant les méta-données IPTC est facile et la technologie est mure aujourd’hui. L’IPTC a adopté XMP comme schéma de la toute dernière version de son standard de description des photographies : IPTC Core (http://www.iptc.org/IPTC4XMP/). Avec l’utilisation massive des appareils photos numériques, qui truffent leurs images de méta-données, il est temps d’offrir aux utilisateurs d’intergiciel (middlewares) en php, jsp, java, asp, la possibilité de lire ces données et de les enrichir.

Un simple parseur IPTC en PHP (PHP 3 >= 3.0.6, PHP 4, PHP 5) :

 function output_iptc_data( $image_path ) { 
   $size = getimagesize ( $image_path, $info);      
    if(is_array($info)) {        
     $iptc = iptcparse($info["APP13"]);        
     foreach (array_keys($iptc) as $s) {            
     $c = count ($iptc[$s]);            
      for ($i=0; $i <$c; $i++) {            
       echo $s.' = '.$iptc[$s][$i].' - ';           
      }        
     }    
    } 
  }

(source : site www.php.net)

Nous allons intégrer un lecteur/editeur IPTC/XMP à Iceberg. Je tiens d’ailleurs à remercier Romain et Frédéric, les deux développeurs contractuels du CN2SV qui font un travail formidable.

A bientôt,
Stéphane.

« IPTC Core » est la propriété intellectuelle de IPTC. XMP, Photoshop and Creative Suite (CS) sont des marques commerciales de la société Adobe Systems Inc.

Notes scientifiques électroniques. Comment anoter des textes électroniques sur le web. (volet technique n°1)

bonjour, Tout le monde développe son outil de publication en ligne (à base de CMS le plus souvant, d’XML plus rarement). La question des notes de bas de pages ou de fin de documents et récurente : tout les webmestres, développeurs IT, chefs de projet web se sont vu poser LA question : « Et pour mes notes ? je fais comment ? »

Dans le cadre de la boite à outils ICEberg, que j’ai développé pour le CNRS au CRHST, nous proposons maintenant des notes dans le texte intégral (pour les textes au format « mots ») sous la forme d’un sous-bloc de texte entouré de BBcode. S’il faut un jour nettoyer le texte numérique des notes c’est ainsi très facile (un petit programme Perl ou Php avec un ereg_replace et le tour est joué). Cette fonction est disponible dans la nouvelle version d’ICEberg. Elle est en court de test et sera présentée en janvier 2007 et déployée sur les sites fonctionnant déjà sous la version 3.0 BD et 1.5 XML (qui changera de nom pour l’occasion afin d’unifier les outils et les versions).

Il s’agit de faire très simple une fois encore. J’ai vu tellement de système de notes complexe que finalement, nous nous sommes orienté sur le plus simple : du BBcode pour ne pas effrayer le chercheur/client, du parsage pour la numérotation automatique, des bullets pour la consultation et le tour est joué. Le tout dans le respect des standards du W3C.
Notement-votre,
Stéphane.

ICEberg : présentation générale

ICEberg est un outil de gestion de corpus scientifiques en ligne. Il permet la mise sur internet de collections de documents numériques en séparant la nature du document de son traitement scientifique (qui peut-être réalisé par d’autres outils). Ce n’est pas un CMS (tel que SPIP, Plone, etc.) ni un outil de publication ou d’édition en ligne (avec une charte éditoriale et des styles par exemple), c’est un gestionnaire simple de données textes ou images (jpg, png ou gif), mais il est composé de deux blocs : ICE (partie de navigation) et berg (partie de gestion). Il est programmé en PHP et fonctionnant avec MySQL. Cet outil a une histoire qui est liée à mon parcours professionnel. Vous pouvez en savoir plus avec le powerpoint suivant sur les dernières infos d’ICEberg : http://halshs.ccsd.cnrs.fr/halshs-00006568.

1) L’histoire d’ICEberg : histoire de l’outil et parcours de fin d’étudiant

En 1997, au cours de ma maîtrise d’histoire (UMR Ausonius – Service Informatique de Recherche en Archéologie dépendant de l’Université de Bordeaux 3 et du CNRS), j’ai été confronté à la question de la mise en ligne de mes sources historiques. Très rapidement et sous la direction de Robert Vergnieux et de Gérard Louise, j’ai du trouver un outil simple de gestion de base de données en ligne (voir : http://www-sira.u-bordeaux3.fr/boisset/). Dans mon travail de maîtrise et de DEA j’ai travaillé avec le logiciel DBMAN créé par Gossamer Threads Inc. DBMAN est outil de gestion de fichier .txt écrit en perl. DBMAN est un shareware. Il est cependant limité car il ne permet pas de faire du relationnel entre les bases de données. J’ai donc commencé à concevoir un outil propre s’appuyant sur un modèle de table très simple dont le but fut de séparer le contenant du contenu. Travaillant sous la direction de Robert Vergnieux et avec Jacques Perconte sur ce sujet nous avons créer le tabloïde (là aussi du perl et des fichiers .txt pour les tables : permettant un stockage pérenne des données). Le tabloïde permet la gestion simple de galerie d’images en ouvrant un lien vers une gestion du contenu scientifique de façon ad hoc.

Lors de mon DEA d’histoire à Bordeaux 3, j’ai créé un autre outil à l’aide de DBMAN qui permet de gérer du VRML de façon dynamique : c’est le SIHA3D qui est d’ailleurs de précurseur d’ICEberg (voir : http://www-sira.montaigne.u-bordeaux.fr/boisset/cgi/vrml/db.cgi?db=default&uid=default) et surtout ce résumé du process : http://www.technart.net/metamorph/mem/STEPHANE/.

Je passe mon DEA…puis vint le PHP et MySQL…:-)

Entre 1999 et 2001 j’ai commencé à développer en PHP et avec MySQL des outils proches du SIHA3D à destination d’autres disciplines la géographie, l’histoire, la documentation (voir RAFID www.rafid.u-bordeaux.fr. C’est la période ou ICEberg est né. J’avais du temps – j’étais encore étudiant :-) – et PHP+MySQL m’ont permis de développer un outil simple (des scripts en PHP) et sur un modèle de tables relationnelles sous MySQL (nommé « la triplette ») qui permet de faire fonctionner le tout.

En 2002…Je rentre sur concours au CNRS en tant qu’IE !

Je suis affecté dans l’UMR 2139 (aujourd’hui regroupée avec le Centre Koyré – UMR 8560). Je suis le webmestre de l’équipe et je travaille sur le site www.lamarck.net créé par Pietro Corsi (Professeur à l’Université de Paris 1 et à l’EHESS et aujourd’hui professeur à Oxford). Le site Lamarck fonctionne en ASP+ACCESS avec l’outil PINAKES développé par Andrea Scotti en Italie (Florence). Le serveur est installé à l’ENS sur une machine windows. Très rapidement le développement du site nécessite un changement de technologie : l’ASP est peu fiable en terme de sécurité (c’est un mystère pour personne) et ACCESS est limite pour gérer les 10.000 pages de manuscrits + les 19.000 planches d’herbier que Pietro Corsi souhaite ajouter au site. Personnellement je connais bien mieux le PHP que l’ASP que je trouve lourd en terme de développement et gourmant en ressources. Sortant ICEberg de mes tiroirs, nous avons donc mis ICEberg en production pour le site Lamarck. Le basculement ACCESS vers MySQL n’a pas été simple. Nous avons tout re-modélisé en utilisant la triplette plutôt que les 40 tables ACCESS (je ne me souviens plus du chiffre exact en fait, mais c’était pas « migrable » en tout cas !).

En 2002, je réalise pour le Lamarck un ICEberg V0.1 qui fonctionne toujours sur le serveur. Nous créons avec cette version le site Lavoisier avec association avec Marco Beretta (Panopticon Lavoisier) et le site Science 1800 (créé par Pietro Corsi).

En 2003, Je sort la version 0.7 : première version ayant la forme actuelle (avec les menus en haut). Le site Lamarck bascule dans cette version. Bien entendu les version 0.1 et 0.7 sont compatibles…

En 2004-2005 : Nous montons les sites www.ampere.cnrs.fr, www.buffon.cnrs.fr, www.histmap.net, www.hstl.crhst.cnrs.fr/criminocorpus avec la version ICEberg 0.7 puis 1.0.

En juillet 2005, je réalise la version ICEberg-XML (expérimentale et n’utilisant plus MySQL, juste des fichiers XML). Nous avons donc aujourd’hui deux outils :

  • ICEberg-DB : PHP+MySQL
  • ICEberg-XML : PHP5+XML

ICEberg est le fruit d’un travail commencé en 1997 lors de ma maîtrise d’histoire et il n’aurait pas vu le jour sans le soutien de Robert Vergnieux (IR CNRS), Gérard Louise (Professeur des Universités) aujourd’hui décédé, Michel Bochaca (Professeur des Universités), Jean-Michel Roddaz (alors directeur d’Ausonius). Mais également de Daniel Pouyllau (IR CNRS), Marie-France Pouyllau et mon épouse Jannick.

Ainsi que Gwenaëlle Boulissière, Anne Dubois, Jacques Personte, Marie Péres, Pietro Corsi, Dominique Pestre (Directeur d’Etudes à l’EHESS), Vincent Leguy, Delphine Usal, Lucie Secchiaroli, Olivier Bertoncello.

2) Caractéristiques

ICEberg est un outil au sens ou il rend un service entre un serveur Apache et un chercheur : c’est donc un service web développé en PHP 4.3 et fonctionnant sous MySQL 4.0.x dans sa version actuelle. Il permet la diffusion de documents structurée. Il est un élément (une brique!) de base dans la construction d’un site web de recherche. Il est programmé en fonctions PHP. Il est compatible avec Verity via XVgateway.

3 ) Développement

J’assure le développement d’ICEberg. Le rythme n’est pas régulier pour le moment car je suis seul à y travailler en tant que codeur. Un jour, je monterai une équipe CNRS peut être ;-). J’ai en ce moment une petite équipe de bénévole qui travaille avec moi.

4) Mini-FAQ

ICEberg est-il libre ou open source ? :

Non, son code n’est pas encore ouvert et sa diffusion n’est pas encore possible car l’outil n’est pas terminé pour une exploitation par des tiers. Je pense mettre un jour ICEberg sous licence CeCILL.

Est-il gratuit ?

Quand il sera diffusable, il sera gratuit (sous licence CeCCIL).