Contenidos | 1 | 2 | 3 | 4 | 5 | 6 | Anterior | Siguiente                


5. Esquemas XML y soporte para formatos de registro múltiple en OAI-PMH

To OA-Forum homepageContenidos de esta parte de OAI para principiantes, tutorial en línea del Open Archives Forum


Conceptos básicos de esquemas XML para OAI-PMH Arriba

OAI-PMH utiliza esquemas XML para definir formatos de registro. Se puede intercambiar cualesquiera metadatos que se quiera utilizando OAI-PMH, siempre y cuando se pueda codificar como XML y definir un esquema XML para los mismos. OAI-PMH exige el esquema oai_dc como una norma mínima para la interoperabilidad.

La documentación del OAI-PMH describe también el uso de esquemas XML para otros formatos, y proporciona esquemas XML para:


Observación más detallada de oai_dc, el esquema XML exigido por OAI-PMH Arriba

oai_dc es el esquema de metadatos simple (basado en Dublin Core sin cualificar) empleado como el "mínimo común denominador" en cuanto a formato de registro de metadatos en OAI-PMH. Define un esquema contenedor específico de OAI, y se encuentra en el sitio Web de OAI. Importa un esquema DCMES genérico. El esquema genérico DCMES se encuentra en el sitio web del DCMI (Dublín Core Metadata Initiative).

El mismo modelo podría utilizarse para un esquema Dublin Core cualificado; es decir, un esquema contenedor alojado por la OAI haciendo referencia al esquema genérico alojado por DCMI.

oai_dc – un ejemplo de registro

Este es un ejemplo de registro oai_dc, como se ve a través de Repository Explorer, mostrando el principio de una respuesta a un GetRecord.

<?xml version="1.0" encoding="UTF-8"?>
<OAI-PH 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>2003-03-15T16:16:51+01:00</responseDate>
<request verb="GetRecord" metadataPrefix="oai_dc" identifier="oai:HUBerlin.de:3000476">http://edoc.hu-berlin.de/OAI-2.0</request>
<GetRecord>
<record>
<header>
<identifier>oai:HUBerlin.de:3000476</identifier>
<datestamp>1997-07-18</datestamp>
<setSpec>pub-type</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:title>Melanchthon in seiner Zeit. In: Philipp Melanchthon 1497-1997</dc:title>
<dc:creator>Selge, Kurt-Victor</dc:creator>
...

Tres cosas importantes que observar:

El espacio de nombre del formato oai_dc:
xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/"

El espacio de nombres de los elementos DCMES:
xmlns:dc="http://purl.org/dc/elements/1.1/"

El esquema contenedor asociado con el espacio de nombres de oai_dc:
xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/
     http://www.openarchives.org/OAI/2.0/oai_dc.xsd"

Por lo tanto, el esquema contenedor de oai_dc para el espacio de nombres http://www.openarchives.org/OAI/2.0/oai_dc/ importa el esquema DCMES desde http://dublincore.org/schemas/xmls/simpledc20021212.xsd. También se define un elemento contenedor llamado 'dc' que enumera los elementos en el contenedor 'dc' (del espacio de nombres / esquema DCMES) que están permitidos en oai_dc.


Otros esquemas de metadatos que pueden emplearse Arriba

oai_dc es un formato simple que proporciona una interoperabilidad mínima. Hay una serie de razones por las puede no ser adecuado compartir exclusivamente oai_dc para su repositorio, servicio o comunidad.


Añadiendo nuevos elementos cuando oai_dc no es suficiente Arriba

La elaboración de un nuevo esquema extendiendo el esquema oai_dc con nuevos elementos implica las siguientes tareas:

  1. Crear un nombre para el nuevo esquema
  2. Crear espacios de nombres
  3. Crear el esquema para los nuevos elementos
  4. Crear un "esquema contenedor"
  5. Validar el esquema / registros
  6. Añadir al "ListMetadataFormats" de su repositorio
  7. Añadir a los otros verbos de su repositorio
  8. Probar si funciona y si es válido

