Archivos de Tags: sword

Interfaces e integraciones con DSpace

La pregunta primera que nos debemos hacer es ¿cuando necesitamos tener un interface con DSpace? y no estamos hablando solamente de interfaz de usuario (léase XMLUI o JSPUI) sino de interfaces sistema-sistema o integraciones. Bien, en ciertas ocasiones necesitaremos integrarnos con sistemas o aplicaciones web, como CMS, DMS, LMS, diseñar interfaces de usuario sustancialmente diferentes, como las móviles, lograr una interacción entre repositorios, etc. Un conjunto más amplio de lo que inicialmente se piensa.
De hecho, una gran parte de repositorios se interconectan mediante OAI-PMH. Llevamos toda la vida usando servicios de integración y ni nos habíamos dado cuenta…
Bien, este post es un repaso (con la impresión de que no es exhaustivo) a las diversas alternativas y sabores existentes.

Integración directa contra la Base de Datos y el sistema de Ficheros
Esto podríamos consideralo básicamente una declaración del tipo: “no me sirve nada el código java de Dspace y me voy a programar otra cosa”. El proyecto, excepto si pensamos para el acceso a funciones muy básicas, será largo, pero claro, prácticamente podréis usar cualquier framework de desarrollo para el proyecto.

JavaAPI
Cualquier aplicación que sea capaz de llamar al JavaAPI de Dspace, podrá usarse para este tipo de integración. Así es como surgió XMLUI y están surgiendo continuamente nuevos proyectos. El problema es que la JavaAPI no proporciona una separación completa o nítida y normalmente se requerirá re-escribir parte de la lógica de negocio de DSPACE en la nueva aplicación. Ejemplo de ello es la duplicidad existente en el código XMLUI y JSPUI, indicación clara de esta insuficiencia o “imperfección” del JavaAPI.
Pero aparte de eso, ese el camino para el uso de Frameworks de Aplicaciones Web o de desarrollo rápido, como el framework Play!, la nueva interface anunciada en agosto de este año para Dspace, Freemarker WebMVC o incluso el uso de frameworks no-Java como Ruby on Rails.

OAI-PMH
Simplificando, OAI-PMH permite la recolección de los metadatos DSpace en otro sistema. El OAI-PMH, OAI’s Protocol for Metadata Harvesting, es la base de los proyectos de cooperación entre repositorios de diferente nivel (regional, nacional , temáticos…). OAI-PMH define los estándares para describir los intercambios de metadatos entre sistemas y con la creciente disponibilidad de librerías OAI-PMH para una diversidad de plataformas, pues es una opción siempre valorable.
Curiosamente siempre tenemos presente la recolección de nuestro DSpace, ya que la aplicación OAI se despliega de forma estándar en el proceso normal de construcción de DSpace, pero (creo que desde la versión 1.6) podemos configurar nuestro DSpace para recolectar otros repositorios que expongan sus contenidos mediante este interface. Por ejemplo, arXIv posibilita su recolección para proveer acceso a los metadatos de todos sus artículos. Guarden la debida precaución con los derechos y licencias.

OAI-ORE
OAI-ORE, Open Archive Initiative’s Object Reuse and Exchange, es la especificación para describir agregaciones de recursos web y el intercambio de recursos digitales. El soporte de este protocolo en Dspace se propociona desde la versión 1.6.
Si se usa en combinación con OAI-PMH el contenido de un repositorio (metadatos + ficheros) puede ser recolectado desde/hacia otro sistema. Como uso, quizá un poco raro, lo hemos usado para migraciones, obtener nuevas unidades de agregación de contenidos, y sincronización de instancias, sin necesidad de recurrir a procesos de import-export o similares.

REST-API
Existe una REST API en fase de desarrollo avanzado que permite la integración basada en REST: Transferencia de Estado Representacional (Representational State Transfer).  El código se  puede descargar para la 1.8 y previsiblemente irá incluido en el DSpace 3.0, pero ya hay una serie de proyectos interesantes sobre esta interfza, incluido una integración Moodle.

SWORD
SWORD (Simple Web-service Offering Repository Deposit) es un protocolo, basado en atompub, Atom Publish Protocol, que define el depósito remoto de items en un repositorio por otras aplicaciones. Ya nos hemos explayado bastante en este blog sobre SWORD, está claro que nos gusta. La disponibilidad de librerias Sword en diversos lenguajes, (PHP, java…) promueve el uso de este tipo de integración, p.ej, en el depósito de publicaciones desde sistemas de investigación, y otros escenarios.
Dspace implementa el protocolo SWORD de diversas formas:

  • Servidor compatible con el protocolo SWORD v1, disponible desde la versión 1.6 de Dspace
  • Servidor compatible SWORD V2, disponible desde la versión 1.8 de Dspace.
  • Cliente SWORD, para hacer que DSPACE deposite items en otros sistemas que acepten este protocolo.

