{"word_count": 1411, "character_count": 9339}
Escrito en colaboración con Alberto Martínez, Coordinador de Innovación Digital de la BDCVEn el marco de la convocatoria del Repositorio Nacional&#160;(www.repositorionacionalcti.mx)[1]&#160;, numerosas instituciones de nivel superior se han embarcado en la “aventura” de crear su propio repositorio institucional[2], el cual debe cumplir una serie de parámetros de interoperabilidad para garantizar su correcta integración al repositorio nacional.La Coordinación de Innovación Digital de la Biblioteca Daniel Cosío Villegas, fiel a la tradición de El Colegio de México, de optar por una postura vanguardista, para afrontar los retos que se deciden asumir, fijó &#160;como primer tarea el análisis de las diversas soluciones Open Source para repositorios digitales decantándose finalmente por una de las soluciones propuestas por la comunidad de Samvera (antes Hydra - https://samvera.org/ ).La comunidad Samvera comenzó como Project Hydra en 2008. &#160;Se concibió con la idea de que ningún sistema de repositorios proporcionaba la gama completa de soluciones que requieren las instituciones académicas. &#160;A la vez, los creadores reconocían que ninguna institución puede desarrollar las soluciones por sí misma. &#160;Por lo tanto, se propuso la creación de un grupo de desarrolladores e integrantes de distintas universidades del mundo, con el propósito de desarrollar una infraestructura común que sea flexible y capaz de adaptarse a las demandas de las instituciones individuales. La arquitectura aprovecha varios componentes de código abierto que en conjunto dan como resultado un marco para que los usuarios pueden utilizarlo para crear soluciones locales.El Proyecto de repositorios de El Colegio es parte de un macro proyecto que inició en 2012, el cual busca estructurar la contraparte digital de la Biblioteca Daniel Cosío Villegas. La parte correspondiente al repositorio inició formalmente en 2016, a partir del financiamiento otorgado por CONACYT, en la convocatoria 2015, para desarrollar los repositorios institucionales de acceso abierto a la información científica, tecnológica y de innovación nacional. &#160;A partir de requerimientos propios de la institución se identificó el sistema desarrollado por la Ohio State University y se utilizó este sistema como base. &#160;El sistema está basado en Sufia 7.0 (proyecto que en su versión más actual tiene como nombre Hyrax), y se fundamenta en el trabajo conjunto de múltiples componentes Open Source, entre ellos se encuentra Fedora Common, el indexador Solr,el marco de desarrollo de aplicaciones web escritas en el lenguaje Ruby, llamado Rails (junto con una nutrida colección de gemas[3]), mismo que trabaja como el maestro de ceremonias coordinando a éstos y otros componentes.El propósito de Sufia 7.0 es proveer todo lo necesario para funcionar como un repositorio digital básico, asimismo &#160;y dada su estructura, permite una profunda personalización y generación de nuevas funcionalidades y capacidades para cubrir cualquier necesidad específica de la institución que decida apostar por esta solución.A más de un año de desarrollo del repositorio institucional en el COLMEX nos hemos enfrentado a una serie de desafíos, como el desconocimiento de Ruby por parte de los desarrolladores de la biblioteca, la carencia de documentación en español, la falta de comunidad de hispanoparlantes y la ausencia de conocimiento aplicado en el desarrollo de un sistema que utiliza RDF, entre otros.Técnicamente hablando, poner en marcha un repositorio digital basado en Sufia 7.0 no representa un reto particularmente complejo, únicamente requiere tener buenas bases de administración de sistemas Linux (básicamente la instalación y configuración de diversos servicios) y un mínimo conocimiento en programación, este proceso en particular se &#160;encuentra bien documentado en los repositorios Git de Samvera. Las dificultades comienzan cuando se dispone a personalizar la plataforma; a pesar de la tremenda “facilidad y rapidez” para el desarrollo, que se suponen, son características implícitas del framework Rails, en la práctica resulta bastante complicado comprender el flujo de la aplicación y la forma en como Rails orquesta a los demás componentes.[caption id="attachment_929" align="aligncenter" width="500"] Extracto de código de gema de Ruby del Repositorio[/caption]Debido a la flexibilidad del lenguaje Ruby y la forma poco estricta que permite su sintaxis, resulta complicado leer su estructura para programadores no familiarizados con el mismo. Especialmente, en el caso de Sufia 7.0, este adolece de una estructura confusa al tener llamadas constantes entre dos o más de sus principales gemas, lo que conlleva a una gran inversión de tiempo al rastrear los diferentes trozos de código que se necesiten re-definir para crear nuestros comportamientos o interfaces personalizadas, por fortuna para los recién interesados en esta solución, la comunidad Samvera ha lanzado el proyecto Hyrax, el cual promete reestructurar y simplificar la estructura del proyecto para paliar el tipo de problema antes descrito.Por otra parte, es importante mencionar que uno de los principales problemas que se han enfrentado al momento es el cumplir con los requisitos de interoperabilidad de Conacyt, el cual consiste en utilizar su base de datos de autores (la cual contiene varios datos como el ORCID, el CVU, etc.), para el registro de los objetos digitales en el repositorio. Para esto Conacyt ha puesto a nuestra disposición una API REST[4] que nos permite consumir dicha información (mediante autenticación por tratarse de datos sensibles), el detalle estriba en que el mecanismo de búsqueda por nombre de autor que provee dicha API es bastante ineficiente, esto se debe a que los nombres y apellidos están separados en diferentes campos y cuando se introduce una cadena de consulta que busca en todos los campos la coincidencia, por lo que si buscamos un nombre común como “José”, los resultados son miles de registros (la base de datos de Conacyt contiene más de un millón cincuenta mil autores y se agregan más todo el tiempo). El error en este diseño consiste en que no se puede buscar más de una sola palabra, inaceptable para búsquedas eficientes; por ejemplo: en el momento en que ingresamos el espacio para buscar por ejemplo a “José Pérez” el término se busca tal cual en cada campo por lo que el carácter de espacio anula los resultados de la búsqueda causando un error en la respuesta.Como una solución al mencionado problema se desarrolló un sencillo microservicio escrito en NodeJS y MongoDB. Su estructura es muy sencilla, simplemente se copia la base de datos de autores de Conacyt a MongoDB y se crea un índice de texto con los tres campos que componen el nombre y únicamente se configura NodeJS para servir como un Endpoint[5] REST, cualquier palabra que se mande a dicho EndPoint será buscada en los campos sin importar espacios o capitalización por lo que gracias a esta capacidad de MongoDB se pudo crear un campo de texto autocompletable que sugería una serie de opciones con base en lo que se escriba en él. De esta forma se puede ubicar fácilmente a un autor sin conocer con exactitud su nombre, además de obtener su ORCID y CVU tal como aparecen en la base de Conacyt.[caption id="attachment_930" align="aligncenter" width="500"] Servicio desarrollado por Rodrigo Cuéllar que autocompleta el nombre de los profesores en el CVU y regresa su ORCID y número del CVU[/caption]Como &#160;resulta evidente a lo largo de este escrito, el cumplir con los requerimientos del Repositorio Nacional implica una serie de desafíos técnicos, derivados de un fallido diseño en los EndPoint de sus servicios REST; mismos que no deberían ser resueltos por cada institución (lo cual equivale a resolver un mismo problema de tantas formas como instituciones se integren al proyecto). Es por esto que, para los que estén interesados en nuestra solución para el problema de los nombres de autores, ésta se encuentra disponible en nuestro repositorio (Name_search), su diseño tiene como finalidad su fácil integración en cualquier tipo de repositorio digital mediante llamadas REST, por lo que fácilmente podrían utilizarla y modificarla según sus necesidades.  El Repositorio Nacional de acceso abierto a recursos de información académica, científica, tecnológica y de innovación es una plataforma digital centralizada cuya coordinación y modelos de operación sigue estándares internacionales, almacena, mantiene, preserva y disemina la información académica, científica, tecnológica y de innovación, la cual se deriva de las investigaciones, productos educativos y académicos. El Repositorio Nacional agrega la información de los Repositorios Institucionales y demás repositorios interesados en interoperar con él.Volver arriba ↑ Es una plataforma digital que contiene la información científica, tecnológica y de innovación de instituciones de los sectores social, privado y gubernamental, y que a su vez interopera con el Repositorio Nacional de acuerdo con lo establecido en los Lineamientos Técnicos para el Repositorio Nacional y los Repositorios Institucionales.Volver arriba ↑ Bibliotecas de clases y funciones empaquetadas y listas para su uso en proyectos Ruby.Volver arriba ↑ Conceptos sobre APIS REST.Volver arriba ↑ "Recurso" en Español.Volver arriba ↑