sábado, 19 de diciembre de 2015

Idea — Asistente personal de viaje

Siguiendo la propuesta que hice en 2011 de reflejar aquí mis ideas locas por si a alguien le diera por hacerlas realidad en algún momento, propongo o lanzo otra idea al aire: la creación de un asistente personal durante viajes.

El planteamiento que me hago es que durante un viaje necesitamos que se nos hagan propuestas sobre los sitios que hay que visitar allá donde viajamos, bien porque no tenemos tiempo para realizar una investigación previa nosotros del lugar o bien porque no tenemos acceso a las fuentes de información relevantes. Incluso puede complementar nuestros conocimientos y sugerirnos planes útiles, interesantes, curiosos... sobre la marcha, que añadan interés a nuestro viaje.

Lo que yo haría sería crear una aplicación móvil que haga de asistente personal durante un viaje que hagamos al extranjero. El asistente tendrá a su disposición diversas fuentes de datos. Algunas podrían ser:

  • Mapas de la zona del país que se está visitando. Estos mapas pueden ser mapas de carreteras, temáticos, atlas, o simplemente mapas capturados de satélite.
  • Guías (Lonely, El País Aguilar, etc).
  • Webs sobre turismo (en donde se puedan consultar eventos, mercadillos, etc. que se produzcan en la zona de interés).
  • Información adicional sobre zonas de especial interés (catedrales, monasterios, museos, etc).


Con todas estas fuentes (disponibles vía web a través de la internet que nos ofrezca el hotel o apartamento donde estemos alojados, como documento offline, bases de datos descargables, etc) el asistente se dedicará a analizar la información que tiene y procesarla, de manera que nos presente finalmente la información cocinada para cada día de nuestro viaje de forma personalizada.

El proceso de esta información se podría hacer con alguna de las siguientes herramientas:

  • Procesado de lenguaje natural.
  • Análisis y clasificación de imágenes. Redes neuronales para procesamiento de imágenes.
  • Aprendizaje máquina (ML = Machine Learning). Técnicas de análisis de Big Data.
  • Arañas (spiders) que analicen páginas web.
  • Bases de datos que puedan "cachear" la información en el dispositivo que usemos para procesar la información. Por ejemplo, una base de datos tipo PouchDB, H2, DB4O, neo4j (almacena grafos), ... También estaría bien disponer de una base de datos documental que pueda almacenar documentos y que funcione bien embebida.

Por último la información cocinada se debe presentar al usuario de una forma accesible y comprensible. Se me ocurre que se pudiera mostrar de alguna de las siguientes maneras:

  • A través de un navegador, bien online u offline. Preferiblemente esta última, ya que si estamos de viaje no solemos disponer de datos.
  • Mediante un PDF generado a primera hora del día siguiente, antes de comenzar la "jornada turistera".
  • Mediante un interfaz que presente información documental (tipo xml, json, markdown, etc).

También tenemos que pensar en el dispositivo que se va a encargar de cocinar los datos durante la jornada anterior y presentarlos o enviarnos esa información cocinada. Se me ocurren varias opciones:

  • Un SBC (Single Board Computer) tipo Raspberry Pi. La ventaja de este es que tiene más capacidad de procesamiento. Ocupan poco espacio y son baratos. Si vienen con caja pueden ser también compactos y manejables. La desventaja es que no suelen tener WiFi, por lo que en un entorno de hotel o apartamento habría que tener otro aparato que les permitiera conectarse de red cableadad a red inalámbrica.
  • Un teléfono móvil barato. Hay muchos teléfonos que se venden en países como la India, que tienen características muy interesantes a precios muy reducidos. Es una alternativa muy interesante, suelen tener almacenamiento local intergrado (no hay que comprarlo como en la mayoría de los SBC). La RAM no es una maravilla, pero si la programación de la aplicación es buena no debería ser un problema. Además, si se hace como un proyecto de software libre es mucho más probable que llegue a participar más gente.

Esta es la idea, luego habría que desarrollarla.