LNI (Lightweight Network Interface)
Este interface permite la integración de un sistema con DSpace via el protocolo WebDAV. Puedes encontrar más información aquí. La última actualización del código se realizó en la versión 1.5, su uso parece minoritario y hay reportados problemas de rendimiento (literalmente:    suffers horrible performance issues).  Desarrollado por el MIT, su proyecto más visible parece ser CWspace, una plataforma de este Instituto de contenidos OpenCourseware.

SOLR
En el Open Repositories 2012, Stuart Lewis presentó SkylightUI, que es un front-end sobre DSpace, desarrollado en CodeIgnitor(PHP), y que usa el índice SOLR de DSpace como una API. Como nunca nos podemos resistir a las propuestas de Stuart, pues lo probaremos lo antes que podamos, y os seguiremos contando.

Depositando items mediante emails

Una opción a valorar cuando requerimos que una comunidad amplia, esporádica y posiblemente indefinida de usuarios depositen objetos en nuestro repositorio es no usar la UI de Dspace (registro de usuario y unas cuantas pantallas de definción del objeto, bastante intimidatorias en ocasiones) sino usar otro tipo de aplicaciones, más sencillas o simplemente más conocidas y habituales.

Ya hemos comentado en este blog el uso de aplicaciones como EasyDeposit, escrita en PHP y usando el protocolo SWORD, pero hoy, del blog de Stuart Lewis (siempre sorprendiéndonos) os traemos un sistema más deconstruido, si cabe, basado en el envío de correos electrónicos…

  1. Por parte del usuario, simplemente se necesita un cliente de correo para poder realizar los envíos a una cuenta de correo predefinida por el administrador de Dspace.

En el lado de Dspace, una serie de elementos más:

  1. la cuenta de correo a donde nos envían los archivos
  2. un programa PHP de comprobación del buzón de dicha cuenta, empaquetado y envío a DSpace
  3. Dspace con protocolo SWORD activado
  4. (y el tratamiento posterior de completar metadatos, aprobar envío, etc, del flujo de tratamiento de envíos normal)

Aquí os contamos los pasos para poder usar instalar y configurar una aplicación de este estilo, a modo de mini-guía.

La aplicación básicamente consiste en un programa PHP que comprueba los email llegados al INBOX, chequea los correos sin leer y los empaqueta y envía a nuestro repositorio Dspace. Esto significa que no es una aplicación ejecutándose contínuamente en modo servidor, sino que el usuario administrador de Dspace debe de ejecutar esta aplicación cada vez que hay que leer los mails. Se podría activar un procedimiento que se repitiera cada cierto periodo de tiempo, como por ejemplo mediante los cronjobs de Unix o las tareas programadas de Windows.

Explicando lo que hay que hacer para que configurar la aplicación de modo básico:

  • Configurar dspace para que acepte aplicaciónes sword. Para ello consultad este post sobre cómo hacerlo.
  • Instalar un cliente php capaz de ejecutar la aplicación en línea de comandos.  (PHP5)
  • Seguir los pasos de esta página para instalar php mailparse. Prestad atención si usáis Ubuntu en una versión superior a la 9.10, hay comentarios en los foros que explican como hacer que funcione para estas versiones.
  • Si no estamos usando Ubuntu, podemos seguir los pasos en la siguiente página http://wiki.cerb4.com/wiki/Installing_PHP_Mailparse.
  • Tener una cuenta de correo con cualquier servidor de correo que soporte IMAP. p.ej gmail, pero acordarse de activarlo en las opciones del correo.
  • Descargarse la aplicación de esta dirección http://php.swordapp.org. Una vez descomprimida y con la aplicación en la carpeta examples/imap-email, vemos que contiene unas librerías para el tratamiento de los mensajes de correo.
  • Configurar el fichero examples/imap-email/configuration.php con vuestros datos

Ejemplo de configuración para gmail:

$imaphost = ‘{imap.gmail.com:993/imap/ssl}INBOX’;

$mailuser = ‘mi_correo_al_que_van_los_depositos@gmail.com’;

$mailpassword = “contraseña_del_correo”;

