lunes, 4 de octubre de 2010

El módulo dataprovider_reader I

En el artículo anterior decía que no habíamos encontrado un módulo para Drupal que hiciera las veces de proveedor de servicios OAI. Se mencionaban un conjunto de herramientas que Drupal incluía y que habíamos probado, pero desgraciadamente no encontramos un proveedor de servicios, aunque si un proyecto llamado eXtensible Catalog Drupal Toolkit, que al parecer implementa toda la filosofía del protocolo OAI-PMH (Open Access Initiative Protocol Metadata Harvesting), pero personalmente no lo he probado. Seguramente es una excelente solución, como todo lo que implementa esta comunidad.

Nuestra solución no fue usar ese módulo, principalmente por descubrirlo un poco tarde, esto nos llevó a desarrollar un módulo que llamamos Service Provider. Antes de hablar del módulo en cuestión me tomaré dos o tres párrafos para explicar el protocolo OAI-PMH, para que se entienda mejor en que consistió el trabajo.

El protocolo OAI-PMH sirve para regir el intercambio de información Open Access entre repositorios o revistas científicas, es un simple mecanismo de preguntas y respuestas. La información viaja en formato XML y el estándar de metadatos en el que están descritos los documentos generalmente es el Dublin Core, aunque se puede usar cualquier otro estándar.

El protocolo incluye dos componentes fundamentales los proveedores de datos, encargados de recibir la petición y devolver el XML y el proveedor de servicios encargado de encuestar y recibir y procesar la respuesta. Si se desea saber más del protocolo pueden ir al sitio http://www.openarchives.org/pmh/

No hubo necesidad de implementar nada para el proveedor de datos, pues Drupal cuenta con el módulo OAI2forCCk que implementa perfectamente el proveedor de datos. El problema fue el proveedor de servicios.

Que se hizo: Sencillo, implementar un proveedor de servicio, para ello se uso xml2array (llamémosle librería de php, aunque es una simple página .php) que permitió dada la petición en forma de url retornar una estructura de arreglos con el contenido del XML. Luego esta estructura fue leída y convertida a nodos de drupal. Resumiendo en tres sencillos pasos:

  • Hacer la petición URL.

  • Pasar el resultado a xml2array.

  • Obtener el resultado y convertir el contenido del arreglo en nodos de Drupal.


En realidad explicar todo el proceso es bastante largo, en el próximo artículo se explicará cada uno de los tres pasos. Espero que la idea haya quedado clara, en el próximo post se verá como concretarla.

viernes, 1 de octubre de 2010

Mi biblioteca con Drupal.

En el primer artículo que escribí en este blog decía que los temas que tratarían serían Cuba, Deportes y Drupal. Realmente desde hace un tiempo tengo abandonado el blog, espero que a partir de este artículo el dinamismo aumente y poder actualizar con mayor periodicidad.

Hoy quiero hablar de Drupal nuevamente, pero desde la óptica de los desarrollos de bibliotecas, repositorios de contenidos y revistas científicas. Hace un tiempo comenzaba a trabajar en un proyecto de desarrollo de una biblioteca, cosa que creía sencilla, pero al adentrarme en ese mundillo descubrí que es inmenso e interesante.
Una de las primeras cosas que encontré cuando estaba inmerso en un estudio del estado del arte de este tema fue el libro "Drupal para bibliotecas y archivos" de Jesús Tramulla, es un libro interesante y hasta sencillo, considero que cualquier persona con un nivel medio de conocimiento sobre Drupal puede entender el libro, incluso algunos de los artículos que recoge son de nivel básico y muy instructivos. Cuenta con dos artículos muy interesantes: Drupal: módulos para bibliotecas, archivos y servicios de información y documentación, del propio Tramulla junto con Piedad Garrido y Biblioteca 2.0: La nueva biblioteca digital de la UPC de Jordi Prats, Toni Prieto, Oriol Rico y Jordi Serrano. Otra actividad realizada fue darse alta en el grupo Drupal Library, donde las personas colaboran y en realidad me fueron de mucha ayuda.

Quien escribió el artículo Drupal me enamora (que me perdone, pero no recuerdo el autor) tenía toda la razón del mundo, Drupal se adapta a casi cualquier cosa y esto es un ejemplo de ello. El mundo de las bibliotecas, repositorios y revistas es amplio y requiere de especialización, sin embargo ahí está Drupal con sus componentes tan generales que fácilmente se adaptan a todo, inclusive a esto, además de contar con componentes específicos hechos con todo propósito para este tipo de proyecto.

Algunos módulos Drupal para bibliotecas y archivos (basado en el artículo mencionado anteriormente):

Content Construction Kid (El gran CCK): Permite crear las distintas estructuras de datos para nuevos tipos de contenidos (este módulo es tan importante y se ha generalizado tanto que ya vendrá incluido en el core de Drupal 7)

VIEWS (Otro de los grandes conocidos, la combinación View-CCK es algo de lo mejor de Drupal): nos permite la recuperación de información basado en un asistente para crear las expresiones de búsqueda o selección. (al igual que CCK hablamos de la familia de módulos Views, no solo de un módulo).

Apache Solr: Posibilita el uso del motor de búsqueda Apache Solr de la fundación Apache que trabaja con Java contra contenidos XML, nos permite lanzar búsquedas facetadas.

Faceted Search: Permite hacer búsquedas por facetas sin necesidad de instalar Java ni Solr.

Bibliography (permítanme la expresión española, “es la ostia”): Permite manipular bibliografías con la capacidad de importar formatos XML , MARC, Bibtex y otros, maneja diversidad de estilos bibliográficos y se integra con los manejadores de referencias bibliográficas más comunes.

Biblio Facets: Integra los dos anteriores, para búsquedas facetadas en las bibliografías.

Book Post: Permite obtener información de libros mediante su ISBN, tomada de Open Library Project.

MARC:
Permite importar registros MARC, a partir de ficheros mrc ó mrk.

Z39.50: Permite hacer búsquedas en servidores z39.50, necesita de tener instalado el YAZ Toolkit.

Millenium Integration: Posibilita desarrollar un OPAC contra un sistema propietario Millenium, enlaza con información de Google Books e importa índices de la Biblioteca del Congreso.

Islandora Fedora:
Permite integrar y gestionar Objetos de servidores Fedora.

OAI2 for CCK:
Crea un proveedor de datos OAI para tipos de contenidos creados con CCK.

EZProxy: Conecta Drupal con EZProxy.

Estas son algunas de las herramientas con que se cuenta, hay otras, incluso algunas básicas como el módulo taxonomy por ejemplo. Todo está en dependencia de lo que se quiera lograr.

Algo que no encontramos (si alguien sabe de algo en Drupal para esto, pues le agradecería nos lo comunicara en un comentario) fue un proveedor de servicios OAI. Hemos desarrollado un módulo para esta tarea, y hablaremos de este en el próximo artículo.