Transformer une base de données MySQL en entrepôt OAI avec phpoai2
Ce document contient quelques informations sur la démonstration qui a eu lieu dans le cadre de l'atelier.
1) Contexte
MySQL est un système de gestion de bases de données relationnelles libre. Il est communément utilisé pour des applications dynamiques sur le Web.
PHP est un langage de programmation pour créer des sites Web dynamiques. Très utilisé pour des sites simples en interaction avec des bases de données MySQL notamment.
phpoai2 est un outil écrit en PHP qui permet aisément de transformer une base de données MySQL en entrepôt OAI.
La démonstration se fera sur une application précise : une base de données descriptives des pièces du musée de la Ville de Sarlat.
Cette base de données est conçue en interne à l'aide du logiciel ActiveMuseo. Elle est diffusée maintenant sur Internet grâce au module Internet du logiciel. Ce module est en fait une collection de scripts PHP qui agissent sur les données exportées dans une base de données MySQL. Les outils OAI viennent donc se greffer sur ces scripts, pour les compléter par des fonctions d'entrepôt OAI.
2) Objectifs
L'objectif est de montrer comment on peut utiliser des technologies libres et populaires pour créer un entrepôt OAI. Nous allons installer et configurer phpoai2 pour exposer les données en format Dublin Core (obligatoire) et en format Aquitaine Patrimoines.
3) Informations techniques
MySQL version 4.1.9 sur Windows XP est utilisé. La base de données est explorée et modifiée à l'aide de phpMyAdmin version 2.1.6. PHP est en version 4.3.10, appuyé sur un Apache 1.3. Tous ces outils sont libres, avec différentes licences. La version de phpoai2 utilisée est la 1.11. Il s'agit d'un logiciel libre sous licence GPL.
3.1) Table MySQL
La table MySQL a été créée et remplie depuis un fichier d'instructions SQL provenant de l'exportation d'une autre base. La structure a été légèrement modifiée pour ajouter des informations sur les dates de modification et permettre les ensembles :
alter table piece add column (moddate TIMESTAMP); update piece set moddate=now(); alter table piece add column (oai_set VARCHAR(255));
3.2) Configuration phpoai2
La configuration de cet outil est stockée dans le fichier oai2/oaidp-config.php . L'installation comme telle est très simple et n'a demandé que de configurer la variable qui pointe sur les outils d'accès aux bases de données depuis PHP (PEAR).
Ensuite, il faut configurer l'accès à notre base de données MySQL. Il faut pour cela modifier des valeurs de variables telles que $DB_HOST , $DB_NAME , etc. Le fichier de configuration est très explicite à ce sujet.
Enfin, il faut modifier des variables concernant notre entrepôt OAI spécifique. Ce sont des variables telles que $repositoryName et surtout $METADATAFORMATS .
3.3) Sortie des formats
Chaque format de sortie est produit à l'aide de son propre fichier PHP, ce qui facilite la maintenance. Il existe déjà un fichier record_dc.php pour le Dublin Core que nous avons utilisé comme exemple. Il existe des fonctions dans le script pour faciliter la sortie des informations.
Les commandes du script propre à un format sont exécutées avec comme contexte un enregistrement dans la table de données, cet enregistrement étant dans le tableau $record . Il s'agit alors d'un travail PHP pour produire correctement le format souhaité.
4) Références
- MySQL : http://www.mysql.com/
- PHP : http://www.php.net/
- phpoai2 : http://physnet.uni-oldenburg.de/oai/
- Site Web du musée de Sarlat : http://www.musee-sarlat.com/