A continuación, usaremos una situación sencilla para demostrar estas ocho tareas paso a paso. Suponga que tenemos un repositorio de prueba que contiene algunas fotos: :

http://www.ukoln.ac.uk/metadata/oa-forum/workshop-photos/oai/nph-oai2.cgi

Actualmente el repositorio tiene metadatos usando oai_dc. Queremos añadir un elemento "Equipo utilizado", ya que este no es parte de DCMES.


1: Nombre de su formato

El nuevo formato de metadatos necesita un nombre. En este caso, escogeremos el nombre "wp_dc" - siguiendo la forma de OAI "oai_dc" como una convención. (El código de dos letras 'wp' es la abreviatura de 'workshop photos'.) Sin embargo, el nombre podría ser el que quiera. Otras alternativas serían, por ejemplo, wpdc o WP


2: Crear espacios de nombres

Necesitamos dos espacios de nombres:

  1. un espacio de nombres para el nuevo formato (wp_dc) que mezcla los elementos DC estándar y los nuevos.
  2. un espacio de nombres para el nuevo elemento wp_dc (la propiedad "equipo utilizado") que emplearemos en este formato

Los espacios de nombres se declaran como URIs. Usaremos:

Tenga en cuenta que el uso de PURL para los elementos del espacio de nombres se deduce de la utilización de DCMI, pero no es obligatoria. Sin embargo, estos dos URIs de espacios de nombres deben estar bajo su control para garantizar la singularidad y evitar la reutilización en el futuro. Los URIs de los espacios de nombre no necesitan resolver nada.


3: Esquema de los nuevos términos

A continuación, debemos crear un esquema XML para el nuevo término. Lo haremos en:

http://www.ukoln.ac.uk/metadata/oa-forum/workshop-photos/wp_dc/20030818/wpterms.xsd

Observe la fecha incluida en la estructura del directorio. Esto facilita la mejora del esquema sin interrumpir las cosas que utilizan la versión antigua.

El esquema del nuevo término define el nuevo elemento "equipmentUsed" y lo añade al grupo dc:any. Además define un nuevo tipo de contenedor "wpterms:elementContainer".


4: Esquema contenedor

Debemos también crear un esquema contenedor para el formato de registros wp_dc. En este caso el esquema está disponible en:

http://www.ukoln.ac.uk/metadata/oa-forum/workshop-photos/wp_dc/20030818/wp_dc.xsd

(Observe de nuevo la utilización de la fecha incorporada en la estructura del directorio.) Este simplemente importa el esquema wpterms y después define un elemento contenedor 'wp_dc' del typo wpterms:elementContainer.


5: Validar

A fin de validar los registros usando nuestro nuevo esquema, a continuación creamos algunos registros de prueba (o modificamos los existentes), incluyendo todos los elementos que queremos utilizar. Para facilitar la gestión de nuestro proceso de validación, los ponemos en un directorio con fecha y usamos unos nombres de archivo significativos, como

http://www.ukoln.ac.uk/metadata/oa-forum/workshop-photos/oai/wp_dc/20030818/test.xml

Ahora podemos validar los registros y el esquema con el validador de esquemas XML disponible en

http://www.w3.org/2001/03/webdata/xsv/


6: ListMetadataFormats

El verbo OAI-PMH ListMetadataFormats necesita el conocimiento de las existencia del nuevo formato. Por lo tanto, necesitamos modificar nuestro software de repositorio (el código fuente y/o archivos de configuración) para dar soporte al nuevo formato de metadatos. Lo hacemos añadiendo información sobre el nuevo formato a la respuesta de nuestro repositorio a la petición 'ListMetadataFormats' . Por ejemplo:

...
<metadataFormat>
  <metadataPrefix>wp_dc</metadataPrefix>
  <schema>http://www.ukoln.ac.uk/metadata/oa-forum/workshop-photos/wp_dc/20030818/wp_dc.xsd</schema>
  <metadataNamespace>http://www.ukoln.ac.uk/metadata/oa-forum/workshop-photos/wp_dc/</metadataNamespace>
</metadataFormat>
...


7: Otros Verbos

También necesitamos asegurarnos que el formato "wp_dc" está disponible al usar los verbos:

Para ello, debemos modificar la respuesta de nuestro repositorio a esos verbos. Debe establecerse el nuevo nombre de formato "wp_dc" como "MetadataPrefix" aceptado . Las respuesta a las peticiones devolverán entonces los registros apropiados formateados de acuerdo al nuevo esquema cuando así es solicitado por a Proveedor de Servicios.


8: Probando - validar de nuevo

Por último, usamos el Repository Explorer para probar el nuevo formato. Para ello, introduzca la siguiente dirección como baseURL

http://www.ukoln.ac.uk/metadata/oa-forum/workshop-photos/oai/nph-oai2.cgi

Debemos asegurarnos que:

Una vez que se cumplen todas estas condiciones, ¡tenemos un nuevo formato!


Resumen - extendiendo un formato


Cuando se quiere usar otro formato de metadatos Arriba

Podemos adoptar un enfoque similar con otros formatos de registro de metadatos. En el caso de IMS / IEEE LOM y ODRL, los esquemas XML y los espacios de nombres ya están establecidos. El despliegue de estos formatos debería ser más sencillo pues se necesita definir sus esquemas. Sin embargo, las especificaciones técnicas de los esquemas XML están sometidos continuamente a revisión en el momento de redactar este tutorial, a veces es difícil para aplicaciones como IMS, mantenerse al día de los cambios.


Implementando un formato existente Arriba

Para implementar un formato de metadatos ya existente, modifique la respuesta de ListMetadataFormats para incluir el formato al que quiere dar soporte. Por ejemplo para IMS::

...
<metadataFormat>
  <metadataPrefix>ims</metadataPrefix>
  <schema>http://www.imsglobal.org/xsd/imsmd_v1p2p2.xsd</schema>
  <metadataNamespace>http://www.imsglobal.org/xsd/imsmd_v1p2</metadataNamespace>
</metadataFormat>
...

Extienda los otros verbos (peticiones ListSets, ListIdentifiers, ListRecords, y GetRecord) para que acepten el valor ims de metadataPrefix y para que devuelva los registros formateados apropiadamente.


Resumen Arriba

OAI-PMH permite cualquier formato de metadatos, siempre y cuando esté codificado en XML con un esquema XML. Todos los repositorios deben soportar oai_dc para un nivel mínimo de interoperabilidad. Si oai_dc no tiene suficientes elementos, puede extenderlo. Si oai_dc no es suficientemente preciso, puede utilizar un esquema en Dublin Core cualificado. Si oai_cd no es el esquema adecuado para su comunidad o propósito, entonces utilice otra cosa.


Siete definiciones importantes Arriba

