Paraules clau: aranya, robot de cerca, cerca i recuperació d'informació, bot, cercador, intel·ligència artificial, IA, search bot, search robot, robot, crawler, web crawler, information retrieval, information search and retrieval, artificial intelligence, AI
En aquest article, dividit en 4 parts, expliquem com implementar un Information Retriever. És a dir, un sistema software capaç d'aconseguir informació d'interès de forma automàtica/desassistida/intel·ligent a partir d'informació que s'està actualitzant constantment a internet.
En aquesta primera part us posarem en context. Plantejarem un escenari genèric, per tal de poder parlar sobre aquesta base la resta de l'article.
Escenari genèric
Suposem que hi ha moltes fonts d'informació I1,I2,I3,... que van canviant i que van apareixent de forma pública a internet. Potser en un moment donat no hi és, però al segon següent sí. Així doncs, cadascú dels Ii és una font d'Informació Incumbent (a partir d'ara recordem la lletra I per Informació que és Incumbent, que Importa i que Interessa).
Hi ha també A1,A2,A3,... que poden ser empreses o persones Afectats per canvis a aquesta informació (lletra A perquè estan Alerta o Atents o Afectats).
Oportunament (viu d'això) hi ha una Empresa E que es dedica precisament a donar servei a A1,A2,A3,... quan hi ha canvis a alguna d'aquelles fonts d'informació I1,I2,I3,...
E ja en té, de sistemes software. Disposa, entre altres coses, d'un CRM a on fa seguiment dels seus clients i d'un ERP a on actualitza la informació necessària pels seus processos, a més de diferents aplicatius (per mòbil, per escriptori o web) que li resolen l'enviament d'emails, la facturació i moltes altres tasques que té automatitzades. Ara bé, li manca un Information Retriever. Així doncs, són alguns dels empleats d'E els que fan aquesta feina. Consulten les fonts d'informació i actualitzen l'ERP i el CRM consegüentment.
Com tots els sistemes software intel·ligents, l'Information Retriever que implementarem no deixarà sense feina a aquests empleats, sino que automatitzarà algunes de les seves tasques, a més de fer-les més ràpid i sense error humà, alliberant temps d'aquests empleats per tal que aportin molt més valor.
Però per acabar d'entendre l'escenari genèric donarem tres exemples:
Exemple 1: Autoescola
E seria l'autoescola. L'interessa veure si han sortit les notes dels seus alumnes per informar-lis que han aprovat (o suspès) al moment que surtin les notes públicament. És un valor afegit que la diferencia d'altres autoescoles.
I1 és el web de la Dirección General de Tráfico, a on tot posant el DNI i alguna dada més (que l'autoescola pot fer servir amb el consentiment de l'alumne) es pot consultar si l'examinat ha resultat apte o no.
...
A1 és una alumna de l'autoescola. Va fer l'examen divendres. La nota sortirà en qualsevol moment durant dilluns, però està estudiant pels exàmens parcials de la universitat i no vol estar pendent d'anar entrant constantment al web a veure si ha sortit la seva nota. En comptes d'això, compta amb l'autoescola perquè l'avisi tan bon punt surti.
...
Exemple 2: Assessor jurídic
En aquest cas, E seria una empresa especialitzada en assessorar sobre multes de trànsit i per tant sempre vol estar al dia quant a legislació al respecte es refereix. A més, si algú té una nova multa, ho vol saber com abans millor.
I1 podria ser el Tablón Edictal Único, que és un portal que publica llistes de multats amb informació addicional (el seu DNI, un codi de la infracció, l'import, etc.)
I2 podria ser el web de la Dirección General de Tráfico, que està al dia de les novetats i en un moment donat pot ser que informi d'un canvi a una llei que pot fer que a partir d'ara la multa per excès de velocitat sigui més cara i a més tregui més punts.
...
A1 podria ser un particular que és client d'E. Compta amb E perquè li proporcioni assessoria contínua per les multes que pugui rebre. Si a més E és capaç de saber inclús abans que ell mateix que té una multa, llavors això és un valor afegit que li farà guanyar temps.
A2 podria ser una empresa que es dedica a oferir un servei de leasing de vehicles a particulars. És clienta d'E perquè està pendent de possibles particulars que potser necessitin un leasing. E facilitarà a A2 aquesta informació òbviament amb el consentiment previ dels particulars.
A3 és un particular que no és client d'E encara, però a E l'interessa saber que existeix (si és que hi ha alguna multa al seu nom) per tal de tenir-lo a la seva llista de potencials clients.
...
Exemple 3: Oficina de Patents i Marques
En aquest cas, la nostra E seria una empresa de patents i marques que vol estar al dia quant a quines marques i patents estan registrades en tot moment, quines caduquen i quines s'han sol·licitat i no estan aprovades encara. La raó és que E ofereix el servei de registre i assessoria en marques i patents a empreses i particulars.
I1 és el portal EUIPO, que està constantment actualitzat amb informació d'interès com pot ser legislació, esdeveniments o noves marques o patents a nivell europeu.
I2 podria ser el portal OEPM, que és semblant a EUIPO però a Espanya.
I3 podria ser el web del Boletín Oficial del Estado, que eventualment és actualitzat amb canvis a la legislació que potser indirectament poden afectar a E i no han aparegut explícitament ni a EUIPO ni a OEPM.
...
A1 és una particular que és clienta d'E. Va registrar una marca amb ells i si s'apropa la caducitat serà avisada per E per si vol renovar, o si hi ha un canvi que li afecti serà informada i assessorada per E.
A2 és una empresa de publicitat especialitzada en aportar valor a les marques, i és clienta d'E perquè li compra assessoria. Quan hi ha canvis que puguin interessar a A2 , E contacta amb A2 per oferir-li servei.
...
A la segona part d'aquest article parlarem de com plantejar el nostre Information Retriever.
Glossari
Aclarim aquí alguns termes que anirem fent servir. Més enllà de donar la seva definició genèrica (que el lector podrà trobar a la wikipedia) ens hem esforçat per dir a què ens referim amb ells en aquest context.
Algorisme/Algoritme: procediment, estratègia.
API (Application Programming Interface): invocacions que ofereix una aplicació per tal que d'altres aplicacions puguin fer servir algunes de les seves funcionalitats.
BD (Base de Dades): una base de dades és un component d'un sistema de software a on es guarda informació de forma estructurada.
Bot: és un robot sense cos. És a dir, només el software.
Crawler / Aranya: bot (programa) que entra a pàgines d'internet i descarrega el seu contingut (allò que fa google amb totes les pàgines)
CRM (Customer Relationship Manager): aplicatiu que s'encarrega de mantenir els clients d'una empresa i la seva relació amb ells.
ERP (Enterprise Resource Planner): aplicatiu que s'ocupa de gestionar els processos de producció d'una empresa.
GUI (Graphical User Interface): controls que pot fer servir un usuari per utilitzar funcionalitats d'una aplicació.
IA (Intel·ligència Artificial): paradigma de programació consistent en pensar un algorisme de la mateixa manera que ho faria una persona si fos una persona qui hagués de fer la feina.
IR (Information Retriever): software que s'encarrega de trobar informació incumbent automàticament.
Magatzem de contingut descarregat: contingut descarregat pels crawlers pel seu posterior tractament.
Parser: programa que extreu informació d'un text.
Programa: és un algoritme escrit en un llenguatge que un ordinador entengui i així el pugui executar.
Robot: provè del polac "esclau" i és quelcom artifical construit per fer el que li diguis emulant el que faria un ésser humà.
robots.txt: els webs tenen un fitxer a la seva arrel que es diu robots.txt que són indicacions perquè si algu fa un crawler, les respecti. Consisteixen bàsicament en no entrar massa sovint i no entrar a segons quines rutes.
Sistema software / Sistema d'informació / Aplicatiu / Aplicació: conjunt de programes i dades que produeixen nova informació a partir d'informació existent.