Herramienta de ayuda guiada para la reminiscencia Guided reminiscence support tool Trabajo de Fin de Grado en Ingenieŕıa Informática Curso 2020-2021 Autora Laura Castilla Castellano Directores Pablo Gervás Gómez-Navarro Gonzalo Méndez Pozo Departamento de Ingenieŕıa del Software e Inteligencia Artificial Facultad de Informática Universidad Complutense de Madrid Resumen Actualmente, unas 50 millones de personas sufren demencia, una cifra que va en au- mento. La demencia y otros śındromes similares, que implican el deterioro de la memoria, son considerados una prioridad de salud pública, y afectan sobre todo a la población ma- yor de 60 años. Aunque el deterioro cognitivo no es algo reversible, śı que existen terapias que lo ralentizan. En este trabajo nos centramos espećıficamente en la memoria, y estudiamos cómo las terapias adecuadas ayudan a frenar la pérdida de la misma. Basándonos en ellas, construimos una herramienta de ayuda a la reminiscencia que permita la evocación de recuerdos a partir de sugerencias relevantes: conceptos de alto valor emocional extráıdos de un análisis de texto previo y archivos multimedia personales. La aplicación pretende ser un apoyo tanto para terapeutas como para familiares. A partir del proceso guiado que presentan ambos est́ımulos, ellos se encargarán de introducir toda la información que el afectado recuerde, resultando en un almacén de recuerdos y del progreso realizado. La visualización de dicha información se presenta de varias maneras, siendo las más relevantes en grafos y diccionarios. Palabras clave Aplicaciones web, pérdida de memoria, reminiscencia, terapia digital, análisis de texto, recomendaciones, etiquetado de fotos, diccionario de recuerdos, consulta de recuerdos Abstract As of today, an estimated 50 million people suffer from dementia, and this number continues to grow. Dementia and other similar syndromes, which involve memory loss, are considered a public health priority, mainly affecting people over the age of 60. Although cognitive impairment is not reversible, therapies that can slow it down exist. In this paper we focus specifically on memory, and study how appropriate therapies help to slow down the process of memory loss. Based on these, we build a reminiscence iii iv support tool that allows the evocation of memories based on relevant suggestions: emotio- nally valuable concepts extracted from a previous text analysis and personal multimedia files. The application is intended to support both therapists and family members. Based on the guided process presented by the two stimuli, they will input all the information that the concerned person remembers, resulting in a warehouse of memories and progress made. The visualisation of this information is presented in various ways, being graphs and dictionaries the most relevant. Keywords Web applications, memory loss, reminiscence, digital therapy, text analysis, recom- mendations, image tagging, dictionary of memories, memory consultations Índice general 1. Introducción 1 2. Introduction 3 3. Estado de la cuestión 5 3.1. La memoria como proceso cognitivo . . . . . . . . . . . . . . . . . . . . . . 5 3.1.1. Aspectos biológicos y psicológicos . . . . . . . . . . . . . . . . . . . 5 3.1.2. Tipos de memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.1.3. Fases de la memoria . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.1.4. Problemas de memoria . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.1.4.1. El olvido: un proceso natural, pero solo hasta cierto punto 12 3.1.5. Memoria y emoción . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.1.6. Causas de los problemas de memoria . . . . . . . . . . . . . . . . . 14 3.2. Terapias de reminiscencia . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.2.1. Entorno y comunicación . . . . . . . . . . . . . . . . . . . . . . . . 17 3.2.2. Efectos de la terapia . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.3. Terapias digitalizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4. Revisión del enfoque principal 23 4.1. Primeras ideas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.2. La importancia de la estimulación adecuada . . . . . . . . . . . . . . . . . 24 4.3. Punto de partida: categoŕıas y sugerencias . . . . . . . . . . . . . . . . . . 25 4.4. Incluir imágenes: sencillo y de efecto positivo . . . . . . . . . . . . . . . . . 27 4.5. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 5. Desarrollo técnico 29 5.1. Analizar textos para obtener sugerencias . . . . . . . . . . . . . . . . . . . 30 5.2. Diseño y funcionalidades de la herramienta . . . . . . . . . . . . . . . . . . 33 5.2.1. Relaciones concepto-concepto . . . . . . . . . . . . . . . . . . . . . 35 5.2.2. Relaciones imagen-concepto . . . . . . . . . . . . . . . . . . . . . . 38 5.2.3. Visualización del progreso . . . . . . . . . . . . . . . . . . . . . . . 41 5.3. Implementación y flujo de la aplicación . . . . . . . . . . . . . . . . . . . . 43 v vi ÍNDICE GENERAL 5.3.1. Estructura interna: tipos de archivos . . . . . . . . . . . . . . . . . 44 5.3.2. Almacenamiento de datos . . . . . . . . . . . . . . . . . . . . . . . 45 5.3.3. Interacciones disponibles . . . . . . . . . . . . . . . . . . . . . . . . 50 5.3.3.1. Registro e inicio de sesión . . . . . . . . . . . . . . . . . . 53 5.3.3.2. Elegir tipo de sesión . . . . . . . . . . . . . . . . . . . . . 53 5.3.3.3. Trabajar con palabras: recomendaciones y grafos . . . . . 55 5.3.3.4. Trabajar con imágenes: etiquetado y búsqueda . . . . . . . 59 5.3.3.5. Visualizar el progreso: estad́ısticas y diccionarios . . . . . 60 6. Evaluación con usuarios 63 6.1. Desarrollo de la entrevista . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 6.2. Recopilación de feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 6.3. Análisis de resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 7. Conclusiones 69 8. Conclusions 73 Bibliograf́ıa 77 A. Consentimiento informado 83 B. Ejemplo de diccionario resultante 85 C. Fuentes para el análisis de texto 97 Caṕıtulo 1 Introducción El enfoque principal del trabajo entra dentro del proyecto CANTOR (Composición Automática de Narrativas personales como apoyo a Terapia Ocupacional basada en Re- miniscencia, PID2019-108927RB-I00). Mediante el análisis de recuerdos y la generación de material, se pretende dar con algún tipo de recurso de ayuda y apoyo, tanto para pa- cientes como para cuidadores. Para ello, hizo falta comprender algo fundamental: ¿cómo ayudamos a alguien a recordar? El análisis de la perspectiva psicológica nos servirá como el punto de partida para comprender qué elementos tenemos que tener en cuenta a la hora de diseñar un material digital de apoyo que sea verdaderamente útil. Por el mismo motivo, dedicamos una parte a comentar las herramientas tecnológicas implementadas para fines similares (de un modo u otro, terapéuticos) que podemos encontrar hasta la fecha. Una vez conocidas las caracteŕısticas del problema comenzamos a esbozar los fun- damentos. Nos encontramos con varios obstáculos: la edad de las personas objetivo, su estado de salud, la importancia de no eliminarle del proceso (ni tampoco al terapeuta o familiar) y la recopilación de est́ımulos adecuados. Estas fueros las razones de peso para construir una herramienta que, manejada por el terapeuta o familiar, proporcione est́ımu- los verbales y visuales con intención de desencadenar el proceso de reminiscencia en el afectado. Por la sencillez que permiten, la herramienta se desarrolló como aplicación web a partir de HTML. Las interacciones con el usuario son en un entorno habitual, que es su navegador. El lenguaje elegido para el desarrollo es Python, por su versatilidad tanto como para el análisis de los est́ımulos como para el desarrollo web. Mediante la ayuda de Flask podemos recoger los datos proporcionados por el usuario y crear nuestra propia base de recuerdos, que se almacenará adicionalmente en tablas de MySQL. La aplicación sigue las ideas fundamentales de terapia ocupacional, en las que el proce- so se desarrolla en sesiones de diferentes temáticas con un formato similar a una entrevista 1 2 Caṕıtulo 1. Introducción personal en el que se van anotando los datos proporcionados por el afectado a medida que los recuerda. Además, al igual que se realiza en muchas terapias tradicionales, queremos proporcionar un producto final de forma automática a partir de dicha información. Es- te será un diccionarios de conceptos, aunque también se puede visualizar la información como una red conectada. Finalmente, la herramienta será sometida a una evaluación con usuarios. En esta ocasión, la dificultad de encontrar voluntarios adecuados se suma a la situación sanitaria por la COVID-19, pero se considera oportuno tener aunque sea una prueba real que nos indique si nuestra propuesta va por el buen camino y le descubra posibles fallos o carencias. Caṕıtulo 2 Introduction The main focus of the work falls within the CANTOR project (Automatic Composition of Personal Narratives to Support Reminiscence-Based Occupational Therapy, PID2019- 108927RB-I00). Through the analysis of memories and the generation of material, the aim is to find some kind of resource to help and support both patients and caregivers. In order to do this, it was necessary to understand something fundamental: how do we help someone to remember? The analysis of the psychological perspective will serve as the starting point to un- derstand what elements we need to take into account when designing a truly useful digital support material. For the same reason, we dedicate a moment to comment on the currently existing technological tools implemented for similar purposes (in one way or another, the- rapeutic). Once the characteristics of the problem are known, we begin to outline the fundamen- tals. We encountered several obstacles: the age of the targets, their mental and physical health, the importance of not eliminating them from the process (nor the therapist or fa- mily member) and the collection of appropriate stimuli. These were the compelling reasons for constructing a tool that, handled by the therapist or family member, provides verbal and visual stimuli with the intention of triggering the reminiscence process in the affected person. Because of the simplicity they allow, the tool was developed as a web application based on HTML. Interactions with the user are in a familiar environment, which is the user’s web browser. The language chosen for the development is Python, because of its versatility both for the analysis of the stimuli and for web development. With the help of Flask we can collect the data provided by the user and create our own memory database, which will be additionally stored in MySQL tables. The application follows the fundamental ideas of occupational therapy, in which the process is developed in sessions of different topics, with a format similar to a personal 3 4 Caṕıtulo 2. Introduction interview in which the data provided by the affected person is noted down as they re- member it. In addition, in the same way traditional therapies do from these sessions, we want to provide a final product automatically based on this information. This will be a dictionary of concepts, although the information can also be visualized as a connected network. Finally, the tool will undergo an evaluation with users. On this occasion, the difficulty of finding suitable volunteers is added to the health situation caused by the COVID-19 pandemic, but we consider it is still relevant to have at least a real test to check if our proposal is on the right track and to discover possible flaws or shortcomings. Caṕıtulo 3 Estado de la cuestión Para poder construir una herramienta que ayude a la reminiscencia, necesitamos revi- sar tanto el funcionamiento de la memoria a nivel psicológico, como el trabajo ya realizado en el ámbito de la informática en este campo. 3.1. La memoria como proceso cognitivo En este apartado desarrollamos todo el contenido relacionado con el proceso cognitivo que es la memoria, sus problemas, sus remedios, y su importancia social. El objetivo de esta información es entender de forma más detallada el contexto de trabajo para poder proporcionar una mejor solución. 3.1.1. Aspectos biológicos y psicológicos La memoria es una de las capacidades cognitivas de mayor importancia en nuestras vidas. Es la capacidad de recordar nuestra historia e identidad, de conservar nuestras experiencias y de poder tener en mente lo que acabamos de hacer o lo que tenemos que hacer. Es la facultad de grabar, retener y reproducir experiencias pasadas. Y no solo ha- blamos de recuerdos visuales o auditivos: también implica la conservación de sentimientos, emociones, habilidades, actitudes y valores. Todo lo que somos está almacenado, de una u otra forma, en ella. Por tanto, su deterioro es una grave preocupación para cualquier persona. Al ser una capacidad tan amplia e importante, es natural que se produzcan fallos en ella, también muy diferentes en su causa y gravedad. Desde el fenómeno “lo tengo en la punta de la lengua” hasta el olvido de recuerdos importantes, todo el mundo experimenta alguna forma de pérdida de memoria a lo largo de su vida. Aunque pueden presentarse perfecta- mente en cualquier etapa vital, son mucho más comunes en edades avanzadas, ya que el 5 6 Caṕıtulo 3. Estado de la cuestión envejecimiento celular es inevitable y el tejido biológico es el soporte fundamental de la memoria. El envejecimiento demográfico a nivel mundial constituye uno de los principales pro- blemas en la actualidad. Desde comienzos del siglo XXI estamos observando cambios en la pirámide poblacional, marcada por el aumento de población mayor. Aún es más signi- ficativo el aumento del número de personas mayores de 80 años (llamado envejecimiento del envejecimiento), edad a partir de la cual, aumenta el riesgo de sufrir o padecer algún tipo de deterioro de memoria. Uno de los más graves es la demencia. Solo este śındrome afecta a nivel mundial a unos 50 millones de personas. Cada año se registran cerca de 10 millones de nuevos casos, y se calcula que entre un 5 % y un 8 % de la población general de 60 años o más sufre demencia en un determinado momento. Pero además, el número de personas con demencia está aumentando rápidamente. Se prevé que la cifra total alcance los 82 millones en 2030 y 152 millones en 2050. Buena parte de ese incremento puede atribuirse, como hemos visto, al progresivo envejecimiento de la población. La demencia es una de las principales causas de discapacidad y dependencia entre las personas mayores en el mundo entero, teniendo un efecto abrumador tanto en ellas como en sus cuidadores, que en su gran mayoŕıa, suelen ser familiares. A menudo surgen presiones f́ısicas, emocionales y económicas que pueden causar mucho estrés a las familias. La OMS reconoce la demencia como una prioridad de salud pública. Sin embargo, aunque el número de personas afectadas por la demencia ya es alto por śı solo, no es el único problema de memoria que puede padecerse, (aunque śı uno de los más graves). Para estudiar este problema general y cómo podemos ofrecer soluciones, comenzaremos por entender el funcionamiento de la memoria, sus posibles deterioros y los tratamientos que se ofrecen. 3.1.2. Tipos de memoria Para empezar, tenemos que comprender que no existe un único tipo de memoria. Pre- sentamos una breve clasificación de los tipos más importantes, atendiendo a la información con la que trabajan y cómo la almacenan. Memoria sensorial. Este tipo de memoria está formada por la información que recogen nuestros sentidos. Es muy breve y su duración oscila entre los 200 y los 300 milisegundos, el tiempo justo para ser atendida y enviada a la memoria a corto plazo (o desaparecer). Memoria a corto plazo (MCP). Recibe la información seleccionada de la me- moria sensorial, haciendo que esté disponible durante un corto periodo de tiempo. 3.1. La memoria como proceso cognitivo 7 No obstante, solo trabaja con cantidades de información muy pequeñas. También se denomina memoria operativa o de trabajo, ya que permite el cumplimien- to de tareas cognitivas en las que se requiere almacenar durante un breve periodo de tiempo cierta cantidad de información a la vez que se realiza un procesamiento concurrente, como el razonamiento, la comprensión y la resolución de problemas. Se divide en: • Bucle fonológico. Sistema especializado en la información verbal. Nos permite mantener el proceso de habla interna implicada en la MCP. Interviene, por ejemplo, en la lectura o en la memorización de un número de teléfono. • Agenda visoespacial. De la misma forma que el bucle fonológico, mantiene activa cierta información, aunque solo aquella de formato visual. Interviene, por ejemplo, en el aprendizaje de un recorrido. • Almacén episódico. Integra la información que procede de otras fuentes. Se nutre de la información verbal, visual, espacial y temporal, creando aśı una representación multimodal y temporal de la situación actual. • Sistema ejecutivo. Encargado del control y la regulación de todo el sistema de memoria operativa. Memoria a largo plazo (MLP). Tal y como indica su nombre, permite almacenar la información de forma duradera. Podemos clasificarla en dos tipos: • Memoria impĺıcita o procedimental. Almacenada de manera inconscien- te, está implicada en el aprendizaje de diversas habilidades, como montar en bicicleta o conducir un automóvil. Se activa de modo automático. • Memoria expĺıcita o declarativa. Es la asociada a la percepción consciente. Incluye conocimiento objetivo de personas, lugares, cosas. . . Pero también lo que ello significa. Por tanto, se distinguen: ◦ Memoria semántica. Información mnésica acumulada durante toda la vida, como los conocimientos sobre el mundo exterior (históricos, geográfi- cos o cient́ıficos), nombres de personas, cosas y sus significados. Este tipo de memoria es necesaria para el uso del lenguaje. Saber que Madrid es la capital de España es un ejemplo de este tipo de memoria. ◦ Memoria episódica. Es la memoria autobiográfica que permite recordar hechos concretos o experiencias personales, como el primer d́ıa de univer- sidad o un cumpleaños especial. Está estrechamente relacionada con la emoción (ver 3.1.5), ya que nuestros recuerdos más v́ıvidos van general- mente asociados a emociones muy intensas. 8 Caṕıtulo 3. Estado de la cuestión 3.1.3. Fases de la memoria Una vez conocidas las diferentes caras de la memoria, el siguiente paso es saber cómo funciona todo el proceso mnésico que se encarga de almacenar los recuerdos. Distinguimos varias etapas: 1. Fijación. En esta primera fase, los contenidos captados mediante sensaciones, ima- ginación, sentimientos, pensamiento o aprendizaje son guardados en la mente. No obstante, este registro no siempre se realiza con la misma intensidad: metabolismo, estado fisiológico general, atención, repetición, tiempo de consolidación y estado emocional son todos factores que influyen en la fijación de un suceso. Los errores en la fijación en ocasiones pueden confundirse con olvidos, pero esto no es del todo exacto, ya que no es posible olvidar algo que ni siquiera se ha memorizado. 2. Codificación. Nuestro sistema nervioso no puede almacenar palabras o imágenes por śı mismas. Por ello, son convertidas en un código que es reconocible por nuestras neuronas. La dificultad de su estudio hace que no haya mucha información concreta, pero es de suponer que en esta fase se añade al recuerdo algún elemento que permita su rápida localización y posterior evocación. 3. Conservación. Ya codificados, los recuerdos se almacenan en una “biblioteca”, pasando a ser parte definitiva del subconsciente. Con la incorporación de nuevos recuerdos puede ser que se pierda parte de la nitidez y fidelidad con que fueron almacenados al inicio. En esta etapa es donde opera principalmente el olvido, pro- vocando la eliminación de recuerdos ya almacenados. 4. Localización. La siguiente fase, evocación, implica también localizar el recuerdo. Localizar cada dato lleva algunos pocos segundos, ya que es necesario ubicarlo y reconocerlo de entre otros millones que se almacenan en la mente. Aún se sabe muy poco acerca de este proceso, aunque los avances en computación nos hace plantearnos si su funcionamiento será similar al de los sistemas con mayor capacidad de almacenamiento. 5. Evocación. La evocación es el recuerdo o reproducción de lo previamente almace- nado. Los recuerdos permanecen en la memoria durante un tiempo indefinido, hasta que un est́ımulo es capaz de recuperarlos. Activándolos, se modifica su estado de reposo para que vuelvan a llegar a la conciencia del individuo. Son revividos en forma de ideas e imágenes sensoriales o emotivas. En ocasiones podemos pensar que algún recuerdo ha sido olvidado si no logramos evocarlo en un momento concreto. Pero si posteriormente śı lo conseguimos, sa- bremos que el verdadero problema fue que no pudimos echar mano del est́ımulo adecuado para traerlo hacia nuestra parte consciente. 3.1. La memoria como proceso cognitivo 9 Atendiendo a estas dos clasificaciones, en las que analizamos la memoria según sus tipos y según las fases en las que se encuentra un recuerdo, podemos ver que nuestro trabajo deberá concentrarse en estimular la evocación de la forma más acertada posible. La presentación de est́ımulos adecuados facilitará la recuperación de elementos de la memoria a largo plazo (abreviada como MLP). Como el objetivo es recuperar las vivencias personales, los est́ımulos tendrán que dirigirse mucho más hacia la memoria episódica que a la semántica, aunque esta pueda verse también beneficiada. A continuación estudiamos los problemas de memoria y su relación con el olvido, el cual ya hemos adelantado que es un proceso complementario a la memoria que ocurre de forma natural en todas las personas. 3.1.4. Problemas de memoria Comúnmente, al pensar en problemas de memoria, pensamos en pérdidas de memoria, y en concreto, en amnesias, Alzheimer o demencias. Explicaremos la diferencia entre estos términos y daremos una categorización de las amnesias según sus caracteŕısticas y sus causas. Entre amnesia, demencia y Alzheimer, el único de estos términos que hace referencia expĺıcita a la pérdida de la memoria es la amnesia (del griego griego antiguo άµνησία, olvido). Esta pérdida puede ser, como veremos a continuación, de los recuerdos pasados (la más habitual) o inhabilitando la grabación de recuerdos futuros. No existe un único tipo de amnesia. Además, no necesariamente se produce por deterioro cognitivo: son frecuentes los casos de amnesias por traumatismos craneales a causa de algún accidente. Por otra parte, la demencia (del lat́ın de, privación/negación y mentia, mente) no significa pérdida de memoria, ni tampoco es una enfermedad concreta. Es un término general que hace referencia a una amplia gama de śıntomas, todos ellos relacionados con el deterioro de las capacidades mentales de una persona, entre las que se encuentra, en particular, la memoria. El Alzheimer o enfermedad de Alzheimer, como su propio nombre indica, śı que es una enfermedad espećıfica: un tipo particular de demencia caracterizada por ciertos factores biológicos concretos. En definitiva, el problema de pérdida de memoria se denomina amnesia. Además, es un śıntoma caracteŕıstico del cuadro cĺınico de la demencia, y en particular, de la enfermedad de Alzheimer. Una vez conocida esta distinción, desglosamos los distintos tipos de amnesias. Hipermnesias. Se describe como un incremento de la capacidad para codificar y recuperar la información, aunque es poco común. Podemos distinguir: 10 Caṕıtulo 3. Estado de la cuestión • Pseudohipermnesias. Evocación repetitiva de recuerdos, por ejemplo, re- lacionados con la patoloǵıa del paciente y que pueda usar para afianzar su argumentación. También puede darse en población sana. • Ecmnesias. Se produce cuando el sujeto cree estar en el pasado, lo que supone revivir con gran implicación emocional vivencias pretéritas. Paramnesias y parapraxias. La paramnesia es una distorsión causada por la inclusión de detalles falsos o por una referencia temporal errónea: no es que el sujeto no recuerde, sino que dichos recuerdos están alterados. Por otra parte, una parapraxia es un error de memoria que suelen originarse por el olvido de detalles o dificultades en la producción de un recuerdo que sabemos está presente. Son fallos de memoria propios también de sujetos sanos. Los categorizamos según: • Anomaĺıas del recuerdo. ◦ Caras sin nombre. Se reconoce e identifica apropiadamente a otra per- sona, pero se es incapaz de recordar su nombre. ◦ No ubicación. Se identifica a la persona como conocida, pero no se sabe de qué. Suele ocurrir al encontrarse a la persona fuera de su contexto habitual. ◦ En la punta de la lengua. Fenómeno que sucede cuando se tiene la certeza de saber una palabra aunque no se pueda recuperar. Se produce un recuerdo parcial de algunas caracteŕısticas de la palabra, por lo que el uso de pistas fonológicas o semánticas facilita su acceso. Los intentos fallidos al intentar dar con la palabra no son al azar, tienen alguna relación. ◦ Sensación de conocer. Seguridad de conocer o saber algo, pero fallar al intentar demostrarlo o averiguarlo. ◦ Verificación de tareas. Conductas de comprobación para verificar que se han realizado determinadas acciones o tareas porque el recuerdo de aquello que se comprueba está ausente o atenuado. Un ejemplo muy común es la duda de haber cerrado la puerta de casa tras salir. ◦ Laguna temporal. Pérdida del recuerdo de los hechos ocurridos en un periodo de tiempo. El fallo real se produce por no haber prestado atención consciente a los acontecimientos. ◦ Pseudomemorias. Elaboración de recuerdos para rellenar “vaćıos” de memoria: confabulaciones, fantaśıas y recuerdos delirantes. • Anomaĺıas de reconocimiento. ◦ Déjà vu. Suceso que se siente como ya vivido, pero sin saber por qué. ◦ Jamais vu. Incapacidad de reconocer y recordar una situación, aunque se sepa que fue vivida. 3.1. La memoria como proceso cognitivo 11 ◦ Criptomnesia. Se recuerda algo que está almacenado en la memoria, pero no se experimenta como un recuerdo. Esto hace, por ejemplo, que una persona se atribuya como propia una melod́ıa que previamente escuchó. Asociados a trastornos mentales. • Esquizofrenia. Sobrecarga cognitiva por las dificultades para filtrar y selec- cionar la información relevante. • Depresión grave. Los pacientes deprimidos recuerdan más el material nega- tivo. Su memoria es más acertada a la hora de reconocer de cosas concretas que en recordar de forma libre. • Ansiedad. A diferencia de los pacientes con depresión, su memoria trabaja mejor recordando de forma libre que reconociendo. Además, tampoco existe un único tipo de amnesia. La amnesia puede ser transitoria o permanente, dependiendo de cada caso, e influir en un peŕıodo de tiempo mayor o menor. Si es una incapacidad de recordar vivencias pasadas, se denomina amnesia retrógrada. Por otra parte, si lo que ocurre es una incapacidad de codificar y almacenar en la memoria nueva información, estamos frente a amnesia anterógrada. Otra clasificación adicional se realiza según la causa: Derivadas de la presencia de una lesión cerebral: śındrome amnésico, śındro- me de Wernicke-Korsakoff, amnesia postraumática. Derivadas de demencias. La demencia es un trastorno degenerativo del cerebro en el que se produce un deterioro progresivo, intelectual y emocional del paciente. Las alteraciones mnésicas suelen ser los primeros signos de enfermedad. Este es el caso de la demencia senil o presenil, aśı como de la enfermedad de Alzheimer. Derivadas de causas emocionales o psicológicas: trastorno de personalidad múltiple, amnesia disociativa, fuga disociativa, amnesia lacunar. Amnesia de la niñez. Consiste en la incapacidad de recordar eventos vividos en la niñez. A pesar de su nombre, este tipo no se considera un trastorno, ya que es común y forma parte del desarrollo normal del sistema nervioso a medida que se crece. Inducida por drogas. La administración de sustancias que afectan al funciona- miento del cerebro puede hacer que no se recuerden los hechos que suceden en ese momento. 12 Caṕıtulo 3. Estado de la cuestión Amnesia de fuente. Existen ciertos datos o piezas de información que se recuerdan más o menos bien, aunque no se es capaz de saber cuál es su fuente (cómo se ha llegado a saber acerca de ellas). La categorizaciones realizadas en este apartado incluyen todo tipo de error de pérdida de memoria, si bien algunos son caracterizados como olvido puntual y no son problemas graves. 3.1.4.1. El olvido: un proceso natural, pero solo hasta cierto punto Por lo visto hasta ahora, podemos concluir que, aunque el término amnesia significa literalmente “olvido”, lo que comúnmente llamamos olvido hace referencia a cualquier tipo de pérdida del material de la memoria a largo plazo, ya sea un tipo de amnesia retrógrada, paramnesia, parapraxia o consecuencia de otra causa de las mencionadas arriba. Otro aspecto importante a tener en cuenta es el hecho de que si bien el problema que suele preocuparnos suele darse en el reconocimiento o evocación, por ser la memoria un proceso de varias fases, un problema de memoria en realidad podŕıa ocurrir en cualquiera de ellas. Recalcamos también de nuevo que no debemos identificar inmediatamente problemas de memoria con edad avanzada: los jóvenes y adultos también pueden padecer fallos de memoria por cualquiera de estos motivos, ya sea de manera puntual o con cierta frecuencia. A primera vista, el olvido puede parecer una ineficiencia de la memoria. Sin embargo, constituye para nuestro cerebro algo similar a una limpieza de disco duro: se eliminan todos los datos considerados irrelevantes y se mantienen los que son necesarios o importantes, dejando lugar para nueva información. No es por tanto un proceso opuesto a la función de memoria, sino uno complementario. Para una persona de cualquier edad, es perfectamente natural olvidar información. El problema se presenta cuando esta pérdida no se produce de la forma habitual, y se termina olvidando información considerada como importante. Además, los recuerdos no son permanentes, puesto que se mantienen en un tejido que cambia continuamente, en el que algunas neuronas mueren y ciertas conexiones cambian o se debilitan. Esto supone que no únicamente podemos perder la disponibilidad (pre- sencia o ausencia) en nuestro sistema cognitivo de la información almacenada, sino quizás solamente su accesibilidad (facilidad de recuperación en un momento determinado). Esta distinción sugiere que una experiencia puede parecer perdida en su totalidad solo porque no se haya presentado una clave de recuperación adecuada que evoque el recuerdo. Esto supondŕıa una inaccesibilidad temporal, pero no necesariamente una pérdida de disponibilidad, por lo que podŕıa recuperarse en otro momento. 3.1. La memoria como proceso cognitivo 13 Trabajaremos por tanto en recuperar la accesibilidad de estos recuerdos importantes, intentando promover la evocación de est́ımulos asociados. Es decir, en poder volver a llegar a un recuerdo que se créıa perdido, pero que aún se encuentra en la memoria. A la vista de las clasificaciones, podemos ver que esto incluirá sobre todo parapraxias graves, consecuencia de amnesias retrógradas derivadas de lesiones, demencias u otros factores psicológicos, entre los que se encuentran la depresión y la ansiedad, que agravan cualquier otro problema existente. Además, el olvido que se produce por eliminación, a menudo está asociado a expe- riencias traumáticas o dolorosas. Por las razones expuestas en el siguiente apartado, no se buscará recuperar este tipo de pérdidas. 3.1.5. Memoria y emoción La memoria emocional es uno de los aspectos nucleares de la identidad humana: nues- tros recuerdos autobiográficos más v́ıvidos suelen estar asociados a emociones muy inten- sas, sean positivas o negativas. Se ha planteado que lo que hace que recordemos mejor o peor un suceso no es tanto su relevancia en la historia personal como la intensidad de las emociones que experimentamos cuando tuvo lugar. Es habitual sorprendernos de que somos capaces de recordar detalles aparentemente nimios con mucha más claridad que otros recuerdos más importantes de la misma antigüedad. El estado de ánimo afecta en el momento de seleccionar qué es lo que guardamos en la memoria, es decir, al determinar la información más importante. Aśı, al estar de buen humor prestaremos más atención a las cosas que valoramos como positivas, y serán estos recuerdos los que más fácilmente se evoquen después. El psicólogo Gordon Bower denominó a este fenómeno como procesamiento congruente con el estado de ánimo. Adicio- nalmente, existen dos factores emocionales que afectan al recuerdo: el grado de activación y la valencia de la emoción. La activación emocional nos hace centrar la atención sobre la situación o el est́ımu- lo, produciendo que en el futuro se recuerde mejor, sobre todo cuando el estado emocional es similar al del contexto de aprendizaje. No obstante, ciertas emociones intensas (gene- ralmente negativas) también pueden interferir en otros tipos de memoria, concretamente la procedimental y la de trabajo, afectando a la consolidación de los recuerdos. Por lo que no necesariamente un alto grado de activación implica una mejor fijación del recuerdo. Por ello es importante también la valencia de la emoción. En el marco de la psico- loǵıa emocional, la palabra valencia se usa para designar la cualidad positiva o negativa. En general, los recuerdos asociados a emociones agradables se recuerdan mejor y con más detalles que los negativos, especialmente en edades más avanzadas. 14 Caṕıtulo 3. Estado de la cuestión Relacionado con la valencia emocional encontramos el fenómeno de la dependencia de estado, propuesto por Bower: existe una tendencia a recordar con mayor facilidad los elementos memorizados en un estado de ánimo semejante al que tenemos en el momento de evocarlas. Por ejemplo, recordamos con más facilidad eventos positivos si estamos alegres y más experiencias negativas si nos sentimos tristes. Memoria y emoción son por tanto procesos ı́ntimamente relacionados: todas las etapas del recuerdo, desde la codificación de información hasta su recuperación a largo plazo, son facilitadas por factores de tipo emocional. Esta influencia es bidireccional, de modo que los recuerdos provocan con frecuencia la aparición de las emociones. Por este motivo, al buscar el bienestar psicológico de los afectados, será importante crear un ambiente en el que primen las emociones positivas, para facilitar la evocación de recuerdos agradables. 3.1.6. Causas de los problemas de memoria Como parte final del análisis del contexto del paciente, listamos las principales causas de los problemas de memoria. Interferencias en el proceso de memorización. Si poco después de aprender un número de teléfono aprendemos otro, es probable que nos olvidemos de alguno de los números o que los confundamos. Falta de sueño y/o nutrición. Perjudica la atención y concentración necesarias para detectar, captar y procesar la información. Además, el sueño REM se asocia a la consolidación en la memoria de los recuerdos. Estrés y ansiedad. La amı́gdala env́ıa señales que facilitan las operaciones rela- cionadas con la memoria en otras áreas del cerebro, especialmente el hipocampo y la corteza prefrontal. Las hormonas del estrés, como el cortisol, interactúan con ella, de forma que cuando sentimos ansiedad, la consolidación de recuerdos empeora porque la memoria de trabajo queda parcialmente ocupada por el estrés. Otros problemas de salud. Por ejemplo, los problemas respiratorios pueden pro- vocar que llegue menos sangre al cerebro. Otros ejemplos son la anemia, la diabetes, la pérdida excesiva de sangre o la falta de vitaminas, aśı como la presencia de tu- mores. Drogas y efectos secundarios de algunos fármacos. El consumo de alcohol y diferentes drogas también se ha visto asociado a la aparición de problemas de memoria, bloqueos y otros problemas relacionados. 3.2. Terapias de reminiscencia 15 Depresión y otros trastornos del estado del ánimo. La depresión también puede generar problemas de memoria, basados entre otros factores en el la lentitud mental que puede conllevar, la rumiación y los problemas de concentración que pueden estar asociados a este diagnóstico. No es extraño que aparezcan bloqueos, fallos de evocación derivados de falta de atención o sesgo hacia el recuerdo de eventos negativos. Envejecimiento normativo. La mayoŕıa de personas, con el paso de los años, pierden facultades. Nos hacemos más lentos, tenemos más problemas de movilidad y necesitamos más tiempo para razonar. La memoria no es una excepción a estas capacidades. Ello se debe al envejecimiento de las neuronas, siendo habitual que regiones del encéfalo como el hipocampo se reduzca o que el nivel de sangre en ellas se reduzca. Esto quiere decir que cierta pérdida de memoria es esperable, si bien hay que vigilar su nivel. Daño cerebral adquirido (traumatismo craneoencefálico y accidentes cerebrovas- culares). Accidentes de tráfico o diferentes tipos de golpes en la cabeza, aśı como accidentes cerebrovasculares. Procesos de deterioro cognitivo y demencia. Estos problemas de memoria van a tender en la mayor parte de casos a acentuarse y agravarse con el paso del tiempo debido a la neurodegeneración. 3.2. Terapias de reminiscencia En ausencia de un tratamiento curativo, se hace necesario un abordaje terapéutico multidimensional, que incluya intervenciones no farmacológicas destinadas a mantener y estimular las capacidades preservadas del individuo. Con ello, se busca conseguir la mejor situación funcional posible en cada estad́ıo de la enfermedad y con ralentizar de esta forma el declive progresivo que pudiera aparecer. Hablar de estimulación y mantenimiento a nivel de funciones cerebrales es hablar de plasticidad del sistema nervioso o neuroplasticidad. Este término hace referencia a la ca- pacidad de nuestro sistema nervioso central para crear y modificar conexiones neuronales durante toda nuestra vida con el fin, en ocasiones, de compensar ciertas pérdidas. Con la estimulación adecuada, nuestro cerebro crea nuevas conexiones neuronales: nuevas redes que ayudarán a no perder o a mantener, durante un tiempo, funciones superiores cuando una enfermedad como el Alzheimer comience a destruir neuronas de forma desmedida. Son muchas las intervenciones psicosociales propuestas para el tratamiento de estos pacientes, pero nosotros nos centraremos en la terapia de reminiscencia, ya que se centra en potenciar fundamentalmente la memoria episódica y también la semántica. Consiste 16 Caṕıtulo 3. Estado de la cuestión en la discusión de actividades, eventos y experiencias pasadas, generalmente con la ayuda de recuerdos ya presentes que sirvan de desencadenantes. Centrarse en las capacidades y recuerdos preservados promueve la comunicación y permite a la persona conectar con su pasado y recuperar su sentido de identidad personal. Se considera una intervención ĺımite entre las terapias dirigidas a la estimulación cognitiva y las dirigidas al aspecto emocional, con potenciales efectos en la memoria autobiográfica y en el bienestar psicológico. De forma simplificada, se suelen distinguir dos tipos de terapia de reminiscencia: una revisión guiada por su pasado desembocando en la realización de un libro de vida, o una reminiscencia general, de forma menos estructurada y tratando sobre temas espećıficos del pasado (vacaciones familiares, colegio, juegos infantiles, primer trabajo. . . ). En cualquiera de los formatos se considera fundamental la introducción de est́ımulos desencadenantes (fotograf́ıas, música, objetos antiguos. . . ) que sirvan de ayuda al recuer- do. Estos desencadenantes pueden ser genéricos, reflejando experiencias comunes en la vida de las personas relevantes a su grupo de edad (por ejemplo, un libro escolar de su época), o espećıficos, con est́ımulos relacionados con las propias experiencias de la persona (fotograf́ıas de su boda o de un viaje importante). Vemos que ambas aproximaciones comparten muchas caracteŕısticas. En este trabajo nos basamos en las dos con la finalidad de ayudar a los cuidadores a estimular adecua- damente al paciente mediante una herramienta guiada. Por ello, se opta por tomar unos tópicos centrales como en la reminiscencia general, pero en lugar de mantenerlos deses- tructurados, se busca crear una organización de los datos, como en la aproximación de las historias de vida, aunque sin llegar a presentar una narrativa o libro final. Con el objetivo de encontrar la clasificación más adecuada para nuestra aplicación, acudimos al campo de terapia ocupacional. En general, los pacientes de las terapias son personas ancianas, por lo que en la mayoŕıa de ellas, ya sean con el objetivo de construir un libro de vida o no, se suelen tratar los siguientes apartados básicos: ¿Quién soy? Nombre, edad, lugar de nacimiento, domicilio, teléfono... Infancia. Datos como la fecha de nacimiento de hermanos, lugar de residencia, el nombre de los padres... Pero también familia, juegos y juguetes, amistades, escuela... Adolescencia y juventud. Estudios, primer trabajo, amistades, ocio, amores, no- viazgo... Madurez. Boda, hijos, trabajo, coche, vivienda, aficiones, vacaciones... 3.2. Terapias de reminiscencia 17 Actualidad. Últimos años de trabajo, jubilación, estado actual de la familia, en- torno actual... El antes y el ahora. Comparación en primera persona, aśı como con la pareja, los hijos, y otras relaciones significativas. El d́ıa a d́ıa. Actividades del d́ıa a d́ıa o semana normal, lugar de residencia... Mis cosas. Aficiones actuales, peĺıculas de interés, manualidades, juegos, libros, gastronomı́a... A través de este esquema, se pretende atender a cuatro aspectos básicos de la vida de la persona: 1. Las relaciones más importantes. Familiares, amigos, compañeros con las que la persona guarda especial relación. 2. Los lugares preferidos. El domicilio actual, el pueblo o región de origen, lugares que haya visitado. 3. Anécdotas. Experiencias vitales, viajes... 4. Intereses actuales, o incluso planes de futuro. Estas listas servirán como punto de partida para poder determinar posteriormente qué temas tendrán que ser tratados en nuestra herramienta, a fin de que sea de utilidad. 3.2.1. Entorno y comunicación A la hora de trabajar en la recuperación de recuerdos, es importante crear una ex- periencia agradable. Por lo visto en el caṕıtulo anterior, es de vital importancia evitar que la persona se sienta triste, agobiada, o con emociones negativas, puesto que ello solo facilitará una respuesta perjudicial. Es más, esto solo puede agravar los temores propios de una persona que ya está sufriendo el trastorno, como abandono, fracaso, aislamiento o confusión. Las tres caracteŕısticas que debe tener un entorno adecuado que facilite conductas positivas son: 1. Sencillez. El entorno se debe simplificar, pero conservando siempre las cosas per- sonales y recuerdos de la persona enferma. 2. Estabilidad. Es importante establecer rutinas, y no cambiar los hábitos y gustos de la persona afectada. 18 Caṕıtulo 3. Estado de la cuestión 3. Seguridad. Se deben evitar o suprimir todo tipo de peligros. Por ello, es de vital importancia crear una herramienta que pueda ser utilizada en el entorno familiar, que encaje con un ambiente tranquilo, relajado y distendido en el que la persona se sienta cómoda y pueda concentrarse en śı misma. La comunicación con la persona depende mucho de cuál sea su tipo de problema y lo avanzado que esté. Al ser cada situación muy particular, no buscaremos solucionar este problema con nuestra aplicación, de forma que pueda ser utilizada para todos. Es decir, la elección comunicativa se dejará en manos del intermediario o cuidador, que además tiene un mayor rango comunicativo que la máquina, mientras que la aplicación solo mostrará sugerencias de forma simple y esquemática. No obstante, presentamos algunos consejos para el cuidador no experto, ya que según un estudio realizado por Crespo (2015), el 80 % de las personas con demencia en España son cuidados por sus familiares en el entorno domiciliario: Paciencia y comprensión. Hacer saber que se le escucha y que se intenta enten- derle con interés. Darle seguridad con palabras y gestos, animándole a expresarse a pesar de sus dificultades. Debe sentir que se le da tiempo para pensar y expre- sarse, aśı que es preferible no corregir, criticar ni discutir lo que dice, ayudándole a expresarse a través de ejemplos. Sentimientos. El centro de la atención debe estar en los sentimientos que quiere expresar y no en los hechos o las palabras que dice, ya que las emociones son más importantes. Atender asimismo al propio lenguaje corporal: hablar de frente, evitar movimientos bruscos, utilizar gestos y expresiones faciales amistosas. Tranquilidad. Deben buscarse lugares tranquilos, para que pueda concentrarse en sus pensamientos y limitar todo aquello que pueda distraerle mientras habla, sin interferencias ni interrupciones. Evitar también los ambientes con excesiva o insuficiente luminosidad, y los obstáculos f́ısicos entre ambos, como una mesa, gafas de sol, o sillas de diferentes alturas. Tratamiento personal. Para facilitarle la comprensión de los mensajes es impor- tante identificarse y dirigirse a la persona enferma por su nombre, clara y lentamente, utilizando palabras simples y familiares. Repetición. Las preguntas e instrucciones deben hacerse poco a poco, repitiendo y formulándolas tantas veces como sea necesario. En ocasiones, es mejor reconvertir las preguntas ofreciéndole la respuesta como alternativa, y enfatizar las palabras clave de los mensajes que se quieran transmitir. Apoyos sensoriales. También puede ser útil ofrecer apuntes visuales, señalando, tocando o indicando los objetos de los que se habla. 3.3. Terapias digitalizadas 19 No presionar. Es fundamental evitar los interrogatorios a la hora de ayudarle a recordar, tratándole con respeto y dignidad, evitando hablarle con un tono de superioridad. Eliminar frustraciones. En los casos más graves, la clave es formular preguntas que puedan responderse con “śı” o “no”, y evitar aquellas preguntas más abiertas. 3.2.2. Efectos de la terapia En relación a la efectividad de este tipo de terapias, existe evidencia reciente sobre los efectos positivos en la ralentización del deterioro cognitivo, la calidad de vida, la comunicación, el estado de ánimo y otros śıntomas psicológicos y de conducta. A pesar de la distinción entre las dos aproximaciones diferentes (reminiscencia general e historia de vida), la modalidad de la terapia no parece ser tan importante para obtener efectos positivos como lo son el contexto donde se administra la intervención: formato individual o grupal o si son personas que viven en la comunidad o están institucionalizadas. De acuerdo con Navarro (2017), los beneficios más observables son: Incremento de la sensación general de bienestar. Aumento de la autoestima. Superación de las emociones negativas, presentando una personalidad más alegre. Aumento de las relaciones interpersonales. Reducción de la sintomatoloǵıa depresiva. Reducción de las conductas problemáticas. Ralentización del deterioro cognitivo. 3.3. Terapias digitalizadas Durante la última década hemos observado como la tecnoloǵıa se ha introducido en el ámbito sanitario. El concepto conocido como eHealth hace referencia a una asistencia digital mediante herramientas TIC para mejorar la prevención, el diagnóstico, el trata- miento, el seguimiento y la gestión de los aspectos relacionados con la salud. La reciente aparición de la COVID-19, al cancelar de forma abrupta toda actividad presencial, pro- pulsó la relevancia de esta disciplina. En el último año, las consultas médicas realizadas por teléfono o videollamada han aumentado notablemente. 20 Caṕıtulo 3. Estado de la cuestión En particular, la Terapia Digital (DTx ) se define como productos que entregan in- tervenciones terapéuticas basadas en la evidencia a pacientes, impulsados por programas de software para prevenir, manejar o tratar un trastorno o enfermedad médica. Solo en Estados Unidos, entre 2010 y 2019, se publicaron 182 estudios cĺınicos sobre pruebas de herramientas DTx. La mayoŕıa de las investigaciones cĺınicas que emplean DTx corres- ponden a psiquiatŕıa, cardioloǵıa y a control de adicciones. Estas terapias están comenzando a controlarse por los mecanismos habituales que regulan los fármacos. En 2020, la FDA1 autorizó una terapia digital cognitivo-conductual para tratar el insomnio en adultos, y un algoritmo personalizado sobre los hábitos de sueño de los pacientes. Desde la parte del desarrollador, decir que más de una docena de startups de Silicon Valley se dedican ya en exclusiva a las terapias digitales. En España, el Proyecto de Ley de Presupuestos Generales presentados a finales de 2020 destinaba 295, 5 millones de euros a Salud Digital, Información e Innovación de Sanidad y Consumo (2020). En Europa cada vez se destinan también más recursos a la elaboración de softwares sanitarios de este tipo. Podemos encontrar herramientas como deprexis®, un dispositivo médico de terapia digital en la web que ayuda a los pacientes a gestionar sus śıntomas de depresión. Este proyecto en concreto cuenta con el apoyo de la Comisión Europea, bajo el programa Horizonte 2020. En abril de 2021, se adquirieron los derechos de su uso en 4 páıses europeos, entre los que se encuentra España. Por otra parte, vorvida® utiliza una terapia cognitivo-conductual que ayuda a reducir los riesgos y daños provocados por el consumo de alcohol. Encontramos otros ejemplos como EVIDENT (también para depresión), velibra (trastornos de ansiedad) o ELEVIDA (fatiga provocada por la esclerosis múltiple). Otro enfoque es tratar directamente con aplicaciones móviles, dado el éxito de los smartphones. Podemos encontrar a nuestra disposición numerosas aplicaciones destinadas a temas como las dietas, la concentración, la meditación, o simplemente el ejercicio f́ısico. Por ejemplo, la aplicación sleep.io, desarrollada por Big Health, asegura que es capaz de reemplazar las pastillas del sueño mediante ejercicios de visualización. La empresa Welldoc, ha desarrollado una aplicación móvil para gestionar la diabetes, y que solo ofrece su versión bajo prescripción médica. La mayoŕıa de estas herramientas están muy relacionadas con la industria farmacéuti- ca. Se busca con ellas reducir el consumo de fármacos, produciendo el mismo efecto que estos pero con un software, el cual es mucho menos controvertido para el cuerpo. Sin embargo, ya hemos visto que las terapias no farmacológicas existen de forma tradicional, y que es el método más empleado en las terapias cognitivas que a nosotros nos atañen. 1U.S. Food and Drug Administration 3.3. Terapias digitalizadas 21 La incorporación de recursos TIC a la terapia de reminiscencia tampoco es un concepto novedoso. Ya hace unos años que comenzaron a utilizarse con este fin, ya sea a través de la utilización de dispositivos, apps espećıficas o recurriendo a contenido digital. En (Pert́ınez and Linares, 2015) encontramos algunos ejemplos de TICs utilizadas como herramientas de estimulación cognitiva, como son Gradior, SmartBrain, CogniFit o ELENA, siendo esta última la mejor valorada. Se ha comprobado que esto aumenta la implicación de los participantes en la terapia y mejora su accesibilidad y usabilidad. En (Imserso, 2017) se refleja como el uso de las tablets durante la terapia aporta dinamismo y flexibilidad que permiten personalizar las sesiones. El proyecto Reminiscens (Parra et al., 2013) es un ejemplo dirigido a terapia de reminiscencia, en el que se busca crear una ĺınea temporal personalizada con narrativas cortas de recuerdos individuales. Por otra parte, dentro de las intervenciones psicosociales como esta, el trabajo con los cuidadores y familias es tan importante como las intervenciones dirigidas a la persona enferma. Se ha demostrado la fuerte conexión que existe entre ellos y cómo la calidad de esta relación dependerá del grado de sobrecarga del cuidador y de la información y apoyo psicosocial que tenga la familia. Diversos estudios han comprobado que los cuidadores cuentan con escasa o nula información sobre estos problemas y el proceso de deterioro asociado. Por tanto, aunque cuidadores expertos puedan también beneficiarse de ella, se busca construir una herramienta que principalmente sirva de soporte a aquellos familiares o cuidadores no expertos para que tengan en su mano el poder ayudar, aunque en principio no sepan cómo proceder. Caṕıtulo 4 Revisión del enfoque principal En este caṕıtulo presentamos como el estudio del estado de la cuestión ha modificado las ideas iniciales y ha moldeado los objetivos que perseguimos conseguir. 4.1. Primeras ideas La primera idea giró en torno a una generación automática de biograf́ıas. Mediante una serie de datos sobre la persona, se pensaba automatizar la construcción narrativa hasta dar con una versión final. Para ello, se estudiaron art́ıculos sobre el estado de la narrativa computacional, con el objetivo de entender cómo generar este tipo de texto a partir de una base de conocimiento. Con esta idea general en mente, el primer problema planteado fue decidir cuál será esa base de conocimiento. Tras investigar sobre ello, y ver todo tipo de datos, la conclusión fue que existen dos enfoques radicalmente diferentes: Bases de conocimiento estructuradas. La representación del conocimiento es- tructurado se utiliza mucho en diferentes disciplinas de la Inteligencia Artificial, y es muy cómodo tener una gran base de partida analizada, simplificada y enlazada. El ejemplo más conocido de este tipo es DBpedia1. Colecciones de texto plano. Tomar como base del proyecto una serie de narrati- vas reales de personas sobre algún tema en concreto, que tendrán que ser procesada de una forma adecuada. Esta idea surgió de analizar textos de dominio público como art́ıculos de Wikipedia2, pero navegando se llegó a la página Banco de Recuerdos3, que parećıa que se asemejaba mucho más a lo buscado. 1https://es.dbpedia.org/ 2https://es.wikipedia.org/ 3https://bancoderecuerdos.es/ 23 https://es.dbpedia.org/ https://es.wikipedia.org/ https://bancoderecuerdos.es/ 24 Caṕıtulo 4. Revisión del enfoque principal Existen bases en las que podemos encontrar información personal sobre personajes públicos de forma estructurada, lo cual nos podŕıa ayudar como punto de partida para nuestra persona. Otro enfoque seŕıa tratar con texto plano que simplemente albergan textos cortos sobre algo emocionalmente importante para las personas. En cualquier caso, lo que se busca es generar una especie de plantillas, de forma que cada caṕıtulo vital tenga un esqueleto o estructura predefinida. Una base estructurada contiene indudablemente mucha información de fácil acceso y ya procesada, por lo que seŕıa mucho más cómodo. Pero, ¿contiene realmente la información que necesitamos? La información personal proporcionada de esta forma es mucho más etiquetada y simple. Es decir, podremos encontrar cosas como “Lugar de nacimiento: Madrid” o “Año de nacimiento: 1970”. Este tipo de simplicidad es muy conveniente para la representación y el almacenamiento, pero tenemos que tener en cuenta el fin del trabajo: ayudar a la reminiscencia. 4.2. La importancia de la estimulación adecuada Eliminar el componente humano del proceso de reminiscencia no beneficia al afectado, y mucho más ineficiente seŕıa no hacerle part́ıcipe del mismo. El estudio previo de la memoria y la terapia ocupacional nos han enseñado como lo fundamental es mostrar est́ımulos a la persona que sean relevantes, y les puedan dar pie a recordar, para que sean ellos mismos los que nos cuenten su historia a construir. Sin embargo, enseñarles una historia ya hecha, y que les resulte algo ajeno, no les ayuda. Por ello, buscamos construir una herramienta que sea un apoyo, pero no un sustitutivo. El tipo de técnica más utilizada para ello, es, como hemos visto, la creación de una historia de vida. Esta se realiza mediante la ayuda de un cuidador, a partir una serie de entrevistas orales en las que se van recogiendo tanto datos objetivos (fechas, sucesos, lugares...) como subjetivos (valores, ideas, relaciones sociales...). Por tanto, la idea anterior que trataba con conocimiento estructurado para dar una narrativa final fue dejada en segundo plano. No queremos aprender datos sobre una per- sona y presentárselos: queremos que sea ella la que haga este proceso sobre śı misma, y ayudarle durante el mismo. Por este mismo motivo, la idea de construir los propios “caṕıtulos vitales” también queda desechada, ya que no buscamos rellenar una serie de datos concretos como si de un formulario se tratase. No obstante, śı nos conviene tra- tar con diferentes temas, pero con el objetivo de construir pequeños nodos o recuerdos individuales. Esto nos deja con otra conclusión importante: al ser la persona objetivo un agente continuamente involucrado, pasamos necesariamente a tener algún tipo de interacción 4.3. Punto de partida: categoŕıas y sugerencias 25 persona-ordenador. Nuestra herramienta tecnológica no puede ser simplemente un soft- ware que presente un producto final al usuario, ya que está continuamente involucrado en su propio proceso. Dada la naturaleza del proyecto, será habitual que nuestro público objetivo no se desenvuelva de manera fluida con una herramienta tecnológica, por motivos de salud, edad, o incluso ambos. Por este motivo, parece más acertado dirigir la herramienta al uso de las personas que los apoyan: familiares, terapeutas, médicos... Distinguimos entonces dos tipos de personas en las que se debe centrar el proyecto: Beneficiario: aquella con pérdida de memoria y que determina el objetivo último de la herramienta, que es ayudar a que pueda recuperarla. Usuario: intermediario de apoyo durante el proceso de reminiscencia. Será el que maneje la aplicación. La tarea más habitual entre los usuarios es la construcción paulatina de una historia de vida, mediante sesiones con el beneficiario. El objetivo es construir una herramienta que facilite su trabajo, sobre todo consistente en estimular y promover la reaparición de recuerdos en el afectado. Además, una vez finalizadas las sesiones, se recopila toda la información en los libros de vida. Buscaremos además una presentación adecuada de los datos y resultados que se vayan obteniendo, para que puedan ser consultados con posterioridad. 4.3. Punto de partida: categoŕıas y sugerencias El enfoque de las terapias clásicas consiste en dividir las sesiones en una serie de temas concretos, que buscan ahondar en los aspectos básicos vitales y personales (ver apartado 3.2). Como buscamos simular una terapia de este tipo, pero guiada, decidimos dividir nuestra herramienta también en diferentes categoŕıas, de forma que temas distintos puedan ser tratados en distintas sesiones. El primer obstáculo planteado fue por tanto obtener referencias de estas categoŕıas. Como buscamos crear una herramienta de gúıa y apoyo, debemos tener datos en los que basar nuestras sugerencias, con la intención de presentar est́ımulos que desencadenen el proceso de reminiscencia. Hemos visto que a la hora de trabajar en este contexto, contamos con un alto compo- nente simbólico. Una herramienta que ayude a recordar estas experiencias deberá guiar al afectado con los est́ımulos adecuados, que despierten las emociones positivas de sus recuerdos. Por este motivo, los datos con los que buscamos trabajar no son simples re- laciones objetivas como, por ejemplo “mesa - mueble”, sino “t́ıo - Javier”, o “gustar - paella”. 26 Caṕıtulo 4. Revisión del enfoque principal No obstante, estas relaciones son algo subjetivo y personal, por lo que a priori, para ayudar a la persona, necesitaŕıamos ya conocer esta información de antemano. Por ello, buscamos crear una base inicial de conocimiento en la que recojamos cuáles son los concep- tos más habituales que se tratan al hablar de estos temas, para construir posteriormente unas sugerencias con sentido. Por ejemplo, al hablar de familia indudablemente aparecerán las palabras “madre”, “padre” o “t́ıo”, pero buscamos saber si será habitual mencionar visitas al pueblo, unas vacaciones en la playa, o comidas familiares los domingos por la tarde. Esto nos arrojará un enfoque más personal sobre el conocimiento de partida. Necesitamos por tanto información cotidiana, simple, y sencilla de cada una de las categoŕıas en las que subdividiremos la aplicación. Además, estos datos deben contar con una serie de sentimientos asociados, que se vean reflejados en ellos. Es decir, queremos conocer de qué suele hablar la gente cuando hablan de estos temas concretos, que además son de ı́ndole personal. Es de prever que encontrar fuentes de información de este tipo presente una serie de problemas. En primer lugar, al ser temas personales, será más dif́ıcil encontrar información acce- sible. Por otra parte, textos como estos no son frecuentes en ningún tipo de literatura. Y finalmente, no es suficiente con simples biograf́ıas, pues necesitamos tratar una serie de temas más allá de una perfil cronológico general. Sin embargo, observamos que este tipo de textos se asemeja mucho a aquellos que se redactan cuando se comienza a aprender un idioma. Esta fue la idea inicial y permitió encontrar una numerosa cantidad de narrativas de esta ı́ndole, pues afortunadamente, hace ya unos años, muchos profesores de idiomas aprovecharon la novedad de los blogs para crear un punto de encuentro con sus alumnos. Esto inclúıa dejar entradas en el mismo como enunciados de redacciones, donde los alumnos deb́ıan dejar sus respuestas como comentarios. Indagando en la red se pudo encontrar una serie de blogs de profesores de español que contaban con este tipo de contenido, aśı como de profesores de lengua castellana de educación primaria. Por tanto, tras unas pequeñas correcciones (ya que son textos de personas que están empezando a aprender español, bien extranjeros o infantes), hemos conseguido una serie de textos sobre temáticas cotidianas sobre los que podemos trabajar. Otras fuentes adicionales han sido páginas de idiomas de carácter más general, y también páginas de biograf́ıas, pues al fin y al cabo siguen presentando información importante, aunque no fuera suficiente. La lista completa de fuentes puede consultarse en el anexo C. La selección de los textos se hizo atendiendo a tres razones: simplicidad de la narrativa, adecuación de la temática, y facilidad de obtención. Tras buscar la mayor semejanza entre 4.4. Incluir imágenes: sencillo y de efecto positivo 27 los temas tradicionalmente tratados en terapia ocupacional para la creación de historias de vida y aquellos a los que se ha conseguido acceso, finalmente se obtiene un total de 7 categoŕıas diferentes, aśı como un apartado de datos personales, para simplemente poder registrar los datos básicos de una persona, como nombre, domicilio o fecha de nacimiento, que también son relevantes. Por tanto, dedicadas a las distintas etapas vitales tenemos 3, infancia, juventud y etapa adulta. Las dos últimas presentaron la mayor dificultad en cuanto a encontrar textos narrativos, por lo que en este caso se han utilizado biograf́ıas en tercera persona, en lugar de las narrativas personales que presentan las demás categoŕıas. Comprenden sobre todo biograf́ıas cortas de personas humildes, pero también la parte más estándar de las de algunas celebridades. Las 4 restantes tratan sobre temas más generales que, aunque hayan variado a lo largo del tiempo, habrán estado siempre presentes en la vida de una persona: familia, comida, vacaciones y aficiones. Son temas muy comunes sobre los que hacer redacciones, por lo que fue algo más sencillo encontrar fuentes de información adecuada. Con esto ya hemos conseguido tener una base de conocimiento inicial sobre la que podemos trabajar para extraer información relevante. En total, tenemos 294 textos: 47 de la categoŕıa etapa adulta, 46 de aficiones, 30 de comida, 33 de familia, 46 de infancia, 47 de juventud y 45 de vacaciones. Estos textos son analizados y procesados para averiguar cuáles son las palabras o conceptos más habituales relacionados con cada categoŕıa (ver apartado 5.1). 4.4. Incluir imágenes: sencillo y de efecto positivo Los est́ımulos visuales son especialmente efectivos a la hora de recordar. Por tanto, no podemos obviar su presencia a la hora de construir nuestra aplicación. Las fotograf́ıas aportadas por los propios familiares son las más relevantes, por lo que tenemos que per- mitir un aporte de fotograf́ıas personales. En un principio se barajó la posibilidad de incluir en la propia aplicación un motor de búsqueda conectado con Google Imágenes para poder incluir fotos más genéricas que quizás no se tuviesen a mano, como por ejemplo, “puerto de Málaga años 50”. Esto reque- riŕıa de una conexión a internet, y poseyéndola, una persona está fácilmente acostumbrada a descargar una imagen de internet y colocarla en una carpeta concreta. Por lo tanto, para no recargar innecesariamente la aplicación y permitir su empleo en zonas que no tengan conexión a internet, la posibilidad finalmente se descartó. Lo que se permitirá será por tanto el volcado local de imágenes, lo cual no requiere de internet. 28 Caṕıtulo 4. Revisión del enfoque principal En este caso tener conexión solo supondŕıa una ventaja adicional, pero no tenerla no restringiŕıa el uso de la aplicación. Por último, es de recalcar que si una imagen funciona como est́ımulo, desencadenará también una historia o descripción, por lo que también tendrá unos conceptos asociados, que previsiblemente encajarán con las categoŕıas descritas anteriormente. 4.5. Objetivos Analizamos brevemente lo que hemos desarrollado en los apartados anteriores: busca- mos que la persona afectada consiga recordar por śı misma, y para ello, trabajamos con una serie de temas o categoŕıas. En ellas tendremos dos est́ımulos distintos (conceptuales y visuales), pero ambos comparten el mismo objetivo, que es conseguir que el beneficiado recuerde. Si esto es aśı, queremos además recopilar la información, es decir, ir registrando todo lo recordado. Además, queremos evitar la posible frustración frente a la tecnoloǵıa, y no eliminar por completo el componente humano de la terapia. Por ello, la herramienta se destinará al cuidador o familiar. Este servirá de canal de comunicación, estableciendo el flujo de la sesión o conversación a partir de las recomendaciones simples de la forma que crea más conveniente, atendiendo al estado del beneficiado. Es fundamental por tanto contar con una constante interacción beneficiado-usuario- ordenador, por lo que será necesario diseñar una aplicación interactiva. No obstante, dado el objetivo de la terapia, esta deberá ser simple, de forma que el foco de atención del usuario no sea la propia aplicación, sino el beneficiado. Por tanto, la forma de introducir los datos en la aplicación no debe de ser en excesivamente exhaustiva, para evitar romper el hilo de la conversación. El usuario deberá presentar de forma breve aquello que va introduciendo. Ya hemos comentado que también tenemos que conseguir almacenar los datos de las sesiones y asegurarnos que se recuperan adecuadamente para posteriores ocasiones. Las terapias se suelen dividir en varios d́ıas, por lo que esto es una idea fundamental. Adicionalmente, al igual que hacen los libros de vida, tenemos que ser capaces de presentar este progreso de una forma comprensible, y que sea útil para el beneficiado en caso de que quiera visualizar el esfuerzo que ha realizado. Caṕıtulo 5 Desarrollo técnico Con estos últimos objetivos en mente, pasamos a describir el desarrollo técnico de la aplicación. La narrativa a seguir será principalmente cronológica: qué se construyó primero, por qué y los cambios que se fueron añadiendo sobre ello. Finalmente trataremos aspectos más generales del conjunto de la aplicación. El código de la aplicación puede encontrarse en https://github.com/NILGroup/TFG-2021-GeneracionHistorias. El lenguaje elegido fue Python, por su versatilidad. Necesitamos construir una aplica- ción interactiva, realizar un procesamiento de lenguaje natural y también ser capaces de almacenar datos. En concreto, la versión que se utiliza es Python 3.8. En primer lugar, hablaremos de las relaciones, que son el punto de partida de la aplicación. Una vez elegida la temática de la sesión, los conceptos se muestran como sugerencias. A partir de ellas, el usuario puede introducir rápidamente aquellos otros términos relacionados con el actual según evolucione la sesión. Por tanto, sobre él recae una pequeña decisión de śıntesis, decidiendo cuáles serán las palabras más relevantes de la conversación. Además, el hecho de escribir términos breves no interrumpe tanto el flujo del diálogo como tener que registrar información más extensa y literal. Comprobada la construcción de relaciones a partir de los textos encontrados, se pasó a estudiar cómo deb́ıa ser el diseño interactivo de la aplicación. Al incorporar este este cálculo previo al proyecto completo desde Google Colaboratory, solo se realiza una única primera y única vez. Al computarse, se almacena en archivos de texto, persistentes aún si la aplicación se cierra, y si se detecta que estos existen, no se vuelve a calcular. A partir de las relaciones es cuando se comienzan a idear las funcionalidades de la aplicación: cómo incorporarlas de forma interactiva y que sea útil. Para ello, ideamos la forma de trabajar con sugerencias: relacionando palabras entre ellas y proporcionando un nuevo est́ımulo cuando sea necesario, de forma que gúıe al afectado en su proceso de recuerdo. 29 https://github.com/NILGroup/TFG-2021-GeneracionHistorias 30 Caṕıtulo 5. Desarrollo técnico A partir de esta base, la incorporación de imágenes parećıa un paso natural que además iba a ser de mucha utilidad para el afectado. Por ello, se crea la manera de enlazar las imágenes con las palabras: mediante el etiquetado de fotograf́ıas. Proporcionar un pequeño buscador multimedia fue una adición sencilla una vez montada la funcionalidad de etiquetado. Estas funcionalidades, descritas en 5.3.3, trabajan a favor del afectado, apoyándolo durante las sesiones. Pero, adicionalmente, y como producto final, proporcionamos un recopilatorio de todo su trabajo: un diccionario de recuerdos. El etiquetado de fotos puede verse también como un resultado del proceso, aśı como los grafos de consulta y enlazado de conceptos que se pueden consultar durante las sesiones. 5.1. Analizar textos para obtener sugerencias La primera tarea que se realizó fue el análisis de los textos, pues son el fundamento básico de la aplicación. Como esto no requiere de interacción con el usuario, para su estudio preliminar se utilizó el entorno Python interactivo Google Colaboratory1, similar a Jupyter Notebook2. Todos los textos encontrados de la misma categoŕıa, ya corregidos, se recopilaron en un único archivo denominado “nombre-categoŕıa.txt”. El formato del archivo es simple: el carácter “#” separa textos diferentes, facilitando su lectura. La libreŕıa NLTK 3 es una de las más conocidas para el procesamiento de lenguaje en Python. Sin embargo, para este proyecto se eligió la libreŕıa SpaCy4, también muy popular. Tras una comparativa de estas libreŕıas tan célebres, se observa que NLTK es más apropiada para un contexto de investigación, pues incluye una enorme variedad de algoritmos para problemas concretos de NLP . Pero en este caso se busca realizar tareas sencillas de śıntesis de textos, cosa para la cual SpaCy se planteaba más adecuada. De hecho, es mucho más utilizada para el desarrollo de aplicaciones. Por tanto, equipados con SpaCy 3.0.5, se comenzó el trabajo. Por cada categoŕıa, se realiza un análisis de textos que sigue los siguientes pasos: 1. Leemos todos los textos del archivo. 2. Eliminamos los signos de puntuación (salvo puntos, que se utilizarán más tarde) y las denominadas palabras vaćıas o stop words. 1https://colab.research.google.com/ 2https://jupyter.org/ 3https://www.nltk.org/ 4https://spacy.io/ https://colab.research.google.com/ https://jupyter.org/ https://www.nltk.org/ https://spacy.io/ 5.1. Analizar textos para obtener sugerencias 31 3. Separamos cada texto individual en frases (se considera frase todo aquello entre dos puntos). 4. Eliminamos toda palabra que sea de un solo carácter, por si la libreŕıa de stop words no fuera del todo exacta. 5. Con ayuda de SpaCy, pasamos todas las palabras derivadas a su forma lematizada. Aśı evitaremos la aparición de duplicados derivados como “cocinando” y “cocinar”. 6. Por último, para contar con una mayor variedad, separamos las palabras en sustan- tivos, verbos y adjetivos, las categoŕıas semánticas más fundamentales. Nos quedare- mos con las 30 palabras más comunes (más repetidas entre todos los textos) de cada una de ellas. Esto nos proporcionará un total de 90 recomendaciones como máximo, pues si tan solo se registran 20 adjetivos, se tomarán esos 20, pero 30 verbos y 30 sustantivos. 7. Finalmente, relacionamos estas palabras comunes entre ellas. Una palabra estará relacionada con otra si y solo si aparecen en la misma frase. Tras averiguar las ideas más comunes, establecemos una serie de relaciones que guardamos en un diccionario por su facilidad de uso. Este proceso sigue los pasos principales de una śıntesis de información, como es la lematización o la eliminación de las stop words. El paso 4 fue necesario ya que tras una primera ejecución, monośılabos como a u o aún se pod́ıan encontrar entre las palabras. El paso 6 fue, como se indica, un añadido para proporcionar variedad. Exist́ıa la posibilidad de reconocer la categoŕıa sintáctica de la palabra mediante la propia libreŕıa, por lo que se ha querido aprovechar para aportar diversidad. Fundamentalmente, esta decisión se tomó para evitar la aparición excesiva de verbos, ya que en el lenguaje la mayoŕıa de enunciados lo poseen. Esto dejaba de lado otras categoŕıas importantes como nombres y adjetivos. Finalmente, atendiendo al número de textos presentes (entre 30 y 50 por cada tema), se consideró tras varias pruebas que 30 era una cota superior razonablemente buena para deducir cuáles eran las ideas importantes de los textos presentados. Además, se relacionan estas recomendaciones finales entre śı, con el objetivo de poder dar una gúıa más astuta (ver el subapartado 5.2.1). En la figura 5.1 encontramos un diagrama que, mediante un ejemplo, resume como se realiza la śıntesis de texto y creación de relaciones. Por simplicidad mostramos lo relevante solo a 3 textos, aunque en la práctica haya muchos más. 32 Caṕıtulo 5. Desarrollo técnico Figura 5.1: Ejemplo de procesamiento de los textos. En azul, los sustantivos, en verde, los verbos, y en rojo, los adjetivos. 5.2. Diseño y funcionalidades de la herramienta 33 5.2. Diseño y funcionalidades de la herramienta En primer lugar, es necesario conseguir una interfaz sencilla y gráfica al proyecto, de forma que pueda ser utilizada por personas ajenas a los paradigmas de programación, como probablemente sea nuestro usuario. Además, aunque el beneficiado no la use directamente, si que podŕıa visualizar cosas puntuales, por lo que es necesario también que sea simple. Por estos motivos, el formato dado a la herramienta es finalmente el de una aplicación web. Este es un entorno muy familiar para un usuario de tecnoloǵıa estándar, pues tan solo son necesarias interacciones con su navegador, al que está acostumbrado. Para su creación se utilizó Flask5, un framework minimalista que permite enlazar un proyecto escrito en Python con la interacción web de forma sencilla. Para ello basta con crear una instancia de la clase “Flask”, que será la propia aplicación, la cual se arranca desde el main del proyecto. Esto ya comienza a ejecutar la aplicación de forma local, y al conectarnos a la URL que nos proporciona, visualizamos nuestro proyecto ya en el navegador. Pero, ¿qué es lo que se muestra? Para saberlo, Flask utiliza el decorador @app.route. Este se coloca encima de cada función destinada al tratamiento web, y deberá tener como parámetro una URL interna, que será la que determine cuál será la función a eje- cutar. Por ejemplo, la función destinada a ser la página principal llevará el decorador @app.route(‘/’). Con esto, Flask entiende que las operaciones que debe realizar nada más entrar en la aplicación están en la función que acompaña. Si se redirecciona a “otra- pagina”, el decorador de la función correspondiente deberá ser @app.route(‘/otra-pagina’). Como lo que queremos es mostrar una página web, esto tendrá que ser lo que devuelvan las funciones. Devolver una cadena de texto como “Hello, World!” hace que efectivamente se muestre eso en el navegador. Pero también se pueden devolver páginas enteras. La función de Flask render_template será la que vamos a utilizar, pues permite mostrar un archivo HTML. Si colocamos nuestras páginas estáticas .html en una subcarpeta del proyecto llamada templates, Flask reconoce que es ah́ı donde debe buscar el nombre especificado en la función render_template. Será por tanto en esta carpeta donde iremos colocando los diseños a medida que se vayan creando. Utilizamos páginas HTML por su sencilla construcción y familiaridad previa con HTML5. Pero sobre todo, porque Flask permite la inclusión de código con variables y condicionales en los archivos HTML. Creamos aśı la conexión entre un HTML estático y las variables internas de Python. Para ayudarnos a no tener que construir los archivos HTML desde 0, se utilizó el 5https://flask.palletsprojects.com/en/2.0.x/ https://flask.palletsprojects.com/en/2.0.x/ 34 Caṕıtulo 5. Desarrollo técnico Figura 5.2: Cuando comencemos una sesión, lo primero que se debe hacer es elegir la categoŕıa sobre la que esta versará. programa de escritorio Google Web Designer 6. Este ofrece una interfaz gráfica y las he- rramientas de diseño más comunes. De este modo, el diseño estático se realizaŕıa de una manera más cómoda. Los HTML generados serán los que, posteriormente, se enlazarán a mano incluyendo en cada uno de ellos el código adicional correspondiente, ya sea HTML, Flask, o incluso algunas pequeñas ĺıneas de Javascript. Fundamentalmente, el programa se utilizó para fijar la paleta de colores, la tipograf́ıa y el diseño y la localización de los elementos presentes en la página. Como el foco de atención del usuario debe estar fundamentalmente en el paciente, el diseño debe ser minimalista. Por otra parte, las sesiones deben transmitir una sensación de confianza y tranquilidad. Las elecciones de diseño se basaron en estas ideas, intentando además conseguir cierta estética visual. Los aspectos relacionados más relevantes son la elección del color azul, tradicionalmente asociado a la paz y la calma, y una tipograf́ıa más redonda y gruesa de lo habitual. Las formas suaves de la tipograf́ıa transmiten una sensación de cercańıa, y son muy utilizadas para aplicaciones que son muy cercanas a sus usuarios. Como ejemplo, la figura 5.2 muestra la pantalla de selección de la categoŕıa de la sesión. Además, era necesario tener en cuenta las funcionalidades de la aplicación para su diseño. Resumimos brevemente los objetivos presentados en el apartado 4.5: selecciona- 6https://webdesigner.withgoogle.com/ https://webdesigner.withgoogle.com/ 5.2. Diseño y funcionalidades de la herramienta 35 mos un tema, presentamos est́ımulos (conceptos o imágenes) y recopilamos la información obtenida de una forma sintética. Los est́ımulos están relacionados entre śı, pero los sepa- ramos momentáneamente para diseñar una parte de la herramienta centrada en conceptos y recomendaciones y otra en la que las imágenes tomen el rol principal. Esto seŕıa equi- valente a, en una terapia tradicional, centrarnos más en hacer preguntas o en enseñar fotograf́ıas. 5.2.1. Relaciones concepto-concepto Llegados a este punto, la idea estaba casi del todo determinada: mostrar una recomen- dación que desencadene una serie de ideas, historias o conceptos asociados. Por tanto, la información relevante será la recomendación. Debemos permitir la entrada de datos, que estarán sintetizados automáticamente por el usuario de forma similar a como ha realizado el ordenador en el apartado 5.1. Por otra parte, puede que la recomendación no sea útil, o ya hayamos terminado de exprimir la presente y queramos otra nueva. También puede ocurrir que un concepto lleve a otro y sea el propio beneficiado el que gúıe su proceso hacia una nueva recomendación propia. Por lo que debemos poder obtener una nueva recomendación predefinida, o fijar una palabra concreta como la recomendación actual. Para las recomendaciones, no a nivel de diseño, sino de funcionalidad, es importante comprender el por qué de la sugerencia mostrada. Es decir, si partimos de la palabra “A” y pedimos una nueva recomendación, ¿qué hace que se devuelva “B” y no cualquier otra? Pues bien, es una mezcla entre las relaciones establecidas en el procesamiento de textos, el azar y el progreso actual. Por cada categoŕıa, tendremos registrados cuáles de los conceptos almacenados han si- do ya trabajados (parámetro visited_x, siendo x el nombre de dicha categoŕıa). Mediante este simple conjunto, decidimos qué recomendación escoger a partir de “A”. Queremos dar un nuevo concepto, pero también pensamos que, si el beneficiado está haciendo el esfuerzo de recordar sobre una cosa espećıfica, quizás sea más adecuado pro- porcionarle algo nuevo pero relacionado con ello, que otro est́ımulo que quizás se aleje más de ese concepto en particular. Por ello, se prioriza dar una recomendación “B” que sea una de las palabras relacionadas con “A”. “B” puede ser, por tanto, una de las palabras procedentes del análisis de texto prelimi- nar, o una palabra propia, ya que al introducir conceptos relacionados lo que hacemos es incorporarlos a la lista predeterminada (ver apartado 5.3.3 de implementación para más detalle). 36 Caṕıtulo 5. Desarrollo técnico Figura 5.3: Ejemplo sobre la palabra “pedir”. Sin embargo, pudiera ocurrir que todas estas relaciones ya hayan sido visitadas. Por tanto, en caso de que esto haya ocurrido, devolvemos otra no necesariamente relacionada directamente. Hacemos esto para evitar que si ninguna de las relaciones es útil a la persona, la sesión se estanque. Ocurre lo mismo cuando todo el conjunto de palabras a disposición del programa ya han sido visitadas. Para más detalle, ver el apartado 5.3.3 y en concreto, el diagrama 5.19. Finalmente, comentar que al principio se barajó la posibilidad de elegir si la nueva recomendación seŕıa un adjetivo, verbo o sustantivo, puesto que se conoce la categoŕıa de la palabra analizada. No obstante, esto parećıa muy poco natural, ya que una persona no suele distribuir sus recuerdos en términos de análisis sintáctico, por lo que finalmente se desechó. Además, se necesitaŕıa analizar constantemente los conceptos introducidos para su clasificación. Esto, aunque no entorpece mucho a nivel de aplicación, śı que coarta la libertad de introducir expresiones que no consten de una sola palabra, como “casa de la playa”, “turismo rural” o “t́ıa Margarita”. En el ejemplo de la figura 5.3, visualizamos un ejemplo de la pantalla dedicada al tratamiento de palabras. En este caso, la sugerencia mostrada es “pedir”. Actualmente, hemos relacionado las palabras “comida” y “agua”, y el archivo “pizza.jpg”. Podemos seguir añadiendo o eliminando relaciones, navegar a una palabra concreta con el botón “Ir a”, o pedir una nueva sugerencia. Apreciamos también que aparecen dos elementos de los que aún no hemos hablado. El tratamiento de imágenes se estudia en el subapartado posterior, en la que se define una parte de la aplicación donde el est́ımulo central es la imagen, en lugar de la palabra. No obstante, imágenes y palabras van relacionadas, por lo que se ha querido incorporar la 5.2. Diseño y funcionalidades de la herramienta 37 Figura 5.4: Grafo resultante de la categoŕıa “vacaciones” tras la evaluación con usuarios. posibilidad de asociar una imagen a un est́ımulo textual por si hubiera casos en los que fuera necesario, como por ejemplo recordar una imagen espećıfica. Por último, también se incorpora una sencilla visualización de los datos. En lugar de construir una narrativa final, se opta por un enfoque más simple, basado en los conceptos de caminos de vida (recordatorio de los hechos más significativos de la historia de vida) y ecomapas (representación esquemática de los contextos para una visualización sencilla y mejor comprensión). Esto desemboca en una estructura de grafo conexo conocida como red. Esta idea es la motivó el nombre de la aplicación, Senda. De esta forma gráfica y sencilla, tanto paciente como cuidador pueden ver, a medida que avanzan sus sesiones, cuáles son los nodos o partes más tratadas y relevantes. Esto nos muestra información sobre cuáles son las vivencias más recordadas o importantes para la persona, a la vez que sirve como registro de eventos que ya se recordaron alguna vez. Como ya tenemos el diccionario de conceptos relacionados entre śı, no es dif́ıcil con- formar una estructura de grafo a partir de esta pseudolista de adyacencia. Por si fuera del interés del usuario, puede consultar estas relaciones con dicho formato clicando en el botón “Conexiones actuales” durante el transcurso de la sesión (o posteriormente). Aśı, puede visualizar la totalidad de los conceptos tratados, y puede identificar los recuerdos más trabajados o las carencias en algunas áreas. La figura 5.4 muestra un ejemplo real de visualización. La construcción del grafo se realiza con ayuda de la libreŕıa NetworkX 7, que a su vez se ayuda de la conocida Mat- 7https://networkx.org/ https://networkx.org/ 38 Caṕıtulo 5. Desarrollo técnico plotlib8. Tras probar varias distribuciones y colores, finalmente se opta por una disposición circular (si no se especifica, es aleatoria) y un tamaño y color de nodo proporcional al número de relaciones del mismo. 5.2.2. Relaciones imagen-concepto Al trabajar con imágenes, la idea que subyace es más simple: reconocer lo que se muestra en ella y recoger esta información asociada. Si hablásemos de reconocer personas que aparecen en ella, esto recuerda mucho al etiquetado de fotos presentes en casi todas las redes sociales existentes hoy en d́ıa. Nos inspiramos en esta idea, unida a las que ya conocemos sobre terapia, para crear nuestro propio etiquetado de fotos. Como en esta zona de la aplicación las protagonistas son las imágenes, son las que ocuparán más espacio en la pantalla. Estas se tomarán de la carpeta multimedia incluida dentro del proyecto, por lo que las imágenes con las que se desee trabajar deben ser volcadas en ella. Lo fundamental es el etiquetado de imágenes. Por tanto, si estamos en ello y una imagen aparece en pantalla, a su vez lo hará una manera de introducir los conceptos rela- cionados, de la misma manera que hemos hecho antes: un est́ımulo aparecerá en pantalla y le asociaremos los conceptos que surjan a ráız de él. La diferencia es que aqúı, al ser fotograf́ıas aportadas personalmente, no tenemos la manera de conocer a cuál (o cuáles) de las 7 categoŕıas pertenece, salvo que se hayan separado a mano previamente. Pero para mantener la clasificación por categoŕıas de todos los datos, en esta ocasión tendremos que seleccionar a qué categoŕıa pertenece el concepto a relacionar. Una opción más sencilla hubiera sido simplemente determinar la temática de la imagen. Pero esto planteaba una serie de problemas. Veámoslo con un ejemplo, en el que imaginemos que sale una madre jugando con sus hijos durante unas vacaciones de verano. Primero, recordemos que, aunque las imágenes cuentan con un componente emocional mucho mayor, lo que entrelaza el desarrollo de la aplicación son estos conceptos escritos: una śıntesis de la información personal recopilada. Las imágenes solo son un est́ımulo alternativo. Esta foto concreta podŕıa pertenecer tanto a “familia” como a “vacaciones”. Si etiquetamos la fotograf́ıa como de ambas, los conceptos que asociaremos se mandaŕıan por duplicado a las dos categoŕıas. Esto provocaŕıa un solapamiento no muy deseable, pues aunque las categoŕıas se tocan, cosas como los nombres o edades de los hijos son datos claramente de “familia”. Por otra parte, si solo permitiésemos etiquetar con una sola categoŕıa, podŕıamos estar perdiendo información, pues claramente esa foto representa unas vacaciones familiares, y 8https://matplotlib.org/ https://matplotlib.org/ 5.2. Diseño y funcionalidades de la herramienta 39 Figura 5.5: Al mostrar una fotograf́ıa para etiquetar, debemos seleccionar a qué categoŕıa pertenecen los conceptos que desencadenan. no solo vacaciones o familia. Por tanto, para evitar tanto la pérdida como los duplicados, finalmente se decidió que cada concepto fuera etiquetado individualmente. Esto nos deja entonces con una pantalla del aspecto de la mostrada en la figura 5.5. Para proteger la privacidad de los datos, todas las fotograf́ıas y nombres propios que aparecerán a partir de este momento estarán pixelados. Adicionalmente, ya que nos encontramos en la zona dedicada a las fotograf́ıas, aprove- chamos para emular el comportamiento de Google Imágenes. Incorporamos una pequeña barra de búsqueda para mostrar todas las imágenes relacionadas con la palabra intro- ducida. La figura 5.6 muestra un ejemplo real tras la evaluación realizada. Aśı, la zona dedicada a imágenes sirve a la vez de consulta y de entrada de datos. La idea de la búsqueda guiada por texto fomentó incluir en la parte del etiquetado la posibilidad de iniciarlo de forma dirigida. Si queremos etiquetar pero introducimos una palabra que tiene imágenes asociadas, mostrará una imagen aleatoria de las asociadas, lo 40 Caṕıtulo 5. Desarrollo técnico Figura 5.6: Imágenes asociadas con un nombre propio. Foto tomada con un zoom del 50 % en el navegador. 5.2. Diseño y funcionalidades de la herramienta 41 Figura 5.7: Al mostrar una fotograf́ıa para etiquetar, debemos seleccionar a qué categoŕıa pertenecen los conceptos que desencadenan. que permite seguir etiquetando a partir de algo que ya lo está. También podemos introducir el nombre de una imagen, que será la mostrada si existe. En caso contrario (cuando no haya imagen asociada o sea una palabra o fotograf́ıa que no existe), simplemente se comienza el etiquetado de la forma más sencilla: mostrando una imagen aleatoria. Las dos funcionalidades, etiquetado y búsqueda, se aúnan en una cabecera simple (figura 5.7) en la que se selecciona la acción a realizar y la posibilidad de introducir parámetros a cualquiera de las dos, aunque una búsqueda sin parámetros no devuelve información. El funcionamiento aqúı descrito puede visualizarse como parte del diagrama 5.12. Nótese además que, en caso de no disponer de imágenes personales, esto no imposibilita el uso de la aplicación. Al haber diferenciado estas dos partes, pueden utilizarse con independencia. Por otra parte, como ya hemos comentado en el apartado 4.4, pueden irse incorporando imágenes descargadas de la web. 5.2.3. Visualización del progreso La aplicación diseñada nos sirve como motor de conexión entre el beneficiado y el objetivo más importante a nivel social: la mejora de su condición de vida. No eliminando el tratamiento humano, desde su punto de vista la terapia ofrecida a las tradicionales es muy similar, puesto que se le proporciona un momento en el que compartir sus experiencias. La diferencia principal es que al analizar vivencias de otros y presentarlas de forma sintetizada, proporciona un punto de partida para que hasta el usuario menos experto pueda ayudar a un familiar en caso de necesidad. La recopilación de datos realizada sirve por lo tanto, para mantener un almacén de recuerdos en formato digital. A partir de ellos, la capacidad de poder consultar cosas concretas puede resultar muy potente. Del mismo modo que se realiza una búsqueda en internet cuando tenemos una duda sencilla (por ejemplo, ¿Cuál es la capital de España? ), si una persona no recuerda dónde soĺıa veranear o el nombre de un familiar concreto, puede realizar una consulta. El ejemplo 5.6 muestra todas las fotos en las que aparece una persona concreta, al realizar una consulta con su nombre. 42 Caṕıtulo 5. Desarrollo técnico Sin embargo, consideramos que la consulta de imágenes no es suficiente como objetivo final, teniendo en cuenta que recopilamos muchos más datos. Por ello, decidimos incorpo- rar una tercera parte a la aplicación, destinada a consultar toda la información recopilada por las otras dos. Esta zona se dividirá a la vez en dos partes. La primera está destinada más al usuario de la aplicación, el familiar o cuidador, que al propio beneficiado. Su objetivo es dar una visualización rápida del progreso realizado: qué categoŕıas han sido más tratadas, cuánto más se podŕıan trabajar, y cómo se relacionan las imágenes con ellas. A partir del progreso actual, presenta unas estad́ısticas muy sencillas por cada cate- goŕıa. Pero como el progreso general también es importante (la unión de todas los temas conformaŕıan el tradicional libro de vida), se da la posibilidad de ver también el progreso general. Un ejemplo se puede encontrar en la figura 6.1. Describimos brevemente el obje- tivo de cada uno de los campos. Su cálculo es totalmente directo a partir de las variables activas durante la ejecución de la aplicación. Número de palabras visitadas. Total de palabras por las que se ha pasado, tanto de las predeterminadas como de las propias. Se considera que una palabra ha sido visitada cuando ha aparecido como recomendación (ya sea por azar o por fuerza), y no solo si se ha asociado a otra. Esto nos muestra lo mucho que se ha trabajado una categoŕıa. Porcentaje de palabras visitadas. Un porcentaje bajo indicará que aún existen muchas palabras predeterminadas por explorar. En cierto modo, indica el grado de “completitud” de la categoŕıa. Top 3 palabras con más relaciones. Muestra las tres palabras con más asocia- ciones. Esto refleja cuales son los conceptos más importantes de cada tema. Top 3 palabras con más imágenes. De igual forma, muestra cuáles han sido los conceptos más desencadenados por est́ımulos visuales. Número de imágenes etiquetadas. Muestra cuántas imágenes se han etiquetado o asociado con conceptos de esa categoŕıa. Porcentaje de imágenes etiquetadas. Al igual que el porcentaje de palabras visitadas, nos indica si aún tenemos margen para trabajar con el multimedia dispo- nible o los recursos disponibles ya han sido utilizados. Top 3 imágenes etiquetadas. Indica las imágenes que han tenido más relevancia durante las sesiones. 5.3. Implementación y flujo de la aplicación 43 Esta primera visualización es útil en términos matemáticos, pero necesitamos propor- cionar al afectado un producto final de su esfuerzo que sea mucho más humano. Al estar todo el tiempo trabajando con palabras o conceptos breves y sus relaciones, la idea que automáticamente surgió es presentar un diccionario de conceptos. A diferencia de un diccionario de recuerdos, el cual presenta una serie de historias por orden cronológico, nuestro diccionario no presenta la información de una narrativa, sino simple y directa. Por cada categoŕıa (incluida “General”), se presenta una visualización ordenada de los conceptos, sus relaciones, y fotos asociadas. Este diccionario con imágenes es un importante est́ımulo visual que permite volver a recordar lo ya recordado, aśı como realizar consultas rápidas. El Anexo B muestra un ejemplo real, sobre la categoŕıa “familia”. Vemos como en lugar de mostrar las relaciones como una red conectada de conceptos, el diccionario proporciona un formato más lineal, presentando cada uno de los elementos con sus relacionados en una ĺınea de texto, acompañado abajo de sus imágenes. A nivel técnico, además, su propio nombre, diccionario, indica el potencial que tiene para retroalimentar el análisis de textos. Las imágenes son de ı́ndole personal, pero de igual forma que hemos utilizado textos base para hallar las relaciones más comunes, podemos estudiar la frecuencia de aparición de estas relaciones ya sintetizadas e incorporarlas a las recomendaciones, mejorando la calidad de las mismas. Consideramos que este diccionario final es posiblemente el producto más importante de todo el desarrollo, pues es lo que presenta y sintetiza la información recopilada para poner a disposición del afectado, el cual puede realizar consultas rápidas si ve que no es capaz de recordar la información. Aunque incorporada dentro de la zona de imágenes, la posibilidad de consulta fotográfica es también de lo más útil que el afectado se puede encontrar después de realizar todo el proceso. Insistimos de todos modos, una vez más, en que lo realmente importante es su participación en el proceso. 5.3. Implementación y flujo de la aplicación El diseño final de la aplicación nos proporciona entonces con varias partes relacionadas entre śı, que resumimos a continuación: Conocimiento inicial. Las relaciones basadas en el análisis de texto son el motor base y ya se encuentran disponibles una vez que se comienza la interacción con la aplicación. Repasemos lo ilustrado en 5.1: los elementos básicos de la aplicación serán las palabras más comunes de estos textos, y una palabra estará relacionada con otra si frecuentemente no aparecen muy lejos la una de la otra. 44 Caṕıtulo 5. Desarrollo técnico Palabras. La aplicación sugerirá palabras de forma que, al pedir una nueva re- lación, devuelva algo relacionado, con el objetivo de mostrar algo nuevo pero no cambiar bruscamente el tema. Cuando una palabra aparece en pantalla, el cuidador o familiar puede introducir las relaciones propias que van surgiendo a lo largo de la conversación originada por ella. Las palabras introducidas podrán aparecer poste- riormente como recomendación, eliminando aśı el carácter “finito” de la aplicación: cuánto más trabajemos con ella, más tendrá para ofrecernos. Si una sugerencia no es efectiva, puede pedirse una nueva. También se permite la inclusión de elementos propios (palabras o expresiones cortas) sin que tengan que estar necesariamente relacionados con alguno predeterminado. Todas las relaciones pueden ser visualizadas en cualquier momento en formato grafo, donde el tamaño del nodo (palabra) es proporcional a su número de aristas (relaciones). Imágenes. Una imagen vale más que mil palabras, por lo que si contamos con recursos multimedia de esa persona y los ponemos a disposición de la aplicación, podremos asociar imágenes a palabras. Existen dos maneras de hacerlo. • Si estamos trabajando con palabras pero una imagen resulta ser un est́ımulo positivo relacionado con la misma, desde la propia zona descrita en el punto anterior se puede asociar. • Por otra parte, existe una zona propia dedicada a imágenes. En ella, podremos consultar qué imágenes están asociadas a una palabra, pero también podemos realizar un etiquetado de imágenes. Es decir, al pedir un nuevo archivo, nos muestra una de las imágenes con sus relaciones actuales y podremos introducir nuevas. Progreso. Por último, contamos con dos formas fundamentales de estudiar el pro- greso que se va realizando. La primera, mediante los grafos disponibles en la pantalla de recomendaciones. La segunda, la zona propia dedicada al progreso. En ella vi- sualizamos a las estad́ısticas y accedemos al diccionario de conceptos e imágenes relacionados que hemos ido creando mediante el avance de las sesiones. Para el correcto entrelazamiento de toda esta información necesitamos de varias tec- noloǵıas, como ya hemos visto. A nivel de implementación, nos encontraremos diferentes tipos de archivos. Presentamos por tanto una clasificación de los mismos, aśı como un diagrama de su organización en la figura 5.8: 5.3.1. Estructura interna: tipos de archivos Archivos de texto. Almacenan distintos tipos de información: 5.3. Implementación y flujo de la aplicación 45 • Aquellos que guardan los textos narrativos originales. Existe uno por cada categoŕıa, y no se modifican. Almacenados en la carpeta data/rawTexts. • Aquellos que guardan el resultado del procesamiento de las narrativas. La pri- mera vez que se inicia la aplicación, se realiza el trabajo de procesamiento y el resultado se almacena en ellos. De esta forma, se evita realizar la misma operación cada vez que vuelva a arrancar. Almacenados en data/procTexts. • Aquellos que guardan el progreso del usuario actual. Al terminar la sesión, su contenido se almacena en la base de datos y desaparecen del registro local. Almacenados en data, data/custom y en graph (lo relativo a los grafos). Archivos HTML. Pantallas estáticas de la aplicación, construidas con Google Web Desginer, y posteriormente exportadas al proyecto. Una vez incluidas, se modificaron con el código Flask y/o Javascript necesario para la navegabilidad. Almacenadas en la carpeta templates. Archivos de imagen. Encontraremos una carpeta espećıfica (multimedia) para que el usuario introduzca sus propias fotos. Además, también encontraremos que los grafos se generarán en formato imagen, pero estos se almacenan en la carpeta relativa a grafos, graph. Archivos Python. Existen también varias categoŕıas según el contenido de los mis- mos. • Archivo principal que gestiona la aplicación y todas las interacciones web me- diante Flask: app.py. • Archivos destinados a funciones auxiliares de cálculos de estad́ısticas (stats.py) y operaciones auxiliares, sobre todo de lectura, búsqueda y escritura (utilities.py). • Archivo destinado a la gestión de la base de datos: database\models.py. Per- mite realizar las consultas necesarias en lenguaje SQL, gracias a las libreŕıas de conexión existentes entre MySQL y Python. 5.3.2. Almacenamiento de datos El correcto registro y la persistencia de la información es fundamental para el buen desarrollo de la aplicación. Al comenzar a trabajar montando la aplicación web y sus interacciones, las cuales describiremos en profundidad más adelante, el problema principal radicaba en conseguir el buen flujo de la misma. Por ser esta, además, de carácter local, se comenzó a trabajar almacenando la informa- ción en ficheros. Esto proteǵıa los datos frente a posibles comportamientos inesperados del 46 Caṕıtulo 5. Desarrollo técnico Figura 5.8: Estructura de la aplicación. 5.3. Implementación y flujo de la aplicación 47 programa, y es un formato fácil de visualizar. La información almacenada es únicamente la necesaria para poder recuperar el progreso de las sesiones anteriores. El elemento o token fundamental de la herramienta serán las palabras9. Cada pala- bra tiene otras asociadas, y también una serie de imágenes. En el apartado 5.2 hemos hablado de cómo y dónde podemos realizar estas asociaciones. Ahora nos centraremos en explicar cómo se almacena. Nótese que aunque el est́ımulo principal sea una imagen, lo relevante será también la palabra. Por este motivo, buscamos construirnos un diccionario de palabras. Cada una tendrá una serie de palabras asociadas y ficheros asociados. Fue en este momento cuando se optó por la opción más sencilla de almacenamiento. Cada palabra tendrá un archivo con su nombre y dos ĺıneas: la primera, la lista de palabras asociadas separadas por comas. La segunda, la lista de imágenes asociadas (las imágenes se identifican por el nombre que tiene el archivo en la carpeta multimedia) también separadas por comas. En caso de que no hubiese ninguna asociación, la ĺınea aparecerá vaćıa. Las ventajas de la separación en archivos individuales son una mayor facilidad de lectura y actualización de los datos. Si hubiese un único archivo con toda la información junta, corremos el riesgo de provocar pérdidas en palabras que no deb́ıan de haberse visto alteradas. Mientras la aplicación está activa, mantenemos esta información en las variables necesarias, actualizando los archivos inmediatamente cuando se producen cambios. Esto se anida también dentro de las categoŕıas, ya que en todo momento, las asocia- ciones se realizan en el contexto de alguna de ellas. Observemos el diagrama 5.8. En el directorio custom encontramos que cada una de las 7 categoŕıas tienen una carpeta con su nombre (en el diagrama se escribe c1 a c7 por simplicidad). Y es ah́ı donde se almacenan estos ficheros, llevando a la palabra como nombre de archivo. El resto de información almacenada son otros datos adicionales que necesitaremos recordar. En la carpeta graph, almacenamos los archivos .png que serán las redes de conceptos creadas cuando desde la aplicación se llama a su visualización. Además, en el momento que se actualiza la imagen del grafo, aprovechamos para volcar el contenido del grafo para tener una copia de seguridad del mismo, pues no podemos recuperar los datos a partir de la imagen. Solo podŕıamos hacerlo leyendo de nuevo todos los archivos de palabra. Dentro de data/custom encontramos además, multimedia_list, una lista de las imágenes realmente utilizadas de multimedia. Esta lista tiene el mismo formato (lista 9Nos referimos a ellas como palabras por simplicidad, pero ya hemos visto que en realidad puede tratarse también de conceptos que tienen más de una palabra, si el usuario lo desea. 48 Caṕıtulo 5. Desarrollo técnico Figura 5.9: Accedemos a la pantalla de datos personales desde el botón mostrado en 5.2. separada por comas) y propósito que los archivos visited_cx que encontramos a conti- nuación. Con el objetivo de proporcionar una mejor recomendación, necesitamos conocer qué palabras han sido ya trabajadas. Por ello, llevaremos una lista de palabras visitadas de la cual tendremos que dejar registro para tenerlo en cuenta en sesiones posteriores. Finalmente, encontramos el archivo personal_data. Aunque está en un nivel superior, podŕıa englobarse dentro de la subcarpeta custom sin ningún tipo de preferencia. Este archivo es la lista de datos personales recogidos. Los datos personales se recogen mediante un formulario con siete campos predefinidos, aunque es opcional rellenar cualquiera de ellos. Los campos son nombre, apellidos, fecha y lugar de nacimiento, lugar de residencia, domicilio y ocupación. La pantalla es tal y como se muestra en la imagen 5.9. Este método de almacenamiento de la información no es más que una simulación de una base de datos, pues tendŕıamos varias tablas (las carpetas de cada categoŕıa) con varias columnas de tres filas cuya clave primaria seŕıa la palabra, y con una lista de palabras y lista de imágenes asociadas. El resto de la información podŕıa guardarse en otra tabla aparte. Durante el proceso de diseño y pruebas se priorizó el buen funcionamiento de la aplicación, por lo que esta discusión se empezó a plantear una vez que la estructura de datos ya estaba definida y en marcha con este formato local. El cambio de almacenamiento podŕıa realizarse incorporando una base de datos al proyecto, y traduciendo todas las operaciones de lectura y escritura en ficheros por sus correspondientes en la base de datos. Este trabajo es totalmente rutinario una vez fami- liarizados con los lenguajes correspondientes. Sin embargo, en lugar de realizar la pesada tarea de cambiar todas estas funciones, se llegó a un compromiso entre este almacena- 5.3. Implementación y flujo de la aplicación 49 miento local y un almacenamiento remoto que permit́ıa además añadir una nueva funcio- nalidad: la posibilidad de utilizar la aplicación en un mismo dispositivo con varios usuarios diferentes, como por ejemplo seŕıa el caso de un terapeuta con varios pacientes. Finalmente, la información personal se almacena de forma remota, en una base MySQL10, pero no de la forma que presentábamos. La estructura local descrita sigue siendo la mis- ma, y durante la sesión, se modifica. Pero en lugar de mantenerla ah́ı, incorporamos un controlador de salida que, cuando detecte que se cierra la aplicación, la lleva a la base de datos y elimina los archivos. De esta manera limpia la estructura local de datos perso- nales para poder ser utilizada por otra persona, sin riesgo de exponer datos personales o mezclar información. Por tanto, una continuación totalmente directa del trabajo aqúı realizado es una mejora del diseño de la base de datos, lo cual solo requeriŕıa de la traducción y/o modificación de las funciones de almacenamiento. Adicionalmente, seŕıa ideal trasladar también las imágenes al almacenamiento remoto, cosa que actualmente no está contemplada. Habŕıa que modificar la carpeta multimedia a mano. De manera totalmente análoga, al comenzar una sesión, la información debeŕıa traerse desde la base de datos a su forma local. Se incorpora aśı un inicio de sesión, puesto que será necesario identificar los datos con su dueño. Esta será la primera interacción que será necesaria realizar para poder comenzar. En el siguiente apartado trataremos con mayor profundidad las interacciones, pero antes de ello, vemos finalmente el aspecto final del almacenamiento de la información. Antes de comenzar a usar la aplicación, un pequeño registro o inicio de sesión bastará para recuperar todos los datos anteriores de ese usuario. La primera vez que se utilice será necesario realizar un pequeño registro con simplemente un usuario y una contraseña. Los usuarios serán únicos, pues serán la clave primaria de la tabla usuarios. Esta tabla es la única existente, pero además del usuario y contraseña, tiene un total de 23 columnas, una por cada documento de texto a almacenar: cada una de las 7 categoŕıas existentes cuenta con su lista de palabras visitadas, grafo, y progreso, haciendo un total de 21. Las otras dos son la lista de las imágenes multimedia utilizadas y los datos personales. La figura 5.10 muestra las caracteŕısticas de la tabla tal y como se presentan en MySQL Workbench. En este momento śı que hemos fusionado todo el contenido de cada carpeta de categoŕıa en un único documento, pues no se va a modificar más. En este caso, se almacenará un texto de tantas ĺıneas como palabras. Cada ĺınea tendrá tres campos, separados mediante dos puntos. Los campos son la palabra, la lista de palabras asociadas (separadas por 10Aunque también de carácter local, no está dentro del proyecto, solo enlazada con él. 50 Caṕıtulo 5. Desarrollo técnico Figura 5.10: Caracteŕısticas de la tabla de usuarios. Figura 5.11: Formato del progreso almacenado en la base de datos, con los nombres propios pixelados. comas) y la lista de imágenes asociadas (separadas por comas). Si alguno de los campos es nulo, lo indicamos mediante #. En 5.11 encontramos un breve ejemplo. 5.3.3. Interacciones disponibles Como usuario, encontraremos tres formas fundamentales de interaccionar con la apli- cación: botones, entrada de texto y selección de opción. A nivel de implementación, in- dependientemente de su visualización, tendremos simplemente hiperv́ınculos () y entradas de información (). Los formularios HTML (
) y los métodos HTTP proporcionados por Flask conectarán las acciones menos directas del usuario con la aplicación Flask. El funcionamiento de los hiperv́ınculos es el más sencillo. Mediante la etiqueta , 5.3. Implementación y flujo de la aplicación 51 indicamos el enlace al que queremos redirigir (recordemos que los enlaces locales son los in- troducidos como argumento del decorador Flask @app.route), y en caso de querer propor- cionar argumentos, el nombre del mismo y su valor. Por ejemplo, a la hora de seleccionar la categoŕıa de la sesión, utilizaremos como etiqueta acompañante del botón que indica “Vacaciones”, donde new_engine es el hiperv́ınculo asociado a la función que se encargará de renderizar (con render_template) la siguiente pantalla. El método HTTP asociado a esto es GET. Para recoger la información proporcionada por el usuario, usaremos los formularios con método post : . En ellos, encontraremos elementos del tipo y