$swordurl = ‘http://192.168.1.1:8080/sword/deposit/123456789/1’;

(es decir dirección ip o nombre donde está dspace, incluyendo el puerto, a continuación el directorio donde está desplegado el SWORD y por último la colección a la cual van a ir los depósitos)

$sworduser = ‘usuario_administrador@arvo.es’;

(usuario con privilegios de inserción)

$swordpassword = ‘contraseña_usuario_dspace’;

 

La prueba de que todo está correctamente configurado, es simple, enviamos desde cualquier usuario un correo a la cuenta de gmail con datos de prueba, es decir con el fichero a depositar como atachment. Una vez hecho,  ejecutar la aplicación en linea de comandos, imap-email.php. Veréis como marca los correos como leidos y a continuación los envia a la colección que le indicamos en la configuración.

SWORD

¿Qué es?
Sword es un protocolo usado en repositorios para poder realizar envios de contenidos desde otras aplicaciones. Sus siglas corresponde a Simple Web-service Offering Repository Deposit, es decir un Servicio Web simple que ofrece sevicios de depósito en un repositorio.

¿Para qué sirve?
Activar el protocolo Sword en el repositorio DSpace nos puede permitir acceder, mediante un servicio web, a realizar envíos directos al repositorio. Lo interesante de esta práctica es que se puede configurar el servicio de envío para poder simplificar u omitir pasos del proceso de envíos y que cualquier usuario registrado o no registrado en el repositorio pueda insertar sus contenidos de forma simple.
Poniendo un ejemplo, en un repositorio sólo los usuarios definidos pueden dar de alta contenidos. Si en este repositorio se quisiese ampliar el servicio de envíos, tendríamos que definir una cuenta por usuario, proceso realmente tedioso, complicado por el proceso de establecimiento de permisos, la correcta definición de colecciones destino, etc… El otro problema de este modelo de registro previo es que a priori no sepamos qué usuarios van a subir información.
En este escenario, una opción a valorar es habilitar el protocolo SWORD y habilitarlo en una Web en la cuál, cualquier usuario pueda subir información directamente al repositorio sin necesidad de registrarse. De esta forma no nos preocuparía el número de usuarios o si tenemos que darles permisos, ya que ese proceso se gestionaría por la apliación web. Posteriormente al depósito, un usuario cualificado del repositorio, p.ej. bibliotecario, se encargaría de validar y complementar los datos recibidos.

Clientes SWORD
easydeposit: http://easydeposit.swordapp.org/
BibApp: http://bibapp.org/
Open Journal System:  http://pkp.sfu.ca/?q=ojs
Microsoft Word: http://research.microsoft.com/en-us/projects/authoring/

Repositorios que aceptan el protocolo SWORD
arXiv: http://arxiv.org/
Dspace: http://www.dspace.org/
EPrints: http://www.eprints.org/
Fedora: http://fedoraproject.org/es/
Intralibrary: http://www.intrallect.com/
Microsoft Zentity: http://research.microsoft.com/en-us/projects/zentity/

Instalación de Easydeposit

Easydeposit es un cliente SWORD, extremadamente configurable,  capaz de efectuar depósitos en un repositorio DSpace. Mediante las instrucciones siguientes se va a explicar el procedimiento para instalar esta aplicación y poder usarlo.

Estas instrucciones solo se componen de la instalación de la herramienta, no incluye la configuración del DSpace ni la configuración detallada de Easydeposit. Para ajustar la configuración de DSpace, consultad otro artículo de este blog.

INSTALACIÓN DEL EASYDEPOSIT

Requisitos previos:

Instalación:

  • Descargamos la aplicacion de la siguiente dirección: http://easydeposit.swordapp.org/download/ y la descomprimimos en nuestro directorio que soporte PHP, por lo general suele ser /var/www/, en windows depende de donde lo hayamos guardado, pero por lo general un programa apache siempre tiene una carpeta www en donde colocar los archivos.
  • Una vez copiado la aplicación en el directorio, cerciorarse de que easydeposit tiene todos los permisos de acceso, lectura  y escritura, sino aplicamos un chmod 777 -R a la carpeta easydeposit
  • Abrir el fichero /easydeposit/application/config/config.php. Alli cambiar la linea $config[‘base_url’] =’’  por esto:

$config[‘base_url’]    = ‘http://localhost/easydeposit/’; (si no está en localhost introducir la dirección en la que está localizada)

  • Una vez hecho localizamos la linea $config[‘index_page’] = ‘’;  y la modificamos por la siguiente:

