Descarga la aplicación para disfrutar aún más
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
Compartir