Configurar thumbnails de PDF en DSpace

Con esta entrada veremos cómo visualizar miniaturas de los ítems cargados en nuestras colecciones de una DSpace en sus versiones 1.6.x y superiores.

La previsualización de ítems es automática ( sin instalar ningún paquete adicional)  para las imágenes:

PREVISUALIZACIÓN DE IMÁGENES pero NO para los pdfs.

Para documentos PDF se requiere usar el software XPDF y aplicar en el maven unas librerías java de tratamiento de imágenes.En la documentación oficial hemos encontrado algún error al seguir las instrucciones así que procederé a detallar nuestro proceso.

  1. Instalar xpdf: en el caso de Ubuntu: apt-get install xpdf  Con ello se instalan 3 binarios necesarios pdftotext , pdftoppm
  2. Comprobar el destino de estos binarios: find / -name pdftotext . En ubuntu se instalan en /usr/bin
  3. Añadir 3 líneas a dspace.cfg con el directorio de instalación de los binarios de xpdf
  4. Descargas las librerías java necesarias: «jai_core»  y  «jai_imageio». Para ello se puede usar curl , wget, o descarga directa a través del navegador. Al final son necesarios los .jar de ambas librerías.

Java Advanced Imaging Downloads contiene jai-core

Java Advanced Imaging-Image I/O Tools Downloads contiene jai_imageio

Por tanto por el medio que sea hay que descargarse el tar.gz, descomprimirlo y comprobar que dentro de la carpeta lib existen ambos .jar

  1. Aplicamos ambos el archivo .jar al maven: (OJO porque aunque pueda parecer correcta su aplicación ya que no dará error )
  2. Procederemos como habitualmente a realizar un maven de nuestro dspace source
  3. y el despliegue mediante ant -Dconfig=dspace.cfg update
  4. Ejecutamos media-filter

Para mas información de como realizar este proceso consultar las instrucciones oficiales aqui

Activar thumbnails de imágenes en DSpace

Los thumbnails son versiones reducidas de imágenes, usadas para ayudar a su organización y reconocimiento.

Con las siguientes instrucciones se van a poder observar thumbnails de los formatos jpg , png y gif.

DSpace incluye por defecto un filtro para el rastreo de éstos formatos, éste es: «JPEGFilter»

«JPEGFilter creates thumbnail images of GIF, JPEG and PNG files»

El resto de formatos ( por ejemplo pdf, doc, odt ) no serán visibles con los cambios descritos a continuación.

Para activarlo tenemos que activar las siguientes líneas en el dspace.cfg, ubicado en [dspace]/config/dspace.cfg

webui.browse.thumbnail.show
webui.browse.thumbnail.max.height
webui.browse.thumbnail.max.width
webui.item.thumbnail.show
webui.browse.thumbnail.linkbehaviour
thumbnail.maxwidth
thumbnail.maxheight

Estas líneas vienen descomentadas por defecto y con unos valores predefinidos, salvo la primera de ellas que hay que descomentarla y poner el valor a true.

Una vez editado el fichero,  reiniciamos el tomcat para aplicar los cambios.

Ahora será necesario ejecutar  una herramienta para el rastreo y generación de las miniaturas de todos los archivos adjuntos que dispongamos en DSpace, por lo que es recomendable ajustar esta tarea a un cronjob para que se ejecute cada cierto tiempo, si nó, no podremos visualizar ningún thumbnail de los ítems añadidos posteriormente.

Comprobar antes de ejecutar el plugin que esta linea esta activada y bien referenciada en el dspace config:

plugin.sequence.org.dspace.app.mediafilter.MediaFilter = org.dspace.app.mediafilter.PDFFilter, org.dspace.app.mediafilter.HTMLFilter

Para ejecutar los media filters, tenemos que introducir en un terminal lo siguiente

[dspace]/bin/dspace filter-media

Si lo queremos meter en un cronjob será algo del estilo:

0 2 * * * ''dspace''/bin/filter-media

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.

el contexto de OAI-PMH

La Iniciativa de Archivos Abiertos, (Open Archives Initiative , OAI)  intenta resolver la interoperabilidad de las bibliotecas en un esfuerzo para mejorar el acceso a las publicaciones especializadas y resultados de investigación en general.  La solución adoptada, a través de la recolección de metadatos con el  protocolo OAI-PMH,   soportar el flujo de metadatos entre bibliotecas y proveedores de servicios, con el fín de proporcionar a los usuarios servicios de mayor alcance que los que cada biblioteca puede proporcionar  aisladamente.

Los esfuerzos por conseguir sistemas que posibilitasen las búsquedas de contenidos se centraron inicialmente en sistemas de búsqueda federada, en que la consulta del usuario se envía a los sistemas remotos  y las respuestas de éstos se  procesan en tiempo real. Un ejemplo de este enfoque es  la adaptación del protocolo cliente-servidor Z39.50.

Posteriormente surgieron soluciones centradas en la recolección (harvesting) de metadatos. El precursor es el sistema Harvest (creado en el 1995, discontinuado el desarrollo en 2005), en un intento de crear un índice central de búsqueda sobre websites y otros sistemas recolectados. El equipo de Harvest, participó posteriormente en la redacción del protocolo OAI-PMH.

La primera versión del Protocolo OAI-PMH, (ó OAIMH como es citado a veces)  se libera el 21 de enero del 2001, resultado de más de un año de trabajo a partir de la Reunión de Santa Fe, octubre de 1999, en que se presenta el marco de interoperabilidad técnica y organizativa  requerido para facilitar la distribución de los contenidos de archivos digitales.  La segunda versión,  PMH V2.0,  se libera en junio de 2002