$config[‘index_page’] = ‘index.php’;

Esto hará que las redirecciones del programa las haga correctamente.

  • Por último borramos el fichero .htaccess ubicado en /easydeposit/. Si no lo vemos con el navegador de carpetas habilitamos la función de ver archivos ocultos, ya que por lo general los .htaccess son ficheros ocultos.
  • Una vez hecho esto, accedemos a nuestro easydeposit para probarlo. Pra ello abrimos un navegador e introducimos la dirección que introducimos en $config[‘base_url’].  En nuestro caso:

http://localhost/easydeposit

 

Para más información sobre easydeposit acudí a la página oficial o al blog de Stuart Lewis, el padre de la criatura.

http://blog.stuartlewis.com/2010/02/03/easydeposit-sword-deposit-tool-creator/

http://easydeposit.swordapp.org

Un Manual de uso:

http://repositorynews.wordpress.com/2010/06/04/easydeposit-the-sword-client-creation-toolkit/

Y un ejemplo de cómo queda el proceso de envío desde easydeposit a Dspace:

 

 

Configurar SWORD en DSpace

Uno de los módulos que incluye DSpace es el soporte del protocolo SWORD, de hecho,  viene instalado por defecto en DSpace. Los usuarios que les interese adaptar su repositorio con esta tecnología lo pueden hacer de forma simple.

Para ello he elaborado una pequeña guía para poder configurar correctamente el SWORD en nuestro DSpace, por lo que con una serie de pasos podamos activarlo y poder hacer uso de él.

INSTRUCCIONES

Modificar las lineas del fichero de configuración dspace.cfg ubicado en /[directorio de despliegue]/config/

Buscamos las lineas: # sword.deposit.url = http://www.myu.ac.uk/sword/deposit

Ahí quitamos el comentario (#) y ponemos la direccion web donde se encuentra DSpace, finalizando la url en     /sword/deposit por ejemplo (aunque esté en local, usar mejor la dirección IP de la máquina, y no olvidarse de especificar el puerto):

sword.deposit.url = http://192.168.1.100:8080/sword/deposit

La otra linea a cambiar es ésta:

# sword.servicedocument.url = http://www.myu.ac.uk/sword/servicedocument

Ahí quitamos el comentario y como antes, ponemos nuestra url de DSpace

sword.servicedocument.url = http://192.168.1.100:8080/sword/servicedocument

NOTA: Es muy importante acordarse que después de la dirección del DSpace hay que introducir la ruta /sword/deposit , /sword/servicedocument. Y también, no usar localhost como dirección ya que si el dspace está en una máquina diferente al  cliente no funcionará el envío.

Como último paso hay que configurar las URLs que usarán los enlaces a los items depositados via SWORD.  Si DSPACE no está como aplicación raiz en el servidor de aplicaciones Tomcat,  deberemos cambiar el parámetro por defecto de la configuración, en nuestro caso:

sword.media-link.url = http://192.168.1.100:8080/sword/media-link

Para probarlo. reiniciamos el tomcat y escribimos en un navegador la dirección del DSpace seguido de /sword/servicedocument

Ejemplo: http://localhost:8080/sword/servicedocument

La primera indicación de que todo va bien es que un cuadro de diálogo pedirá un usuario y contraseña. Introduciendo uno que tenga privilegios de submisión en DSpace,  podrás descargar el fichero xml correspondiente al servicedocument, comprobación de que tenemos DSpace correctamente configurado y listo para aceptar depósitos…..

Probando SWORD en el taller del OR2010

La presentación de SWORD por Stuart Lewis, aunque se realizó el viernes por la tarde, tuvo un aforo completo.  El  reclamo era ” Have you heard about SWORD but are unsure of why or how you should use it?” que es algo así como “todo lo que siempre quiso saber sobre SWORD pero nunca se atrevió a preguntar”. Y como somos curiosos, allí que aparecimos.

El workshop,  que instaba a aparecer con un portátil para un entendimiento efectivo de las explicaciones, tras una explicación general del protocolo SWORD, qué hace y cómo funciona, se adentró enseguida en lo práctico:

  • Prueba de diferentes clientes
  • Configuración y uso del toolkit de Easydeposit
  • Realización de depósitos a diferentes repositorios
  • Demostración para añadir nuevos pasos en el envío al repositorio

El objetivo del workshop, plenamente cumplido. Os recomendamos la consulta del blog de Stuart

http://blog.stuartlewis.com/

http://easydeposit.swordapp.org