Proveedor de Datos OAI-PMH 2.0 (Componentes Internos)
La plataforma DSpace es compatible con la versión 2.0 del Protocolo de la Iniciativa de Archivos Abiertos para la Recolección de Metadatos (OAI-PMH), actuando como proveedor de datos. Esto se implementa utilizando el XOAI OAI-PMH Java Toolkit.
El proceso de compilación de DSpace genera una única aplicación web de backend, que opcionalmente incluye un endpoint OAI-PMH (cuando oai.enabled=true). En una configuración típica, este endpoint se despliega en ${dspace.server.url}/oai (configurado mediante "oai.path"), e incluye los contextos request, driver y openaire, por ejemplo:
http://dspace.myu.edu/server/oai/request?verb=Identify
La "URL base" de esta instancia de DSpace sería:
http://dspace.myu.edu/server/oai/request
Pero también se podrían proporcionar los contextos Driver u OpenAIRE:
http://dspace.myu.edu/server/oai/driver http://dspace.myu.edu/server/oai/openaire
Es esta URL la que debe registrarse en www.openarchives.org.
DSpace proporciona implementaciones de las interfaces de fuentes de datos de XOAI.
Conjuntos (Sets)
OAI-PMH permite que los repositorios expongan una jerarquía de conjuntos (sets) en los que se pueden ubicar los registros. Un registro puede pertenecer a ninguno, uno o varios conjuntos.
DSpace expone las colecciones y comunidades como conjuntos (sets).
Cada comunidad y colección tiene un conjunto OAI correspondiente, que puede ser descubierto por los recolectores mediante el verbo ListSets. El setSpec se basa en el handle de la comunidad o colección, donde la barra "/" se convierte en un guion bajo para formar un setSpec válido. El setSpec se antepone con "com_" o "col_" para comunidades y colecciones, respectivamente (este es un cambio en los nombres de conjuntos introducido en DSpace 3.0 / OAI 2.0). Por ejemplo:
col_1721.1_1234
De forma natural, el nombre de la comunidad o colección también es el nombre del conjunto correspondiente.
Identificador Único
Cada ítem en un repositorio de datos OAI-PMH debe tener un identificador único, el cual debe cumplir con la sintaxis de una URI. A partir de DSpace 1.2, no se utilizan los Handles para este propósito; esto se debe a que, en OAI-PMH, el identificador OAI se refiere al registro de metadatos asociado con el recurso. El recurso en sí es el ítem de DSpace, cuyo identificador es el Handle. En términos prácticos, usar el Handle como identificador OAI podría generar problemas en el futuro si varias instancias de DSpace comparten ítems con los mismos Handles; los identificadores de los registros de metadatos OAI deberían ser distintos, ya que cada instancia de DSpace necesitaría ser recolectada por separado y podría contener metadatos diferentes para el mismo ítem.
Los identificadores OAI que utiliza DSpace tienen el siguiente formato:
oai:PREFIX:handle
Por ejemplo:
oai:dspace.myu.edu:123456789/345
Si deseas utilizar un esquema diferente, esto se puede cambiar fácilmente editando el valor de identifier.prefix en el archivo [dspace]/config/modules/oai.cfg.
Control de acceso
OAI no proporciona detalles de autenticación o autorización, aunque estos podrían implementarse utilizando métodos estándar de HTTP. Se asume que, por el momento, todo el acceso será anónimo.
Una pregunta común es, "¿todos los metadatos son públicos?" Actualmente, la respuesta es sí; todos los metadatos se exponen mediante OAI-PMH, incluso si el ítem tiene políticas de acceso restringido. La razón detrás de esto es que las personas que efectivamente tienen permiso para leer un ítem restringido aún deberían poder utilizar servicios basados en OAI para descubrir su contenido. Sin embargo, los datos expuestos pueden modificarse cambiando las hojas de estilo XSLT definidas en [dspace]/config/crosswalks/oai/metadataFormats.
Fecha de modificación (Sello de fecha OAI)
Los recolectores OAI-PMH necesitan saber cuándo se ha creado, modificado o eliminado un registro. DSpace lleva un registro de la fecha de "última modificación" para cada ítem en el sistema, y esta fecha se utiliza como el sello de fecha (date stamp) de OAI-PMH. Esto significa que cualquier cambio en los metadatos (por ejemplo, correcciones realizadas por administradores en algún campo, o un retiro del ítem) será visible para los recolectores.
Información "About"
Como parte de cada registro entregado a un recolector, existe una sección opcional y repetible denominada "about", la cual puede completarse de cualquier manera que sea conforme a un esquema XML. Los usos más comunes incluyen información sobre procedencia y derechos, y existen esquemas utilizados por comunidades OAI para este fin. Actualmente, DSpace no proporciona esta información, pero la biblioteca central XOAI permite su definición. Para ello, es necesario adentrarse en el código y realizar algunas modificaciones.
Eliminaciones
Como DSpace admite dos formas de eliminación (retiro o eliminación permanente), esto impacta en cómo OAI-PMH expone las eliminaciones. Durante una eliminación permanente (expunge), DSpace ya no conserva ninguna información sobre el objeto eliminado. Por lo tanto, las eliminaciones permanentes "desaparecen" de OAI-PMH, ya que DSpace no posee más información sobre dicho objeto. Esto se considera un enfoque "transitorio" de eliminación según las definiciones de OAI-PMH.
Cuando un ítem es retirado en DSpace, el ítem aún existe pero está oculto al público. Los ítems retirados devolverán un "<header status="deleted">" en OAI-PMH cuando se realice una solicitud GetRecord para dicho ítem (sin embargo, no se muestran en una solicitud ListRecords de OAI-PMH de forma predeterminada). Ten en cuenta que el índice de OAI-PMH no se actualiza automáticamente, por lo que los ítems retirados no reflejarán este estado de "eliminado" hasta que se ejecute nuevamente "./dspace oai import".
Una vez que un ítem ha sido retirado, las recolecciones OAI-PMH que abarquen el rango de fechas en el que ocurrió el retiro encontrarán el encabezado del registro marcado como "eliminado". Las recolecciones de un rango de fechas anterior al retiro no encontrarán el registro, a pesar de que dicho registro existía en ese momento. Como ejemplo de esto, consideremos un ítem que fue creado el 02/05/2002 y retirado el 06/10/2002. Una solicitud para recolectar datos del mes 10/2002 devolverá el encabezado del registro marcado como "eliminado". Sin embargo, una recolección del mes 05/2002 no devolverá el registro original.
Control de Flujo (Resumption Tokens)
Un proveedor de datos OAI puede evitar impactos en el rendimiento causados por procesos de recolección forzando al recolector a recibir los datos en bloques separados por intervalos de tiempo. Si el proveedor de datos recibe una solicitud que abarca una gran cantidad de información, puede enviar solo una parte junto con un resumption token. El recolector puede regresar posteriormente con ese resumption token y continuar con la recolección.
DSpace admite resumption tokens para las solicitudes OAI-PMH de tipo "ListRecords", "ListIdentifiers" y "ListSets".
Cada solicitud ListRecords de OAI-PMH devolverá como máximo 100 registros (por defecto), aunque este valor puede configurarse en el archivo [dspace]/config/crosswalks/oai/xoai.xml.
Cuando se emite un resumption token, se incluyen los atributos opcionales completeListSize y cursor. Los resumption tokens en OAI 2.0 son persistentes, por lo que su atributo expirationDate no está definido; es decir, no expiran.
Los resumption tokens contienen toda la información de estado necesaria para continuar una solicitud.