Interfaces OAI

Servidor OAI-PMH

En las siguientes secciones y subpáginas, aprenderás cómo configurar el servidor OAI-PMH y activar crosswalks adicionales de OAI-PMH. También se recomienda al usuario consultar OAI-PMH Data Provider para obtener detalles más profundos sobre el funcionamiento del programa.

La interfaz OAI-PMH puede ser utilizada por otros sistemas para recolectar registros de metadatos desde tu instalación de DSpace.

Activación del Servidor OAI-PMH

El servidor OAI-PMH de DSpace está habilitado de forma predeterminada. Sin embargo, puedes optar por habilitarlo o deshabilitarlo en tu archivo local.cfg utilizando las siguientes configuraciones:

# Enable (true) or disable (false) OAI-PMH server
oai.enabled = true

# When enabled, OAI-PMH server is available at this path
oai.path = oai

Si modificas cualquiera de estas configuraciones, debes reiniciar tu contenedor de servlets (generalmente Tomcat).

  • Puedes comprobar que está funcionando enviando una solicitud a: [dspace.server.url]/[oai.path]/request?verb=Identify (por ejemplo: http://localhost:8080/server/oai/request?verb=Identify)
  • La respuesta debería ser similar a la que devuelve el Servidor de Demostración de DSpace 7: https://api7.dspace.org/server/oai/request?verb=Identify

Si estás utilizando un navegador moderno, deberías ver una página HTML que describe tu repositorio. Lo que realmente estás recibiendo del servidor es un archivo XML con un enlace a una hoja de estilo XSLT que genera ese HTML en tu navegador (del lado del cliente). Cualquier navegador que no pueda interpretar XSLT mostrará únicamente el XML puro. La hoja de estilo predeterminada se encuentra en [dspace-source]/dspace-oai/src/main/resources/static/style.xsl y puede modificarse configurando el atributo stylesheet del elemento Configuration en [dspace]/config/crosswalks/oai/xoai.xml.

Enlaces relevantes

Mantenimiento del Servidor OAI-PMH

Después de activar el servidor OAI-PMH, también debes asegurarte de que su índice se actualice de forma regular. Actualmente, esto no ocurre automáticamente dentro de DSpace. En su lugar, debes programar la ejecución periódica de la herramienta de línea de comandos [dspace.dir]/bin/dspace oai import (normalmente al menos una vez por noche, aunque podrías programarla con mayor frecuencia).

Aquí tienes un ejemplo de cron que puede usarse para programar una reindexación del servidor OAI-PMH de forma nocturna (para ver la lista completa de tareas programadas recomendadas en DSpace, consulta Tareas programadas mediante Cron):

# Update the OAI-PMH index with the newest content at midnight every day
# NOTE: ONLY NECESSARY IF YOU ARE RUNNING OAI-PMH 
# (This ensures new content is available via OAI-PMH)
0 0 * * * [dspace.dir]/bin/dspace oai import > /dev/null

Puedes encontrar más información sobre la herramienta de línea de comandos dspace oai en la documentación del administrador OAI (OAI Manager).

Recolector OAI-PMH / OAI-ORE (Cliente)

Esta sección describe los parámetros utilizados para configurar el recolector OAI-PMH / OAI-ORE. Este recolector puede utilizarse para recolectar contenido (bitstreams y metadatos) en DSpace desde un servidor externo OAI-PMH u OAI-ORE.

Compatible con la versión 7.1 o superior

La recolección OAI no estaba disponible en DSpace 7.0. Fue restablecida en DSpace 7.1. Consulta Estado de la versión 7.0 de DSpace

Recolección desde otro DSpace

Si estás recolectando contenido (bitstreams y metadatos) desde una instalación externa de DSpace mediante OAI-PMH y OAI-ORE, primero debes verificar que dicha instalación externa de DSpace permita la recolección a través de OAI-ORE.

Si el DSpace externo está ejecutando la versión 6.x o una anterior, debe tener en funcionamiento tanto la interfaz OAI-PMH como la interfaz XMLUI para admitir la recolección de contenido mediante OAI-ORE.

Si el DSpace externo está ejecutando la versión 7.x o superior, solo necesita tener habilitada la interfaz OAI-PMH.

Puedes verificar que la opción de recolección OAI-ORE esté habilitada siguiendo estos pasos:

  1. Primero, verifica si el DSpace externo indica que admite la recolección ORE a través de la interfaz OAI-PMH. Para ello, envía la siguiente solicitud a la interfaz OAI-PMH del DSpace: http://[URL-completa-a-OAI-PMH]/request?verb=ListRecords&metadataPrefix=ore
  2. Para versiones 6.x o anteriores, puedes verificar que la interfaz XMLUI admite OAI-ORE (debería hacerlo, siempre que sea una versión actual de DSpace). Primero, localiza un Handle de ítem válido. Luego, envía la siguiente solicitud a la interfaz XMLUI de DSpace: http://[URL-completa-a-XMLUI]/metadata/handle/[item-handle]/ore.xml

Para ver ejemplos de cómo configurar la recolección mediante la interfaz de usuario, consulta la documentación sobre la configuración de "Content Source" en la sección documentación "Editar Collection".

Configuración del Recolector OAI-PMH / OAI-ORE

Existen muchas opciones de configuración posibles para el recolector OAI. La mayoría de ellas se encuentran en el archivo [dspace]/config/modules/oai.cfg (a menos que se indique lo contrario más abajo). Estas opciones pueden ser modificadas directamente en ese archivo o sobrescritas en tu archivo local.cfg (consulta Configuration Reference).

Configuration File:

[dspace]/config/modules/oai.cfg

Property:

oai.harvester.eperson

Example Value:

oai.harvester.eperson = admin@myu.edu

Informational Note:

El EPerson bajo cuya autorización se realizará la recolección automática. Este campo no tiene un valor predeterminado y debe ser especificado para poder utilizar el sistema de programación de recolección. Lo más probable es que se trate de la cuenta de administrador de DSpace creada durante la instalación..

Property:

oai.url

Example Value:

oai.url = ${dspace.server.url}/${oai.path}

Informational Note:

La URL base de la aplicación web de difusión OAI-PMH (es decir, no incluir /request al final). Esto es necesario para generar URIs para los ORE Resource Maps. El valor predeterminado ${dspace.baseUrl}/oai funcionará para una instalación típica, pero debe modificarse si es necesario. Ten en cuenta que dspace.baseUrl se define en tu archivo de configuración dspace.cfg.

Property:

oai.ore.authoritative.source

Example Value:

oai.ore.authoritative.source = oai

Informational Note:

La aplicación web responsable de generar las URIs para los ORE Resource Maps. Si se utiliza oai, debe establecerse el valor de configuración oai.url.

  • Cuando se establece en 'oai', todas las URIs en los ORE Resource Maps serán relativas a la URL de OAI-PMH (configurada mediante oai.url anteriormente).

  • Las URIs generadas para los ORE ReMs siguen la siguiente convención para cualquier configuración:
    http://[URL-base]/metadata/handle/[item-handle]/ore.xml

Property:

oai.harvester.autoStart

Example Value:

oai.harvester.autoStart = false

Informational Note:

Determina si el proceso de programación de recolección (harvest scheduler) se inicia automáticamente cuando la aplicación web de DSpace es redeplegada.

Property:

oai.harvester.metadataformats.PluginName

Example Value:

oai.harvester.metadataformats.PluginName = \
http://www.openarchives.org/OAI/2.0/oai_dc/, Simple Dublin Core

Informational Note:

Este campo puede repetirse y sirve como vínculo entre los formatos de metadatos compatibles con el repositorio local y aquellos soportados por el proveedor OAI-PMH remoto. Sigue la forma: oai.harvester.metadataformats.PluginName = NamespaceURI,Nombre para mostrar (opcional)El PluginName designa los esquemas de metadatos que el recolector "sabe" que el repositorio local de DSpace puede soportar. En consecuencia, el PluginName debe corresponder con un crosswalk de ingestión declarado previamente. El valor del namespace se utiliza durante la negociación con el proveedor OAI-PMH remoto, comparándolo con la lista devuelta por la solicitud ListMetadataFormats y resolviéndolo al metadataPrefix que el proveedor remoto haya asignado a ese namespace. Finalmente, el nombre para mostrar (opcional) es la cadena que se mostrará al usuario al configurar una colección para recolección. Si se omite, se mostrará la combinación PluginName:NamespaceURI en su lugar.

Property:

oai.harvester.oreSerializationFormat.OREPrefix

Example Value:

oai.harvester.oreSerializationFormat.OREPrefix = \
http://www.w3.org/2005/Atom

Informational Note:

Este campo funciona de manera muy similar a oai.harvester.metadataformats.PluginName. El OREPrefix debe corresponder a un crosswalk de ingestión declarado, mientras que el Namespace debe ser compatible con el proveedor OAI-PMH de destino al recolectar contenido.

Property:

oai.harvester.timePadding

Example Value:

oai.harvester.timePadding = 120

Informational Note:

Cantidad de tiempo que se resta del argumento from de la solicitud PMH para compensar el tiempo necesario para negociar una conexión. Se mide en segundos. El valor predeterminado es 120.

Property:

oai.harvester.harvestFrequency

Example Value:

oai.harvester.harvestFrequency = 720

Informational Note:

Con qué frecuencia el planificador de recolección verifica el proveedor remoto en busca de actualizaciones. Siempre debe ser mayor que timePadding. Se mide en minutos. El valor predeterminado es 720.

Property:

oai.harvester.minHeartbeat

Example Value:

oai.harvester.minHeartbeat = 30

Informational Note:

El heartbeat es la frecuencia con la que el programador de recolección consulta la base de datos local para determinar si alguna colección está programada para un nuevo ciclo de recolección (según el valor de harvestFrequency). El programador está optimizado para entrar en modo de espera hasta que realmente haya una colección lista para ser recolectada. Los parámetros minHeartbeat y maxHeartbeat definen los límites inferior y superior de este intervalo de tiempo. Se mide en segundos. El valor predeterminado es 30.

Property:

oai.harvester.maxHeartbeat

Example Value:

oai.harvester.maxHeartbeat = 3600

Informational Note:

El heartbeat es la frecuencia con la que el programador de recolección consulta la base de datos local para determinar si alguna colección está programada para un ciclo de recolección (según el valor de harvestFrequency). El programador está optimizado para entrar en modo de espera hasta que la siguiente colección esté realmente lista para ser recolectada. Los parámetros minHeartbeat y maxHeartbeat representan los límites inferior y superior de este intervalo de tiempo. Se mide en segundos. El valor predeterminado es 3600 (1 hora).

Property:

oai.harvester.maxThreads

Example Value:

oai.harvester.maxThreads = 3

Informational Note:

How many harvest process threads the scheduler can spool up at once. Default value is 3.

Property:

oai.harvester.threadTimeout

Example Value:

oai.harvester.threadTimeout = 24

Informational Note:

Tiempo que debe transcurrir antes de que un hilo de recolección sea terminado. El proceso de finalización espera a que el ítem actual termine de ser ingerido y guarda el progreso realizado hasta ese momento. Se mide en horas. El valor predeterminado es 24.

Property:

oai.harvester.unknownField

Example Value:

oai.harvester.unkownField = fail | add | ignore

Informational Note:

Tienes tres (3) opciones. Cuando un proceso de recolección se completa para un ítem y este ha pasado por los crosswalks de ingestión para ORE y su formato de metadatos descriptivos seleccionado, podría generar valores DIM que no estén definidos en el repositorio local. Esta configuración determina qué debe hacerse en caso de que esos valores DIM pertenezcan a un esquema ya declarado. Fail terminará la tarea de recolección y generará un error. Ignore: omitirá silenciosamente los campos desconocidos. Add: agregará el campo faltante al registro de metadatos del repositorio local. Valor predeterminado: fail.

Property:

oai.harvester.unknownSchema

Example Value:

oai.harvester.unknownSchema = fail | add | ignore

Informational Note:

Cuando un proceso de recolección se completa para un ítem y este ha pasado por los crosswalks de ingestión para ORE y su formato de metadatos descriptivos seleccionado, podría generar valores DIM que no estén definidos en el repositorio local. Esta configuración determina qué debe hacerse en caso de que esos valores DIM pertenezcan a un esquema desconocido. Fail: terminará la tarea de recolección y generará un error. Ignore: omitirá silenciosamente los campos desconocidos. Add: agregará el esquema faltante al registro de metadatos del repositorio local, utilizando el nombre del esquema como prefijo y "unknown" como espacio de nombres. Valor predeterminado: fail.

Property:

oai.harvester.acceptedHandleServer

Example Value:

oai.harvester.acceptedHandleServer = \
hdl.handle.net, handle.test.edu

Informational Note:

Un proceso de recolección intentará escanear los metadatos de los ítems entrantes (específicamente el campo identifier.uri) para verificar si parecen un handle. Si es así, compara el patrón con los valores de este parámetro. Si hay una coincidencia, al nuevo ítem se le asigna el handle proveniente del valor en los metadatos en lugar de generar uno nuevo. Valor predeterminado: hdl.handle.net.

Property:

oai.harvester.rejectedHandlePrefix

Example Value:

oai.harvester.rejectedHandlePrefix = 123456789, myeduHandle

Informational Note:

Patrón que se debe rechazar como un prefijo de handle no válido (por ejemplo, una cadena de prueba conocida) al intentar encontrar el handle de los ítems recolectados. Si hay una coincidencia con este parámetro de configuración, se generará un nuevo handle en su lugar. Valor predeterminado: 123456789.

Configuración de una recolección para importar contenido en una colección

Existen dos opciones para configurar una colección para la recolección de contenido. Una es utilizando los scripts de DSpace llamados "harvest", y la otra es configurando la fuente de contenido (content source) de una colección a través de la interfaz de usuario.

Uso del script "harvest"

El script harvest puede ejecutarse tanto desde la línea de comandos (CLI) como desde la API REST mediante la llamada a "harvest". Utiliza los parámetros definidos en la siguiente tabla.

Short option Long option Argument Explanation
-p --purge [none] Elimina todos los ítems de la colección proporcionada con el parámetro -c.
-r --run [none] Ejecuta el procedimiento de recolección estándar para la colección especificada con el parámetro -c.
-g --ping [none] Verifica que el servidor proporcionado mediante el parámetro -a y el set especificado mediante el parámetro -i puedan resolverse y funcionen correctamente.
-s --setup [none] Configura la colección especificada con el parámetro -c para la recolección. Será necesario proporcionar el servidor mediante el parámetro -a, y el identificador del set OAI debe proporcionarse mediante el parámetro -i.
-S --start [none] Inicia el ciclo de recolección para todas las colecciones.
-R --reset [none] Restablece el estado de recolección en todas las colecciones.
-P --purgeCollections [none] Purgar todas las colecciones recolectables.
-o --reimport [none] Reimporta todos los ítems de la colección especificada con el parámetro -c. Esto equivale a ejecutar ambos comandos -p y -r para la colección indicada.
-c --collection [id-or-handle] La colección de recolección (handle o id)
-t --type [type-code] El tipo de recolección: 0 para sin recolección, 1 solo metadatos, 2 metadatos y referencias a bitstreams (requiere soporte ORE), 3 metadatos y bitstreams (requiere soporte ORE)
-a --address [url] La dirección del servidor OAI-PMH que se va a recolectar
-i --oai_set_id [set-id]

El identificador del set PMH que representa la colección a recolectar. En caso de que se necesiten recolectar todos los sets, se debe proporcionar el valor "all".

-m --metadata_format [format] El nombre del formato de metadatos deseado para la recolección, que se resuelve a un namespace y un crosswalk en el archivo dspace.cfg.
-h --help [none] Imprimir el mensaje de ayuda
-e --eperson [email] (SOLO CLI) El eperson que realiza la recolección. Cuando el comando se utiliza desde la API REST, se empleará el usuario que haya iniciado sesión.


Ejemplos de recolección de una colección mediante comandos CLI

1. Verifica si se puede acceder a la fuente del recolector

  dspace/bin/dspace -g -a https://harvest.source.org -i harvest-set

Reemplaza https://harvest.source.org con la fuente que deseas utilizar, el harvest-set con el conjunto o los conjuntos que deseas recolectar o all en caso de que quieras recolectar todos los conjuntos.

2. Configurar una colección para recolección

  dspace/bin/dspace harvest -s -c 123456789/123 
  -e harvest-user@dspace.org -a https://harvest.source.org -i harvest-set -m dc -t 1

Reemplaza el 123456789/123 con tu colección, el harvest-user@dspace.org con un usuario existente en DSpace que tenga los permisos necesarios para realizar la ingestión, https://harvest.source.org con la fuente que deseas utilizar, el harvest-set con el conjunto o conjuntos que deseas recolectar o all en caso de que quieras recolectar todos los conjuntos. El -m parámetro indica el formato de metadatos que se utilizará y el -t parámetro indica el tipo de recolección a emplear. Cuando se utiliza el valor 0 para -t , la recolección se desactiva.

3. Ejecuta la recolección para la colección configurada

  dspace/bin/dspace harvest -r -c 123456789/123 -e harvest-user@dspace.org 

Reemplaza el 123456789/123 con el identificador de tu colección, y el harvest-user@dspace.org con un usuario existente en DSpace que tenga los permisos necesarios para realizar la ingestión.

Configuración de una fuente de contenido para recolección desde la interfaz de usuario (UI)

Una colección puede configurarse para recuperar su contenido desde una fuente externa. Esto puede hacerse desde la interfaz de "Editar colección" siguiendo los siguientes pasos.

1. Configura la colección para recolectar su contenido desde una fuente externa

Ve a la pestaña "Editar colección" > "Fuente de contenido". Marca la casilla "Esta colección recolecta su contenido desde una fuente externa".

2. Configura la fuente de recolección

Una vez marcada la casilla, se puede configurar el proveedor OAI, el identificador del set y el formato de metadatos. Un ejemplo de esta configuración se muestra en la imagen a continuación.

Cuando se necesite recolectar todos los sets, el campo puede dejarse vacío.

La configuración del servidor será verificada al hacer clic en el botón "Guardar".

3. Iniciar la recolección

Haz clic en el botón "Importar ahora" para iniciar la importación. Una vez iniciada, el botón indicará que la importación está en progreso; sin embargo, no es necesario permanecer en esta página, ya que la recolección continuará ejecutándose después de salir de ella.

Si más adelante necesitas volver a probar la configuración actual del servidor, puedes usar el botón "Probar configuración". Para restablecer completamente la colección eliminando todos los ítems y comenzar una nueva importación, haz clic en el botón "Restablecer e importar nuevamente".

Demostración de DSpace 7 - OAI-PMH