Les formats de données
Les requêtes OAI sont des requêtes HTTP ; une réponse OAI est un document XML. Au-delà de ces considérations générales, nous allons nous attarder ici à une des composantes d'une réponse OAI lors d'une requête qui demande un enregistrement : le format de cet enregistrement.
Autrement dit, lorsqu'un moissonneur reçoit un enregistrement depuis un entrepôt OAI, quel est le format de données de cet enregistrement ?
1) L'utilisation des formats
Puisque la totalité de la réponse est dans un flux XML, le format de cet enregistrement est nécessairement un format XML. Mais la norme XML est générique, et recevoir n'importe quel XML pourrait être difficile à manipuler pour un moissonneur et les services associés. Par ailleurs, imposer un format spécifique dans un protocole généraliste de type OAI n'est pas souhaitable.
Pour résoudre ce dilemme, le protocole OAI a pris une approche pragmatique : tout item dans un entrepôt OAI doit être disponible en format Dublin Core non qualifié , mais tout item dans un entrepôt OAI peut être disponible dans d'autres formats XML qui ne sont pas prescrits par le protocole.
Bref, le protocole impose une contrainte de format (le Dublin Core simplifié) mais laisse une grande latitude pour utiliser d'autres formats. Il faut donc en finir avec le mythe qui réduit le protocole OAI au format Dublin Core simplifié .
Pour le protocole OAI, un format est en fait un préfixe de métadonnées . D'un point de vue technique, ce préfixe n'est pas à proprement parler un préfixe au sens des XML Namespaces , il s'agit vraiment d'un code qui identifie un format disponible dans un entrepôt. Ce code doit être accompagné d'un espace de nom (au sens XML, donc une URL en général) et de l'URL d'un schéma XML qui définit ce format.
L'instruction ListMetadataFormats permet de connaître les formats supportés par un entrepôt OAI. Voici un exemple de réponse à cette requête, effectuée par l'URL :
http://archivesic.ccsd.cnrs.fr/perl/oai20?verb=ListMetadataFormats
<?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-01T04:11:06Z</responseDate> <request verb="ListMetadataFormats"> http://archivesic.ccsd.cnrs.fr/perl/oai20 </request> <ListMetadataFormats> <metadataFormat> <metadataPrefix>ccsd_tel</metadataPrefix> <schema>http://tel.ccsd.cnrs.fr/OAI/2.0/ccsd_tel.xsd</schema> <metadataNamespace> http://tel.ccsd.cnrs.fr/OAI/2.0/ccsd_tel </metadataNamespace> </metadataFormat> <metadataFormat> <metadataPrefix>oai_dc</metadataPrefix> <schema>http://www.openarchives.org/OAI/2.0/oai_dc.xsd</schema> <metadataNamespace> http://www.openarchives.org/OAI/2.0/oai_dc/ </metadataNamespace> </metadataFormat> </ListMetadataFormats> </OAI-PMH>
Il existe donc quelques contraintes importantes pour l'utilisation d'un format avec le protocole OAI :
- il doit s'agit d'un format XML
- un schéma XML (norme du W3C) doit être disponible sur Internet pour définir ce format XML (cela exclut notamment l'usage d'autres normes de grammaires XML telles que les DTD ou RelaxNG)
- un espace de nom (XML Namespace) doit être associé au format (ce qui n'est pas strictement nécessaire en XML)
Ces contraintes sont relativement légères mais peuvent entraîner des efforts supplémentaires dans la mise en œuvre de l'OAI.
2) Le Dublin Core simplifié
La Dublin Core metadata Initiative 1 est un forum engagé dans la définition de formats de métadonnées interopérables pour des usages sur Internet. Cette initiative est mieux connue pour son format éponyme Dublin Core 2 , mais en même temps ce format n'est pas toujours aussi bien connu qu'on le croit.
D'abord, il s'agit d'un format conceptuel, documentaire, et non d'un format informatique . Bref, le format définit des champs et ce qu'on devrait y mettre, mais il ne prescrit pas de méthodes pour représenter, stocker ces champs. Le Dublin Core ne spécifie pas, par exemple, qu'une notice doit être stockée en XML, et encore moins avec quels éléments.
Toutefois, le Dublin Core propose des représentations des métadonnées qu'il définit3, et certaines sont en format XML. Plus particulièrement, il propose des schémas XML4, mais ces schémas ne sont pas complets car ils ne définissent pas, notamment, l'élément racine qui contient les métadonnées.
Le protocole OAI impose un schéma XML pour un enregistrement en format Dublin Core5, en reprenant le schéma recommandé par le Dublin Core et en lui ajoutant un élément racine. Cela donne une structure XML telle que celle-ci :
<?xml version="1.0" encoding="UTF-8"?> <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:title xml:lang="en">Grassmann's space analysis</dc:title> <dc:creator>Hyde, E. W. (Edward Wyllys)</dc:creator> <dc:subject>LCSH:Ausdehnungslehre; LCCN QA205.H99</dc:subject> <dc:publisher>J. Wiley & Sons</dc:publisher> <dc:date>Created: 1906; Available: 1991</dc:date> <dc:type>text</dc:type> <dc:identifier> http://resolver.library.cornell.edu/math/1796949 </dc:identifier> <dc:language>english</dc:language> <dc:rights xml:lang="en">Public Domain</dc:rights> </oai_dc:dc>
Le format Dublin Core comporte un ensemble de champs qui peuvent être qualifiés. Toutefois, le format Dublin Core imposé par le protocole OAI est la version non qualifiée, ou simple, qui est uniquement composée de quinze champs, qui ne peuvent pas être précisés6. Ces quinze champs sont définis dans le tableau suivant :
Nom | Description |
|---|---|
dc:identifier | Identifiant |
dc:title | Nom ou titre |
dc:subject | Indexation sujet |
dc:description | Indications sur le contenu du site, description de la ressource |
dc:date | Date de création ou de publication ou toute autre date ayant un rapport avec la vie de la ressource |
dc:coverage | Couverture spatiale ou temporelle de la ressource. Dans le Dublin Core, ces deux notions ne sont pas distinctes. |
dc:creator | Responsable du contenu intellectuel de la ressource. Par exemple, institution ayant réalisé un site Web |
dc:contributor | Responsable secondaire du contenu intellectuel de la ressource, par ex. illustrateur, traducteur... |
dc:publisher | Responsable de la diffusion de la ressource |
dc:type | Nature de la ressource, exemple : image, text, collection. |
dc:format | Format des données. Exemple : jpeg, text/html. Dans le Dublin Core, cet élément permet aussi de décrire les formats physiques des documents. Il n’est utilisable ici que pour les formats électroniques. |
dc:language | Langue de l'unité documentaire |
dc:source | Identifiant d'une autre ressource dont est dérivée la présente unité documentaire. Par exemple dans le cas d'un article, identifiant du périodique dont il est extrait sous la forme titre,volume, numéro |
dc:relation | Référence à une autre ressource |
dc:rights | Droits de propriété intellectuelle, copyright, etc. |
C'est tout ce que vous avez à votre disposition lorsque vous travaillez avec le Dublin Core non qualifié, par exemple dans un contexte OAI. Vous avez un champ pour la date, un champ pour le titre, un champ pour la couverture spatiale et temporelle, etc. C'est peu, mais cela permet une assez grande intéropérabilité car c'est facile à mettre en œuvre.
Mais n'oubliez pas : vous pouvez utiliser d'autres formats avec le protocole OAI .