L'architecture technologique
L'architecture technologique du protocole OAI est très simple et s'articule autour de deux normes universellement supportées de nos jours : HTTP1 et XML2. Le protocole HTTP est utilisé pour le transport des données entre un entrepôt et un moissonneur. Le format XML est utilisé pour représenter concrètement les données échangées.
On peut s'arrêter ici pour mentionner l'un des aspects les plus intéressants du protocole OAI : on peut jouer au moissonneur OAI à l'aide d'un simple navigateur Web qui peut afficher des documents XML . En effet, un navigateur Web a pour principale fonction d'effectuer des requêtes HTTP et d'en recevoir les réponses. De plus, tous les navigateurs Web d'aujourd'hui permettent d'afficher très correctement du XML.
Nous avons donc un outil de test et de pédagogie sur tous nos postes de travail ou presque. Pour vous en convaincre, si vous consultez ce document de manière électronique en étant connecté à Internet, cliquez sur le lien suivant :
Vous obtiendrez à l'écran un affichage semblable à celui-ci (il a été tronqué) :
<?xml version="1.0" encoding="UTF-8"?> <OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd"> <responseDate>2005-06-01T03:32:50Z</responseDate> <request metadataPrefix="oai_dc" verb="GetRecord" identifier="oai:archivesic.ccsd.cnrs.fr:sic_00000028"> http://archivesic.ccsd.cnrs.fr/perl/oai20 </request> <GetRecord> <record> <header> <identifier>oai:archivesic.ccsd.cnrs.fr:sic_00000028</identifier> <datestamp>2002-05-17</datestamp> <setSpec>sic_comm</setSpec> <setSpec>sic_docu</setSpec> </header> <metadata> <oai_dc:dc xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd"> <dc:creator>Le Coadic, Yves-François</dc:creator> <dc:description>Apres avoir evoque le role du nombre et de la mesure lors de l'evaluation des revues scientifiques... </dc:description> <dc:title>N(OMBRE) ou LUMIERE - usage des Xmètries en science de l'information et en science de la communication</dc:title> <dc:language>fr</dc:language> <dc:subject>Information retrieval</dc:subject> <dc:subject>Theory of information/communication</dc:subject> <dc:date>2002-05-17</dc:date> <dc:identifier> http://archivesic.ccsd.cnrs.fr/sic_00000028.en.html </dc:identifier> <dc:type>Text</dc:type> </oai_dc:dc> </metadata> </record> </GetRecord> </OAI-PMH>
Félicitations ! Vous venez d'effectuer votre première requête OAI, sans installer d'outils, et sans complexité apparente. Concrètement, vous avez récupéré un enregistrement en format Dublin Core d'un ouvrage d'une base de données du CCSD au CNRS.
Bien entendu, le protocole OAI a été défini dans le but de permettre des applications plus sophistiquées que le simple affichage de données XML dans un navigateur Web, mais cette facilité de test est un élément clé du succès du protocole.
Une requête OAI est donc toujours une requête HTTP, qu'elle soit de type GET ou de type POST. Une requête OAI est toujours constituée d'une adresse de base propre à un entrepôt. Cette URL de base est complétée par une liste d'arguments sous la forme de paires nom = valeur , comme dans toute requête HTTP par ailleurs. Le protocole OAI définit justement quelles peuvent être ces paires nom = valeur .
Une réponse OAI (réponse faite par un entrepôt suite à une requête effectuée par un moissonneur) est toujours en format XML, sous la forme d'un seul document XML bien formé.
L'élément racine de ce document est toujours OAI-PMH , et il contient trois grandes informations : la date de la réponse, un rappel de la requête OAI qui a mené à cette réponse, et enfin le contenu de la réponse elle-même, qui est soit une erreur soit les données demandées par la requête. Le document XML retourné par la requête ci-dessus montre bien ces différentes parties d'une réponse OAI.
Cette relative simplicité dans l'architecture technologique du protocole OAI ne doit pas masquer le besoin de porter attention aux petits détails qui peuvent rendre une implémentation plus complexe que prévue : jeu de caractères, gestion des erreurs, compression des données, définition des espaces de noms, etc. Le protocole OAI regorge de petits pièges sur ces sujets, mais heureusement ce sont les personnes qui implémentent des outils OAI – et non ceux qui mettent en œuvre des services OAI avec ces outils – qui se font prendre dans ces pièges.
Mais si vous évaluez un outil OAI, prenez la peine de le soumettre à des tests variés et à le placer dans des conditions anormales pour vous assurer de sa conformité. Nous recommandons en particulier un outil de vérification des entrepôts qui effectue un diagnostic très détaillé de tout entrepôt accessible sur le Web. Il s'agit d'une fonctionnalité du site Open Archives Initiative – Repository Explorer .