# BibServer

BibServer es un programa de software creado alrededor de 2003 por Jim Pitman con el objetivo de promover el uso de datos bibliográficos abiertos para fomentar la reutilización y uso compartido de datos bibliográficos. Su función principal es recoger datos de recursos bibliográficos y dar la posibilidad de compartirlos en abierto, posibilitando autores, editores y otros especialistas que pueden implementar al servidor en el que se apoya.Funciona mediante la presentación de búsquedas facetadas y navegación web para acceder a texto completo y a datos bibliográficos, pudiendo ser difundidos, por ejemplo, en fuentes como arXiv o PubMed.

## Historia

El principal desarrollador del programa es Jim Pitman, quién lo desarrolló como un guion cgi de Python desde 2003 hasta 2011 con ayuda puntual de otros desarrolladores. En ese entonces, Nitin Borwankar desarrolló una versión del programa en CherryPy usando Cheetah Templates
Mientras Pitman trabajaba en el Instituto de Estadísticas Matemáticas, entre 2005 y 2008, este instituto financió el desarrollo de BibServer y delegó su mantenimiento en VTEX como parte de su proyecto: IMS Biobibs. El diseño de esta versión del software se hizo basándose en los requerimientos del C-code de Oded Shramm. Pitman explicó en su página web que el IMS dejó de apoyar económicamente el proyecto de forma súbita en diciembre del 2008. Fue gracias a VTEX,que se pudo mantener el servidor activo con los restos de datos bibliográficos guardados.
Pitman usó esta versión de BibServer desde 2007 a 2011 con el objetivo de mantener las referencias bibliográficas del Departamento de Matemáticas de la Universidad de Berkeley, inscritas durante el proyecto IMS, hasta que en 2011 se actualizó la página web del Centro de Matemáticas Puras de Berkeley, causando la pérdida de gran parte de las bibliografías personales de sus usuarios en esta página. Mientras que enero de 2010, Pitman creó una versión de BibServer para intentar arreglar los múltiples problemas que contenía el código tras el borrado mencionado anteriormente en un proyecto fundado por la NSF y dirigido por Pitman entre 2008 y 2011, el Bibliographic Knowledge Network Project. Esta fue la primera versión del programa en BibJSON, una especialización de JSON para los datos bibliográficos, creada por el propio Pitman y Nitin Borwankar.
La NSF también patrocinó el proyecto más reciente de BibServer: JISC Open Bibliography 2, con el objetivo de crear su versión de acceso libre para expandir BibServer a una comunidad de simpatizantes con el código abierto y personal de proyectos adyacentes, especialmente del formato BibJSON y la página web BibSoup.. Este proyecto fue desarrollado con la ayuda de Mark MacGillivray de la compañía Cottage Labs, entre otros.
Los objetivos de BibServer han ido cambiando, sobre todo entre 2012 y 2020. Estos se dividen en cinco fases:
Fases de desarrollo de BibServer :
| Fase de desarrollo | Estado | Objetivos |
| Fase 1 | Completada en 2012 (fecha de finalización exacta desconocida) | Abrir un repositorio sobre BibServer Salvar partes del código original Crear un prototipo simple del formato BibJson Demostrar la conversión de BibText, (formato original del código de Bibserver) a BibJSON. |
| Fase 2 | Completada en 2012 (fecha de finalización exacta desconocida) | Replicar la funcionalidad original de la página de pruebas antes de finales de julio de 2021 Tener el Servicio de prototipo y otros preparados para pruebas. Desarrollar el material de apoyo necesario para permitir a otros instalar sus propios documentos Demostrar el desarrollo de convertir otros formatos y fuentes en BibJSON y demostrar cómo escribir convertidores en otros formatos |
| Fase 3 | Completada en 2012 (fecha de finalización exacta desconocida) | Desarrollar el código Bibserver lo suficiente como para que pudiese ser usado en futuros proyectos o en producción |
| Fase 4 | Completada en 2012 (fecha de finalización exacta desconocida) Fue la primera fase de trabajo dentro del proyecto JISC Open Bibliography 2 | Mejorar la UI Interpretar desde otras fuentes demostraciones de creación de colecciones Estabilizar la versión 0.4 en una demo pública |
| Fase 5 | Última fase de desarrollo conocida | Editar UI en REST API, el proyecto asincrónico de codificación es API Integración con PDcalc Demos de las colecciones preservadas Hacer el programa disponible como un servicio Ayudar a otros a escribir más formatos Exposición comunitaria y documentación |
Según la página web del proyecto JISC Open Bibliography 2, su último informe fue en el 2012. Tras eso, BibServer pasó a ser apoyado por la Open Knowledge Foundation.

## Usos

BibServer tiene 4 usos principales:
* Autenticación: mediante la inscripción directa en la plataforma o mediante el uso de api_key, un identificador que le da una contraseña nueva al usuario cada vez que quiere autenticarse.
* Edición: permite analizar la colección y perfeccionarla antes de subirla y compartirla en línea.
* Subida y publicación: permite crear una nueva colección y/o borrarla. Bibserver acepta múltiples formatos de procedencia de ficheros a la hora de incorporarlos a un BibSoup como son: BibJSON, BibTex, Colecciones de Delicious, Colecciones de Bibliographica, Hojas de cálculo de Google...
* Búsqueda: compartir y localizar colecciones y registros
Las funcionalidades de edición, de subida y de publicación están estrechamente conectadas con la de autenticación, la cual permitirá gestionar y administrar las colecciones sólo si se es usuario administrador.

## Características

BibServer es un software de código abierto que actúa como front-end en web para servidores dedicados a almacenar y compartir registros bibliográficos.
Se trata de una aplicación desarrollada en Python, que adopta una arquitectura de una RESTful API completa.
Funciona en conjunto a BibSoup que sirve como capa de almacenamiento de las colecciones e índices que se rescatan a través del front-end. Estas colecciones y sus datos se almacenan en BibJSON, que es un formato de JSON especializado en representar metadatos de carácter bibliográfico. Mientras que los índices se gestionan mediante Elasticsearch.
También permite subir información desde URLs. En ese caso, BibServer tratará de identificar el tipo de documento al que se está haciendo referencia y le aplicará el esquema de BibJSON que proceda. Si no fuese capaz de identificarlo, le asigna el esquema genérico.