PURL
PURL (Persistent Uniform Resource Locator) es un localizador persistente uniforme de recursos. Funcionalmente un PURL es un URL. Sin embargo, en lugar de apuntar directamente a la ubicación de un recurso de Internet, un PURL apunta a un servicio intermedio de resolución. El servicio de resolución de PURL asocia el PURL con la URL real y devuelve esa URL al cliente. Entonces, el cliente puede completar la operación con esa URL en la forma habitual. En la jerga Web, esto es una redirección HTTP estándar.
(Definición de PURL en http://purl.org)

URI
URI es el acrónimo de Universal Resource Identifier ( Identificador Uniforme de Recursos) . Los URIs son cadenas que identifican las cosas en la Web. De modo informal, en algunas ocasiones a las URIs se las denomina URLs (Uniform Resource Locators), aunque URLs son más limitadas que las URIs. Las URIs se usan en un cierto número de esquemas, incluyendo los esquemas URI de HTTP y FTP.

Espacio de nombre XML
Un espacio de nombre XML es una colección de nombres, identificados por una referencia URI [RFC2396], que se utilizan en documentos XML como tipos de elementos y como nombres de atributo. Los espacio de nombre XML difieren del "espacio de nombres" utilizado convencionalmente en la disciplina informática en que la versión XML tiene estructura interna y no es, matemáticamente hablando, un conjunto.
(Definición de W3C—Namespaces in XML en http://www.w3.org/TR/REC-xml-names/)

Esquemas XML
Los esquemas XML expresan vocabularios compartidos y permite a las máquinas poner en práctica unas reglas hechas por personas. Proporcionan un medio para definir la estructura, contenido y semántica de los documentos XML.
(Definición de W3C Architecture Domain—XML schema en http://www.w3.org/XML/Schema)

Contenedor
Los contenedores son lugares en las respuestas OAI-PMH donde se puede proporcionar XML que se ajuste a cualquier esquema externo. Los contenedores satisface la necesidad de extensibilidad y de mejoras específicas para la comunidad. La OAI Implementation Guidelines enumera los contenedores opcionales existentes y proporciona enlaces a sus esquemas.

DCMI (Dublin Core Metadata Initiative)
Dublin Core Metadata Initiative es un foro abierto dedicado al desarrollo de estándares de metadatos interoperables en línea que dan soporte a una amplia gama de propósitos y modelos de negocio. Las actividades de DCMI incluye grupos de trabajo orientados hacia el consenso, talleres globales, conferencias, normas de cooperación y esfuerzos a nivel educativo para promover una aceptación generalizada de los estándares de metadatos y de su uso.
(Definición de Dublin Core Metadata Initiative en http://dublincore.org/)

DCMES (Dublin Core Metadata Element Set)
El conjunto de elemento de metadatos Dublin Core es una norma para la descripción de recursos de información en varias disciplinas. Aquí una fuente de información se define como "todo lo que tiene identidad". Esta es la definición utilizada en Internet RFC 2396, "Uniform Resource Identifiers (URI): Generic Syntax", de Tim Berners-Lee et al. No hay restricciones fundamentales respecto al tipo de recurso a los que los metadatos Dublin Core se pueden asignar.
(Definición de Dublin Core Metadata Initiative—Dublin Core Metadata Element Set, Version 1.1: Reference Description at http://dublincore.org/documents/dces/)


Fuentes de información adicional Arriba

Dublin Core ­ sitio oficial
http://dublincore.org/

DCMI term declarations represented in XML schema language
http://dublincore.org/schemas/xmls/

Guidelines for implementing Dublin Core in XML
http://dublincore.org/documents/dc-xml-guidelines/

W3 Schools XML tutorials incluye, entre otros, los siguientes:

W3 Schools XML tutorial
http://www.w3schools.com/xml/

W3 Schools XML Schema Tutorial
http://www.w3schools.com/schema/

OAI ­ sitio oficial
http://www.openarchives.org/

OAI-PMH protocol specification
http://www.openarchives.org/OAI/openarchivesprotocol.html

OAI general mailing list
http://www.openarchives.org/mailman/listinfo/OAI-general/

OAI implementers mailing list
http://www.openarchives.org/mailman/listinfo/OAI-implementers/


Contenidos | 1 | 2 | 3 | 4 | 5 | 6 | Anterior | Siguiente                


Copyright © 2003 University of Bath. All rights reserved.       Last modified: 14 Oct 2003 16:36 Authored in CALnet
Author: Leona Carpenter (co-ordinating author) for OA-Forum and UKOLN

Traducción española de: Domingo Arroyo. Ministerio de Cultura, Dirección General de Libro Archivos y Bibliotecas.