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.

No hay comentarios: