Introduccion
La mejor base de datos disponible en internet proviene del sitio desaparecidos.org recopilada por el grupo Farenheit. La base de datos fue subida con una tecnología básica de publicación web que no permite la extracción automática de los datos, lo que nos obligó a elaborar un proceso de extracción automática que transforme la página html en un formato intermedio de forma de transformar los datos a una representación utiilizable por la aplicación de línea de tiempo.Desarrollo
Para la etapa de extracción se utilizo un crawler de software libre denominado "wget" que extrajo las páginas relevantes a archivos html. Luego de esa etapa se programaron scripts en el lenguaje de programación Ruby que en tres etapas transformaron esa información.- La primera etapa elimina toda la información redundante de los diferentes archivos, los encabezados, pies e información que no es de fechas de desaparición. A la vez que crea un gran archivo con estos datos.
- La segunda etapa toma este gran listado, extrae la información de fecha y de nombre. La información de fecha la transforma al formato año, dia y mes, y verifica que esté dentro de un rango válido. La información de nombre se sanitiza eliminando comillas, espacios en blanco y fin de línea. Teniendo como salida un archivo en formato Jsonp con los puntos temporales importantes.
- Por último se crea una linea de tiempo utilizando el código javascript de Timeline.js (el que utiliza Verite) y despliega la información contenida en el jsonp del archivo anterior.
Dificultades
Cantidad de registros
La cantidad de registros que se extrajeron supera los 8 mil. Esto genera problemas al visualizarlo con el software de línea de tiempo elegido.
Utilizar la aplicación en la nube de verite.co resulta imposible con esta cantidad de registros. Tira un timeout al intentar bajar los datos desde google docs.
El utliizar aplicaciones en la nube para esta gran cantidad de volúmenes de datos se torna muy dificil actualmente. Por eso buscaremos un enfoque hosteado en servidores propios.
Enfoques
Se probaron otros softwares, como ser timeline-setter (http://propublica.github.io/timeline-setter/doc/twitter-demo.html) y SIMILE widgets http://www.simile-widgets.org/timeline/. El primero toma un enfoque diferente al realizar un sitio estático con preprocesamiento en lugar de construir la línea de tiempo dinamicamente. SIMILE, por su parte es similar a Timeline.JS. Ninguno de los dos permitio una mejora significativa en el rendimiento.
Solución
Por lo pronto se decidió utilizar Timeline.js tomando solo los datos del año 1976, a modo de experimento. A futuro el problema de los volúmenes de datos se puede resolver partiendo la información de forma que no se envie desde el servidor al cliente más información de la que se esta mostrando al usuario en ese momento. Esto requiere un cambio profundo en el código para incorporar un "paginador" de linea de tiempo del lado del servidor.