Palabras clave: araña, robot de búsqueda, búsqueda i recuperación de información, bot, buscador, inteligencia artificial, IA, search bot, search robot, robot, crawler, web crawler, information retrieval, information search and retrieval, artificial intelligence, AI
En este artículo, dividido en 4 partes, explicamos cómo implementar un Information Retriever. Es decir, un sistema software capaz de conseguir información de interés de forma automática/desasistida/inteligente a partir de información que se está actualizando constantemente en internet.
En esta primera parte vamos a poneros en contexto. Plantearemos un escenario genérico, para poder hablar sobre esa base el resto del artículo.
Escenario genérico
Suponemos que hay muchas fuentes de información I1,I2,I3,... que va cambiando y que va apareciendo de forma pública en internet. Quizá en un momento dado no está, pero al segundo siguiente sí. Así pues, cada uno de los Ii es una fuente de Información Incumbiente (a partir de ahora recordemos la letra I por Información que es Incumbiente, que Importa y que Interesa).
Hay también A1,A2,A3,... que pueden ser empresas o personas Afectados por cambios en esa información (letra A porque están Alerta o Atentos o Afectados ante cualquier cambio que les Ataña).
Oportunamente (vive de ello) hay una empresa E que se dedica precisamente a dar servicio a A1,A2,A3,... cuando hay cambios en alguna de esas fuentes de información I1,I2,I3,...
E ya tiene sistemas software. Dispone entre otras cosas de un CRM donde hace seguimiento de sus clientes y de un ERP donde actualiza la información necesaria para sus procesos, además de diferentes aplicaciones (para móvil, de escritorio o web) que le resuelven el envío de emails, la facturación y muchas otras tareas que tiene automatizadas. Ahora bien, carece de un Information Retriever. Así pues, son algunos de los empleados de E los que hacen ese trabajo. Consultan las fuentes de información y actualizan el ERP y el CRM en consecuencia.
Como todos los sistemas software inteligentes, el Information Retriever que implementaremos no dejará sin trabajo a esos empleados, sino que automatizará algunas de sus tareas, además de hacerlas más rápido y sin error humano, liberando tiempo de esos empleados para que aporten mucho más valor.
Pero para acabar de entender el escenario genérico daremos tres ejemplos:
Ejemplo 1: Autoescuela
E sería la autoescuela. Le interesa ver si han salido las notas de sus alumnos para informarles de que han aprobado (o suspendido) en el momento que salgan las notas públicamente. Es un valor añadido que la diferencia de otras autoescuelas.
I1 es la web de la Dirección General de Tráfico, donde poniendo el DNI y algún dato más (que la autoescuela puede usar con el consentimiento del alumno) se puede consultar si el examinado ha resultado apto o no.
...
A1 es un alumno de la autoescuela. Hizo el examen el viernes. La nota saldrá en cualquier momento durante el lunes, pero está estudiando y no quiere estar pendiente de ir entrando constantemente en la web de tráfico a ver si ha salido su nota. En vez de eso, cuenta con la autoescuela para que le avise en el momento en que salga.
...
Ejemplo 2: Asesor Jurídico
En este caso E sería una empresa, especializada en asesorar sobre multas de tráfico y por tanto siempre quiere estar al día en cuanto a legislación al respecto se refiere. Además, si alguien tiene una nueva multa, quiere saberlo cuanto antes.
I1 podría ser el tablón edictal único, que es un portal que publica listas de multados con información adicional (su DNI, un código de infracción, el importe, etc.)
I2 podría ser la web de la Dirección General de Tráfico, que está al día de las novedades y en un momento dado puede ser que informe de un cambio en una ley que puede hacer que a partir de ahora la multa por exceso de velocidad sea más cara y además quite más puntos.
...
A1 podría ser un particular que es cliente de E. Cuenta con E para que le proporcione asesoría continua para las multas que pueda recibir. Si además E es capaz de saber antes incluso que él mismo que tiene una multa, entonces eso es un valor añadido que le hace ganar tiempo.
A2 podría ser una empresa que se dedica a ofrecer un servicio de leasing de vehículos a particulares. Es clienta de E porque está pendiente de posibles particulares que quizá necesiten un leasing. E le facilitará esa información obviamente con el consentimiento previo de los particulares.
A3 es un particular que no es cliente de E aún, pero a E le interesa saber que existe (si es que hay alguna multa a su nombre) para tenerlo en su lista de potenciales clientes.
...
Ejemplo 3: Oficina de Patentes y Marcas
En este caso nuestra E sería una empresa de patentes y marcas que quiere estar al día en cuanto a qué marcas y patentes están registradas en todo momento, cuáles caducan y cuáles se han solicitado y no están aprobadas aún. La razón es que E ofrece el servicio de registro y asesoría en marcas y patentes a empresas y particulares.
I1 podría ser el portal EUIPO, que está constantemente actualizado con información de interés, como puede ser legislación, eventos o nuevas marcas o patentes a nivel europeo.
I2 podría ser el portal OEPM, que es parecido a EUIPO pero en España.
I3 podría ser la web del Boletín Oficial del Estado, que constantemente está actualizado con cambios en la legislación que quizá indirectamente puedan afectar a E y no han aparecido explícitamente ni en EUIPO ni en OEPM.
...
A1 es un particular que es cliente de E. Registró una marca con ellos y si se acerca su caducidad será avisado por E por si quiere renovar, o si hay un cambio que le afecte será informado y asesorado por E.
A2 es una empresa de publicidad especializada en aportar valor a las marcas, y es clienta de E porque le compra asesoría. Cuando hay cambios que puedan interesar a A2, E contacta con A2 para ofrecerle servicio.
...
En la segunda parte de este artículo hablamos de cómo plantear nuestro Information Retriever.
Glosario
Aclaramos aquí algunos términos que iremos usando. Más que dar su definición genérica (que el lector podrá encontrar en la wikipedia) nos hemos esforzado por decir a qué nos referimos con ellos en este contexto.
Algoritmo: procedimiento, estrategia.
Almacén de contenido descargado: contenido descargado por los crawlers para su posterior tratamiento.
API (Application Programming Interface): invocaciones que ofrece una aplicación para que otras aplicaciones puedan usar algunas de sus funcionalidades.
BD (Base de Datos): una base de datos es un componente de un sistema de software donde se guarda información de forma estructurada.
Bot: un bot es un robot sin cuerpo. Es decir, sólo el software.
Crawler / Araña: bot (programa) que entra en páginas de internet y descarga su contenido (lo que hace google con todas las páginas).
CRM (Customer Relationship Manager): aplicativo que se ocupa de mantener los clientes de una empresa y su relación con ellos.
ERP (Enterprise Resource Planner): aplicativo que se ocupa de gestionar los procesos de producción de una empresa
GUI (Graphical User Interface): controles que puede usar un usuario para usar funcionalidades de una aplicación.
IA (Inteligencia Artificial): paradigma de programación consistente en pensar un algoritmo de la misma manera que lo haría una persona si fuera una persona la que tuviera que hacer el trabajo.
IR (Information Retriever): software que se ocupa de encontrar información incumbiente automáticamente.
Parser: programa que extrae información de un texto.
Programa: es un algoritmo escrito en un lenguaje que un ordenador entiende y así lo puede ejecutar.
Robot: viene del polaco "esclavo" y es algo artificial construido para hacer lo que le digas emulando a lo que haría un humano.
robots.txt: las webs tienen un fichero en su raíz llamado robots.txt que son indicaciones para que si alguien hace un crawler, las respete. Consisten básicamente en no entrar demasiado seguido y no entrar en según qué rutas.
Sistema software / Sistema de información / Aplicativo / Aplicación: conjunto de programas y datos que producen nueva información a partir de información existente.