Logo Studenta

Asistente_virtual_para_un_sistema_de_informacion_GUIJARRO_MARCO_PABLO

Esta es una vista previa del archivo. Inicie sesión para ver el archivo original

Asistente virtual para 
un sistema de 
información 
 Grado en Ingeniería Multimedia 
 
Trabajo Fin de Grado 
 
Autor: 
Pablo Guijarro Marco 
Tutor/es: 
Gustavo Candela Romero 
María Dolores Sáez Fernández 
 
Enero 2020 
 
Asistente virtual para un sistema
de información
Desarrollo de un asistente virtual que facilite la comunicación con el
usuario en la Biblioteca Virtual Miguel de Cervantes
Autor
Pablo Guijarro Marco
Directores
Gustavo Candela Romero
Departamento del Lenguajes y Sistemas Informáticos
Maŕıa Dolores Sáez Fernández
Departamento del Lenguajes y Sistemas Informáticos
Grado en Ingenieŕıa Multimedia
ALICANTE, 12 de enero de 2020
Resumen
Actualmente, el acceso a los sistemas de información debe ser fácil, rápido e intuitivo.
Numerosas instituciones han publicado sus datos en abierto como por ejemplo bibliotecas
nacionales, instituciones de patrimonio cultural, agencias estatales de meteoroloǵıa, redes
sociales, Wikidata y ayuntamientos. Sin embargo, el acceso a estos nuevos repositorios de
datos abiertos no es sencillo por la necesidad de saber utilizar el lenguaje de consulta de
base de datos SPARQL y ser capaz de entender cómo está la información estructurada
para poder comprender cómo acceder a la que se necesita. Este Trabajo Fin de Grado
(TFG) se basa en bibliotecas virtuales/digitales que ofrecen contenido mediante datos
abiertos como información sobre obras y autores.
El trabajo pretende reutilizar y facilitar el acceso a estos recursos que ofrecen las
bibliotecas virtuales. En la última década están cobrando relevancia los chatbots y los
asistentes virtuales en el mundo del e-learning ya que permiten al usuario interactuar
mediante lenguaje natural con ellos. Estos son capaces de ofrecer el contenido de las
bibliotecas virtuales de manera rápida al igual que de informar al usuario de lo que ofrece
la biblioteca con tan solo mantener una conversación con ellos. Empresas como Google,
Apple o Amazon están apostando por esta nueva tecnoloǵıa aplicándola en algunos de
sus productos ya que el uso de un asistente virtual va más allá de poder ofrecer los
recursos de una biblioteca virtual o de un sitio web en espećıfico. Pueden tener otras
funcionalidades que usan repositorios externos para enriquecer las respuestas que ofrece
el asistente.
El objetivo principal de este TFG es crear un asistente virtual que ofrezca tanto
funcionalidades que permitan acceder a los recursos de un sistema de información como
funcionalidades que ofrezcan información útil para la vida cotidiana de los usuarios.
Además, se ha añadido una funcionalidad adicional con el objetivo de permitir a los
administradores del sistema monitorizar mediante cuadros de mando la frecuencia de
uso del asistente y de sus funcionalidades.
Para llevar a cabo este asistente virtual se ha utilizado tanto el repositorio de datos
abiertos de la Biblioteca Virtual Miguel de Cervantes (BVMC), ya que se ha elegido
como sistema de información para el cual realizar el asistente, como también Wikidata.
Se ha validado el asistente tras la realización de pruebas unitarias y de una evaluación
con varios usuarios reales. En conclusión, es un proyecto que ofrece un asistente virtual
como alternativa a la hora de obtener los recursos de la BVMC, entre otras funcionali-
dades, que utiliza multitud de tecnoloǵıas tanto para su parte del backend como para la
vi
del frontend y que hace uso de numerosos servicios de terceros para ello.
Preámbulo
Vivimos en una sociedad en la cual la gente está acostumbrada a obtener lo que desea
de una manera simple, cómoda y sencilla gracias a la evolución de la tecnoloǵıa. Por
ejemplo, el acceso a Internet ha facilitado el consumo de todo tipo de productos de una
forma flexible y rápida.
En este contexto, actualmente están teniendo mucho éxito los asistentes virtuales,
ya que facilitan la obtención de información y el trámite dentro de una web o de una
app. En resumen, ofrecen facilidad y rapidez para que las personas encuentren lo que
buscan o realicen la acción que quieren dentro de un sitio web. En este sentido, un
asistente virtual permite interactuar con el usuario mediante el uso del lenguaje natural
simulando el comportamiento de una persona.
Por este motivo principalmente he decidido realizar un asistente virtual que facilite el
acceso de informacion a los usuarios de la BVMC, entre otros servicios. El objetivo de
este TFG es diseñar e implementar una API para darle sustento al asistente, entrenar al
asistente para que pueda responder correctamente a las peticiones del usuario, consumir
datos de terceros como, por ejemplo, de la propia biblioteca y dotarle de un buen diseño
para mejorar la experiencia de usuario.
A mis padres, a mi hermana y a mis abuelos por haber créıdo desde el principio en mı́ y que
sin su apoyo no habŕıa podido llegar hasta este punto de la carrera. A mis amigos por estar
siempre ah́ı cuando les he necesitado y me han orientado cuando no encontraba como salir del
paso en situaciones dif́ıciles que se me han presentado durante el transcurso de esta carrera.
También agradecer a mis tutores por formar parte de este último proyecto antes de salir al
mundo laboral y a todos los profesores con los que he aprendido y han hecho que hoy en d́ıa sea
capaz de realizar este trabajo.
ix
Algún d́ıa seremos capaces de alcanzar la inmortalidad.
Haremos copias de nuestros cerebros. Puede que los creemos
en un laboratorio o que, simplemente, descarguemos su contenido
en un ordenador.
Marvin Minsky.
xi
Índice general
Resumen V
1. Introducción 1
2. Viabilidad 5
2.1. Modelo de negocio, Lean Canvas . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.1. Segmentos de mercado . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.2. Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.3. Propuesta de valor única . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.4. Solución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.5. Canales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.6. Estructura de costes . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.7. Métricas clave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.8. Fuentes de ingreso . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.9. Ventaja especial . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2. Análisis DAFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.1. Debilidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.2. Amenazas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.3. Fortalezas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.4. Oportunidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3. Análisis de los riesgos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3. Objetivos 15
3.1. Generales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2. Espećıficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4. Marco Teórico 17
4.1. Asistentes virtuales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.2. Fuentes de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.2.1. La Web Semántica y la definición de los datos . . . . . . . . . . . . 20
4.2.2. Bibliotecas digitales . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.2.3. Wikidata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.3. Tecnoloǵıas para implementar un asistente virtual . . . . . . . . . . . . . 27
4.3.1. Dialogflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.4. Tecnoloǵıas para implementar el backend y el frontend . . . . . . . . . . . 30
4.4.1. Servicios a utilizar de terceros . . . . . . . . . . . . . . . . . . . . . 32
xiii
xiv Índice general
4.5. UX y diseño . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5. Metodoloǵıa 35
6. Análisis y especificación 39
6.1. Perspectiva de producto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.2. Funciones del producto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.3. Restricciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
6.4. Requisitos espećıficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6.4.1. Requerimientos funcionales . . . . . . . . . . . . . . . . . . . . . . 41
6.4.2. Requerimientos no funcionales . . . . . . . . . . . . . . . . . . . . 45
6.4.3. Diagrama de casos de uso . . . . . . . . . . . . . . . . . . . . . . . 46
7. Diseño 49
7.1. Arquitectura seleccionada . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
7.2. Tecnoloǵıas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
7.3. Diagrama de clases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
7.4. Mockups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
8. Implementación 63
8.1. Backend Parte 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.2. Frontend Parte 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.3. Backend Parte 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
8.4. Frontend Parte 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
8.5. Backend Parte 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
8.6. Frontend Parte 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
8.7. Backend Parte 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
9. Pruebas y validación 93
9.1. Pruebas unitarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
9.2. Casos de prueba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
9.2.1. Evaluación a nivel de sesión . . . . . . . . . . . . . . . . . . . . . . 96
9.2.2. Evaluación a nivel de turno . . . . . . . . . . . . . . . . . . . . . . 97
10.Resultados 99
11.Conclusiones 107
11.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
11.2. Ĺıneas de trabajo futuras . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Bibliograf́ıa 113
A. Anexo I. Esquema de base de datos 115
B. Anexo II. Informe de Toggl 117
Índice general xv
C. Anexo III. Consultas SPARQL 123
C.1. Para Wikidata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
C.2. Para la BVMC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
D. Anexo IV. Intenciones implementadas 127
E. Anexo V. Paso a producción 137
E.1. Configurar e instalar el backend. Laravel, Express+Node.js y Grafana. . . 137
E.2. Configurar e instalar el frontend. Angular. . . . . . . . . . . . . . . . . . . 138
E.3. Comprobar errores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
E.4. Building. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
E.5. Última comprobación de errores. . . . . . . . . . . . . . . . . . . . . . . . 138
F. Anexo VI. Correo recibido de Twitter 139
Índice de figuras
2.1. Análisis Lean Canvas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2. Análisis DAFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.1. Asistentes virtuales más utilizados a principios de 2019 . . . . . . . . . . . 18
4.2. Comparación entre Google Assistant, Siri y Alexa . . . . . . . . . . . . . . 19
4.3. Ejemplo que muestra cómo se convierte una consulta SQL a SPARQL . . 23
4.4. Funcionamiento del KB Lab Bot . . . . . . . . . . . . . . . . . . . . . . . 26
5.1. Visualización del repositorio del proyecto desde GitKraken . . . . . . . . . 38
6.1. Diagrama de casos de uso . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
7.1. Arquitectura REST orientada a servicios . . . . . . . . . . . . . . . . . . . 50
7.2. Tecnoloǵıas utilizadas en el proyecto . . . . . . . . . . . . . . . . . . . . . 51
7.3. Diagrama de clases del proyecto . . . . . . . . . . . . . . . . . . . . . . . . 54
7.4. Mockup versión móvil 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
7.5. Mockup versión móvil 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
7.6. Mockup versión móvil 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
7.7. Mockup versión escritorio 1 . . . . . . . . . . . . . . . . . . . . . . . . . . 58
7.8. Mockup versión escritorio 2 . . . . . . . . . . . . . . . . . . . . . . . . . . 59
7.9. Mockup versión escritorio 3 . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.1. Ejemplos de los cuadros de mando implementados en Grafana . . . . . . . 92
9.1. Pruebas unitarias pasadas con éxito . . . . . . . . . . . . . . . . . . . . . 95
9.2. Resultados de la evaluación a nivel de sesión . . . . . . . . . . . . . . . . . 96
10.1. Diseño final del asistente en la web de desarrollo de la BVMC . . . . . . . 99
10.2. Diseño final del asistente cuando está cerrado . . . . . . . . . . . . . . . . 100
10.3. Diseño final del asistente cuando está abierto . . . . . . . . . . . . . . . . 100
10.4. Ejemplos de varias respuestas del asistente . . . . . . . . . . . . . . . . . . 101
10.5. Funcionalidad buscar obras de un autor en concreto . . . . . . . . . . . . 101
10.6. Respuestas del asistente sobre Miguel de Cervantes Saavedra . . . . . . . 102
10.7. Funcionalidad mostrar v́ıdeos de YouTube de la BVMC . . . . . . . . . . 102
10.8. Funcionalidad mostrar últimos tweets de la BVMC . . . . . . . . . . . . . 103
10.9. Buscar obras en un idioma concreto y predicción del tiempo en España . . 103
A.1. Base de datos MySQL del proyecto . . . . . . . . . . . . . . . . . . . . . . 115
xvii
xviii Índice de figuras
B.1. Informe de Toggl 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
B.2. Informe de Toggl 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
B.3. Informe de Toggl 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
B.4. Informe de Toggl 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
B.5. Informe de Toggl 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
B.6. Informe de Toggl 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
D.1. Intents implementados en Dialogflow para el asistente 1 . . . . . . . . . . 127
D.2. Intents implementados en Dialogflow para el asistente 2 . . . . . . . . . . 128
D.3. Intents implementados en Dialogflow para el asistente 3 . . . . . . . . . . 129
D.4. Intents implementados en Dialogflow para el asistente 4 . . . . . . . . . . 130
D.5. Intents implementados en Dialogflow para el asistente 5 . . . . . . . . . . 131
D.6. Intents implementados en Dialogflow para el asistente 6 . . . . . . . . . . 132
D.7. Intents implementados en Dialogflow para el asistente 7 . . . . . . . . . . 133
D.8. Intents implementados en Dialogflow para el asistente 8 . . . . . . . . . . 134
D.9. Intents implementados en Dialogflow para el asistente 9 . . . . . . . . . . 135
F.1. Correo recibido de Twitter . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Índice de tablas
2.1. Riesgos sobre la organización . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2. Riesgos sobre los requerimientos . . . . . . . . . . . . . . . . . . . . . . . 12
2.3. Riesgos sobre la tecnoloǵıa . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4. Riesgos sobre la estimación . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.5. Riesgos sobre las herramientas . . . . . . . . . . . . . . . . . . . . . . . . 14
2.6. Riesgos sobre el personal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
6.1. Requerimiento funcional mantener una conversación . . . . . . . . . . . . 41
6.2. Requerimiento funcional resolver dudas
. . . . . . . . . . . . . . . . . . . 41
6.3. Requerimiento funcional conocer predicción del tiempo . . . . . . . . . . . 41
6.4. Requerimiento funcional informar sobre Miguel de Cervantes . . . . . . . 42
6.5. Requerimiento funcional consultar obras disponibles en un idioma en con-
creto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.6. Requerimiento funcional consultar ediciones de El Quijote . . . . . . . . . 42
6.7. Requerimiento funcional solicitar predicción horóscopo . . . . . . . . . . . 42
6.8. Requerimiento funcional realizar traducciones . . . . . . . . . . . . . . . . 43
6.9. Requerimiento funcional búsquedas de contenido de la BVMC . . . . . . . 43
6.10. Requerimiento funcional mostrar últimos tweets de la BVMC . . . . . . . 43
6.11. Requerimiento funcional mostrar v́ıdeos del canal de YouTube de la BVMC 43
6.12. Requerimiento funcional solicitar noticias de actualidad . . . . . . . . . . 44
6.13. Requerimiento funcional realizar búsquedas de páginas web . . . . . . . . 44
6.14. Requerimiento funcional registrar acción . . . . . . . . . . . . . . . . . . . 44
6.15. Requerimiento funcional generar cuadros de mando . . . . . . . . . . . . . 44
6.16. Requerimiento no funcional disponibilidad . . . . . . . . . . . . . . . . . . 45
6.17. Requerimiento no funcional seguridad . . . . . . . . . . . . . . . . . . . . 45
6.18. Requerimiento no funcional rendimiento . . . . . . . . . . . . . . . . . . . 45
6.19. Requerimiento no funcional multiplataforma . . . . . . . . . . . . . . . . . 46
6.20. Requerimiento no funcional ofrecer interfaz atractiva . . . . . . . . . . . . 46
9.1. Resultados de la evaluación a nivel de turno . . . . . . . . . . . . . . . . . 97
xix
Índice de Listados
8.1. Primeras ĺıneas del archivo .env del proyecto Laravel . . . . . . . . . . . . 63
8.2. API Agente Catalina Dialogflow . . . . . . . . . . . . . . . . . . . . . . . 65
8.3. Solicitud de datos a Wikidata . . . . . . . . . . . . . . . . . . . . . . . . . 66
8.4. Solicitud de datos a AEMET . . . . . . . . . . . . . . . . . . . . . . . . . 67
8.5. Solicitud de datos a la BVMC . . . . . . . . . . . . . . . . . . . . . . . . . 68
8.6. Proxy BVMC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
8.7. Pedir predicción del horóscopo . . . . . . . . . . . . . . . . . . . . . . . . 70
8.8. Detectar idioma del texto a traducir . . . . . . . . . . . . . . . . . . . . . 70
8.9. Traducir texto a otro idioma . . . . . . . . . . . . . . . . . . . . . . . . . 71
8.10. Buscar noticias de actualidad . . . . . . . . . . . . . . . . . . . . . . . . . 71
8.11. Obtener v́ıdeos del canal de YouTube de la BVMC . . . . . . . . . . . . . 71
8.12. Obtener resultados de una búsqueda de páginas web . . . . . . . . . . . . 72
8.13. Backend creado para hacer llamadas a la API de Twitter (server.js) . . . 74
8.14. Backend creado para hacer llamadas a la API de Twitter (config.js) . . . 74
8.15. Backend creado para hacer llamadas a la API de Twitter (functions.js) . . 75
8.16. Llamadas al backend para obtener los últimos tweets de la BVMC . . . . 76
8.17. Código HTML para poner un ancla a una respuesta del asistente . . . . . 77
8.18. Código TypeScript para poner un ancla a una respuesta del asistente . . . 77
8.19. Código TypeScript para hacer funcionar el enlace ancla añadido . . . . . . 77
8.20. Código HTML para visualizar elemento 3D . . . . . . . . . . . . . . . . . 78
8.21. Código añadido en TypeScript para visualizar elemento 3D . . . . . . . . 78
8.22. Usar clickOutside para saber si se ha hecho click fuera del asistente . . . . 79
8.23. Servicio para usar el motor gráfico 1 . . . . . . . . . . . . . . . . . . . . . 80
8.24. Servicio para usar el motor gráfico 2 . . . . . . . . . . . . . . . . . . . . . 81
8.25. Servicio para usar el motor gráfico 3 . . . . . . . . . . . . . . . . . . . . . 82
8.26. Modelo BusquedasAutor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
8.27. Controlador BusquedasAutor . . . . . . . . . . . . . . . . . . . . . . . . . 85
8.28. Añadir las rutas para el controlador BusquedasAutor . . . . . . . . . . . . 85
8.29. Migración BusquedasAutor . . . . . . . . . . . . . . . . . . . . . . . . . . 86
8.30. Factory BusquedasAutor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
8.31. Seeder BusquedasAutor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
8.32. Servicio BusquedasAutor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
8.33. Usar desde TypeScript el servicio BusquedasAutor . . . . . . . . . . . . . 89
8.34. Consulta SQL para obtener datos de la tabla interactions desde Grafana . 90
9.1. Unit Testing: BusquedasAutorTest . . . . . . . . . . . . . . . . . . . . . . 94
xxi
xxii Índice de Listados
C.1. Consulta SPARQL a Wikidata (Obras de Miguel de Cervantes Saavedra) 123
C.2. Consulta SPARQL a Wikidata (Padres de Miguel de Cervantes Saavedra) 123
C.3. Consulta SPARQL a Wikidata (Nacimiento Miguel de Cervantes Saavedra)124
C.4. Consulta SPARQL a Wikidata (Muerte Miguel de Cervantes Saavedra) . 124
C.5. Consulta SPARQL a Wikidata (Foto Miguel de Cervantes Saavedra) . . . 124
C.6. Consulta SPARQL a Wikidata (Información variada sobre Miguel de Cer-
vantes Saavedra) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
C.7. Consulta SPARQL a la BVMC (Ediciones de la obra El ingenioso hidalgo
Don Quijote de la Mancha) . . . . . . . . . . . . . . . . . . . . . . . . . . 125
C.8. Consulta SPARQL a la BVMC (Obras almacenadas de cada idioma) . . . 126
C.9. Consulta SPARQL a la BVMC (Buscar obra; Ejemplo El ingenioso hidalgo
Don Quijote de la Mancha) . . . . . . . . . . . . . . . . . . . . . . . . . . 126
C.10.Consulta SPARQL a la BVMC (Buscar autor; Ejemplo Lope de Vega) . . 126
C.11.Consulta SPARQL a la BVMC (Buscar obras de cierto autor; Ejemplo
Lope de Vega) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
1. Introducción
Vivimos en un mundo de constante transformación digital impulsado en los últimos
años por la evolución del móvil y la Inteligencia Artificial (IA).
Los chatbots son solo un componente del entorno de IA y están apareciendo a un
ritmo rápido en toda la industria de la comunicación. Estos bots simples ayudan a
responder preguntas y completar tareas repetitivas en nombre de las empresas para
que los empleados puedan ser lo más productivos posible en el trabajo y los clientes
puedan disfrutar de un mejor servicio. De hecho, podemos ver evidencia de IA en casi
todos los entornos, desde nuestras interacciones con asistentes virtuales como Cortana
de Microsoft y Siri de Apple hasta nuestras conversaciones con chatbots.
Esto ha supuesto un gran impacto hacia el lado del cliente sobre todo debido a la
constante disponibilidad, a su respuesta instantánea y a su fácil acceso. Los chatbots
pueden estar operativos los 365 d́ıas del año y las 24 horas del d́ıa, lo que les permite
atender a sus clientes incluso mientras los miembros realizan otras tareas.
Los consumidores contemporáneos desean resultados inmediatos y se apoyan en las
empresas que ofrecen rapidez. Un estudio sobre la experiencia del usuario de chatbot
descubrió que al 40 por ciento de los consumidores no les importa si un humano o un
chatbot responde a sus preguntas siempre que reciban ayuda rápida1. Además, los usua-
rios pueden acceder fácilmente a los chatbots y se alejan cada vez más de las consultas
telefónicas tradicionales ya que desean que todo sea accesible al instante.
Hay diversos estudios que demuestran que la incorporación de la atención al cliente
habilitada por IA ha hecho que las empresas hayan ahorrado hasta un 30 por ciento en
costos. Además el uso de chatbots también puede impulsar el número de ventas de una
compañ́ıa. [Entrepreneur.com, 2018]
Todo esto es posible debido a que en el ámbito de la empresa actualmente se utiliza
Internet para almacenar información y distribuir la misma. Esto se ha ido incrementando
en
los últimos años de tal forma que existen muy pocas empresas, cada vez menos, que
no tienen su propia página web o aplicación de móvil desde la cual poder administrar
y controlar su negocio. Desde estas páginas web y aplicaciones móviles las empresas
pueden saber si están habiendo pérdidas, ganancias o incluso qué trabajadores producen
más que otros. Toda esta información se almacena en la base de datos perteneciente a
la propia empresa.
1https://www.hubspot.com/stories/artificial-intelligence
1
2
Hoy en d́ıa podemos contar con asistentes virtuales que aprovechan dicha información
para ofrecer una mejor experiencia de usuario. Son capaces de encontrar y acceder a in-
formación de manera rápida y eficaz con tan sólo ped́ırselo mediante el lenguaje natural,
es decir, mediante un mensaje de texto que escribe el usuario. Además, los asistentes
virtuales pueden proporcionar muchos otros tipos de servicios de soporte a los usuarios
o clientes, como soporte administrativo, resolución de problemas técnicos, ayuda con
aportes creativos y adquisición de clientes potenciales.
Las caracteŕısticas principales de los asistentes virtuales son que se encuentran dispo-
nibles las 24 horas del d́ıa a diferencia de las personas y que además, con las innovaciones
más recientes en sus habilidades y servicios, facilitan la expansión de cualquier negocio.
En definitiva, en cualquier campo o industria se ha aceptado que la implementación
de estrategias inteligentes aśı como la gestión adecuada del tiempo y los recursos son los
dos factores más importantes para el éxito. Pero hoy en d́ıa, a pesar del hecho de que
la tecnoloǵıa está evolucionando a un ritmo acelerado, los dueños de los negocios y las
empresas están cada vez más ocupados. Tienen más cosas que hacer y administrar el
tiempo de manera eficiente es casi imposible para ellos solos. Esta es la principal razón
por la cual los asistentes virtuales se están volviendo tan populares.
Tienen las habilidades y la experiencia necesarias para realizar tareas que los asistentes
normales no pueden hacer, y han demostrado ser capaces de manejar trabajos de manera
efectiva y rápida. Este año ha habido una creciente competencia en los negocios en ĺınea,
y cada vez más personas asumen el riesgo de convertirse en emprendedores. Debido a
que los asistentes virtuales son tan efectivos y útiles, especialmente para las pequeñas
empresas, tendrán aún más demanda de aqúı en adelante. Tener un asistente virtual
puede agilizar el proceso de trabajo hasta el punto en el que este fluye casi sin problemas,
y para un negocio que acaba de comenzar, esto es algo crucial. [Squarefishinc.com, 2018]
Existen tres diferencias fundamentales entre los asistentes virtuales y los chatbots: la
forma de desarrollo de estas tecnoloǵıas es distinta, no llevan a cabo las mismas funciones
y no se desarrollan en el mismo entorno.
La principal diferencia es que los asistentes virtuales son creados por las grandes
compañ́ıas tecnológicas con una ambición muy concreta: convertirse en nuestro asistente
personal, resolviendo todas las dudas que puedan surgir en cualquier momento. De todas
formas, cualquier compañ́ıa puede poner en marcha un chatbot. Para ello lo único que
necesita es ponerse en contacto con empresas especializadas que se encarguen de su
creación y entrenamiento. El objetivo de estas empresas a la hora de crear el asistente
es dinamizar sus comunicaciones empresariales y automatizar la relación con los cliente
en un formato conversacional al que todos estamos acostumbrados, el chat.
Otra de las diferencias es que si bien el objetivo de los asistentes virtuales es amplio, el
de los chatbots es más espećıfico. Los chatbots se crean con la finalidad de resolver una
acción clara con un objetivo concreto. Suele estar enfocada a la resolución de preguntas
Introducción 3
frecuentes, aligerar el grueso de trabajo a los centros de contacto o la captación de leads.
Y además la otra diferencia se resume en que a pesar de que ambos han nacido como
consecuencia del auge de la tecnoloǵıa conversacional, chatbots y asistentes virtuales
no se integran en los mismos entornos. Mientras que los asistentes virtuales nacen en
śı mismos como una nueva aplicación en el móvil y se alojan en un entorno completa-
mente novedoso que ya se conoce como Home Speakers o Home Devices, como Google
Home, Amazon Echo o HomePod de Apple, los chatbots se desarrollan en páginas webs,
apps de mensajeŕıa, redes sociales o aplicaciones. Estos dispositivos son una nueva pla-
taforma por explotar para la introducción de chatbots y convertirse en el alma de los
Smart Speakers, que pronto formarán parte del mobiliario habitual de cualquier hogar.
[Foromarketing.com, 2018]
Existen, además, multitud de instituciones que publican datos abiertos. Tanto algunos
asistentes virtuales como chatbots consumen este tipo de datos para ofrecer respuestas
al usuario más elaboradas y con información actualizada[Link.springer.com, 2019]. Un
ejemplo son las bibliotecas digitales, como la BVMC, y Wikidata. Estos datos son com-
plejos de reutilizar debido a que se precisan conocimientos del lenguaje de consulta para
web semántica SPARQL. Hay una nueva tendencia que promueve la reutilización de las
colecciones digitales publicadas por organizaciones de patrimonio cultural como archivos,
museos y bibliotecas denominada GLAM Labs2.
De forma paralela, han aparecido numerosas plataformas que facilitan la creación y
publicación de chatbots y de asistentes virtuales. Estas pueden ser frameworks, herra-
mientas online o lenguajes de programación. Tras el desarrollo de uno de ellos, se ha de
validar realizando pruebas unitarias y pruebas con usuarios reales.
Este proyecto consiste en el desarrollo de un asistente virtual basado en la BVMC.
Al ser creado concretamente para el sitio web de la biblioteca este proyecto podŕıa
considerarse un chatbot pero, como además de ofrecer las funcionalidades de resolver
dudas y ofrecer contenido de la biblioteca también tiene otras implementadas para su
uso cotidiano por parte de los usuarios, se le ha considerado un asistente virtual.
La propuesta, por tanto, está enfocada a integrar un asistente virtual para optimizar
los procesos de búsqueda de la BVMC. Principalmente para ayudar a las personas que
tienen dificultades para orientarse en su web pero también para agilizar este trabajo
a cualquier usuario que utilice sus servicios. Al asistente se le ha llamado Catalina en
honor a quien fue la esposa de Miguel de Cervantes. El asistente facilita el acceso a toda
la información de la biblioteca y además la completa gracias a lo que nos ofrece Wikidata
y a varias APIs externas con las que se comunica.
2https://glamlabs.io/
2. Viabilidad
Se ha realizado un estudio de viabilidad del proyecto con el objetivo de definir cada
uno de los puntos clave del sistema. Examinar a fondo todas las cuestiones y evaluar su
probabilidad de éxito antes de iniciar el proyecto nos hace tener una mejor perspectiva
del mismo y aumentar la probabilidad de éxito al descubrir los distintos factores que,
desde el principio, podŕıa afectar al proyecto y perjudicar a sus resultados.
2.1. Modelo de negocio, Lean Canvas
Figura 2.1.: Análisis Lean Canvas
Para ello se utiliza Lean Canvas, que es una plantilla de plan de negocios de 1 pági-
na que ayuda a deconstruir una idea en sus supuestos clave utilizando 9 bloques de
5
6 2.1. Modelo de negocio, Lean Canvas
construcción básicos. [Ask.leanstack.com, 2019]
El Lean Canvas propuesto para el proyecto queda reflejado en la Figura 2.1.
2.1.1. Segmentos de mercado
Los segmentos de mercado es una especie de clasificación de los clientes que va a tener
nuestro negocio. Básicamente es responder a la pregunta ¿Qué caracteŕısticas debe
tener una persona o empresa para convertirse en mi cliente potencial?
[Emprender-facil.com, 2018]
Tal como señala su nombre, los early adopters son aquellos
primeros clientes que
adoptan un producto determinado. Los early adopters tienen problemas espećıficos y
están a la búsqueda de productos que puedan solucionarlos, por ello son los primeros
clientes. A ellos no les importa si el producto es perfecto, incluso están dispuestos a
escribir acerca del producto para dar ideas de cómo mejorarlo, es decir crean un
feedback con la empresa. [Destinonegocio.com, 2015]
Para el asistente los early adopters, o usuarios ideales, seŕıan clientes de bibliotecas
virtuales con un catálogo online. Básicamente son usuarios de las bibliotecas.
Este asistente virtual va a estar diseñado en concreto para la BVMC pero también
podŕıa modficarse ligeramente para poder ser utilizado en otras bibliotecas virtuales.
2.1.2. Problema
Básicamente en esta sección se trata de identificar cuales son los problemas que mi
producto resuelve al usuario y al cliente ya que los problemas de los clientes serán
distintos a los problemas de los usuarios. En este caso el problema que podŕıan tener
los clientes seŕıa tener interfaces costosas y dif́ıciles de adaptar a la actualidad para dar
a nuestros usuarios mucha información que no se sabe que está. Por ello la decisión de
integrar el asistente puede arreglar esto.
En cambio los problemas que el asistente resuelve a los usuarios son la dificultad de
encontrar la información que el usuario desea, además de agilizar el proceso, y el
desconocimiento por parte del mismo de conocer qué les ofrece la web.
Cuando un usuario interacciona con el buscador y no encuentra el contenido que esta
buscando o este se encuentra incompleto este se frustra por lo tanto no se encontrará
satisfecho sobre la experiencia que ha tenido. Esto lleva a un desconocimiento de si el
contenido es óptimo, entendible y de buena calidad. Por ello a través del asistente se
busca resolver este problema.
Viabilidad 7
2.1.3. Propuesta de valor única
La propuesta de valor única debe definir los productos o servicios que se ofrecen a un
segmento de clientes pero, sin embargo, no se han de destacar sus caracteŕısticas sino
más bien se ha de hacer hincapié en los beneficios que les aportamos a los clientes y en
los factores que nos diferencian de la competencia. [Emprender-facil.com, 2019]
Por ello indicar que el asistente ofrece acceso rápido a la información de la biblioteca,
otros servicios para uso cotidiano, monitorización del uso del asistente a los
administradores y resolución de dudas. Todo esto es lo que propone el proyecto que
aportará ese beneficio al usuario y que nos diferenciará de otros asistentes virtuales y
chatbots para bibliotecas virtuales.
2.1.4. Solución
Para obtener una solución al problema con el que se pueden encontrar los clientes
está el realizar una interfaz atractiva de cara al usuario y trabajar su funcionamiento
interno para poder ofrecer la información, la cual puede desconocer el usuario, de una
manera sencilla y eficaz mejorando aśı la UX (experiencia de usuario).
Respecto a solucionar los problemas que podŕıan tener los usuarios, el asistente
agiliza las búsquedas de los recursos que tiene la biblioteca mediante el uso del lenguaje
natural ya que la base de toda relación humana es la comunicación y si dotamos a la
web de esta ayudará no solo a personas con un gran desconocimiento de la informática
y la web sino también a aquellos usuarios más cómodos y que deseen tenerlo todo a su
alcance con el menor número de clics posibles. Además tiene la capacidad de resolver
dudas al usuario acerca del sitio web. Es necesario entrenar al asistente virtual para
mejorar el número de respuestas válidas que este sea capaz de devolver al usuario.
Registrar y poder analizar los eventos o interacciones que hacen los usuarios es
necesario para que la comunidad de la biblioteca virtual siga creciendo ya que permite
saber si realmente el asistente está siendo utilizado o no y lo mismo para cada uno de
los servicios que este ofrece. Conocer esta información ayuda a los administradores a
plantearse si el asistente necesita ser modificado, actualizado o está teniendo éxito.
Esta información recogida es monitorizada mediante cuadros de mando para facilitar
su visualización y entendimiento.
Además hay diversas funcionalidades exclusivas del asistente que ofrecen información
para uso cotidiano como, por ejemplo, la posibilidad de obtener la predicción del
tiempo en España o de traducir un texto a otro idioma.
8 2.1. Modelo de negocio, Lean Canvas
2.1.5. Canales
Lo primero a tener en cuenta es que es exclusivamente online ya que será únicamente
accesible desde la propia web corporativa de la BVMC.
Además se utilizaran las RRSS (Redes sociales) para anunciar la disponibilidad del
nuevo servicio de asistencia virtual para aquellos que no sepan de su existencia. Esto
último se realizará en cuanto esté disponible dicho asistente. Esto se anunciará sobre
todo a través de Twitter ya que es una de las redes sociales más utilizadas por la
biblioteca.
2.1.6. Estructura de costes
El mayor coste para este trabajo se centra en el valor del tiempo. Estudio de la
tecnoloǵıa, el tiempo que dura el desarrollo del mismo y la realización de pruebas para
aśı validar el proyecto.
Si se quisiera más adelante mantener el proyecto actualizado y con la idea de
monetizarlo ya a los costes previos se les añadiŕıan costes de recursos humanos,
licencias y servidores.
2.1.7. Métricas clave
Se generan un conjunto muy reducido de indicadores que luego ayudan a la toma de
decisiones, estos son los KPIs:
El número de usuarios que han utilizado el asistente virtual durante un cierto
periodo de tiempo.
El siguiente es la cantidad de veces que se ha solicitado realizar búsquedas de un
autor a través del asistente virtual durante un cierto periodo de tiempo.
La cantidad de veces que se ha solicitado realizar búsquedas de una obra a través
del asistente virtual durante un cierto periodo de tiempo.
La cantidad de veces que se ha solicitado realizar búsquedas de las obras de
cierto autor a través del asistente virtual durante un cierto periodo de tiempo.
La cantidad de veces que se ha solicitado realizar búsquedas de páginas web en
Internet a través del asistente virtual durante un cierto periodo de tiempo.
La cantidad de veces que se han solicitado las diferentes ediciones del quijote
almacenadas en la biblioteca a través del asistente virtual durante un cierto
periodo de tiempo.
Viabilidad 9
La cantidad de veces que se ha solicitado la predicción diaria del horóscopo a
través del asistente virtual durante un cierto periodo de tiempo.
La cantidad de veces que se han solicitado noticias de actualidad a través del
asistente virtual durante un cierto periodo de tiempo.
La cantidad de veces que se han solicitado las obras almacenadas en la biblioteca
en un idioma en concreto a través del asistente virtual durante un cierto periodo
de tiempo.
La cantidad de veces que se ha solicitado la predicción del tiempo en España del
d́ıa actual o del d́ıa siguiente a través del asistente virtual durante un cierto
periodo de tiempo.
La cantidad de veces que se ha solicitado realizar una traducción de un texto a
través del asistente virtual durante un cierto periodo de tiempo.
La cantidad de veces que se han solicitado los últimos tweets publicados en la
cuenta de Twitter de la BVMC a través del asistente virtual durante un cierto
periodo de tiempo.
La cantidad de veces que se han solicitado v́ıdeos publicados en la cuenta de
YouTube de la BVMC a través del asistente virtual durante un cierto periodo de
tiempo.
La cantidad de veces que se han solicitado datos de Wikidata a través del
asistente virtual durante un cierto periodo de tiempo.
Se comenzará a ver si hay o no hay una mayor interacción con el contenido a través
del asistente. Si hay una mayor interacción con el contenido significará que se habrán
mejorado alguna de sus decadencias y ahora es una web que ha facilitado
el acceso a
sus recursos y que estos son consultados con más frecuencia. Si aumentan las visitas a
la web y el tiempo de estancia de los usuarios en la misma significará que el asistente
ha cumplido con su fin.
Añadir que el periodo de tiempo del que se muestren los datos referenciados en los
KPIs se podrá modificar libremente en los cuadros de mando resultantes de los
mismos. Estos fueron implementados con la ayuda de la herramienta Grafana a la cual
se hará referencia más adelante.
2.1.8. Fuentes de ingreso
Aunque inicialmente este trabajo es académico y no tiene carácter económico, se
identifica una forma de monetizar el producto. Esta consiste en su integración en
diferentes bibliotecas virtuales. Si en la BVMC tiene éxito otras bibliotecas virtuales
10 2.2. Análisis DAFO
podŕıan solicitar un servicio similar para ellas. Tan sólo habŕıa que adaptar ligeramente
el asistente y sin mucho trabajo contaŕıan con una nueva versión para cada una de ellas.
2.1.9. Ventaja especial
Empresas de gran relevancia han apostado por esta tecnoloǵıa como Google, Apple,
Amazon o Microsoft con sus asistentes virtuales (Asistente de Google, Siri, Alexa y
Cortana respectivamente). Además se cuenta con contenido de la BVMC y de
Wikidata de donde el asistente sacará toda la información necesaria sobre los autores y
sus obras literarias.
2.2. Análisis DAFO
El DAFO (iniciales de Debilidades, Amenazas, Fortalezas y Oportunidades) es una
herramienta que permite al empresario realizar un análisis de la realidad de su empresa,
marca o producto para aśı poder tomar decisiones de futuro. [Dafo.ipyme.org, 2019]
En mi caso lo utilizaré para analizar este proyecto. El análisis DAFO realizado es el
que se ve reflejado en la Figura 2.2.
2.2.1. Debilidades
Aun está en desarrollo este tipo de tecnoloǵıa y por lo tanto puede evolucionar
mucho de aqúı a futuros años. Además es bastante innovador el tener un asistente
virtual disponible para la página web de una empresa y no muchas lo tienen, por ello
las empresas todav́ıa no creen que pueda ser un canal. Además creen que pueden quitar
puestos de trabajo de los departamentos de Call Center.
Viabilidad 11
Figura 2.2.: Análisis DAFO
2.2.2. Amenazas
La primera de todas es la competencia ya que es posible que otras empresas
empiecen a hacer asistentes virtuales para otras bibliotecas virtuales y el valor añadido
que ofrece en la BVMC desaparezca. Otra amenaza es que está hecho únicamente para
bibliotecas virtuales por lo que no seŕıa extendible a otros mercados. Además también
es muy importante el tema de la seguridad para que no puedan modificar desde fuera
el comportamiento del asistente ni robar información privada a través del mismo.
2.2.3. Fortalezas
Mejora la experiencia de usuario actual en la biblioteca virtual ya que facilita el
acceso al contenido mediante lenguaje natural y gracias a esto también proporciona
información extra obtenida de APIs externas como la de Wikidata. Esto hace que la
comunicación con el usuario sea más eficiente y personalizada ya que el asistente puede
contestar a millones de usuarios al mismo tiempo y llevar conversaciones
independientes con cada uno de ellos.
12 2.3. Análisis de los riesgos
2.2.4. Oportunidades
Desde el asistente virtual se puede saber cuáles son los trámites y búsquedas más
realizadas por los usuarios desde este al igual que otra información valiosa para los
administradores de la biblioteca. Este servicio que ofrece el asistente también
aumentará la satisfacción de los usuarios con respecto a lo que ofrece la web sin el
mismo. El asistente además completará la información de la biblioteca con los datos
que ofrece la API de Wikidata. Añadir que encima los usuarios están, ya hoy en d́ıa,
acostumbrados a usar los chats.
2.3. Análisis de los riesgos
ORGANIZACIONAL
Posible riesgo Probabilidad Efectos
Mala planificación Moderada Serio
Tabla 2.1.: Riesgos sobre la organización
REQUERIMIENTOS
Posible riesgo Probabilidad Efectos Estrategias
BBDD: modificaciones en datos o tablas Moderada Catastrófico
1.Prevención:
Testeo y
corregir errores.
2.Minimización:
Hacerla lo más
flexible posible
3.Plan de
contingencia: se
rediseña el
modelo.
Tabla 2.2.: Riesgos sobre los requerimientos
Viabilidad 13
TECNOLOGÍA
Posible riesgo Probabilidad Efectos Estrategias
Dialogflow Baja Catastrófico
1.Prevención:
Hacer estudio
exhaustivo y
testeo.
2.Minimización:
Hacer una
planificación a
corto plazo
3.Plan de
contingencia:
pedir opinión a
una persona
externa.
Laravel Baja Serio
Angular Baja Serio
Express.js+Node.js Baja Serio
MySQL Baja Serio
SPARQL Moderada Serio
Grafana Baja Serio
Three.js Baja Serio
Tabla 2.3.: Riesgos sobre la tecnoloǵıa
ESTIMACIÓN
Posible riesgo Probabilidad Efectos
Mala organización de preferencias Baja Serio
Adición de nuevas tareas Moderada Serio
Tabla 2.4.: Riesgos sobre la estimación
14 2.3. Análisis de los riesgos
HERRAMIENTAS
Posible riesgo Probabilidad Efectos
Toggl: Versión gratuita incompleta Alta Tolerable
Git: Falta de formación Moderada Tolerable
Visual Studio Code: Mal manejo del programa Baja Tolerable
Postman: Falta de experiencia al utilizarlo Baja Tolerable
Apache y MySQL: Errores con el servidor y la BBDD locales Baja Serio
Blender: Necesidad de trabajar el modelado 3D Moderada Tolerable
Tabla 2.5.: Riesgos sobre las herramientas
PERSONAS
Posible riesgo Probabilidad Efectos
Errores en programación Moderada Tolerable
Falta de conocimientos Moderada Serio
Tiempo limitado Moderada Serio
Enfermedad Muy baja Tolerable
Tabla 2.6.: Riesgos sobre el personal
3. Objetivos
En este caṕıtulos se mencionan los objetivos generales y espećıficos planteados para
este TFG.
3.1. Generales
El objetivo general del proyecto es crear un asistente virtual para la BVMC que
mejore la experiencia de usuario del sitio web y facilite el acceso a los usuarios.
3.2. Espećıficos
El objetivo general mencionado en la sección anterior se puede dividir en 5 objetivos
espećıficos:
1. Realizar un estudio sobre el uso de asistentes virtuales en bibliotecas digitales y
sus contenidos.
2. Definir un conjunto de intenciones enfocado al dominio de bibliotecas que
satisfagan las consultas de los usuarios.
3. Diseñar e implementar un asistente que facilite el acceso a la información de una
biblioteca digital, consultando repositorios de datos abiertos enlazados.
4. Realizar la validación del asistente virtual a partir de un conjunto de usuarios.
5. Implementar un panel de administración para el asistente virtual.
15
4. Marco Teórico
En este caṕıtulo se revisa el estado de la cuestión sobre desarrollar un asistente
virtual que utilice datos abiertos para el sistema de información elegido para el trabajo,
la BVMC.
4.1. Asistentes virtuales
Un asistente virtual ayuda a los usuarios de sistemas computacionales,
automatizando y realizando tareas con la mı́nima interacción hombre-máquina.
Básicamente es un agente de software. Una persona se comunica usando la voz o
mediante texto por lo tanto la interacción que se da entre una persona y un asistente
virtual debe ser igual de natural. El usuario env́ıa un mensaje y el asistente virtual lo
procesa, interpreta y responde de la misma manera. [Wikipedia.org, 2020]
La mayoŕıa de asistentes virtuales y casualmente todos los de mayor éxito tienen
tanto nombre como timbre de voz femenino. Esto es debido a ciertos estudios que
demuestran que las mujeres sienten más confianza hablando con un asistente femenino
y que los hombres se sienten más atráıdos a utilizarlo de esta manera también.
Básicamente se basa en la psicoloǵıa humana el hecho de tomar la decisión de poner un
nombre femenino al asistente, se sabe que la gente lo va a utilizar más y hay datos
estad́ısticos que confirman esta teoŕıa por lo cual como interesa que el asistente sea
utilizado pues se le denomina con un nombre femenino.
Según una encuesta realizada
a principios de 2019 cerca del 90 por ciento de los
encuestados afirman que prefieren el asistente virtual Siri, propiedad de Apple, en su
vida diaria, mientras que un 11,6 por ciento opta por el asistente de Google, un 9,8 por
ciento por Alexa (Amazon), un 8,9 por ciento Cortana (Microsoft), un 6,5 por ciento
Bixby (Samsung) y un 2,5 por ciento Aura (Movistar). [Ipmark.com, 2019]
Si comparamos los 4 asistentes más utilizados según esta encuesta podemos sacar
ciertas conclusiones. Todos están siendo mejorados en cuanto a su comprensión como
en cuanto a las respuestas que ofrecen a los usuarios para sus preguntas. Esta
constante mejora es posible gracias a las empresas internacionales más grandes que
utilizan a personas para mejorar su IA.
17
18 4.1. Asistentes virtuales
Figura 4.1.: Asistentes virtuales más utilizados a principios de 2019
En diciembre de 2018 se le hicieron 800 preguntas tanto a Amazon Alexa como a
Apple Siri, a Google Assistant y a Microsoft Cortana. Google respondió el 88 por
ciento de las preguntas correctamente, mientras que Apple obtuvo el 75 por ciento,
Alexa obtuvo el 72.5 por ciento y Cortana entró con el 63 por ciento. Sin embargo, la
prueba fue en altavoces inteligentes y no en teléfonos inteligentes.
Aśı que se realizó una prueba similar de inteligencia, pero esta vez se centró
únicamente en las capacidades de asistente en el teléfono y además ya no evaluaron a
Cortana porque Microsoft decidió el año pasado que ya no era un competidor con
Alexa, Google Assistant y Siri.
La eliminación de Cortana y el aislamiento de los asistentes al uso de teléfonos
inteligentes no han cambiado el orden de las clasificaciones.
El Asistente de Google sigue en la cima, pero ahora con un puntaje de 92.9 por
ciento por responder preguntas correctamente. Siri responde correctamente el 83.1 por
ciento de las preguntas, mientras que Alexa obtiene el 79.8 por ciento de respuestas
Marco Teórico 19
correctas. [Zdnet.com, 2019]
Figura 4.2.: Comparación entre Google Assistant, Siri y Alexa
Como se puede observar en la Figura 4.2, Google Assistant supera a los otros dos en
todo excepto a Siri en comandos. A Alexa se le permite quedar por debajo de los demás
por el hecho de no estar integrada en dispositivos móviles, cosa que tanto Google
Assistant en Android como Siri en iOS lo están. Alexa vive en una aplicación de
terceros que puede enviar mensajes de voz y llamar a otros dispositivos Alexa pero no
puede enviar mensajes de texto, correos electrónicos o realizar una llamada telefónica.
Los asistentes virtuales también son muy útiles en el área de la educación. Pueden
mejorar la comunicación entre alumnos y profesores además de falicitar ciertos
trámites. Dos ejemplos son:
Tutor-bots1: La comunicación entre alumnos y profesores en las universidades se
ha basado en la comunicación presencial y tutoŕıas virtuales. Esta comunicación,
en general, se retrasa en el tiempo. Últimamente, gracias a los avances en IA, los
chatbots se han convertido en una realidad en las aplicaciones de mensajeŕıa y en
las redes sociales. Con respecto a la aplicación de las TIC en un contexto
educativo, y en el caso particular de UACloud en la Universidad de Alicante, la
aplicación de este chatbot en la enseñanza facilita el trabajo de los profesores
proporcionando respuestas inmediatas a los alumnos. Este prototipo de chatbot
se ha entrenado a través de un conjunto de tutoŕıas. Estas tutoŕıas han sido
1http://rua.ua.es/dspace/handle/10045/99373
20 4.2. Fuentes de datos
facilitadas por distintos profesores. Tras la realización de un análisis de las
tutoŕıas, se han diseñado los distintos flujos de conversación. Según el tipo de
tutoŕıa se han extráıdo y clasificado las distintas frases de entrenamiento han sido
extráıdas y clasificadas. Esto ha permitido finalmente establecer las diferentes
intenciones.
Chatbot UA2: Aitana es la nueva herramienta que han desarrollado desde la
Escuela Politécnica Superior y el Grupo de Procesamiento y Sistemas de
Información a petición del Vicerrectorado de Campus y Tecnoloǵıa y a la cual los
estudiantes ya pueden acceder a través de Telegram para guiarlos en el proceso
de matŕıcula, capaz de realizar análisis del lenguaje y comprender lo que busca el
usuario mientras interactúa con este. Ahora mismo las funcionalidades que cubre
Aitana se centran en ayudar con el proceso de matriculación, informar de la
documentación necesaria, sobre las notas de corte o las becas.
4.2. Fuentes de datos
Instituciones de todo tipo han comenzado a publicar sus datos en abierto pudiendo
ser reutilizados de múltiples formas. Los repositorios basados en Web Semántica
proporcionan una fuente rica para alimentar y entrenar un asistente virtual. Un claro
ejemplo son las bibliotecas nacionales que ofrecen su contenido para que aplicaciones
de terceros puedan acceder a él y utilizarlo.
Las instituciones relacionadas con el patrimonio cultural recientemente se han
centrado en la reutilización de sus colecciones digitales organizadas por la comunidad
GLAM Labs. En este contexto, un Lab es un espacio f́ısico o digital para el desarrollo y
la experimentacion de las nuevas ideas a través del pensamiento disruptivo y la
generación de oportunidades.
4.2.1. La Web Semántica y la definición de los datos
La Web ha ido cambiando la forma en la que la sociedad trabaja y comunica.
Permite la comunicación con cualquier persona del mundo en cualquier momento del
d́ıa y a muy bajo coste. También se pueden realizar transacciones económicas a través
de Internet y acceder a millones de recursos independientemente de nuestro idioma y
situación geográfica. Los factores comentados han contribuido al éxito de la Web pero,
al mismo tiempo, también han originado sus principales problemas: sobrecarga de
información y heterogeneidad de fuentes de información con el consiguiente problema
de interoperabilidad.
2https://web.ua.es/es/actualidad-universitaria/2019/julio19/8-14/un-sistema-de-inteligencia-artificial-
guiara-a-los-alumnos-en-el-proceso-de-matriculacion-en-la-universidad-de-alicante.html
Marco Teórico 21
La Web Semántica permite a los usuarios delegar tareas en software resolviendo aśı
estos dos problemas. El software es capaz de procesar, razonar y combinar con su
contenido además de realizar deducciones lógicas para resolver de manera automática
problemas cotidianos.
La Web Semántica es, por lo tanto, una Web extendida dotada de mayor significado
en la que cualquier usuario en Internet podrá encontrar respuestas a sus preguntas de
forma más sencilla y veloz gracias a una información mucho mejor definida. Al dotar a
la Web de más semántica se pueden obtener soluciones a problemas habituales en la
búsqueda de información gracias a que este tipo de webs utilizan una infraestructura
común. Esta arquitectura hace posible compartir, procesar y transferir información de
forma sencilla. Todos los problemas que puede ocasionar una Web carente de
semántica, debido a la dificultad que algunas veces puede tener el buscar cierta
información, se resuelven gracias a esta Web extendida y basada en el significado que
se apoya en lenguajes universales. [W3c.es, 2005]
Para obtener una adecuada definición de los datos, la Web Semántica utiliza
esencialmente RDF, SPARQL y OWL, mecanismos que ayudan a convertir la Web en
una infraestructura global con la posibilidad de compartir y reutilizar documentos y
datos entre diferentes tipos de usuarios:
Resource Description Framework (RDF) es un mecanismo que proporciona
información descriptiva simple sobre los recursos que se encuentran en la Web.
Este se utiliza en catálogos de libros, directorios, colecciones personales de
música, fotos, eventos, etc.
SPARQL Protocol and RDF Query Language (SPARQL) es un lenguaje de
consulta sobre los recursos RDF. Permite hacer búsquedas y obtener los recursos
de la Web Semántica incluso utilizando distintas fuentes datos.
Web Ontology
Language (OWL) sirve para desarrollar vocabulario o temas
espećıficos a los que asociar los recursos. Lo que hace, básicamente, es
proporcionar un lenguaje para definir ontoloǵıas estructuradas que pueden ser
utilizadas a través de diferentes sistemas. Las ontoloǵıas son utilizadas por
aplicaciones que necesitan compartir información espećıfica aunque también por
los usuarios y las bases de datos. Varios ejemplos seŕıan en campos determinados
como el de las finanzas, medicina, deporte, etc. ya que estas se encargan de
definir términos que se utilizan para representar y describir un área de
conocimiento. Las ontoloǵıas incluyen definiciones de conceptos básicos de un
campo determinado y las relaciones entre ellos.
A continuación se explican con mayor claridad los dos primeros mecanismos, es
decir, el que la manera de ordenar la información almacenada sea mediante tripletas en
RDF y el que para consultar estos datos se utilice el lenguaje SPARQL:
22 4.2. Fuentes de datos
RDF es un conjunto de especificaciones de la World Wide Web Consortium
(W3C) que se diseño en sus oŕıgenes para metadatos como un modelo de datos.
Se ha llegado a utilizar, para la descripción conceptual o modelado de la
información, como un método general que se implementa en los recursos web.
Este utiliza una variedad de notaciones de sintaxis y formatos de serialización de
datos. Los enfoques de modelado conceptual clásicos como entidad-relación o
diagramas de clases son similares al del modelo de datos RDF. Esto se debe a que
se basa en la idea de hacer declaraciones sobre los recursos (en particular,
recursos web) en forma de expresiones sujeto-predicado-objeto. Estas expresiones
son conocidos como triples o tripletas en terminoloǵıa RDF. El sujeto indica el
recurso y el predicado denota rasgos o aspectos del recurso y además expresa una
relación entre el sujeto y el objeto. Por ejemplo, una forma de representar la idea
de El cielo tiene el color azul en RDF es como la tripleta de un sujeto que denota
el cielo, un predicado que denota tiene el color y un objeto que denota azul. Por
lo tanto RDF cambia objeto por sujeto que se utilizaŕıa en la notación clásica de
un modelo entidad-atributo-valor en diseño orientado a objetos, objeto (el cielo),
atributo (color) y el valor (azul). RDF es un modelo abstracto que tiene varios
formatos de serialización, por lo que la forma particular en que se codifica una
tripleta vaŕıa de un formato a otro. Añadir que este mecanismo es un importante
componente de la actividad de la Web Semántica de W3C ya que permite
evolucionar la Web convencional permitiendo almacenar, intercambiar y utilizar
información que es legible por máquinas que se distribuyen a través de la Web, lo
que a su vez, permite que los usuarios sean capaces de manejar la información
con mayor eficiencia y seguridad. El modelo de datos simple de RDF y la
capacidad de modelar diferentes conceptos abstractos, también ha permitido que
crezca su uso en la gestión de aplicaciones que no están relacionadas con la
actividad de la Web Semántica. [W3.org, 2014]
Por otro lado, SPARQL es un lenguaje estandarizado para la consulta de grafos
RDF. Se encuentra normalizado por el RDF Data Access Working Group
(DAWG) del W3C. En el desarrollo de la Web Semántica es necesaria esta
tecnoloǵıa y se constituyó como recomendación oficial del W3C. Como sucede
con SQL, es necesario que se distinga entre el motor para el almacenamiento y
recuperación de los datos y el lenguaje de consulta. Debido a esto, existen
diversas implementaciones de SPARQL. Estas generalmente están ligadas a
entornos de desarrollo y plataforma tecnológicas. Supuestamente SPARQL sólo
incorpora funciones para la recuperación de sentencias RDF pero algunas
propuestas también incluyen operaciones para el mantenimiento (creación,
modificación y borrado) de datos. [W3.org, 2013]
Marco Teórico 23
Figura 4.3.: Ejemplo que muestra cómo se convierte una consulta SQL a SPARQL
En la Figura 4.3 se observa como seŕıa tanto con el lenguaje de consulta SQL
(arriba) como con el lenguaje de consulta SPARQL (abajo) solicitar el nombre, la edad
y el tipo de empleado de las personas registradas en la base de datos (en el caso de
SQL) o en el repositorio de datos abiertos (en el caso de SPARQL). En el caso de la
consulta SQL se relacionan las tablas Persona y Empleado mediante el identificador ya
que se tiene una clave ajena. En el caso de SPARQL se basa en las tripletas RDF para
llegar a conectar los datos y mostrar finalmente lo que se solicita.
4.2.2. Bibliotecas digitales
Numerosas bibliotecas han publicado sus datos en abierto con el objetivo de ser
reutilizadas y enriquecidas como por ejemplo:
Biblioteca Nacional de España (BNE)3: La BNE consiste en un organismo
autónomo encargado del depósito de todo el patrimonio bibliográfico y
documental de España. Está dedicada a reunir, catalogar y conservar fondos
bibliográficos. La BNE custodia alrededor de treinta millones de publicaciones
producidas en territorio nacional. Las publicaciones almacenadas datan desde
comienzos del siglo XVIII hasta la actualidad. Estas son libros, revistas, mapas,
grabados, dibujos, partituras y folletos. La BNE difunde este patrimonio
bibliográfico a través de su catálogo y de la elaboración de la Bibliograf́ıa
Española y desarrolla servicios al público que van desde los servicios de
información bibliográfica especializada y el préstamo interbibliotecario, a las salas
de consulta y los servicios a distancia a través su página web. La biblioteca
3http://datos.bne.es/inicio.html
24 4.2. Fuentes de datos
propone al usuario un nuevo modo de acercarse a las colecciones y recursos de la
BNE. Esta es mediante la publicación de sus datos como Linked Open Data,
basado en tecnoloǵıas y estándares de la Web. Dispone de su propio SPARQL
endpoint para facilitar el acceso desde aplicaciones remotas.
Biblioteca Nacional de Francia (BNF)4: Se estima que cuenta con treinta millones
de volúmenes. La BNF ofrece sus recursos reuniendo en una sola página toda la
información de sus diversos catálogos, aśı como su biblioteca digital Gallica. Para
ello se utilizan herramientas basadas en Web Semántica, como SPARQL, desde
las cuales se tiene acceso a sus datos abiertos.
BVMC5: Es un proyecto de biblioteca digital a gran escala, alojado y mantenido
por la Universidad de Alicante. Comprende el repositorio de acceso abierto más
grande de textos y literatura históricos digitalizados en español del mundo
iberoamericano. Cuando se lanzó oficialmente en 1999, la BVMC fue el primer
archivo digital de textos en español en Internet, reproduciendo inicialmente unas
2.000 obras individuales de 400 de los autores más importantes de la literatura
española, latinoamericana e hispana. Desde su inicio, en 1999, esta biblioteca ha
optado por aplicar un marcado estructural basado en XML y el esquema de
codificación TEI para la creación de sus documentos. Actualmente su catálogo
está compuesto por 230.000 registros bibliográficos, de los cuales unos 60.000 son
libros, aunque también ofrece estudios cŕıticos y de investigación, materiales
históricos, periódicos y revistas, audiovisuales, v́ıdeos en lengua de signos
española, archivos sonoros, etc. Las entradas en el catálogo se han migrado
recientemente a una nueva relación de base de datos cuyo modelo de datos se
adhiere a los modelos conceptuales promovidos por la Federación Internacional de
Asociaciones e Instituciones de Bibliotecas (IFLA), en particular, según las
especificaciones FRBR y FRAD. El contenido de la base de datos ha sido
mapeado posteriormente a tripletas RDF que emplean básicamente el
vocabulario RDA (Descripción de recursos y acceso) para describir las entidades,
aśı como sus propiedades y relaciones. A esta descripción semántica del catálogo
basada en RDF se puede acceder de manera online a través de una interfaz que
admite la navegación y la búsqueda de información.
Debido a su naturaleza
abierta, estos datos públicos se pueden vincular y utilizar fácilmente para nuevas
aplicaciones creadas por desarrolladores e instituciones externas.
[Semanticwebjournal.net, 2016]
British National Bibliography (BNB)6: La BNB registra la actividad editorial del
Reino Unido y la República de Irlanda. Tradicionalmente se inclúıan únicamente
trabajos impresos pero recientemente se ha extendido a publicaciones electrónicas
o digitales. El conjunto de datos incluye metadatos sobre libros ya publicados y
4https://data.bnf.fr/
5http://data.cervantesvirtual.com/blog/
6https://bnb.data.bl.uk/
Marco Teórico 25
sobre libros en preparación, publicaciones de revistas o de periódicos, etc. Linked
Open BNB ofrece gran parte de la bibliograf́ıa nacional británica completa.
Incluye libros publicados (incluidas monograf́ıas publicadas a lo largo del
tiempo), publicaciones en serie y libros nuevos y futuros que representan
aproximadamente 4,4 millones de registros. Estos datos abiertos vinculados están
disponibles a través de los servicios SPARQL. Se proporcionan dos interfaces
diferentes para acceder a ellos: un editor SPARQL online y un servicio endpoint
con SPARQL para consultas remotas.
Los repositorios de datos abiertos publicados por las bibliotecas pueden ser una fuente
de conocimiento para poder proporcionar información a los usuarios y ofrecerles sus
servicios. Sin estas bases de conocimiento los asistentes no tendŕıan ninguna forma
rápida, sencilla y efectiva de obtener información actualizada sobre obras y autores por
lo que seŕıan mucho más tediosos de desarrollar. Las bibliotecas todav́ıa no explotan en
forma de chatbot sus repositorios semánticos. Sin embargo, algunos ejemplos como KB
Lab bot7 śı lo hacen. KB Lab bot accede a una selección de imágenes que están
disponibles en el sitio web Geheugen van Nederland (Memoria de los Páıses Bajos).
Este sitio web es una base de datos que contiene pinturas, dibujos, fotograf́ıas,
esculturas, cerámicas, sellos, carteles y recortes de periódicos de más de un centenar de
museos, archivos y bibliotecas holandesas. Además, las imágenes mostradas desde KB
Lab Bot están libres de derechos de autor.
7https://lab.kb.nl/tool/kb-lab-bot
26 4.2. Fuentes de datos
Figura 4.4.: Funcionamiento del KB Lab Bot
En la Figura 4.48 se observa a KB Lab Bot funcionando desde un dispositivo móvil.
El usuario le solicita una imagen y este se la muestra.
Remarcando la reutilización de las colecciones digitales, recientemente ha sido
publicado el libro Open a GLAM Lab [Mahey et al., 2019] que describe el concepto de
laboratorio en una institución de patrimonio cultural, los pasos para crearlo y un
conjunto de ejemplos y casos de uso.
8https://www.kb.nl/blogs/digitale-geesteswetenschappen/the-making-of-the-kb-lab-bot
Marco Teórico 27
4.2.3. Wikidata
Wikidata es una base abierta de conocimiento libre que puede ser léıda y editada por
tanto seres humanos como por boots. [Wikidata.org, 2019] Sus principales objetivos
son el almacenamiento central para los datos estructurados de sus proyectos hermanos
Wikimedia (Wikipedia, Wikivoyage. . . ), proporcionar un sistema colaborativo para
almacenar información estructurada, incluye interrelaciones con otros conjuntos de
datos abiertos y proporcionar una interfaz pública para realizar consultas ricas en
datos.
Un ejemplo de asistente virtual que utiliza información de Wikidata es Chatbol
[Segura et al., 2018]. Chatbol es un chatbot social relacionado con el fútbol. Tiene
como objetivo responder una amplia variedad de preguntas relacionadas con la liga
española de fútbol. Se comunica mediante texto con los usuarios. Uno de los
componentes principales de Chatbol, un bloque NLU, está capacitado para extraer los
intents y las entidades asociadas relacionadas con preguntas de los usuarios sobre
jugadores de fútbol, equipos, entrenadores y partidos. La información para las
entidades se obtiene haciendo consultas SPARQL al sitio de Wikidata en tiempo real.
Tras ello, los datos recuperados se utilizan para actualizar las respuestas espećıficas del
chatbot. Como estrategia alternativa, se incorporó un motor de conversación basado en
la recuperación al sistema del chatbot. Este permite una mayor variedad y libertad de
respuestas, también orientadas al fútbol, para el caso en el que el módulo NLU no pudo
responder con gran confianza al usuario. La base de datos de respuesta basada en la
recuperación se compone de conversaciones reales recopiladas tanto de un canal de
fútbol IRC como de extractos relacionados con el fútbol seleccionados en subt́ıtulos de
peĺıculas, extráıdos de la base de datos de OpenSubtitles.
4.3. Tecnoloǵıas para implementar un asistente virtual
Hay multitud de maneras distintas de desarrollar un asistente virtual. Una de ellas
es utilizando ciertas plataformas como Xenioo9 para chatbots y Voiceflow10 para
voicebots. La parte negativa de estas plataformas es que la mayoŕıa están orientadas a
usuarios no técnicos y eso suele conllevar que el bot viva en sus servidores. Por ello lo
más probable es que no interese que el funcionamiento de un chatbot dependa de una
empresa que podŕıa no durar mucho.
Para bots pequeños o que se basen principalmente en proveer contenido, utilizar una
plataforma es ideal, la lógica del bot es muy sencilla de estructurar, en muchas se
facilita un motor de entendimiento y se puede publicar en varios canales con solo
pulsar un botón.
9https://www.xenioo.com/en/
10https://www.voiceflow.com/
28 4.3. Tecnoloǵıas para implementar un asistente virtual
Sin embargo, es interesante utilizar un framework de desarrollo para casos más
complejos. Por ejemplo cuando usan una base de datos, servicios espećıficos o se
implementan con otro software. Los frameworks que hoy en d́ıa destacan más y son
más competitivos seŕıan Microsoft Bot Framework11, Dialogflow12 y Amazon Lex13. El
primero es la solución más completa y es ideal para grandes empresas con
desarrolladores que buscan personalizaciones serias y capacidades robustas. También es
la más potente, con un arsenal de conectividad detrás. El segundo es el servicio de
procesamiento y entendimiento de lenguaje natural que pertenece a Google, con menos
herramientas que su competidor de Microsoft, pero a su favor Dialogflow tiene que es
más ligero y sencillo de utilizar y que ofrece las funcionalidades necesarias para
desarrollar un asistente virtual de calidad. Y el tercero es la solución de Amazon para
competir en el sector de los chatbots, a pesar de ser los ĺıderes del mercado en
voicebots con Alexa, tener un servicio para plataformas de texto también es muy
importante para no quedarse atrás. [Planetachatbot.com, 2019]
Hay otras herramientas para el desarrollo de asistentes virtuales, especializados en
E-commerce, como por ejemplo Chatfuel, Bot para Facebook Messenger, Bots de
Telegram, ChatScript, Chattypeople, Pandorabots, Botsify y Rebot.me.
[Ecommerce-nation.es, 2018]
Por otro lado, Tensorflow es una libreŕıa de código abierto desarrollada por Google
para aprendizaje automático. [Tensorflow.org, 2020] Esta libreŕıa fue creada para poder
satisfacer las necesidades de aquellos sistemas que buscan ser capaces de detectar y
descifrar correlaciones y patrones análogos al aprendizaje y razonamiento utilizado por
los seres humanos. Por ello, utilizando Tensorflow, es posible construir y entrenar redes
neuronales. Actualmente es utilizado tanto en la investigación como en los productos
de Google frecuentemente reemplazando el rol de su predecesor de código cerrado,
DistBelief. TensorFlow fue originalmente desarrollado por el equipo de Google Brain
para uso interno en Google antes de ser publicado bajo la licencia de código abierto
Apache 2.0 en 2015.
Los lenguajes de programación más utilizados para el desarrollo de asistentes
virtuales son JAVA, Clojure, Python, C++, PHP, Ruby y Lisp.
[Chatbotslife.com, 2019]
4.3.1. Dialogflow
Dialogflow
tiene soporte para varios idiomas y edición de código en ĺınea además de
un SDK en múltiples lenguajes de programación. [Dialogflow.com, 2020]
11https://dev.botframework.com/
12https://dialogflow.com/
13https://aws.amazon.com/es/lex/
Marco Teórico 29
Ofrece dos APIs muy útiles:
Detect Intent API: para consultar la intención del usuario en un texto desde
cualquier medio externo.
Agent API: para cambiar dinámicamente el agente, pudiendo crear intenciones a
convenniencia sin tener que utilizar la interfaz web.
Además se puede alojar el bot en Google Cloud y ampliar su funcionalidad
aprovechando todas las herramientas de esta plataforma. Por ejemplo se puede utilizar
AutoML para cargar un dataset de conversaciones y hacer que el chatbot aprenda de
ellas.
Un punto importante a destacar aqúı es Chatbase. Google ya es un experto en
análisis web y de usuarios gracias a su plataforma Google Analytics y con Chatbase
provee una funcionalidad y visibilidad similares pero para chatbots, proporcionando de
esta manera información sobre cuándo, cómo y quién está utilizando tu chatbot.
Despliegue en plataformas de mensajeŕıa
Con la función de integraciones se puede desplegar el chatbot en un montón de
plataformas al igual que su competidor de Microsoft, pero lo que más cabe a destacar
de Dialogflow en este aspecto es que permite convertir el chatbot en un voicebot
integrándolo con Google Assistant. También se puede hacer que este sea compatible
con Alexa exportando el modelo del bot. Esta última función puede ahorrar mucho
trabajo, aunque no funciona a la perfección, a la hora de hacer un chatbot
multiplataforma. Sólo utilizando Dialogflow se puede hacer un chatbot que funcione en
las principales plataformas de mensajeŕıa, en una de las principales plataformas de voz
y que además hace más fácil el desarrollo de un skill de Alexa.
Entendimiento de lenguaje natural
Esta es la parte principal de Dialogflow, su servicio de entendimiento de lenguaje
natural es muy fácil de usar, en gran parte por lo sencilla e intuitiva que es su interfaz,
crear una conversación es muy rápido y hay muchas opciones por defecto que se
pueden reutilizar. Un herramienta interesante que provee es el Knowledge Connector,
que permite al chatbot escanear documentos y art́ıculos para dar respuestas
automatizadas, aunque esta opción sólo funciona en bots en inglés de momento.
30 4.4. Tecnoloǵıas para implementar el backend y el frontend
4.4. Tecnoloǵıas para implementar el backend y el frontend
Hay multitud de frameworks que permiten implementar hoy en d́ıa tanto la parte del
backend como la del frontend en una aplicación web. Para seleccionar las tecnoloǵıas
más adecuadas para un proyecto se han de estudiar las diferentes caracteŕısticas que
ofrecen los frameworks y cuáles son los objetivos del proyecto que se va a desarrollar.
Cada framework se basa en un lenguaje de programación en espećıfico. Es muy
importante tener en cuenta este lenguaje y valorar si facilitará o complicará el
desarrollo del proyecto que se quiere llevar a cabo, pero también hay que ser consciente
de cuál es el grado de conocimiento que se tiene del mismo a la hora de elegir una
tecnoloǵıa. Por último se ha considerar el nivel de compatibilidad que tiene la
tecnoloǵıa elegida para desarrollar el backend con la elegida para el frontend.
A continuación se muestran las distintas tecnoloǵıas que pueden ser utilizadas para
el desarrollo del backend:
Laravel: Es un framework de código abierto que sirve para desarrollar
aplicaciones y servicios web con PHP 5 y PHP 7. Su filosof́ıa es desarrollar, de
forma elegante y simple, código PHP. Tiene una gran influencia de frameworks
como Sinatra, Ruby on Rails y ASP.NET MVC. Fue creado en 2011. Está hecho
para arquitectura Modelo Vista Controlador (MVC). Resuelve necesidades
actuales como autenticación de usuarios y manejo de eventos. Además, este
framework cuenta con un soporte robusto para manejo de bases de datos y con
un código modular y extensible por medio de un administrador de paquetes.
[Laravel.com, 2020]
Express.js+Node.js14: Express.js es un framework para Node.js que sirve para
ayudarnos a crear aplicaciones web en menos tiempo del habitual ya que nos
proporciona funcionalidades como el enrutamiento, opciones para gestionar
sesiones y cookies y muchas más. Express.js está basado en Connect. Connect es
un framework basado en http para Node.js. Podemos decir que Connect, aparte
de sumarle nuevas funcionalidades, tiene todas las opciones del módulo http que
viene por defecto con Node. También, Express hace lo mismo con Connect. Por
ello tenemos un framwork ligero, rápido y muy útil. [Enekodelatorre.com, 2016]
Node.js es un entorno en tiempo de ejecución multiplataforma para la capa del
servidor sobre todo, de código abierto,pero no limitándose a ello. Fue creado con
el enfoque de ser útil en la creación de programas de red altamente escalables,
como por ejemplo, servidores web. Está basado en el lenguaje de programación
ECMAScript, aśıncrono, con I/O de datos en una arquitectura orientada a
eventos y basado en el motor V8 de Google.
Django: Django es un framework de aplicaciones web gratuito y de código abierto
escrito en Python. Respeta el patrón de diseño conocido como
14https://expressjs.com/es/
Marco Teórico 31
Modelo–vista–template. Facilitar la creación de sitios web complejos es la meta
fundamental de Django. Django pone énfasis en la conectividad, la reutilización y
la extensibilidad de componentes. Promueve, además, el desarrollo rápido y el
evitar la repetición de código. Python es usado en todas las partes del framework,
incluso en configuraciones, archivos, y en los modelos de datos.
[Djangoproject.com, 2020]
Ruby on Rails: Es un framework escrito en el lenguaje de programación Ruby de
aplicaciones web de código abierto. Este sigue la arquitectura MVC. Trata de
combinar la simplicidad con la posibilidad de desarrollar aplicaciones del mundo
real con un mı́nimo de configuración y escribiendo menos código que con otros
frameworks. Rails hace uso de la metaprogramación que permite el lenguaje de
programación Ruby. Esto resulta en una sintaxis muy legible para muchos de sus
usuarios. Rails se distribuye a través de RubyGems. Este último es el formato
oficial de paquete y canal de distribución de bibliotecas y aplicaciones Ruby.
[Rubyonrails.org, 2020]
MySQL15: Es un sistema de gestión de bases de datos relacional y es considerada
como la base de datos más popular de código abierto. También es una de las más
populares en general junto a Oracle y Microsoft SQL Server, sobre todo para
entornos de desarrollo web.
MongoDB16: Es un sistema de base de datos NoSQL. Está orientado a
documentos de código abierto. MongoDB guarda estructuras de datos BSON
(que es una especificación muy similar a JSON) con un esquema dinámico en vez
de, como se hace en las bases de datos relacionales, guardar los datos en tablas.
Esto hace que la integración de los datos en ciertas aplicaciones sea más fácil y
rápida. Es una base de datos con múltiples funcionalidades y adecuada para su
uso en producción. Esta base de datos es muy utilizada en la industria.
Grafana: Grafana es un software libre que está basado en licencia de Apache 2.0.
Este permite la visualización y el formato de datos métricos. Además se pueden
crear cuadros de mando y gráficos a partir de múltiples fuentes, incluidas bases
de datos de series de tiempo como Graphite, InfluxDB y OpenTSDB.
[Grafana.com, 2020]
Con respecto a las tecnoloǵıas que existen para implementar la parte del frontend se
detallan las siguientes:
Angular: Es un framework para aplicaciones web desarrollado en TypeScript.
Este es mantenido por Google y además es de código abierto. Se utiliza para
mantener y crear aplicaciones web de una sola página. Su objetivo, en un esfuerzo
para hacer que el desarrollo web y las pruebas sean más fáciles, es aumentar las

Continuar navegando