OAI-PMH separa claramente los proveedores de datos (en sentido general  bibliotecas o archivos)  de los proveedores de servicios (p.ej. Agregadores),  aunque no hay impedimento conceptual en la coexistencia de roles en un único agente.  En este sentido,  el protocolo no trata de la interoperabilidad igual-a-igual entre Archivos, sino que considera la interrelación entre archivos digitales y agentes con capacidades de agregación y recopilación, éstos previsiblemente ofreciendo servicios de valor añadido a los usuarios finales.  Comentaremos en un próximo post algunas de las curiosas implantaciones derivadas de este doble rol.

OAI-PMH no está limitado a metadatos en formato DC, aunque esta malinterpretación está algo extendida. El estándar exige al menos el soporte de Dublin Core, pero las comunidades de conocimiento específico podrían (y deberían) usar recolecciones basadas en conjunto de metadatos de mayor precisión semántica.

Otra de las concepciones equivocadas sobre PMH es considerar que la recolección se realiza a nivel de contenido (documentos, ficheros, imágenes). Realmente,  hasta la fecha, PMH es un protocolo de intercambio de metadatos, por lo que los agregadores incorporarían referencias a la localización original de los contenidos (de ahí la importancia de los identificadores persistentes).

Para la agregación de objetos digitales, no solo los metadatos descriptivos, debemos recurrir a OAI-ORE, OAI Object Reuse and Exchange . El soporte a este protocolo está incorporado a la versión 1.6 de DSpace.

Todavía hoy está abierta la pregunta sobre la utilidad de ambos enfoques: búsqueda federada vs recolecta de metadatos. No obstante la vigencia de las implementaciones de OAI-PMH es innegable. Posiblemente la sencillez del protocolo, y por tanto la posibilidad de soportarlo en  sistemas de muy diversa complejidad,  hayan promovido su difusión y su uso en proyectos de la escala de Europeana, a partir de los resultados del proyecto DRIVER.

Integración con redes sociales

La alta capacidad de customización de DSpace permite la inclusión de nuevos elementos en la interfaz de usuario. Uno puede ser la inclusión de una barra que conecte con las famosas redes sociales, por ejemplo «addthis«:

Se trata de un código que se incrusta en el de DSpace para que aparezcan los iconos de las redes sociales deseadas.

En el caso concreto de las instancias cuya interfaz sea XMLUI el proceso es el siguiente:

  • Editar «structural.xsl» para añadir el siguiente código:
<xsl:template match="dri:options">
        <div id="ds-options">

            <h3 id="ds-share-option-head"><xsl:text>Share</xsl:text></h3>
            <div id="ds-share-option" style="text-align: center">
                <a>
                    <xsl:attribute name="href">
                        <xsl:text>http://www.addthis.com/bookmark.php?v=250&amp;pub=xa-4a848ff246b1eec7</xsl:text>
                    </xsl:attribute>
                    <xsl:attribute name="class">
                        <xsl:text>addthis_button</xsl:text>
                    </xsl:attribute>
                    <img>
                        <xsl:attribute name="src">
                            <xsl:text>http://s7.addthis.com/static/btn/lg-share-en.gif</xsl:text>
                        </xsl:attribute>
                        <xsl:attribute name="width">
                            <xsl:text>125</xsl:text>
                        </xsl:attribute>
                        <xsl:attribute name="height">
                            <xsl:text>16</xsl:text>
                        </xsl:attribute>
                        <xsl:attribute name="style">
                            <xsl:text>border:0</xsl:text>
                        </xsl:attribute>
                    </img>
                </a>

                <script type="text/javascript">
                    <xsl:attribute name="src">
                        <xsl:text>http://s7.addthis.com/js/250/addthis_widget.js?pub=xa-4a848ff246b1eec7</xsl:text>
                    </xsl:attribute>
                    <xsl:text>// Empty comment</xsl:text>
                </script>
            </div>

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…..

ARVO contribuye a la comunidad: Mensajes para XMLUI en español para DSpace

La mayoría de nuestros clientes utiliza la interfaz XMLUI para DSpace. Los mensajes de dicha interfaz se encuentra en el fichero messages_xx.xml donde xx es el código del idioma. ARVO ha traducido los nuevos mensajes que aparecen en las versiones 1.6 y 1.7 al español y lo ha puesto a disposición de la comunidad DSpace proporcionando el fichero «messages_es.xml». Este fichero lo podemos encontrar en:

[dspace_installation]/webapps/xmlui/i18n/messages_es.xml

El procedimiento se resume en:

  • Registro en JIRA de DSpace: https://jira.duraspace.org/
  • Añadir un nuevo «Issue» como «improvement» (es decir notificar una mejora)
  • Rellenar con las versiones afectadas, ficheros adjuntos, documentación etc…( si procede )
  • Se crea automáticamente un ticket: en nuestro caso fue el 837 https://jira.duraspace.org/browse/DS-837
  • Pasa a un estado de «pendiente de revisión»
  • Cuando una persona se lo asigna, lo revisa: «Updated»
  • y cuando lo termina: «Resolved»

Todas estas notificaciones se informan en la lista de correo de los desarrolladores: [dspace-devel] de manera que en todo momento estamos informados de la situación de nuestra contribución.

Agradecer desde aquí a:

  • Bram Luyten de @mire por los consejos para desarrolladores
  • Claudia Juergen de la Universitaetsbibliothek Dortmund quien resolvió el track de JIRA
  • Francisco Javier Herrero de la Universitat Jaume I de Castellón, autor de la traducción base de DSpace 1.5