Os voy
a comentar un poco la experiencia que hemos tenido
en la Biblioteca UNED con el tema de la bibliografía
recomendada.
Primero, poniendo un poco en contexto,
me imagino que todos conocéis la.
Es una universidad nacional
que tiene rango estatal con bibliotecas distribuidas por todo el territorio.
Al ser a distancia hace un uso bastante intensivo de la bibliografía
recomendada porque tiene un modelo mixto con tutorías
presenciales,
clases que se imparten online y demás, pero también se maneja
muchísimo la bibliografía recomendada,
tener mucha importancia para los estudiantes.
Además,
hay una red de centros que pertenecen a la estructura
académica de la universidad, pero que tienen autonomía.
Eso es importante.
Luego, a la hora de las adquisiciones que os comentaré un poquito después,
como os comentaba, está dispersa por todo el territorio
y es bastante relevante a la hora de hacer una búsqueda para un estudiante
saber dónde está el libro.
Si yo busco y hago una búsqueda general de toda la bibliotecas,
pues me voy a encontrar.
Si estoy en La Gomera y me dice que hay un libro en A Coruña,
pues no me va a servir de nada. Entonces necesito poder acotar
esto es bastante importante
que no ocurre en todas las universidades cuando están en un campo limitado.
No sé, se me ocurre la Autónoma de Madrid,
que es un conjunto de bibliotecas relativamente próximas.
Si yo estudio derecho, pero tengo necesidad de un libro de
tecnológico de de la Facultad de Ingeniería,
pues puedo desplazarme unos metros y conseguirlo.
Pero aquí es fundamental no tener un
bien.
Esto al tener esta necesidad
ya se planteó cuando teníamos Symfony
en utilizábamos en desarrollamos un sistema para poder buscar
por por las asignaturas y ya sabéis que se incluyen, se incluyen unos códigos
en los registro bibliográficos que corresponden a la asignatura concreta.
Entonces lo que desarrollamos fue una página
estructurada con HTML, CSS y JavaScript
para para conseguir presentar de forma amigable
al usuario que no tenga que recordar el código de la asignatura concreta,
sino que pueda, a través de desplegables, en un formulario
pueda localizar la asignatura que le interesa.
No tenga que acordarse ni de nombre ni de código ni de nada parecido
y pueda pueda seleccionar la opción y buscar
entonces en
en este esquema
digamos que el HTML lo que hace, ya sabéis, es estructurar la página.
Son las etiquetas que dan formato a los contenidos.
Incluso ya en un futuro
formato semántico, el CSS aporta
la configuración de la presentación con los colores,
los márgenes, la centrado de elementos que fluyen, que se colocan en línea,
en fin, elementos que se visualizan o no se visualizan.
Y JavaScript lo que aportan Este conjunto es la capacidad de interactuar,
no tener una página estática, sino que sea dinámica y responda
ante los requerimientos del usuario.
Lo que se hizo fue construir una una pequeña aplicación.
Se le puede llamar la aplicación porque ya pasa de ser una página con muchas capas.
Bueno, la idea es un poco pedestre, es construir muchas capas en las que
tienes una capa para así vaya a mostrar diferentes tipos de bibliografía.
Tienes contenidas todas las titulaciones, por ejemplo de grado en una capa,
todas las de máster en otra capa y así si puedes dentro de esa
y otras capas que tú haces visibles según la titulación que elijas.
Esta sería un poco la idea.
Y entonces, en una primera fase lo que hicimos fue construir el documento
HTML a mano, sea lo que es directamente ponerse aquí mostrado
una imagen de cómo lo teníamos cuando lo hacíamos en
en Symfony a fijáis se podía se puede seleccionar la bibliografía,
el tipo de bibliografía que queremos que titulación sea el curso de acceso UNED,
Si eso es un grado, si son licenciaturas antiguas, si son postgrados, eliges
con botones radiales y entonces te aparece ya la titulación correspondiente.
Esa era un poco la idea entonces que todo esto era un trabajazo impresionante.
Los inicios, dos semanas, una persona construyendo la página
directamente sin más, con todo lo que implica de propensión
a errores, un trabajo alienante, absurdo y que no tiene más,
pero que en ese momento nos sirvió un poco porque era lo que teníamos
entonces al llegar es Libris
con Alma Primo,
Los que hicimos fue trasladar ese mismo esquema
y adaptarlo a los links que ofrece Alma.
Adaptarlo
a la estructura de
taxi scout que ofrece para para seleccionar el tipo de documentos
que vamos a buscar, si son bibliografía, si son recursos electrónicos,
si son recursos convencionales en papel y demás,
entonces hemos mantenido
la misma estructura con HTML, CSS, JavaScript y manipulando
con todas las complejidades que esto que esto
trae aparejado.
Bueno, si os fijáis un poco en Las Hurdes,
en los links estos permanentes que genera Primo,
podéis ver que la parte del inicio se corresponde con la institución.
Hablando de Primo Classic, que es lo que nosotros tenemos,
luego después de que tú seleccionas el tipo de
donde vas a buscar, si vas a buscar en un campo
determinado en qué campo vas a buscar de primo,
si va a ser una búsqueda
con contains o va a ser exact, o va a ser del tipo de búsqueda
que vas a generar el tab en el que estás haciendo
la búsqueda
y el escoge a que da, a que la limitas.
Y por supuesto,
la vista que se corresponde con el idioma normalmente lo tenemos todos configurado
en una vista para castellano, esta para inglés, otra para sí.
Depende de cada universidad, si tiene catalán, gallego o lo que sea
en primo vía y una situación análoga,
entonces el problema de todo esto, si hacemos una gestión manual,
ya se ha comentado, es algo que consume mucho tiempo.
Cada vez tenemos menos personal, no podemos dedicar personal
especializado a hacer una una labor, pues eso no tiene ningún sentido.
Es necesario automatizar, pero es necesario automatizar la gestión
no solo de la generación de la web,
sino de la gestión del llenado de las etiquetas.
O sea, cada año, al inicio de curso hay que retirar los códigos de la 911
de las asignaturas, que
si ya no está recomendado en un texto hay que ir al registro bibliográfico,
hay que identificarlo, hay que abrirlo, hay que quitar, hay que cerrar.
Ese trabajo es propensa a errores, quedan códigos que no deberían quedar.
Es difícil.
¿Entonces?
Bueno, pues aquí en nuestra ayuda a nuestro amigo Poisson, que
nos permite automatizar lo que dice Poison, dice cualquier otro.
Otro.
Otro lenguaje de programación de alto nivel.
Pero yo es que soy especialmente
forofo de Python porque ofrece muchísimas ventajas a los bibliotecarios.
A mi juicio, muchísimas.
Es un lenguaje de alto nivel.
Bueno, ya sabéis, está orientado a objetos como la mayoría,
es sencillo y legible y es fácil de aprender.
Es interpretado y además es multiplataforma.
Se puede ejecutar en cualquier sitio.
Simplemente nosotros tenemos un programa que se interpreta,
tenemos instalado el intérprete y lo ejecutamos
y tiene una comunidad de desarrollo de desarrolladores amplísima,
con lo cual siempre hay soluciones que tú puedes incorporar en tu en tu código.
A través de módulos podéis gestionar el XML, que para nosotros es fundamental.
Puedes incluso gestionar registros.
Hay módulos para la gestión de registro en Mac hasta para clientes de 39 50.
Ya con todo lo que eso implica.
Y además las APIs de armas son bastante sencilla de
implementar en el Poisson
para mí,
ya digo que soy súper forofo, ya el mejor amigo del bibliotecario.
Entonces lo que paso siguiente que seguimos fue generar ese
en lugar de estar introduciendo modificaciones a mano
manualmente tocando el HTML, que te equivocas.
Aunque los navegadores son muy muy
tolerantes, a fallos, a errores, a etiquetas más cerradas y demás,
pues la lías, la puede liar y hacer que no funcione nada y te
puedes tirar horas revisando un tocho gigante que tiene
un montón de titulaciones y un montón de
capas de por cada una
infumable. No puedes, no puedes.
¿Entonces, cuál fue la la idea de generar un partir de la idea?
Nosotros podemos en nuestro departamento de adquisiciones nos facilita un Excel
en el que se ha estructurado la información.
¿Hemos incluido el código de titulación, el nombre de la titulación, el curso
si lo tiene el código de asignatura, a qué habría que añadir?
Porque aquí en la UNED, como ya conoces un poco,
habría que añadir otra,
otra columna más que incluyera el tipo de estudio de que se trata.
Si es un grado o si es un máster o si es un curso de acceso.
Tenemos también el nombre de la asignatura
y su código de código es el que se corresponde con la 911.
Entonces, en el caso de la UNED tenemos muchísimas bibliotecas,
tenemos más de 80, entonces lo gestionamos también con otro, otro Excel,
con la biblioteca, su nombre, su nombre y su.
La cuestión es hemos desarrollado un programa
que toma como entrada esos dos, esos dos ficheros
y te genera el HTML para cargar en el servidor en un servidor
que es ajeno al primo, es totalmente externo.
¿Esa es un poco la idea, entonces lo ejecutas,
te puede hacer muchas cosas, te hace recuento, cuántas asignaturas
tienes, cuántos títulos titulaciones tienes, cuántas son de grado, cuántas son?
¿Sacas la haces, la las ordenas?
Puedes, por ejemplo, una cuestión simplemente cuando metimos todos los
en la página web la construimos manualmente.
No se nos ocurrió ordenar las asignaturas ni ponerlas por curso.
Y ahora tengo que ponerme a mirar si ordeno esta
me imposible con este, con el programa.
Tú las ordenas, tú las colocas por curso y ya lo tienes funcionando.
Os voy a mostrar
un poco cómo es,
porque lo mejor es verlo.
Ya os digo
que está en un en un servidor ajeno a primo.
Entonces
nosotros seleccionamos que queremos buscar bibliografía impresa audiovisual.
Por eso lo que os comentaba de las bibliotecas,
entonces elegimos que biblioteca queremos, vamos a decir que todas,
pero vamos, podríamos decir que lo queremos buscar en la central.
Elegimos el curso de acceso y ya se nos despliega un desplegable
con todas las asignaturas del curso de acceso.
Entonces en Guadalajara, Italiano le damos a buscar
y ya lo tenemos aquí.
Nos ha hecho la búsqueda de todo lo que hay en la Biblioteca Central
que incluya en la 911 el código 001063.
Es el que se corresponde con italiano.
Volvemos para atrás y si ahora queremos un grado
más o elegimos el grado,
elegimos la asignatura.
¿Que faltaría incluir?
Pues con un CSS poner que los cursos estén en otro color para diferenciar.
Pero bueno, es una cuestión que es fácil de elegimos.
¿Que asignatura queremos?
Historia antigua Al mundo clásico le damos
y aquí lo tenemos.
Entonces tenemos una gestión sencilla,
fácil de implementar,
que no coste cero, que podemos adaptar.
Cuál es el problema que presenta esto
que es para extrapolarlo a otro sitio,
para llevarlo a otra, a otra, hacer modificaciones.
El programa es complejo. ¿Por qué?
Porque mezcla una estructura de capas muy dependiente del HTML.
¿El JavaScript está muy condicionado por el HTML y lo que necesitamos
es primero poderlo integrar en primo, integrarlo de verdad
y segundo, que sea modificable, que sea fácil,
porque cuando ya pasa un tiempo, incluso la persona que lo ha hecho
pasado un tiempo te vuelves loco intentando
ver por qué hacías esta historia, por qué modificaba esto,
porque hacías llevar la cuenta de qué capas haces visibles, cuales no?
En fin, es complejo. Entonces
estas son
un poco las razones, la voluntad de incluirlo como un addon
en primo que nos permite primo nos permite.
Ya sabéis que Alma y primo son un poco como un iceberg.
Tú tienes una parte visible
que es lo que utilizas, pero luego tienes por debajo un conjunto de APIs,
un conjunto de servicios que tú puedes utilizar,
incluyendo el primer Open Discovery Framework para hacer
añadir tú mejoras a Primo y que se compartan con otros usuarios.
Entonces, con la forma en la que lo tenemos planteado no es posible.
¿Qué hemos hecho entonces?
Pues mirar cuáles son esos requerimientos y se trata de aplicar Angular.
JS que es un angular.
JS Es un framework que desarrolló Google
para hacer aplicaciones web, simplifica muchísimo.
O sea, en lugar de tú hacer ahí de forma artesanal
la página, controlándolo todo y manipulando ya directamente
angular lo que hace es controlar,
controlar versiones según los navegadores que se utilicen y demás.
Y tú ya de todo eso haces abstracción y te olvidas.
Simplemente utilizas una serie, defines unas directivas,
1,1 modelo,
te vas haciendo la la gestión.
Entonces se trata de construir un SP a single, el PS
application, una verdadera app
que haga ese desarrollo
y todo eso, pero que sea escalable mantenerla y que se pueda aplicar
incluso a otras instituciones. ¿Entonces, la idea cómo hacer esto?
Porque una de los problemas que tienes
es que tú has metido los códigos en la 911, pero no tienes asociado
en el sistema en Alma tú no tienes metido los nombres de las titulaciones,
ni de las asignaturas, ni de nada parecido.
Entonces esa información tiene que venir fuera como lo teníamos
metido en la página, pero eso hace que sea complejo de manejar.
Entonces la idea utilizando estas tecnologías, las que las que te pide,
es libre.
Esto utilices para poder crear un addon que es utilizar
HTML5, AngularJS, JS, JavaScript subsidiariamente
y CSS tres y a las que añadimos JSON y JSON
porque va a ser la forma en la que nosotros presentemos en la web
la información sobre nombres de titulación,
nombres de asignaturas y demás.
Lo que hacemos es bueno.
Estas son las ventajas Eliminamos problemas de versiones,
reducimos drásticamente la cantidad de código
que hemos tenido que utilizar para para gestionar
toda la lógica de la página
y centramos los esfuerzos en la lógica del programa,
no en estar viendo si esta capa se saca, se mete, la hacemos visible.
Lo que nos ocupamos es cómo queremos que funcione.
Entonces, el modelo en el que se basa Angular
JS es MVC, modelo vista, controlador.
Tenemos un modelo de datos que es la información que va a utilizar
como alimento, la página, la información que va a presentar
una vista, que es lo que ve el usuario, con lo que interactúa
y un controlador que es el que sostiene la lógica y que interconecta
de alguna manera el modelo de datos.
Con la vista, el controlador hace la gestión,
si hay es el usuario interactúa con la vista, pasa al controlador,
al controlador, reacciona, modifica el modelo y se modifica la vista.
¿A que me estoy refiriendo?
Pues si tú al interactuar con la página
seleccionas que quieres hacer un grado,
pues esa información que está en la vista pasa al controlador, el controlador
la gestiona y cambia, carga una información del modelo
modificando la vista, de forma que ahora ya te aparece
la lista de titulaciones de grado.
No te aparecen todas las demás.
Está todo más claro, más limpio.
Eliges una titulación.
Vuelvo otra vez a hacer el mismo proceso y ahora te muestra el
desplegable de las asignaturas
de la titulación y sólo de esa ordenadas y con su
Entonces, para hacer esto lo que necesitamos es
cargar esa información, alimentar la web para que sea una única web que
pueda funcionar en diferentes bibliotecas, porque nosotros lo centramos un poco.
Lo que hemos buscado siempre es tener una aplicación que sea utilizable,
que nos saque del problema que tenemos ahora, pero podemos ir haciendo mejoras,
pero que sea funcional, que no sirva.
Ya no había, no habíamos cambiado cosas porque tampoco teníamos necesidad,
pero sí lo queremos compartir con otras universidades, universidades
o bibliotecas.
Necesitaremos que la web no esté condicionada
por la estructura particular, sino que en base a unas entradas
se genere adaptada a lo que quiere esa biblioteca.
Entonces tendremos un fichero con información de la biblioteca
que componen esa entidad, esa institución, otro que contiene
las titulaciones y las asignaturas, y otro de configuración en el que se
incluya la la URL de base.
Si vamos a hacer diferenciación entre bibliografías, porque puede ser
que haya quien no necesite que salga la lista de biblioteca,
simplemente me hace una búsqueda general y ya está.
Que no me diferencia entre si es electrónica
y si es impresa, simplemente que me lo muestre todo.
Entonces eso se configurará en un fichero
y ese fichero al cargarse haría que por el modelo que he comentado
la web se adapte a eso y te muestre esa configuración.
Entonces esa sería un poco la idea, como cómo enviar esa información,
esa información, la forma mejor de gestionarla.
Vamos, Bajo mi punto de vista, podría haberse enviado
un XML o otra alternativa, pero el JSON está muy bien.
No es un formato de objetos de JavaScript.
Un objeto es en realidad una entidad que tiene diferentes
características, y esas características pueden ser otro objeto.
Entonces, ahí donde la información, por ejemplo, si se trata de los grados,
tenemos una serie de información del código del grado, el nombre del grado,
el nombre largo del grado.
Esto lo vamos a explico la razón
y las asignaturas que tal y para cada asignatura reproduce.
Reproducimos a través la información. Para
cada asignatura incluye su código, su nombre largo,
su nombre corto el curso al que pertenece una serie de informaciones.
Esto lo podríamos generar incluso manualmente.
El problema es que si lo haces manualmente te vas a volver mico.
Y además, en cuanto a que te falta una coma
o pongas mal una llave o hagas mal, aparte de la pérdida de tiempo que supone,
entonces la idea ha sido esto
lo gestionamos con un programa en Python
que tome como entrada el Excel que nos ha facilitado nuestro servicio
de adquisiciones con los titulaciones y las asignaturas y sus códigos.
Y lo que hacemos es a partir de ese
generarlo JSON, cargarlo JSON y ya tienes.
Cada vez que haya una modificación a primeros de año o cuando sea se.
En la nueva asignatura se ha incluido un nuevo o lo que sea
ya quitado esta asignatura, sea ha cambiado el código no cambia
porque eso es fijo, es el nombre del código de la asignatura.
Pues tú metes
los en el programa, metes esos ficheros como entrada,
el te genera los JSON, muévelo JSON al servidor y ya
tener la página totalmente ha cambiado, se ha creado una nueva biblioteca.
Pues lo pones.
Querías poner la bibliografía recomendada electrónica separada de la otra,
pues luego lo cambias y ya lo tienes.
Luego hay que recalcar
que AngularJS JS tiene unas facilidades para el testeo, bastante
incluso para una aplicación tan sencillita como sería esta.
Puedes tener estado sin consistentes, puedes tener cuestiones raras que no te
que no te funcionen y aquí es bastante fácil.
Y bueno, esta sería
ya sea bastantes como era su funcionamiento
y las ideas que tenemos para el futuro.
Sería ir un poco más allá, no solo gestionar
la presentación que se da al usuario, primero desarrollarlo
e incluirlo dentro de de Primo, porque la idea lo mejor sería
que estuviese dentro del mismo, pero ya tiene otras complicaciones.
De momento a cumplir con Angular.
JS Ya lo tenemos más fácil y al haber separado la configuración,
claramente la estructura de la página
de lo que es el
el, la parte digamos ejecutable, la lógica del programa,
pues lo tenemos más sencillo, entonces
esa es una de las de los
ejes incluirlo y quien quiera utilizarlo
que lo pueda utilizar la vez que nos lo ha aprobado sí que nos lo dan.
Pues que se pueda utilizar, si no, si no fuera factible incluirlo,
pues lo seguiríamos manteniendo fuera, porque funcionar nos funciona
otra cosa también lo hemos hecho
responsive, porque claro, al hacer la la
la página pues te encuentras con que
hay nombres de titulaciones monstruosas, larguísimas
y entonces de ahí, al tener que recortarlas
el hacerlo responsive, porque sino te podría quedar ortopédico
cuando tienes un formulario está condicionando el tamaño
de todo lo que se presenta y para verlo en un móvil.
Ahora ya si está bien adaptado.
Y la idea sería crear un sistema
que nos permita un portal, realmente sería un portal
para mostrar la bibliografía no sólo como entrada,
sino teniendo la entrada del fichero que mandan los profesores.
Ficha lo
que nuestro departamento de adquisiciones incluirá
todo lo que le hayan mandado los profesores.
Poder coger con los y s venes de la DS de ese fichero y los código
de las asignaturas en la que están recomendados y informes de Analytics.
Poder fusionar todo esto y generar en línea
un portal que se mantenga en la actualización diaria de forma automática,
que te muestre qué bibliografía tienes de la biografía recomendada
en tu biblioteca que tienes y que te falta, que tienes que adquirir
y que lo junte con la información de los préstamos ya prestado.
Pues a lo mejor te considera como para otros.
Todo esto viene a cuento de lo que os comenté a principio de que la UNED tiene
una estructura descentralizada a los centros asociados
realmente no forman parte de la estructura orgánica de la UNED y son
tienen bibliotecas pequeñas.
La gestión de adquisiciones
la hacen por separado y no pueden consumir mucho tiempo.
Revisando si yo tengo este libro, lo busco, no tengo ejemplares, no tengo.
¿Cuántos se ha prestado?
Necesitan verlo de forma rápida.
Entonces, si tú tienes esa información, tú le muestras qué hay en esa biblioteca.
Sí, miro en Lugo, que de cálculo
uno tengo todos estos libros y todos estos títulos que me faltan.
Veo o de este que ha habido muchísima demanda
y podría considerar comprar otro ejemplar, pues tener esa información
accesible.
Esa sería un poquito la idea.
Y esto es todo.
Ya os comenté que es una cosa bastante humilde, que no tiene grandes alharacas,
pero sí que ha sido funcional, ha sido útil para los
para los usuarios.
Os comentaba llevando
algunos lo mostraría, pero ahora mismo no,
que es totalmente responsive, se adapta cualquier dispositivo móvil
y puede presentar
en el momento que se incluya en prima, pues nos llevaríamos la ventaja.
Nos tenemos que preocupar de simular un aspecto
parecido a
al de para que el usuario
no note la diferencia, aunque sí que bueno,
si está dentro de primo ya tendrías todas las ventajas.