EVALUACIÓN Y MEJORA DE UN SISTEMA DE DIÁLOGO PARA...
Transcript of EVALUACIÓN Y MEJORA DE UN SISTEMA DE DIÁLOGO PARA...
EVALUACIÓN Y MEJORA
DE UN SISTEMA DE DIÁLOGO
PARA TUTORÍA INTELIGENTE
EN UN ENTORNO VIRTUAL
Autor Carolina Monserratte López Guanipatín
Tutor Jaime Ramírez Rodríguez
Angélica de Antonio Jiménez [email protected]
AAgradecimientos
Agradezco a Dios por protegerme durante todo mi camino y darme fuerzas para
superar obstáculos y dificultades a lo largo de toda mi vida.
A mis padres y a mi hermano, que me han enseñado a no rendirme y a luchar
por mis sueños, y que siempre han estado presentes para guiarme y darme sus
consejos a lo largo de la carrera estudiantil. Y que a pesar de la distancia nunca faltó
una llamada para darme las fuerzas necesarias para seguir adelante.
A Christian, que me ayuda a ser una mejor persona, y gracias porque día tras
día seguimos apoyándonos y porque este año la distancia no fue un impedimento para
seguir adelante.
A mi familia, que durante este año han estado presentes a pesar de la distancia,
que nunca me faltó una llamada o un mensaje de apoyo.
A todas las personas con las que conviví este año lejos de mi hogar, gracias por
hacer de esta época una de las mejores experiencias de vida.
A Jaime y Angélica que supieron guiar de la mejor manera este proyecto de
titulación.
Gracias a todas las personas que ayudaron directa o indirectamente en la
realización de este proyecto.
i
ÍÍndice
ÍNDICE ............................................................................................................................................ I
ÍNDICE DE FIGURAS .................................................................................................................... VII
ÍNDICE DE TABLAS ........................................................................................................................ X
ÍNDICE DE ECUACIONES .............................................................................................................. XI
RESUMEN .................................................................................................................................... XII
SUMMARY .................................................................................................................................. XIII
1 INTRODUCCIÓN .......................................................................................................... 1
1.1. JUSTIFICACIÓN ...................................................................................................................... 2
1.2. CONTRIBUCIÓN ..................................................................................................................... 3
1.3. ORGANIZACIÓN DEL PROYECTO ........................................................................................... 4
2 ESTADO DEL ARTE ...................................................................................................... 5
2.1. LABORATORIO VIRTUAL DE BIOTECNOLOGÍA ..................................................................... 6
2.1.1. Open Simulator ................................................................................................................ 7
2.1.1.1. Comunicación entre objetos ........................................................................................................ 8
2.1.2. Protocolo de la práctica ................................................................................................... 9
2.1.3. Tutor automático del laboratorio .................................................................................... 9
2.1.3.1. Configuración del tutor automático .......................................................................................... 10
2.1.3.2. Validación de acciones por el tutor............................................................................................ 10
2.2. SISTEMA INTELIGENTE DE TUTORÍA CON INTERACCIÓN EN LENGUAJE NATURAL ......... 12
2.2.1. Arquitectura implementada del SIT ............................................................................... 13
2.2.1.1. Módulo experto y módulo tutor ................................................................................................ 13
2.2.1.2. Módulo estudiante...................................................................................................................... 13
ii
2.2.1.3. Módulo mundo ........................................................................................................................... 13
2.2.1.4. Módulo de comunicación ........................................................................................................... 13
2.2.2. Funcionamiento del SIT con interacción en lenguaje natural ........................................ 14
2.3. GESTOR DE DIÁLOGO: WATSON ASSISTANT ..................................................................... 16
2.3.1. Elementos del gestor de diálogo ................................................................................... 16
2.3.1.1. Intenciones (intents) ................................................................................................................... 16
2.3.1.2. Entidades (entities) ..................................................................................................................... 17
2.3.1.3. Estructura de diálogo .................................................................................................................. 17
2.3.2. Definición de intenciones y entidades ........................................................................... 17
2.3.2.1. Intenciones (intents) del laboratorio virtual .............................................................................. 17
2.3.2.2. Entidades (entities) del laboratorio virtual ................................................................................ 18
2.3.3. Estructura de diálogo ..................................................................................................... 19
2.3.3.1. Variables de contexto ................................................................................................................. 19
2.3.3.2. Definición de nodos .................................................................................................................... 19
Nodos principales de diálogo común .................................................................................................. 20
Nodos principales basados en la acción siguiente del estudiante .................................................... 21
Nodo principal para casos extras ........................................................................................................ 22
2.4. ONTOLOGÍAS ....................................................................................................................... 23
2.4.1. Conceptos básicos ......................................................................................................... 23
2.4.1.1. ¿Qué es una ontología? .............................................................................................................. 23
2.4.1.2. Lenguaje de Ontología Web (OWL) ........................................................................................... 23
2.4.2. Ontología mundo ........................................................................................................... 24
2.4.3. Ontología estudiante ..................................................................................................... 26
2.5. ASPECTOS PERCEPTIVOS Y ESPACIALES RELACIONADOS CON LA GENERACIÓN DE
INDICACIONES ............................................................................................................................ 28
2.5.1. Algoritmo para la generación de indicaciones para localización de objetos .................. 28
2.5.1.1. El objeto para localizar está en el mismo cuarto del usuario, pero no en su campo de visón
................................................................................................................................................................... 28
iii
2.5.1.2. El objeto para localizar no está en el mismo cuarto ................................................................. 28
2.5.1.3. El objeto a localizar está en el campo de visión del usuario..................................................... 29
(c.1) El objeto a localizar se encuentra dentro de otro objeto .................................................... 29
(c.2) El objeto a localizar es saliente por sí solo ............................................................................ 29
(c.3) Necesidad de objeto de referencia ....................................................................................... 29
2.5.2. Algoritmo para la selección de objeto de referencia ..................................................... 30
2.5.2.1. Filtrado previo ............................................................................................................................. 30
2.5.2.2. Selección del objeto de referencia............................................................................................. 30
Conocimiento previo ( ) ................................................................................................................... 30
Saliencia visual o saliencia general del objeto (GS) ............................................................................ 31
Probabilidad de recordar la posición del objeto en el entorno (PR) ................................................. 34
33 PLANTEAMIENTO DEL PROBLEMA ............................................................................ 35
3.1. PROBLEMAS PREVIOS ......................................................................................................... 36
3.1.1. Tramo controlado .......................................................................................................... 36
3.1.2. Deshabilitación de peticiones del estudiante ................................................................ 37
3.1.3. Traza del estudiante en tiempo real .............................................................................. 37
3.1.4. Generación de indicaciones de ubicación en lenguaje natural ...................................... 38
3.2. EVALUACIÓN: PRUEBAS REALIZADAS ................................................................................. 39
3.2.1. Descripción de los errores encontrados en las pruebas ................................................ 39
3.2.1.1. Pruebas 13 de mayo de 2019 ..................................................................................................... 39
3.2.1.2. Pruebas 14 de mayo de 2019 ..................................................................................................... 40
3.2.1.3. Pruebas 16 de mayo de 2019 ..................................................................................................... 41
3.2.1.4. Pruebas 17 de mayo de 2019 ..................................................................................................... 42
3.2.2. Análisis de las pruebas ................................................................................................... 43
3.2.2.1. Recuento por estudiante de respuestas exitosas y fallidas ...................................................... 43
3.2.2.2. Clasificación de los errores encontrados ................................................................................... 44
3.3. OBJETIVOS ........................................................................................................................... 47
3.3.1. Mejoras derivadas de los problemas previamente conocidos ....................................... 47
iv
3.3.1.1. Estudiante dentro del tramo controlado ................................................................................... 47
3.3.1.2. Deshabilitación de peticiones del estudiante ............................................................................ 47
3.3.1.3. Traza de estudiante en tiempo real ........................................................................................... 47
3.3.1.4. Generación de indicaciones de ubicación en lenguaje natural ................................................ 48
3.3.2. Mejoras derivadas de la evaluación ............................................................................... 50
44 SOLUCIÓN ADOPTADA ............................................................................................. 52
4.1. MEJORAS EN LA CALIDAD DEL CÓDIGO DEL PROYECTO PREVIO ..................................... 53
4.2. IMPLEMENTACIONES PREVIAS A LA EVALUACIÓN ............................................................ 57
4.2.1. Estudiante dentro de tramo controlado ........................................................................ 57
4.2.2. Servicio web para deshabilitar estudiante ..................................................................... 58
4.3. SOLUCIONES A ERRORES DE LA EVALUACIÓN ................................................................... 59
Solución 1: Corrección de errores de tipografía ................................................................................ 59
Solución 2: Sinónimos en entidades ................................................................................................... 59
Solución 3: Ejemplos en intenciones existentes ................................................................................ 60
Solución 4: Evitar respuestas repetidas de que no se entiende algo ................................................ 60
Solución 5: Nueva intención para logros del estudiante ................................................................... 61
Solución 6: Nueva intención “como hacer” ........................................................................................ 61
Solución 7: Dos entidades (quimico-vitrina) ....................................................................................... 61
Solución 8: Dos entidades (vaso-fregadero) ....................................................................................... 62
Solución 9: Dos entidades (vaso-agitador) ......................................................................................... 62
Solución 10: Dos entidades (botella-sala de autoclave) .................................................................... 62
4.4. TRAZA DE ESTUDIANTES EN TIEMPO REAL ........................................................................ 63
4.4.1. Proyecto previo ............................................................................................................. 63
4.4.2. Implementación ............................................................................................................. 63
4.5. UBICACIÓN DE OBJETOS BASADA EN ASPECTOS PERCEPTIVOS Y ESPACIALES ............... 66
4.5.1. Preprocesamiento: script que permite agregar información a la ontología mundo ...... 66
4.5.1.1. Proyecto ScriptWorldInformation .............................................................................................. 66
Funcionamiento de ScriptWorldInformation ..................................................................................... 67
v
Resultado de ScriptWorldInformation ................................................................................................ 70
4.5.2. Algoritmo de generación de indicaciones para ubicar objetos ...................................... 72
4.5.2.1. Explicación ................................................................................................................................... 72
4.5.2.2. Proyecto previo ........................................................................................................................... 72
4.5.2.3. Pseudocódigo .............................................................................................................................. 74
4.5.3. Implementación ............................................................................................................. 76
4.5.3.1. Posición y orientación del avatar del estudiante ...................................................................... 76
4.5.3.2. Elección de la instancia del objeto a localizar ........................................................................... 77
Instancias en la misma sala que el usuario ......................................................................................... 77
Instancia más cercana al estudiante ................................................................................................... 79
Cambio de la instancia del objeto a localizar ..................................................................................... 79
4.5.3.3. Campo de visión del estudiante ................................................................................................. 80
Verificación de si el OL se encuentra en el campo de visión ............................................................. 80
Instrucción para que quede dentro del campo de visión .................................................................. 81
4.5.3.4. Generación de la instrucción ...................................................................................................... 82
Descripción del objeto ......................................................................................................................... 82
Cálculo de la saliencia de contexto ..................................................................................................... 82
Cálculo de la saliencia general............................................................................................................. 83
Verificar si el objeto es saliente por sí mismo .................................................................................... 83
Selección del mejor objeto de referencia ........................................................................................... 84
55 PRUEBAS .................................................................................................................. 85
5.1. REFORMULACIÓN DE PREGUNTAS CON RESPUESTAS ERRÓNEAS DURANTE LA
EVALUACIÓN ............................................................................................................................... 86
5.2. GENERACIÓN DE INSTRUCCIÓN DE UBICACIÓN DE OBJETO SACAROSA ......................... 88
5.2.1.1. Posición y orientación del avatar del estudiante ...................................................................... 89
5.2.1.2. Elección de la instancia del objeto a localizar ........................................................................... 89
Instancias en el mismo cuarto que el estudiante ............................................................................... 90
Instancia más cercana al estudiante ................................................................................................... 91
Cambio de la instancia del objeto a localizar ..................................................................................... 91
5.2.1.3. Campo de visión del estudiante ................................................................................................. 92
Cálculo del campo de visión del estudiante ....................................................................................... 92
Verificación si Chemicals_Showcase_2 se encuentra dentro del campo de visión .......................... 92
Instrucción para que quede dentro del campo de visión .................................................................. 93
vi
5.2.1.4. Generación de la instrucción ...................................................................................................... 93
Descripción del objeto ......................................................................................................................... 93
Cálculo de la saliencia de contexto y de la saliencia general ............................................................. 94
Verificar si Chemicals_Showcase_2 es saliente por sí mismo ........................................................... 94
Selección del mejor objeto de referencia ........................................................................................... 94
Instrucción generada por el algoritmo ............................................................................................... 95
66 CONCLUSIONES Y TRABAJO FUTURO ........................................................................ 96
6.1. CONCLUSIONES ................................................................................................................... 97
6.2. TRABAJO FUTURO ............................................................................................................... 98
7 ANEXOS .................................................................................................................. 100
7.1. ANEXO 1: TABLA DE INDIVIDUOS AÑADIDOS A LA ONTOLOGÍA MUNDO ..................... 101
7.2. ANEXO 2: RESULTADO DE LA IMPLEMENTACIÓN DE SOLUCIONES PARA PROBLEMAS
ENCONTRADOS EN LA EVALUACIÓN ....................................................................................... 104
8 REFERENCIAS.......................................................................................................... 107
vii
ÍÍndice de figuras
FIGURA 1. ESTUDIANTES REALIZANDO LA PRÁCTICA EN EL LABORATORIO VIRTUAL DE BIOTECNOLOGÍA ............................ 7
FIGURA 2. EJEMPLO DE LA SECUENCIA DE MENSAJES INTERCAMBIADOS ENTRE EL AVATAR Y OBJETOS INVOLUCRADOS EN LA
PRÁCTICA [3] ................................................................................................................................. 8
FIGURA 3. EJEMPLO DE INTERACCIÓN ENTRE EL TUTOR AUTOMÁTICO DEL LABORATORIO Y EL ESTUDIANTE, A TRAVÉS DE
MENSAJES DE TUTORÍA .................................................................................................................. 10
FIGURA 4. ESQUEMA COMPLETO DE LA ARQUITECTURA DEL SIT CON INTERACCIÓN EN LENGUAJE NATURAL [5] ............. 12
FIGURA 5. ESQUEMA DEL FUNCIONAMIENTO DEL SIT CON INTERACCIÓN EN LENGUAJE NATURAL [5] ........................... 14
FIGURA 6. ESTRUCTURA DE DIÁLOGO: NODOS PRINCIPALES CON INTENTS DE DIÁLOGOS COMUNES .............................. 20
FIGURA 7. ESTRUCTURA DE DIÁLOGO: EJEMPLO DE RESPUESTA EN NODO PRINCIPAL DE INTENCIÓN #GENERAL_GREETINGS
................................................................................................................................................. 20
FIGURA 8. ESTRUCTURA DE DIÁLOGO: EJEMPLO DE NODO PRINCIPAL PARA ACCIÓN SIGUIENTE
AGREGARMYS/AGREGARSACAROSA .................................................................................................. 21
FIGURA 9. ESTRUCTURA DE DIÁLOGO: EJEMPLO DE CONDICIÓN CON VALORES DE UNA ENTIDAD ................................. 22
FIGURA 10. ONTOLOGÍA MUNDO: ESTRUCTURA DE CLASES ................................................................................... 24
FIGURA 11. ONTOLOGÍA MUNDO: EJEMPLO DE INDIVIDUO CHEMICAL_SHOWCASE.................................................... 25
FIGURA 12. PRINCIPALES RELACIONES AD-HOC ENTRE LAS ONTOLOGÍAS MODULARES [11] .......................................... 26
FIGURA 13. ESQUEMA DEL MODELO COMPUTACIONAL PARA CÁLCULO DE SALIENCIA GENERAL O VISUAL ( ) [6] ........... 31
FIGURA 14. DIAGRAMA DE PAQUETES DE SITCHATBOTRUNTIME ........................................................................... 54
FIGURA 15. SITCHATBOTRUNTIME: DIAGRAMA DE CLASES DEL PAQUETE WATSON ................................................... 55
FIGURA 16. SITCHATBOTRUNTIME: DIAGRAMA DE CLASES DEL PAQUETE STUDENTMODULE ...................................... 55
FIGURA 17. SITCHATBOTRUNTIME: DIAGRAMA DE CLASES DEL PAQUETE WORLDMODULE ........................................ 56
FIGURA 18. MÉTODOS Y ATRIBUTOS UTILIZADOS PARA LA SOLUCIÓN DE: ESTUDIANTE DENTRO DE TRAMO CONTROLADO .. 57
FIGURA 19. SITCHATBOTRUNTIME: DIAGRAMA DE CLASES DE PAQUETE WEBSERVICE ............................................... 58
FIGURA 20. PETICIÓN POST PARA DESHABILITAR UN ESTUDIANTE .......................................................................... 58
FIGURA 21. PETICIÓN POST PARA HABILITAR UN ESTUDIANTE ............................................................................... 58
FIGURA 22. PETICIÓN POST DE TIPO EVENTO – ACCIÓN ....................................................................................... 64
FIGURA 23. PETICIÓN POST DE TIPO EVENTO – ERROR ........................................................................................ 64
FIGURA 24. MÉTODOS Y ATRIBUTOS UTILIZADOS PARA LA SOLUCIÓN DE: TRAZAS DE ESTUDIANTES EN TIEMPO REAL ......... 64
viii
FIGURA 25. EJEMPLO DE INFORMACIÓN Y PERFIL DEL ESTUDIANTE GUARDADO EN LA ONTOLOGÍA MUNDO EN TIEMPO REAL
................................................................................................................................................. 65
FIGURA 26. EJEMPLO DE TRAZA Y ESTADO DEL ESTUDIANTE GUARDADO EN LA ONTOLOGÍA MUNDO EN TIEMPO REAL ........ 65
FIGURA 27. DIAGRAMA DE PAQUETES DE PROYECTO SCRIPTWORLDINFORMATION .................................................... 66
FIGURA 28. PREPROCESAMIENTO: FORMATO PRINCIPAL DEL ARCHIVO CON DEFINICIÓN DE NUEVOS ELEMENTOS PARA
ONTOLOGÍA MUNDO ..................................................................................................................... 67
FIGURA 29. PREPROCESAMIENTO: FORMATO JSON UTILIZADO EN EL ARCHIVO DE DEFINICIÓN DE INDIVIDUOS PARA LA
ONTOLOGÍA ................................................................................................................................. 68
FIGURA 30. PREPROCESAMIENTO: CONSULTA EN SQL PARA OBTENER DATOS DE LOS OBJETOS DEL LABORATORIO VIRTUAL EN
OPENSIM ................................................................................................................................... 69
FIGURA 31. PREPROCESAMIENTO: MUESTRA DEL ARCHIVO DE REGISTRO CON TODOS LOS INDIVIDUOS CREADOS EN LA
ONTOLOGÍA MUNDO ..................................................................................................................... 70
FIGURA 32. PREPROCESAMIENTO: NUEVOS INDIVIDUOS COMO RESULTADO DE EJECUTAR EL PROGRAMA
SCRIPTWORLDINFORMATION ......................................................................................................... 71
FIGURA 33. PETICIÓN POST DE CHAT DE ESTUDIANTE CON SU ORIENTACIÓN Y POSICIÓN ............................................ 76
FIGURA 34. MÉTODOS Y ATRIBUTOS UTILIZADOS PARA GUARDAR LA POSICIÓN Y ORIENTACIÓN DEL ESTUDIANTE EN LA
ONTOLOGÍA MUNDO ..................................................................................................................... 76
FIGURA 35. CLASES UTILIZADAS PARA REPRESENTAR UN OBJETO DE LA ONTOLOGÍA MUNDO EN EL SISTEMA .................... 77
FIGURA 36. INSTANCIA DE SALA MAIN_ROOM EN LA ONTOLOGÍA MUNDO ............................................................... 78
FIGURA 37. MÉTODOS UTILIZADOS PARA ENCONTRAR INSTANCIAS DE UN OBJETO EN EL MISMO CUARTO DEL ESTUDIANTE . 79
FIGURA 38. MÉTODOS UTILIZADOS PARA ENCONTRAR LA INSTANCIA MÁS CERCANA AL ESTUDIANTE .............................. 79
FIGURA 39. REPRESENTACIÓN DE VECTORES Y ÁNGULOS PARA VERIFICAR SI UN OBJETO SE ENCUENTRA DENTRO DEL CAMPO
DE VISIÓN DEL ESTUDIANTE ............................................................................................................. 80
FIGURA 40. MÉTODOS UTILIZADOS PARA VERIFICAR SI EL OL SE ENCUENTRA O NO EN EL CAMPO DE VISIÓN DEL ESTUDIANTE
................................................................................................................................................. 81
FIGURA 41. MÉTODO UTILIZADO PARA CALCULAR SALIENCIA DE CONTEXTO PARA TODAS LAS INSTANCIAS DEL CONTEXTO ... 82
FIGURA 42. MÉTODO UTILIZADO PARA CALCULAR SALIENCIA GENERAL PARA TODAS LAS INSTANCIAS DEL CONTEXTO ......... 83
FIGURA 43. ENVIÓ DE PETICIÓN DE TIPO EVENT A TRAVÉS DE POSTMAN ................................................................... 87
FIGURA 44. ENVIÓ DE PETICIÓN DE TIPO CHAT A TRAVÉS DE POSTMAN .................................................................... 87
FIGURA 45. PETICIÓN POST DE TIPO CHAT UTILIZADA EN LA PRUEBA DE GENERACIÓN DE INSTRUCCIÓN DE UBICACIÓN DEL
QUÍMICO SACAROSA ...................................................................................................................... 88
ix
FIGURA 46. AVATAR DE LA ESTUDIANTE CAROLINA LOPEZ EN EL LABORATORIO VIRTUAL, CON POSICIÓN Y ORIENTACIÓN DEL
MOMENTO QUE REALIZA LA PREGUNTA ............................................................................................. 88
FIGURA 47. RESULTADO: INSTANCIA DE ESTUDIANTE EN ONTOLOGÍA MUNDO CON DATOS DE POSICIÓN Y ORIENTACIÓN .... 89
FIGURA 48. EJEMPLO DE INSTANCIAS DE UN OBJETO (SACAROSA) CARGADO EN MEMORIA CON DATOS DE LA ONTOLOGÍA
MUNDO ...................................................................................................................................... 90
FIGURA 49. REFERENCIAS (PROPERTIES) DE LA INSTANCIA ESCOGIDA, SUCROSE_2, COMO OBJETO A LOCALIZAR ............... 91
FIGURA 50. AVATAR DE LA ESTUDIANTE CAROLINA LOPEZ EN EL LABORATORIO VIRTUAL DESPUÉS DE SEGUIR LA INSTRUCCIÓN
PARA QUE EL OL QUEDE EN SU CAMPO DE VISIÓN ............................................................................... 93
x
ÍÍndice de tablas
TABLA. I. TABLA DE INTENTS DEFINIDOS EN LA INSTANCIA DE WATSON ASSISTANT USADA EN EL SIT CON INTERACCIÓN EN
LENGUAJE NATURAL............................................................................................................................. 18
TABLA. II. TABLA DE ENTITIES DEFINIDAS EN LA INSTANCIA DE WATSON ASSISTANT USADA EN EL SIT CON INTERACCIÓN EN
LENGUAJE NATURAL............................................................................................................................. 18
TABLA. III. RECUENTO POR ESTUDIANTE DE RESPUESTAS EXITOSAS/FALLIDAS ............................................................... 43
TABLA. IV. GRAVEDAD DE LOS TIPOS DE ERRORES ENCONTRADOS EN LA EVALUACIÓN.................................................... 46
TABLA. V. INSTANCIAS DE LOS CUARTOS O SALAS DE LA ONTOLOGÍA MUNDO .............................................................. 78
TABLA. VI. POSIBLES INSTRUCCIONES CUANDO EL OBJETO A LOCALIZAR ES SOBRESALIENTE POR SÍ MISMO O NO TIENE
REFERENCIAS ...................................................................................................................................... 83
TABLA. VII. POSIBLES INSTRUCCIONES CUANDO LA INSTRUCCIÓN DEL OBJETO A LOCALIZAR ESTÁ BASADA EN UN OBJETO DE
REFERENCIA ....................................................................................................................................... 84
TABLA. VIII. SALIENCIA GENERAL Y SALIENCIAS DE CONTEXTO OBTENIDOS PARA EL CONTEXTO DE CHEMICALS_SHOWCASE_2 ...
................................................................................................................................................ 94
TABLA. IX. SELECCIÓN DEL MEJOR OBJETO DE REFERENCIA PARA CHEMICALS_SHOWCASE_2 ......................................... 95
TABLA. X. INSTANCIAS AGREGADAS A LA ONTOLOGÍA MUNDO ................................................................................ 103
TABLA. XI. RESULTADO DE LA IMPLEMENTACIÓN DE SOLUCIONES PARA PROBLEMAS ENCONTRADOS EN LAS PRÁCTICAS .... 106
xi
ÍÍndice de ecuaciones
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
xii
RResumen
En el presente proyecto se realizó la evaluación y mejora de un Sistema
Inteligente de Tutoría (SIT) con interacción en lenguaje natural, el cual se encuentra
funcionando para realizar prácticas de laboratorio en la carrera de Biotecnología
Agroforestal. Las prácticas se realizan en un laboratorio virtual con la ayuda de un tutor
automático.
Esta tesis de máster se enfocó en el módulo de comunicación, que permite el
diálogo en lenguaje natural entre el estudiante y el tutor automático del SIT.
El primer paso fue la evaluación del sistema existente, a través de la que cual se
encontraron preguntas realizadas por los estudiantes que no fueron consideradas en la
versión inicial, y también respuestas por parte del tutor automático que contenían errores
que causaban confusión en los estudiantes. Posterior a la evaluación se realizó un
análisis y corrección de los errores, teniendo como resultado una versión que abarca
mayor conocimiento y por ende brinda más ayuda a los estudiantes.
El segundo paso fue la mejora del SIT. Durante las prácticas los estudiantes
preguntan por la ubicación de los objetos dentro del laboratorio, y en la versión inicial
esta instrucción era siempre la misma, tomando como referencia la puerta de entrada.
Esto no era de ayuda para los estudiantes, por lo que se implementó un algoritmo que
permite crear instrucciones de ubicación, basado en aspectos como: ubicación del
estudiante dentro del laboratorio, campo de visión del estudiante, o saliencia de los
objetos basada en su color, forma y tamaño.
Este algoritmo depende de la información existente en una ontología del mundo,
por lo que se creó un script capaz de guardar en esta ontología la información de los
objetos del laboratorio que se encuentren especificados en un archivo JSON.
Finalmente, se realizó pruebas dentro del laboratorio virtual para comprobar que
las correcciones realizadas en base a la evaluación permitan que las respuestas por
parte del tutor automático a las preguntas de los estudiantes sean correctas. Y, además,
para verificar que las nuevas instrucciones de ubicación guíen correctamente a los
estudiantes hacia los objetos que están buscando.
xiii
SSummary
In this project it has been done the evaluation and improvement of an Intelligent
Tutoring System (ITS) with natural language interaction, which is used to perform
laboratory practices in the degree of Agroforestry Biotechnology. The practices are
carried out in a virtual laboratory with the help of an automatic tutor.
This master's thesis is focused on the communication module that allows
dialogue in natural language between the student and the automatic tutor of the ITS.
The first step was the evaluation of the existing system, through which were found
questions made by the students that were not considered in the initial version, and
answers by the automatic tutor that contained errors that caused confusion in the
students. After the evaluation, an analysis and correction of the errors was made, giving
as result a new version that covers more knowledge and therefore provides more help
to the students.
The second step was the improvement of the ITS. During the practices the
students ask about the location of the objects inside the laboratory, and in the initial
version this instruction was always the same, taking as reference the entrance door. This
was not helpful for students, so an algorithm was implemented to create location
instructions based on aspects such as: student's location within the laboratory, student's
field of vision, or salience of objects based on their color, shape and size.
This algorithm depends on the existing information in a world ontology, so it was
created a script capable of saving in this ontology the information of the laboratory
objects that are specified in a JSON file.
Finally, tests were carried out within the virtual laboratory to verify that the
corrections made, based on the evaluation, allow the responses by the automatic tutor
to the students' questions to be correct. And, in addition, to verify that the new location
instructions guide students correctly to the objects they are looking for.
1 INTRODUCCIÓN
INTRODUCCIÓN
2
1.1. Justificación
En las carreras de grado superior, el desarrollo de prácticas de laboratorio es
esencial para obtener una mejor comprensión de los temas conceptuales que han sido
revisados en clase. Sin embargo, existen áreas cuyas prácticas de laboratorio pueden
llegar a ser muy costosas y tomar mucho tiempo para la obtención de resultados.
Siendo este el caso en la carrera de biotecnología agroforestal, se creó un
laboratorio virtual en el que los estudiantes pueden realizar prácticas de ingeniería
genética para la creación de árboles resistentes a hongos. En este mundo virtual los
estudiantes tienen la posibilidad de chatear con un tutor humano (profesor), quien se
encuentra también conectado. Adicionalmente, existe un tutor automático encargado de
guiar la práctica, y cuyo conocimiento se basa en las acciones de la práctica, su orden
y sus dependencias.
El hecho de que un tutor humano tenga que estar conectado durante el desarrollo
de la práctica se volvió una restricción de usabilidad, motivo por el cual se decidió la
creación de un Sistema Inteligente de Tutoría para entrenamiento procedimental en un
entorno virtual con interacción en lenguaje natural, cuya arquitectura y características
fueron definidas por su autor José Paladines en su artículo [1].
Tomando como referencia la arquitectura propuesta se implementó un Módulo
de soporte de gestor de diálogo o MSGD, que permite la comunicación persona-
ordenador (estudiante-tutor automático) con objetivos académicos.
Esta comunicación se da en lenguaje natural gracias a la utilización de un gestor
de diálogo capaz de comprender el lenguaje humano y responder adecuadamente a sus
preguntas. Cabe recalcar que el estudiante puede realizar preguntas relacionadas con
el entorno de entrenamiento, del cual el gestor de diálogo no tiene conocimiento alguno;
y por este motivo el MSGD tiene una integración con una ontología del mundo, de la
cual se puede obtener esta información.
INTRODUCCIÓN
3
1.2. Contribución
Uno de los problemas de interactuar en lenguaje natural, en este caso el español,
es que no todos utilizamos las mismas palabras ni frases para referirnos a lo mismo.
Por lo tanto, el gestor de diálogo debe tener un constante entrenamiento que permita
mejorar su entendimiento a las preguntas realizadas por los estudiantes.
En el presente trabajo, se plantea realizar mejoras al gestor de diálogo con el fin
de que exista una comunicación más fluida estudiante-tutor. Por lo tanto, es necesario
realizar prácticas con estudiantes de la carrera de Biotecnología Agroforestal, que
permitan obtener nueva información para entrenar constantemente al gestor de diálogo
y que su entendimiento vaya en mejoría.
Otro problema de la solución actual es la falta de información en la ontología del
mundo. Dicha ontología no tiene instancias que representen a todos los objetos del
entorno virtual.
Esta falta de información es un problema para la generación de respuestas en
lenguaje natural que indiquen la ubicación de los objetos dentro del entorno. Por lo que
actualmente la instrucción es estática tomando como perspectiva la puerta principal.
Es así como en el presente proyecto se plantea también incluir en la ontología
del mundo la información de todos los objetos del entorno virtual. Y desarrollar un
módulo que permita, posteriormente, en base a esta información, generar instrucciones
dinámicas en lenguaje natural que indiquen la localización de objetos dentro del entorno.
Cabe recalcar que estas indicaciones estarán basadas en aspectos como la ubicación
del estudiante y su campo de visión.
INTRODUCCIÓN
4
1.3. Organización del Proyecto
Los capítulos del presente proyecto que se encuentran a continuación son:
El capítulo 2, se enfoca en presentar un estado de arte de los trabajos previos
para poder entender de mejor manera los sistemas y tecnologías que dan soporte y
sentido a este proyecto.
En el capítulo 3, se describen los problemas previamente conocidos de la
solución actual del SIT con interacción en lenguaje natural; y se realiza un análisis de la
evaluación realizada con estudiantes para determinar mejorías en el sistema.
Finalmente, se plantean los objetivos que permitirán la implementación de una mejoría
en el este proyecto.
En el capítulo 4, se describen las soluciones adoptadas para resolver los
problemas descritos en el capítulo anterior. En las soluciones se muestran diagramas
de paquetes y de clases para un mejor entendimiento del aporte de este proyecto de
investigación.
En el capítulo 5, se describen las pruebas realizadas a las soluciones
implementadas para verificar que se han obtenido los resultados deseados.
Finalmente, en el capítulo 6 se presentan las conclusiones obtenidas durante el
desarrollo del proyecto, y se plantean trabajos futuros para un mayor desarrollo del
sistema.
2 ESTADO DEL ARTE
ESTADO DEL ARTE
6
En este capítulo se realizará un análisis de los trabajos existentes en la literatura
que estén relacionados con los objetivos de esta tesis.
De esta forma, los apartados de este capítulo hacen referencia a varios trabajos
de investigación realizados en la Universidad Politécnica de Madrid, entre los que se
tiene:
Una arquitectura para laboratorios virtuales en ingenierías [2]
Propuesta de un Modelo de Comportamiento Colectivo de Estudiantes para un
Sistema Inteligente de Tutoría dirigido al Entrenamiento Procedimental [3]
Implementación de un Sistema de Diálogo en Lenguaje Natural basado en Watson
para un Sistema Inteligente de Tutoría [4]
Módulo de Soporte para el Gestor de Diálogo en Lenguaje Natural de un Sistema
Inteligente de Tutoría [5]
Modelo Computacional para la Generación de Indicaciones den la Localización de
Objetos en Entornos Virtuales: Aspectos espaciales y perceptivos [6]
2.1. Laboratorio virtual de biotecnología
Para la realización de esta tesis, se utiliza el laboratorio virtual de tecnología
llamado BioTech [2] obtenido como resultado de un proyecto de innovación educativa
de la Universidad Politécnica de Madrid.
El laboratorio BioTech, realizado en la plataforma OpenSim, se desarrolló para
acercar a los estudiantes de grado del área de biotecnología a una práctica en la que
puedan modificar genéticamente un árbol y dotarlo de una mayor resistencia a
enfermedades producidas por hongos [3]. Este tipo de prácticas no pueden ser
realizadas en laboratorios reales debido a que el costo individual aproximado de una
práctica es de 25.000 euros, y el tiempo para ver resultados es de alrededor de 2 años.
Con la ayuda del laboratorio virtual, todos los estudiantes tienen la oportunidad
de realizar la práctica (ver Figura 1), pues se disminuye los costos de los materiales de
laboratorio y al ser una práctica simulada la obtención de resultados es inmediata.
Además, los estudiantes no están expuestos a los riesgos asociados con esta práctica,
ni a la pérdida de recursos por la mala realización de la misma.
ESTADO DEL ARTE
7
Figura 1. Estudiantes realizando la práctica en el laboratorio virtual de
biotecnología
La definición de la práctica se la ha realizado en un protocolo compuesto por
acciones que han sido especificadas con la ayuda de un profesor de la asignatura.
Además, en el laboratorio virtual existe un tutor automático encargado de guiar la
práctica del estudiante.
En los siguientes subapartados se analizarán de manera más detallada:
OpenSim como herramienta de desarrollo del mundo virtual, el protocolo de la práctica
implementado, y el tutor automático del laboratorio.
2.1.1. Open Simulator
OpenSim es un servidor de aplicaciones 3D multiplataforma y multiusuario que
permite crear mundos virtuales a los que se puede acceder a través de varios clientes
o visores en múltiples protocolos [7].
Para el desarrollo del laboratorio BioTech se decidió utilizar OpenSim por su
facilidad para la creación de mundos virtuales, ya que está basado en Second Life [3] y,
además, porque es un proyecto gratuito y de código libre. Con la ayuda de OpenSim se
construyó un mundo virtual que representa un laboratorio de biotecnología, formado por
cinco habitaciones, en el que se realizan las diferentes acciones de la práctica.
ESTADO DEL ARTE
8
Para poder acceder a un mundo virtual creado en OpenSim se necesita un
cliente compatible que debe estar instalado en el computador [7]. El cliente escogido por
el proyecto de investigación de la universidad fue Firestorm (Phoenix), lo que significa
que el mismo debe estar instalado en la computadora de cada estudiante que deba
acceder a la práctica.
2.1.1.1. Comunicación entre objetos
En mundos virtuales creados en OpenSim, todos los objetos se comunican entre
sí a través del intercambio de mensajes. La Figura 2 muestra un esquema del
intercambio de mensajes entre los objetos, incluyendo al avatar que representa al
estudiante, involucrados en una parte de la práctica del laboratorio de biotecnología.
Figura 2. Ejemplo de la secuencia de mensajes intercambiados entre el avatar
y objetos involucrados en la práctica [3]
ESTADO DEL ARTE
9
2.1.2. Protocolo de la práctica
En el laboratorio virtual el estudiante debe realizar una práctica, la cual está
diseñada como un problema bien definido (well-defined), es decir, como un proceso
cerrado con un único resultado y sin muchas variaciones para alcanzar dicho resultado
correcto [3].
Como se detalla en [3], el protocolo contempla 116 acciones que tienen que
realizar los estudiantes para la correcta finalización de la práctica; adicionalmente, por
motivos pedagógicos, se han definido también acciones incorrectas y acciones
intrascendentes, dando como resultado 176 acciones configuradas en el protocolo
completo.
En el diseño de la práctica, descrito en [3], se definieron acciones altamente
estructuradas y acciones poco estructuradas. Durante las altamente estructuradas el
estudiante recibe información detallada sobre la siguiente acción a realizar, por lo tanto,
solo son permitidos errores irrelevantes. En las acciones poco estructuradas, se le dará
al estudiante una descripción general poco detallada, por ejemplo, para realizar una
mezcla no se especifica el nombre de los ingredientes químicos necesarios.
2.1.3. Tutor automático del laboratorio
En ambientes de entrenamiento, implementados en mundos virtuales, es común
que el tutor se encuentre representado por un avatar que interactúa con los usuarios.
Sin embargo, en este laboratorio el tutor esta implementado como un script que se
ejecuta en un objeto invisible del mundo [3], por lo que la única forma de interacción con
los usuarios es a través de mensajes de tutoría, como se muestra en la Figura 3.
El tutor automático del laboratorio BioTech es el encargado de guiar la práctica
de cada estudiante a través de mensajes de tutoría: además, tiene que validar los
intentos de acción del estudiante (usuario), mostrar mensajes si se ha cometido algún
error, y proporcionar ayuda sobre la siguiente acción que se debe realizar [3].
ESTADO DEL ARTE
10
Figura 3. Ejemplo de interacción entre el tutor automático del laboratorio y el
estudiante, a través de mensajes de tutoría
2.1.3.1. Configuración del tutor automático
Al ser el tutor automático un script, su conocimiento se basa en un archivo con
formato tabular, diseñado por el profesor de la asignatura, en el cual se define la
secuencia de las acciones del protocolo de la práctica, y los mensajes de tutoría que
aparecen a lo largo de la misma.
En dicho archivo se encuentra descrita cada una de las acciones, con su
respectivo identificador y nombre, el orden en que deben ser realizadas, y sus
dependencias, es decir las acciones que deben ejecutarse antes o después; así como
también los mensajes de tutoría, los mensajes de error por dependencia y los mensajes
de error por incompatibilidades.
2.1.3.2. Validación de acciones por el tutor
Cada vez que el estudiante ejecuta una acción, dicha acción tiene que ser
validada por el tutor, para lo cual se implementó un método validarAccion(a). Este
ESTADO DEL ARTE
11
método es el encargado de verificar si la acción realizada es la siguiente en la práctica
y si previamente se han realizado las acciones de las cuales depende.
Una vez realizada la verificación, la respuesta del tutor puede ser: VALIDO,
FALLO o FALLO_PERO_SEGUIR.
Respuesta FALLO: Si la acción realizada ha sido validada por el tutor como
FALLO, no se permite la ejecución de ésta, pero sí se registra el error como irrelevante
[3]. Se considera irrelevante porque al no permitirse la ejecución no tendrá
consecuencias en el resultado de la práctica.
Respuesta FALLO_PERO_SEGUIR: Si la acción realizada ha sido validada por
el tutor como FALLO_PERO_SEGUIR, se permite que el estudiante continúe su práctica
y se registra el error como relevante. Este error tendrá consecuencias en el resultado
de la práctica, y el estudiante sabrá qué error fue el causante de su práctica fallida.
ESTADO DEL ARTE
12
2.2. Sistema Inteligente de Tutoría con
interacción en Lenguaje Natural
Los Sistemas Inteligentes de Tutoría o SITs, son sistemas basados en la
aplicación de técnicas de la Inteligencia Artificial que emulan a un profesor humano en
ciertas tareas docentes, sobre todo en aquellas relacionadas con la supervisión de los
ejercicios prácticos de los estudiantes [8].
Un SIT clásico debe contener el módulo del estudiante, el módulo de tutoría, el
módulo experto y el módulo de comunicación. Sin embargo, para llevar a cabo una
práctica en el laboratorio de biotecnología de la UPM, se ha implementado un SIT con interacción en lenguaje natural, en el cual fue necesario añadir el módulo mundo y la
interacción a través de servicios web con el gestor de diálogo Watson Assistant.
En los apartados de este capítulo se detalla la arquitectura implementada en el
SIT con interacción en lenguaje natural. Y adicionalmente, se describe la interacción con
el entorno de entrenamiento procedimental (laboratorio virtual) y con el gestor de diálogo
Watson Assistant encargado del procesamiento del lenguaje natural.
Figura 4. Esquema completo de la arquitectura del SIT con interacción en
lenguaje natural [5]
ESTADO DEL ARTE
13
2.2.1. Arquitectura implementada del SIT
La arquitectura implementada en el SIT con interacción en lenguaje natural se
encuentra esquematizada en la Figura 4. A continuación, se detallarán cada uno de los
módulos que se utilizan en dicha arquitectura.
2.2.1.1. Módulo experto y módulo tutor
El módulo experto y el módulo tutor fueron implementados dentro del entorno de
entrenamiento procedimental, que en este caso es el laboratorio virtual de biotecnología
descrito en el apartado 2.1.
El módulo experto contiene una descripción del procedimiento de la práctica
llamado protocolo de la práctica y que esta detallado en el apartado 2.1.2; mientras que
el módulo tutor hace referencia al tutor automático cuya definición y funcionamiento se
encuentra especificado en el apartado 2.1.3.
2.2.1.2. Módulo estudiante
El módulo del estudiante está formado por ontologías que contienen información
del estudiante, tales como: movimientos a través del entorno virtual, acciones realizadas
sean estas correctas o fallidas, y el estado en que se encuentra su práctica. En el
apartado 2.4.3 se describe de manera más detallada la ontología del estudiante.
2.2.1.3. Módulo mundo
El módulo mundo está basado en la ontología miles, diseñada para representar
la estructura y contenido de un entorno virtual 3D. Esta ontología contiene información
sobre los objetos 2D/3D del laboratorio [1].
2.2.1.4. Módulo de comunicación
El módulo de comunicación es el encargado de la comunicación, a través de
servicios web, entre el gestor de diálogo Watson Assistant y el estudiante que interactúa
con el entorno de entrenamiento procedimental.
ESTADO DEL ARTE
14
De forma más detallada, es el encargado de recibir las peticiones enviadas
desde el tutor automático del laboratorio virtual y reenviarlas al gestor de diálogo Watson
Assistant, para que éste realice la interpretación del lenguaje natural y genere una
respuesta con intenciones (intents) y entidades (entities). Posteriormente, el módulo de
comunicación, basado en las intenciones, genera la respuesta final que será entregada
al estudiante.
2.2.2. Funcionamiento del SIT con interacción en
lenguaje natural
Actualmente, el SIT con interacción en lenguaje natural se encuentra
funcionando como se muestra en la Figura 5, en la cual se especifica cómo se relacionan
todas las partes para proveer una respuesta correcta a cualquiera de las peticiones
enviadas desde el entorno de entrenamiento procedimental.
Figura 5. Esquema del funcionamiento del SIT con interacción en lenguaje
natural [5]
ESTADO DEL ARTE
15
Se creó un módulo de soporte de gestor de diálogo (MSGD), el cual abarca
el módulo de comunicación y el módulo mundo. Siendo así el encargado de la
comunicación con el laboratorio virtual a través de servicios web, de la comunicación
con el gestor de diálogo a través del API IBM Watson, y de la obtención de información
relevante de la ontología mundo a través del API Jena.
El servidor web del MSGD recibe 3 tipos de peticiones desde el tutor automático
del entorno de entrenamiento procedimental, las cuales son:
event: mensaje de acción o de error
chat: mensaje de chat escrito por el estudiante
timeout: mensaje de inactividad
El gestor general de eventos del MSGD se encarga de recibir las peticiones, y
realizar a continuación el debido procedimiento basado en el tipo de petición. A
continuación, se detalla la forma en que actúa el gestor en cada tipo de petición.
Si la petición recibida es de tipo event, el gestor del MSGD actualiza el estado
de la práctica del estudiante, específicamente la acción siguiente.
Si la petición recibida es de tipo timeout o chat, actúa de distribuidor de mensajes
para reenviar la petición a Watson Assistant a través del API de IBM Watson. Al mensaje
recibido se le incluye el contexto (información del estudiante y estado de su práctica), y
posteriormente se reenvía el mensaje + el contexto.
El gestor de diálogo Watson Assistant es capaz de analizar el lenguaje natural
para posteriormente devolver las intenciones (intents) del mensaje, que son el propósito
del estudiante, y las entidades (entities), que representan los objetos relevantes para las
intenciones. Se detalla su funcionamiento en el apartado 2.3.
Basado en la respuesta que se obtiene de Watson Assistant, el gestor general de eventos del MSGD genera la respuesta que será entregada al estudiante. Si Watson
Assistant devuelve una respuesta directa, el gestor se encarga únicamente de reenviarla
al entorno de entrenamiento procedimental. Caso contrario, basado en la intención que
devuelve Watson Assistant, el gestor general del MSGD realiza una consulta en la
ontología mundo para generar una respuesta de definición o de ubicación de los objetos
del laboratorio virtual.
ESTADO DEL ARTE
16
2.3. Gestor de diálogo: Watson Assistant
El gestor de diálogo tiene como objetivo analizar y entender las preguntas de los
estudiantes, las mismas que son escritas en lenguaje natural por lo que la misma
pregunta puede ser planteada de distinta manera; es decir, el gestor de diálogo es el
encargado de entender la intención de la pregunta del estudiante.
Durante la implementación del SIT con interacción en lenguaje natural se decidió
utilizar como gestor de diálogo el servicio cognitivo denominado Watson Assistant, que
es uno de los servicios ofrecidos por la plataforma IBM Bluemix.
La construcción del gestor de diálogo se llevó a cabo mediante una interfaz web
proporcionada por IBM, en donde se definen las intenciones y las entidades, y, además,
se construye el árbol de nodos que representa la estructura de diálogo.
En los siguientes apartados se explica cada uno de los elementos del gestor de
diálogo, y se detalla de manera general la construcción del gestor de diálogo que está
siendo utilizado actualmente en el SIT con interacción en lenguaje natural
(implementado en el proyecto [4]).
2.3.1. Elementos del gestor de diálogo
2.3.1.1. Intenciones (intents)
Las intenciones representan verbos, es decir representan la acción que un
usuario quiere llevar a cabo [9]. Las intenciones hacen referencia a los objetivos que se
anticipa que los usuarios tendrán cuando interactúan con el servicio [4].
El nombre de un intent va precedido del símbolo #. Es necesario que cada intent
tenga muchos ejemplos que hagan referencia a la manera en que se podría formular las
preguntas o frases [4]. Estos ejemplos son los que utiliza Watson Assistant para
relacionar cada mensaje con su intención correspondiente.
ESTADO DEL ARTE
17
2.3.1.2. Entidades (entities)
Una entidad representa un término o un objeto que da contexto a una acción [4,
9]. Las entidades representan información en la entrada de usuario que es relevante
para la finalidad de la intención [9].
Los nombres de las entities van precedidos del símbolo @. Una entidad puede
tener varios valores, y a cada uno de estos valores se le configura sinónimos, los cuales
son las diferentes maneras en que puede ser mencionado ese valor de la entidad.
2.3.1.3. Estructura de diálogo
La estructura de diálogo está basada en nodos, es decir tiene forma de árbol.
Cuando un mensaje es analizado por Watson Assistant, dicho mensaje recorre cada
uno de estos nodos en el orden en el que han sido definidos, para encontrar una
intención y una entidad que tengan relación con dicho mensaje.
Cada nodo del diálogo contiene, como mínimo, una condición; y puede contener
una respuesta o varios nodos hijos que de igual forma deben contener una condición y
una respuesta [9].
El servicio procesa el diálogo desde el primer nodo en el árbol hasta el último. A
medida que recorre por el árbol, si el servicio encuentra una condición que se cumple,
activa dicho nodo. Luego se mueve por el nodo que ha sido activado para comparar la
entrada del usuario con las condiciones de los nodos hijos, desde el primer nodo hijo
hasta el último [9].
2.3.2. Definición de intenciones y entidades
2.3.2.1. Intenciones (intents) del laboratorio virtual
En el caso del laboratorio virtual, las preguntas de los estudiantes están
relacionadas con la descripción, uso y ubicación de los objetos, por lo que se definieron
intents de dichos tipos. Además, se definieron intents basadas en diálogos comunes,
tales como saludos, despedidas o agradecimiento.
ESTADO DEL ARTE
18
INTENTS DE UBICACIÓN INTENTS DE DESCRIPCIÓN
#Ubicacion_Quimicos
#Ubicacion_Documento
#Ubicacion_Sala
#Ubicacion_Contenedor
#Quimicos_Mezcla
#Descripcion_Maquinaria
INTENTS DE USO INTENTS DIÁLOGOS COMUNES
#Obtencion_Objeto
#Aclaracion_Contenedor
#Falla_Encender_Maquinaria
#Mensaje_Accion_Siguiente
#General_Greetings
#General_Positive_Feedback
#General_Ending
#General_Human_or_Bot
Tabla. I. Tabla de intents definidos en la instancia de Watson Assistant usada en
el SIT con interacción en lenguaje natural
2.3.2.2. Entidades (entities) del laboratorio virtual
En el caso del laboratorio virtual, una entidad puede ser cualquier objeto
relacionado con el contexto de la práctica. Como se muestra en la Tabla. II, una entidad
está compuesta por uno o varios valores, y a dichos valores es a los que se les añade
los sinónimos. Para mayor detalle de la definición ver el documento [4].
ENTITIES VALORES
@maquinaria
ph_metro
grifo
agitador
cabina de flujo
autoclave
máquina de autoclave
@documento protocolo
documento
@contenedor
vitrina de vasos
vitrina de químicos
fregadero
vitrina de instrumentos
lavamanos
mesa
nevera
percha
@químico
químico
murashiage & skoog
sacarosa
caseína
agar
@sala sala principal
sala de autoclave
@objeto guantes
botella
vaso
bata
Tabla. II. Tabla de entities definidas en la instancia de Watson Assistant usada en
el SIT con interacción en lenguaje natural
ESTADO DEL ARTE
19
2.3.3. Estructura de diálogo
2.3.3.1. Variables de contexto
Watson Assistant permite la definición de variables de contexto, cuyos valores
permiten realizar distinciones en las respuestas [4]. En el caso del laboratorio virtual, las
variables de contexto serán recibidas y enviadas desde el MSGD con el fin de
proporcionar una respuesta correcta al estudiante.
Los valores de las variables de contexto enviadas por el gestor general del
MSGD se llenan antes de que se realice la comunicación con Watson Assistant, y sus
valores dependen del estado de la práctica de cada estudiante. Estas variables son:
nom_alu Variable que contiene el nombre del estudiante
acc_sig Variable que determina la acción siguiente del estudiante.
niv_pis Variable que identifica el nivel de la pista (general o específico)
timeout Variable que indica si el estudiante lleva tiempo sin realizar nada
Los valores de las variables de contexto enviadas por Watson Assistant permiten
que la respuesta generada al estudiante sea en base a su pregunta, por ejemplo, si la
pregunta es singular o plural, la respuesta debe ser igual. Estas variables son:
numero Variable para diferenciar si una entidad es singular o plural
desambiguado Variable para distinguir entre entidades cuyo nombre es
igual, pero debe ser tratado de manera diferente de acuerdo con el estado
de la práctica.
2.3.3.2. Definición de nodos
La estructura de diálogo está formada por nodos, que pueden ser de dos tipos:
nodos principales y nodos hijos, entendiéndose como nodos principales los que
estructuran de forma general el diálogo y que pueden o no contener nodos hijos.
En la implementación de la estructura de diálogo del tutor automático existen tres
tipos de nodos principales: nodos principales de diálogo común, nodos principales
basados en la acción siguiente del estudiante, y nodos principales para casos extras.
ESTADO DEL ARTE
20
Nodos principales de diálogo común
Estos nodos utilizan las intenciones de diálogos comunes (ver Tabla. I), los
cuales no necesitan información de la práctica. Han sido configurados para que tengan
una respuesta directa para el estudiante, es decir no tienen nodos hijos a ser analizados.
Se han definido varias respuestas, que se escogerán de forma aleatoria, como se
muestra en la Figura 7.
Figura 6. Estructura de diálogo: Nodos principales con intents de diálogos
comunes
Figura 7. Estructura de diálogo: Ejemplo de respuesta en nodo principal de
intención #General_Greetings
ESTADO DEL ARTE
21
Nodos principales basados en la acción siguiente del estudiante
Estos nodos hacen referencia al diálogo en el que se habla de las acciones que
el estudiante tiene que realizar.
Se han creado basados en el orden en que el estudiante tiene que realizar las
acciones de la práctica. Haciendo uso de la variable de contexto acc_sig, se tiene la
información referente a cuál es la siguiente acción que el estudiante tiene que realizar.
Todos los nodos que procesan las preguntas o frases relativas a la siguiente
acción que debe realizar el estudiante poseen nodos hijos [4]. Cada nodo hijo, se
encarga de procesar una de las intents que tiene sentido considerar para dicha acción.
Por ejemplo, para la acción agregarmys/agregarsacarosa se consideran intents
y entities relacionadas con químicos. En la Figura 8 se puede observar que se hace
referencia a la intent de uso #Quimicos_Mezcla y a la intent de ubicación
#Ubicacion_Quimicos.
Figura 8. Estructura de diálogo: Ejemplo de nodo principal para acción
siguiente agregarmys/agregarsacarosa
Adicionalmente, en la Figura 9 se puede observar que para la condición de
#Ubicacion_Quimicos se busca específicamente las entidades @quimico:sacarosa y
@quimico:"murashiage & skoog”, para prevenir que se pregunte por otros químicos.
ESTADO DEL ARTE
22
Figura 9. Estructura de diálogo: Ejemplo de condición con valores de una
entidad
Nodo principal para casos extras
Todos los nodos de cada acción tienen un nodo hijo donde, como última opción,
al no tener una respuesta clara, se realiza un salto a otro nodo [4], el cual se denomina
en otras cosas. Este nodo implementa los siguientes nodos hijos:
Ubicar fundamentos y ubicar protocolos
Estos nodos permiten que el estudiante pregunte por estos documentos en
cualquier parte de la práctica, sin importar la acción siguiente que tenga que realizar.
Intenciones fuera de lugar
Este nodo permite que cuando Watson Assistant reconoce una intención, pero
ésta no es parte de la acción siguiente a realizar, se envíe un mensaje al estudiante
explicando que está fuera de lugar.
Mensaje no comprendido
Este nodo se implementó como un respaldo si Watson Assistant no comprende
el mensaje, y se le solicita al estudiante que repita la pregunta de otra manera.
ESTADO DEL ARTE
23
2.4. Ontologías
Para la representación de la información en el proyecto SIT con interacción en lenguaje natural se ha decidido utilizar ontologías. Actualmente se encuentran creadas
2 ontologías.
La ontología mundo que representa información semántica sobre los objetos que
existen en el laboratorio de biotecnología.
La ontología estudiante que representa la información de los estudiantes que
han realizado la práctica en el laboratorio de biotecnología.
A continuación, en los siguientes apartados se explican los conceptos básicos
de ontologías, el lenguaje utilizado para su creación, y se detallan las ontologías mundo
y estudiante para su mejor comprensión.
2.4.1. Conceptos básicos
2.4.1.1. ¿Qué es una ontología?
En el contexto de la gestión del conocimiento, una ontología se conoce como la
comprensión compartida de algunos dominios, que a menudo se conciben como un
conjunto de entidades, relaciones, funciones e instancias [10].
Es decir, una ontología es una entidad computacional que implica el modelado
de alguna parte del mundo real, para lo cual se definen conceptos, atributos, instancias
de los conceptos, y relaciones entre ellos [5].
2.4.1.2. Lenguaje de Ontología Web (OWL)
Para la creación de ontologías existen un gran número de lenguajes formales,
entre los que se ha escogido el lenguaje OWL para la implementación de la ontología
mundo y de la ontología estudiante. Como se explica en el artículo [11], este lenguaje
fue escogido para adherirse a la recomendación W3C.
En el lenguaje OWL se modela a través de un enfoque orientado a objetos, y la
estructura de un dominio se describe en términos de clases y propiedades [10].
ESTADO DEL ARTE
24
Debido a que el lenguaje OWL fue desarrollado como un seguimiento de RDF,
todos sus elementos (clases, propiedades e individuos) son definidos como recursos
RDF, e identificados por URIs [10].
Las clases representan los objetos que pueden ser parte de la ontología, y se
organizan de manera jerárquica.
Los individuos son instancias de una de las clases previamente definidas. Las
clases pueden o no tener individuos, pero cada individuo debe pertenecer a una clase.
Además, los individuos tienen propiedades de objetos que los relacionan con otros
individuos, y tienen propiedades de datos que permiten dar valor a las propiedades de
la clase.
2.4.2. Ontología mundo
La ontología mundo representa la información de los objetos existentes en el
laboratorio de biotecnología. Los objetos se encuentran detallados de manera jerárquica
en clases, como se puede ver en la Figura 10. Todas las clases de los objetos del
laboratorio son una subclase de elemento manipulable (manipulableElement).
Figura 10. Ontología mundo: Estructura de clases
ESTADO DEL ARTE
25
Una vez definidas las clases, se crearon individuos o instancias de éstas. De
esta forma se pueden definir las propiedades de objetos y las propiedades de datos.
Todos los individuos deben tener una propiedad de datos spanishName, cuyo
valor sea el nombre en español del objeto. Esto debido a que cuando se accede desde
el SIT a la ontología mundo en busca de información, se busca el individuo o instancia
a través del valor de la propiedad spanishName.
Parte de la información que se necesita en el SIT es la descripción de los objetos
del laboratorio de biotecnología, motivo por el cual se definieron las propiedades
descriptionE y descriptionG. El valor de estas propiedades es un texto en español que
describe el objeto, ya sea de manera general (G) o de manera más detallada o
específica (E).
Otra información que se necesita en el SIT es la ubicación de los objetos, con
relación a otros objetos del laboratorio. Las propiedades de objetos se utilizan para
relacionar individuos entre sí, y lo hacen a través de propiedades de objeto, tales como:
nearOf, toTheRight, toTheLeft, above, behind, etc.
Adicionalmente, se creó la propiedad spanishSentence, que contiene los
artículos y verbos que permiten tratar el objeto en singular o plural dependiendo de la
pregunta del estudiante; esta propiedad se utiliza al crear una instrucción de ubicación.
Figura 11. Ontología mundo: Ejemplo de individuo Chemical_Showcase
ESTADO DEL ARTE
26
2.4.3. Ontología estudiante
La ontología estudiante fue modelada en el trabajo de investigación [11], y se
utiliza para representar el conocimiento de un estudiante dentro de un SIT, para que se
pueda ofrecer una tutoría adaptada a las necesidades propias de cada estudiante [3].
En la Figura 12 se tiene un esquema de la ontología estudiante en la que se
muestra que está compuesta por varias ontologías modulares, y la relación existente
entre ellas.
Figura 12. Principales relaciones ad-hoc entre las ontologías modulares [11]
Las ontologías modulares necesarias para el manejo de la información del
estudiante son:
Ontología información del estudiante (Student Information Ontology)
Es la ontología raíz de toda la información de un estudiante. Y hace referencia a
las tres ontologías modulares descritas a continuación.
Ontología perfil del estudiante (Student Profile Ontology)
Representa la información personal del estudiante, es decir, sus datos
personales, preferencias, características físicas y psicológicas, etc. [3].
ESTADO DEL ARTE
27
Ontología estado del estudiante (Student State Ontology)
Representa el conocimiento del estudiante mediante indicadores y estadísticas
sobre su actividad dentro del entorno, así como también el grado de adquisición de sus
objetivos de aprendizaje [11, 3].
Ontología traza del estudiante (Student Trace Ontology)
Contiene un registro de todas las acciones realizadas por el estudiante, sin
importar si con correctas o fallidas.
Además, existen otras ontologías independientes del estudiante, es decir
ontologías modulares que permiten definir instancias de conceptos compartidos por
todos los estudiantes [11], y son:
Ontología de objetivos de aprendizaje (Learning Objective Ontology)
Representa los objetivos de aprendizaje definidos en el proceso de educación.
Basado en el esquema de la Figura 12 desarrollado por Clemente [11], es posible inferir
el estado de adquisición de los objetivos del estudiante a partir de su comportamiento
registrado en la ontología de traza [3].
Ontología de objetos de aprendizaje (Knowledge Object Ontology)
Describe los principales tipos de elementos de conocimiento que pueden
aprender los estudiantes dentro del proceso de entrenamiento [3].
Ontología monitorización del estudiante (Student Monitoring Ontology)
Especifica las estrategias de seguimiento de ciertas variables durante el
aprendizaje.
ESTADO DEL ARTE
28
2.5. Aspectos perceptivos y espaciales
relacionados con la generación de indicaciones
En la tesis doctoral de Graciela Lara [6] se desarrolló un modelo computacional
que simula el proceso de dar indicaciones para la localización de objetos en entornos
virtuales. Este modelo permite la generación automática de indicaciones en lenguaje
natural utilizando objetos de referencia y aspectos espaciales y perceptivos.
2.5.1. Algoritmo para la generación de indicaciones
para localización de objetos
Este algoritmo genera expresiones en forma de frases descriptivas para la
localización de objetos. La estructura de la frase generada se basa en la estructura
lingüística de Kelleher [6] e incluye la información necesaria para una correcta
comprensión, y esta información es: objeto a localizar + relación espacial + objeto de
referencia; y en algunos casos las propiedades del objeto.
En este trabajo de investigación se menciona que, para la generación de
indicaciones de ubicación de objetos dentro de entornos virtuales, existen tres
escenarios descritos a continuación.
2.5.1.1. El objeto para localizar está en el mismo cuarto del usuario,
pero no en su campo de visón
Para tratar este caso se necesita una estrategia para dar indicaciones extras (de
giro y movimiento) al usuario con el objetivo que el objeto a localizar entre en su campo
de visión, transformándose en el escenario descrito en el apartado 2.5.1.3.
2.5.1.2. El objeto para localizar no está en el mismo cuarto
Para tratar este caso se plantea que se dé instrucciones al usuario para que se
dirija al cuarto en el que se encuentra el objeto a localizar, y una vez allí repita la
pregunta. Cuando el usuario y el objeto se encuentren en el mismo cuarto, se puede
tener el escenario que el objeto se encuentre (apartado 2.5.1.3) o no (apartado 2.5.1.1)
en el campo de visión del usuario.
ESTADO DEL ARTE
29
2.5.1.3. El objeto a localizar está en el campo de visión del usuario
Cuando el objeto a localizar está dentro del campo de visión del usuario hay tres
casos posibles:
(c.1) El objeto a localizar se encuentra dentro de otro objeto
En este caso, se considera que si el objeto a localizar (OL) se encuentra dentro
de otro objeto, entonces el objeto contenedor se convierte también en un objeto
secundario para localizar (OL2).
“La pelota azul está dentro de la caja blanca que está sobre la mesa” OL SR OR/OL2 SR OR2
En donde:
OL Objeto a localizar
SR Relación espacial
OR/OL2 Objeto de referencia transformado en un objeto a localizar
OR2 Objeto de referencia del objeto secundario para localizar
(c.2) El objeto a localizar es saliente por sí solo
Si el objeto a localizar tiene una alta visibilidad perceptiva o saliencia visual, es
decir su valor de saliencia es mayor a 4.8, la instrucción de localización será generada
con una relación espacial de tipo intrínseca (centrada en el usuario).
“La pelota azul está al frente de ti”
OL SR OR
(c.3) Necesidad de objeto de referencia
Si no se cumplen las condiciones de los casos (1) y (2) es necesario seleccionar
el mejor objeto de referencia del objeto a localizar, para ello se utilizará el algoritmo
descrito en el apartado 2.5.2.
ESTADO DEL ARTE
30
2.5.2. Algoritmo para la selección de objeto de
referencia
Este algoritmo se basa en la saliencia perceptual del objeto, el conocimiento
previo del usuario acerca de los tipos de objetos en la escena, y la probabilidad que el
usuario tiene de recordar la posición de los objetos.
2.5.2.1. Filtrado previo
Solamente son considerados los objetos que están localizados dentro de una
esfera con su centro en el objeto a localizar y con un radio máximo del 10% del tamaño
total del entorno virtual.
2.5.2.2. Selección del objeto de referencia
Esta selección se basa en el conocimiento previo del tipo de objeto ( ), la
saliencia visual del objeto ( ) y la capacidad del usuario para recordar su posición en
el entorno, o probabilidad de recuerdo ( ).
En la ecuación (1) se observa que para la selección del mejor objeto de
referencia se realiza una suma de los tres valores para cada uno de los objetos próximos
al objeto a localizar, y de ellos el que tenga el valor máximo será considerado como el
mejor objeto de referencia.
Conocimiento previo ( )
Este aspecto es evaluado considerando las áreas de conocimiento a las cuales
cada objeto pertenece, y la familiaridad que el usuario tiene con éstas, principalmente
asociada a una experiencia o entrenamiento previo.
El conocimiento previo de cada área está asociado al estudiante, y sus valores
son: ‘1’ si el conocimiento en dicha área es alto, ‘0.5’ si el nivel es medio y ‘0’ si el nivel
es bajo.
ESTADO DEL ARTE
31
Saliencia visual o saliencia general del objeto (GS)
También conocida como saliencia general o saliencia perceptual. El valor de la
saliencia visual se obtiene en relación con todos los objetos que se encuentran en el
área visual del usuario. Sus valores van de 0 a 1, y se calcula como se muestra en la
ecuación (2).
El cálculo de la saliencia general de un objeto ( ) depende de la saliencia
individual ( ) y de la saliencia con respecto al contexto ( ). Dichas saliencias están
determinadas por el color, tamaño y forma del objeto.
Figura 13. Esquema del modelo computacional para cálculo de saliencia general
o visual ( ) [6]
Como se muestra en la Figura 13 y en las ecuaciones (3) y (4), el cálculo se basa
en la suma ponderada de los valores individuales de saliencia de color ( ), saliencia de
tamaño ( ) y saliencia de forma ( ).
Y aunque no existe en la literatura una medida de la importancia relativa de cada
factor, un peso fue asignado a cada factor de la siguiente manera: 0.5 al color, 0.3 al
tamaño y 0.2 a la forma [6].
ESTADO DEL ARTE
32
Saliencia individual ( )
Saliencia por color: Para cada objeto se valora su saliencia por color, tomando
como referencia los colores salientes, dando como resultado:
1 si es de alguno de los colores salientes
0,5 si se aproxima a alguno de los colores salientes
0 si está muy alejado de los colores salientes
Saliencia por tamaño: Para cada objeto se calcula esta saliencia haciendo un
promedio de las saliencias de: longitud ( ), ancho ( ), altura ( ) y volumen ( ), como
se muestra en la ecuación (5).
La saliencia de longitud se calcula dividiendo la longitud del objeto entre la
longitud más grande de todos los objetos del entorno virtual ( ). De igual forma se
realiza para la saliencia de ancho, altura y volumen.
Saliencia por forma: Para cada objeto se determina esta saliencia teniendo en
cuenta su forma con relación a las formas de todos los objetos en el entorno virtual,
dando como resultado:
1 si la forma del objeto es muy atípica
0,5 si su forma es medianamente atípica
0 si su forma es típica
Saliencia en base al contexto ( )
Para determinar matemáticamente el valor de la saliencia por color, tamaño y
forma de los objetos del entorno virtual con respecto al contexto, es necesario primero
calcular el valor promedio de cada uno de estos parámetros dentro del contexto. En la
Figura 13 se representan como , .
ESTADO DEL ARTE
33
A continuación, se calcula la distancia o diferencia entre el valor individual de la
saliencia de color (tamaño o forma) y el valor promedio del color (tamaño o forma) en el
contexto.
Finalmente, para el cálculo de la saliencia en base al contexto se propone un
proceso basado en las siguientes operaciones:
Estandarizar la distribución: Asumiendo que las distancias en color, forma y
tamaño con respecto al contexto están normalmente distribuidas, se transforman estas
distancias en su correspondiente valor en distribución normal estándar [6]. Se utiliza la
ecuación (6), en la que representa el valor promedio y la desviación estándar en la
distribución de distancias.
Esta transformación permite determinar el grado de anormalidad de una
distancia de color (tamaño o forma) entre las distancias de todos los objetos presentes
dentro del contexto [6].
Uso de una distribución proporcional para determinar el valor de la saliencia
normalizado: El objeto con puntuación estándar más alto tendrá el valor de saliencia de
‘1’, el objeto con la puntuación estándar más baja tendrá ‘0’ y el resto se transformarán
en proporción a sus valores. Para ello se utiliza la fórmula:
En donde:
Es el valor normalizado de la saliencia en base al contexto
Es el valor de puntuación estándar de distancia a ser normalizado
Es el valor mínimo o máximo de los puntajes estándar
ESTADO DEL ARTE
34
Probabilidad de recordar la posición del objeto en el entorno (PR)
Considerando que la probabilidad de recordar algo es siempre subjetivo e
impreciso se plantea su cálculo con la fórmula de la ecuación (8).
Saliencia general del objeto ( : Su cálculo se encuentra detallado más atrás
en este apartado, específicamente en la página 31.
Capacidad del usuario para recordar la ubicación de un objeto ( ): Se tomará
por omisión un valor de 0.5, pues no se puede pedir una autoevaluación a los
estudiantes.
Historia de visión ( ): La historia de visión de un objeto depende del tiempo que
el usuario ha estado observándolo, y de la claridad de visibilidad. Debido a la falta de
información se anulará este parámetro.
3 PLANTEAMIENTO DEL PROBLEMA
PLANTEAMIENTO DEL PROBLEMA
36
En este capítulo se realiza un análisis al SIT con interacción en lenguaje natural,
con la vista puesta en las mejoras del MSGD (módulo de soporte del gestor de diálogo)
y del gestor de diálogo Watson Assistant.
Es así como en el primer apartado se describen los problemas que se detectaron
antes de realizar la evaluación empírica del SIT con interacción en lenguaje natural.
A continuación, en el segundo apartado se listan los problemas encontrados
durante la evaluación empírica realizada al funcionamiento del SIT con interacción en
lenguaje natural, la cual tuvo lugar durante el desarrollo de las prácticas de los
estudiantes de la asignatura de Bioquímica y Biotecnología en el grado en Ingeniería
Forestal de la UPM. Además, se realizó un estudio de los resultados, clasificando los
errores y analizando estadísticamente las respuestas correctas y fallidas.
Finalmente, en el tercer apartado, se plantean los objetivos basados en mejorar
la calidad de las respuestas del tutor automático, tomando en cuenta las soluciones a
los problemas previos y a los problemas encontrados durante la evaluación, además de
los trabajos futuros planteados en los proyectos de investigación [4, 5, 1].
3.1. Problemas previos
3.1.1. Tramo controlado
La implementación actual del SIT depende del gestor de diálogo Watson
Assistant para la interacción en lenguaje natural, y en este se encuentra únicamente
configuradas las acciones de la primera fase de la práctica. Si el gestor de diálogo
Watson Assistant recibe una petición cuya acción siguiente no está configurada, sus
respuestas siempre son incorrectas diciendo que no entiende la pregunta del estudiante.
Aunque en el entorno de entrenamiento procedimental se tiene controlado el
tramo en el que se envía peticiones a través de los servicios web, cuando ocurre algún
fallo en su tutor automático, este control podría provocar un mal comportamiento del
SIT. Por este motivo es necesario que en el módulo de comunicación se ignoren las
peticiones del estudiante una vez que este ha concluido las acciones correspondientes
al tramo controlado.
Los objetivos planteados para solucionar este problema se encuentran descritos
a continuación en el apartado 3.3.1.1.
PLANTEAMIENTO DEL PROBLEMA
37
3.1.2. Deshabilitación de peticiones del estudiante
Durante la realización de la práctica se pueden suscitar errores que para ser
resueltos se requiere de la comunicación del estudiante con un tutor humano. Estos
problemas son difíciles de prever, por lo que no es posible entrenar a un tutor automático
que sea capaz de solventarlos.
Debido a que la comunicación con el tutor humano será a través del chat del
entorno de entrenamiento procedimental, es necesario deshabilitar el envío de los
mensajes del estudiante para evitar que su conversación sea respondida por el tutor
automático, causando confusión en el estudiante.
Los objetivos planteados para solucionar este problema se encuentran descritos
a continuación en el apartado 3.3.1.2.
3.1.3. Traza del estudiante en tiempo real
Cuando un estudiante realiza una acción o comete un error en el entorno virtual,
dicho evento es guardado en un archivo de registro que es procesado posteriormente
para guardar en la ontología estudiante la traza de cada uno de los estudiantes. Este
procesamiento se realiza una vez que la práctica ha terminado.
No obstante, sería deseable que las trazas de los estudiantes se fueran
actualizando en tiempo real, ya que de esta manera se posibilitaría en el futuro el
diagnóstico pedagógico/cognitivo de los conocimientos del estudiante durante la
práctica y sería posible tomar decisiones de tutorías basadas en esta información.
Por lo tanto, es necesario que la traza de los estudiantes se actualice en tiempo
real, es decir, que cada vez que un estudiante realice una acción o cometa un error, la
traza de dicho estudiante sea actualizada. Los objetivos planteados para solucionar este
problema se encuentran descritos a continuación en el apartado 3.3.1.3.
PLANTEAMIENTO DEL PROBLEMA
38
3.1.4. Generación de indicaciones de ubicación en
lenguaje natural
En la solución actual del SIT con interacción en lenguaje cuando el estudiante
realiza una pregunta para saber la ubicación de un objeto del laboratorio virtual, la
generación de la indicación en lenguaje natural utiliza los individuos de la ontología
mundo.
El primer problema que se presenta tiene que ver con que las relaciones entre
dichos individuos se dan tomando siempre como referencia o perspectiva absoluta la
puerta de la sala principal. Es decir, se tiene siempre la misma relación, convirtiéndose
en una relación estática que no toma en cuenta aspectos perceptivos y espaciales.
Adicional a este problema es que en la ontología mundo no se tiene información
de la ubicación, rotación, tamaño y color de cada uno de los objetos virtuales. Además,
se tiene un solo individuo representante de cada clase, aunque en el laboratorio virtual
existan varios.
Otro problema es que para las indicaciones no se toma en cuenta la posición del
estudiante, por lo que no se sabe si el objeto que se está buscando está cerca o lejos,
y si este se encuentra o no en el área de visión del estudiante.
Y finalmente, el último problema es que al ser un laboratorio en el cual no han
estado previamente, los estudiantes no tienen conocimiento previo de todos los objetos
existentes en él. Motivo por el cual la generación de relaciones debería estar basada
también en el conocimiento previo de los objetos relacionados, el cual deberá estar
especificado para cada objeto relevante en la práctica.
PLANTEAMIENTO DEL PROBLEMA
39
3.2. Evaluación: Pruebas realizadas
Para la evaluación se realizó una práctica con estudiantes de la asignatura de
Bioquímica y Biotecnología en el grado en Ingeniería Forestal de la UPM. Esta práctica
tuvo lugar durante 4 días, en cada uno de ellos 6 estudiantes se conectaban al mundo
virtual concurrentemente, e interactuaban a través del chat con el tutor automático.
Con base en la arquitectura del SIT (detallada en el apartado 2.2.1) y en su
funcionamiento (apartado 2.2.2), la evaluación se realiza al MSGD - Módulo de Soporte
del Gestor de Diálogo, en conjunto con su interacción con el Gestor de Diálogo Watson
Assistant y con la ontología mundo.
Los resultados obtenidos de la práctica se encuentran registrados en un archivo
de log que contiene las preguntas realizadas por los estudiantes y las respuestas que
obtuvieron por parte del tutor automático, así como las acciones y los errores de cada
estudiante.
Utilizando estos resultados en los subapartados de este capítulo se realiza un
análisis y una retroalimentación de estos, y adicionalmente, se detallan los errores
cometidos por el tutor automático durante la evaluación.
3.2.1. Descripción de los errores encontrados en las
pruebas
En este apartado se encuentran descritas los fallos encontrados durante la
evaluación, las mismas que se clasifican de acuerdo con la fecha de la prueba en la que
ocurrió, y con el componente en que sucedió. Es decir, si el error se encuentra en el
MSGD, en Watson Assistant o en la definición de la ontología mundo.
3.2.1.1. Pruebas 13 de mayo de 2019
Watson Assistant
a) Respuestas incorrectas cuando el estudiante pregunta por vitrina de químicos, y
la siguiente acción es “agregaragar” o “agregarmys/agregarsacarosa”
PLANTEAMIENTO DEL PROBLEMA
40
b) Cuando el estudiante pregunta por algún químico, la entidad que devuelve
Watson no coincide con ningún objeto instanciado en la ontología mundo. El
problema es que Watson devuelve la entidad químico, mientras que en la
ontología mundo el nombre del objeto es quimico; debido a la tilde no se la
encuentra en la ontología.
c) Respuesta incorrecta cuando la siguiente acción es “entregarvaso” y el
estudiante dice que no sabe qué coger de la vitrina. Se reconoce la entidad
vitrina y se responde que no la necesita.
Ontología mundo miles
d) Falta de información en la ontología mundo miles
Químico Murashiage and skoog
Mesa del fondo (stirrer table)
e) Errores tipográficos en la ontología mundo miles
Descripción de autoclave
Valor de la propiedad above, le falta el pronombre “de” en la traducción al
castellano.
f) Error en la propiedad de referencia del objeto agitador. Está configurado que el
agitador se encuentra sobre la mesa central, pero debe cambiarse a que el
agitador está sobre la mesa del fondo.
3.2.1.2. Pruebas 14 de mayo de 2019
Watson Assistant
g) Respuesta incorrecta cuando el estudiante agradece al tutor después de la
ayuda recibida. Se da cuando el estudiante utiliza frases en inglés con frases
como:
okay thanks
okay
muchas gracias
PLANTEAMIENTO DEL PROBLEMA
41
h) Respuestas incorrectas cuando el estudiante al chatear con el tutor automático
escribía frases para decir que ha logrado encontrar un objeto o realizar una
acción, tales como:
ya lo tengo
ya lo he hecho
lo he conseguido
Al no tener contempladas este tipo de oraciones, la respuesta enviada por el
tutor automático era que no lo entiende, lo que causaba confusión en los
estudiantes.
i) Respuestas incorrectas cuando el estudiante envía frases sin relación con la
práctica, tales como:
a mí también porfa
eso si te lo responde
y siempre responde eso
Debido a que el tutor no entiende, responde que no lo entiende repetitivamente
y causa un chat confuso y con errores.
j) Adicionalmente al error anterior, existen palabras que pueden ayudar a ignorar
los mensajes sin sentido de los estudiantes, entre ellos se tiene:
jaja
??? (signos de puntuación solos)
mm
3.2.1.3. Pruebas 16 de mayo de 2019
Watson Assistant
k) Respuesta incorrecta cuando la acción siguiente es “soltarvasoagitador” y el
estudiante pregunta por el lugar donde dejar el vaso. Reconoce vaso como
entidad y dice que no lo necesita.
PLANTEAMIENTO DEL PROBLEMA
42
l) Respuestas incorrectas cuando el estudiante utiliza pronombres tales como eso
o esto para referirse a la entidad de la cual recibió la pista.
El tutor automático no asocia la pregunta a una entidad por lo que la respuesta
es que no entiende la pregunta del estudiante.
m) Respuestas incorrectas cuando el estudiante pregunta por los fundamentos y lo
trata como: libro de color azul.
El tutor automático no lo asocia con ninguna entidad por lo que la respuesta es
que no entiende la pregunta del estudiante.
n) Respuestas incorrectas cuando el estudiante pregunta como abrir los
fundamentos y/o protocolos.
Al ser un enlace, no se ha considerado que para leerlos el estudiante podría
utilizar el verbo abrir, por lo tanto, no se reconoce la intención y la respuesta es
que no entiende la pregunta del estudiante.
3.2.1.4. Pruebas 17 de mayo de 2019
Watson Assistant
o) Respuesta incorrecta cuando la acción siguiente es “insertarbotellaautoclave” y
el estudiante pregunta por el lugar donde dejar la botella. Reconoce botella como
entidad y dice que no lo necesita.
p) Respuesta incorrecta cuando el estudiante pregunta: ¿cómo agregar los
químicos? No se reconoce ninguna intención, por lo que la respuesta del tutor
es que se lo pregunte de otra manera.
Ontología mundo miles
q) Error de tipografía en ontología mundo.
Cuando el estudiante pregunta por la descripción de autoclave, esta resulta
confusa, pues al decir que se parece a una lavadora los estudiantes se acercan
a la lavadora y no a la autoclave.
PLANTEAMIENTO DEL PROBLEMA
43
3.2.2. Análisis de las pruebas
Se analizaron las respuestas dadas por el tutor automático al estudiante y se
clasificaron como correctas o erróneas en comparación con la respuesta que un tutor
humano hubiese contestado al estudiante.
3.2.2.1. Recuento por estudiante de respuestas exitosas y fallidas
A continuación, en la Tabla. III se detalla el número de preguntas realizadas por
cada estudiante, y se clasifican en base a si la respuesta obtenida es exitosa o fallida.
ESTUDIANTE
NÚM. PREGUNTAS CORRECTAS %
CORRECTAS INCORRECTAS % INCORRECTAS
E1 0
E2 1 1 100.00% 0 0.00%
E3 1 1 100.00% 0.00%
E4 3 2 66.67% 1 33.33%
E5 4 3 75.00% 1 25.00%
E6 1 1 100.00% 0 0.00%
E7 6 4 66.67% 2 33.33%
E8 3 3 100.00% 0 0.00%
E9 2 2 100.00% 0 0.00%
E10 1 0 0.00% 1 100.00%
E11 17 10 58.82% 7 41.18%
E12 10 3 30.00% 7 70.00%
E13 0
E14 2 1 50.00% 1 50.00%
E15 0
E16 3 2 66.67% 1 33.33%
E17 2 2 100.00% 0 0.00%
E18 1 1 100.00% 0 0.00%
E19 3 2 66.67% 1 33.33%
E20 2 2 100.00% 0 0.00%
E21 2 0 0.00% 2 100.00%
E22 16 7 43.75% 9 56.25%
E23 0
TOTALES 80 47 33
58.75% 69.70% 41.25% 30.30%
Tabla. III. Recuento por estudiante de respuestas exitosas/fallidas
PLANTEAMIENTO DEL PROBLEMA
44
Como se puede observar en esta tabla, durante la evaluación se tuvo un total de
23 estudiantes, de los cuales 4 no realizaron ninguna pregunta, y entre los otros 19 se
obtuvo un total de 80 preguntas.
De todas las preguntas realizadas, únicamente 47 preguntas que representan el
58.75% fueron contestadas exitosamente. En las otras preguntas, que representa el
41.25%, el estudiante no recibió la ayuda correcta por parte del tutor automático.
3.2.2.2. Clasificación de los errores encontrados
Debido a que el porcentaje de respuestas correctas y fallidas es muy similar, se
realiza una clasificación de los errores agrupándolos por tipo de error, entre los que se
encontró los detallados a continuación:
Error de tipografía: Error de escritura o falta ortográfica en la respuesta. Por ejemplo, se tiene el error e).
P: ¿dónde está el grifo?
R: El grifo se encuentra encima del fregadero
Sinónimo en entidad: Falta de uno o varios sinónimos en una entidad. Por
ejemplo, se tiene el error m).
P: no me sale el tutorial de color azul
R: ¿Puedes expresarse con otras palabras? No te he entendido.
Ejemplo en intención: Falta de uno o varios ejemplos de uso en una
intención. Por ejemplo, se tiene el error n).
P: ¿cómo abro el libro?
R: ¿Puedes expresarse con otras palabras? No te he entendido.
Dos entidades: Error cuando la acción siguiente depende de dos entidades,
y solo se controla el diálogo con una de ellas. Por ejemplo, se tiene el error
k), con la acción siguiente soltarvasofregadero.
P: ahora no me deja coger un vaso
R: Ahora no necesitas el vaso
PLANTEAMIENTO DEL PROBLEMA
45
Intent "General_Already_Done": Falta de una intención que entienda
cuando el estudiante envié mensajes diciendo que ha logrado hacer o
entender algo.
P: ya lo tengo
R: ¿Puedes expresarse con otras palabras? No te he entendido
Intent “Ignore”: Falta de una intención para ignorar frases de alumnos cuyo
contenido no es de importancia para la práctica. Por ejemplo, se tienen las
frases del error j).
P: ???
R: Necesito que me lo preguntes de otra manera…
Watson no entiende: Falta de control cuando el estudiante envía varios
mensajes que Watson no entiende, o cuando los estudiantes conversan
entre ellos. Por ejemplo, se tienen las frases citadas en el error i).
P: a mí también porfa
R: ¿Puedes expresarse con otras palabras? No te he entendido
Intent “How_To_Do”: Falta de una o varias intenciones que representen
“como hacer” alguna actividad. Por ejemplo, se tiene el error p).
P: como agrego los químicos necesarios?
R: Necesito que me lo preguntes de otra manera…
Posteriormente, a cada tipo de error se le asigna un nivel de gravedad, de
acuerdo con las siguientes características:
Leve Respuestas erróneas en diálogo común (saludo, despedida).
Mediano Respuestas erróneas que no ayudan a solventar las dudas del
estudiante, pero no afectan en el entendimiento de la práctica.
Grave Respuestas erróneas que afectan el entendimiento de la práctica
y causan confusión en la realización de las acciones siguientes.
PLANTEAMIENTO DEL PROBLEMA
46
En la Tabla. IV se muestra el nivel de gravedad asignado a cada uno de los tipos
de errores encontrados en la evaluación. Además, se muestra cuál es el número de
respuestas erróneas pertenecientes a cada tipo, y su porcentaje siendo 33 el número
total de respuestas erróneas.
TIPO DE ERROR GRAVEDAD NÚM. ERRORES
Error de tipografía Leve 1 3%
Sinónimo en entidad Mediano 4 12%
Ejemplo en intención Mediano 3 9%
Dos entidades Grave 9 27%
Intent "General_Already_Done" Leve 2 6%
Intent “Ignore” Mediano 3 9%
Watson no entiende Mediano 8 24%
Intent “How_To_Do” Mediano 3 9%
Tabla. IV. Gravedad de los tipos de errores encontrados en la evaluación
Teniendo en cuenta el nivel de gravedad, únicamente el 27% (9 respuestas) del
total de respuestas erróneas causaron problemas y confusión durante la ejecución de
las prácticas.
Estas 9 respuestas erróneas, de tipo grave, representan el 11.25% del total de
respuestas de la práctica.
PLANTEAMIENTO DEL PROBLEMA
47
3.3. Objetivos
3.3.1. Mejoras derivadas de los problemas
previamente conocidos
3.3.1.1. Estudiante dentro del tramo controlado
Debido a que en la solución actual solo se tienen contempladas acciones de la
primera fase de la práctica, el objetivo es tener un control por estudiante de que se
encuentra dentro del tramo en el que el tutor automático es capaz de responder a sus
preguntas.
Para ello, cuando el estudiante haya superado esta fase automáticamente sale
del tramo controlado, dejando de recibir ayuda por parte del tutor automático.
3.3.1.2. Deshabilitación de peticiones del estudiante
El objetivo general es poder deshabilitar a un estudiante que está teniendo
problemas con la práctica para darle un trato más personalizado con la ayuda de un
tutor humano. Que las peticiones de un estudiante sean deshabilitadas implica que este
no recibirá respuestas por parte del tutor automático.
Adicionalmente, es necesario que también se pueda volver a habilitar al
estudiante, con el objetivo de que cuando se haya solucionado el problema, el
estudiante pueda realizar su práctica con la ayuda del tutor automático.
3.3.1.3. Traza de estudiante en tiempo real
El objetivo general es poder guardar la traza de todos los estudiantes que se
encuentren realizando la práctica en tiempo real.
Es necesario, que cada estudiante tenga su registro dentro de la ontología
estudiante, por lo que se debe verificar su existencia y si no existe, crear un registro que
permita gestionar su traza.
PLANTEAMIENTO DEL PROBLEMA
48
Además, que cada vez que el estudiante realiza una acción o comete un error
se envié peticiones de tipo event al MSGD, y que con la información de dichas peticiones
se guarde la información en la traza del estudiante.
3.3.1.4. Generación de indicaciones de ubicación en lenguaje natural
El objetivo general es mejorar la generación de indicaciones en lenguaje natural
de la ubicación de objetos pertenecientes al laboratorio virtual de biotecnología.
Para este propósito, primero es necesario realizar un preprocesamiento, en el
que se complete los datos de la ontología mundo. Este preprocesamiento comprende
las siguientes actividades:
Agregar las siguientes propiedades de datos en la ontología mundo, de tal
manera que puedan ser utilizados en los individuos nuevos y antiguos.
Posición en eje x, eje y, y eje z
Orientación en eje x, eje y, y eje z
Tamaño (alto, ancho y altura)
Saliencia individual (promedio entre saliencia por color, saliencia por
tamaño y saliencia por forma)
Crear en la ontología mundo individuos de todos los elementos utilizados en
la práctica del laboratorio de biotecnología.
Actualmente, existe solo un individuo por cada tipo de objeto, por ejemplo,
si en el laboratorio virtual existen dos vitrinas de químicos, en la ontología
mundo hay solo un individuo que las representa.
Debido a que cada objeto en el laboratorio virtual debe convertirse en un
individuo en la ontología mundo, es necesario crear todos los individuos
faltantes.
Obtener los datos geométricos (posición, orientación y escala) de los objetos
del laboratorio virtual directamente de la base de datos de OpenSim, y de
esa forma evitar el trabajo manual de copiarlos uno por uno desde Firestorm.
PLANTEAMIENTO DEL PROBLEMA
49
Crear un archivo JSON que contenga los datos de los individuos a crear en
la ontología mundo. Debe contener un arreglo de objetos, y que cada uno
de ellos tenga la estructura de un elemento de esta ontología.
Definir también en el archivo JSON las relaciones existentes entre individuos
de la ontología en base al entorno virtual del laboratorio de biotecnología.
Es importante definir más relaciones de las que previamente existían de tal
forma que al momento de generar la indicación de ubicación el objeto de
referencia sea su referencia más saliente.
Crear un script que permita insertar de manera automática los nuevos
individuos o instancias en la ontología mundo. Este script debe leer la
información desde el archivo JSON.
Después del preprocesamiento, es necesario crear un algoritmo para la generación de indicaciones de ubicación con lenguaje natural, el cual debe
comprender las siguientes condiciones:
Las indicaciones de ubicación deben ser generadas con arreglo a la
información de la ontología mundo. Por lo tanto, se tiene que evitar que sean
respuestas predefinidas en el gestor de diálogo Watson Assistant.
Si existen varios individuos de la misma clase, generar la indicación de
ubicación hacia la instancia o individuo más cercano al avatar del estudiante.
Generar la indicación sobre la ubicación de un objeto del laboratorio virtual
utilizando aspectos perceptivos (basado en los apartados 2.5.1 y 2.5.2),
tales como:
Posición del avatar del estudiante que realiza la pregunta
Campo de visión del avatar del estudiante
Saliencia de los objetos dentro del campo de visión
Búsqueda de objetos referenciales en base al contexto del campo de
visión
PLANTEAMIENTO DEL PROBLEMA
50
3.3.2. Mejoras derivadas de la evaluación
Con base en la clasificación de los errores de la evaluación, detallada en el
apartado 3.2.2.2, se plantean los objetivos de mejora para solucionar cada uno de ellos.
Problema: Error de tipografía
Corregir en la ontología mundo y en el diálogo de Watson Assistant los
errores de tipografía detectados durante la evaluación.
Problema: Sinónimo en entidad
Agregar los sinónimos ausentes identificados durante las pruebas a algunas
de las entidades definidas en Watson Assistant.
Problema: Ejemplo en intención
Agregar los ejemplos encontrados durante las pruebas en las intenciones
definidas en Watson Assistant.
Problema: Dos entidades
Corregir las respuestas del tutor automático cuando la acción siguiente del
estudiante depende de dos entidades. El estudiante puede realizar
preguntas respecto a cualquiera de las dos entidades, y el tutor automático
debe ser capaz de responder correctamente.
Problema: Intent "General_Already_Done"
Configurar en una nueva intención de Watson Assistant frases que
representen que el estudiante ha logrado hacer una actividad o encontrar un
objeto. Además de actualizar el diálogo para generar respuestas en base a
esta nueva intención.
Problema: Intent “#Ignore”
Configurar en una nueva intención de Watson Assistant frases que deben
ser ignoradas por el gestor de diálogo del tutor automático. Es decir, cuando
los estudiantes envíen dichas frases no recibirán ninguna respuesta.
Problema: Watson no entiende
Configurar una nueva variable de contexto que permita identificar que
Watson no ha entendido el mensaje del estudiante.
PLANTEAMIENTO DEL PROBLEMA
51
Con la ayuda de esta variable controlar que, si al estudiante no se lo ha
entendido en más de dos ocasiones y es otro mensaje incorrecto, el tutor
automático no envíe respuesta al estudiante.
Y, volver a enviar respuestas al estudiante cuando realice una pregunta
relacionada con la práctica, cuya intención sea reconocida por Watson.
Problema: Intent “How_To_Do”
Configurar nuevas intenciones en Watson Assistant que permitan reconocer
frases de cómo realizar las actividades.
4 SOLUCIÓN ADOPTADA
SOLUCIÓN ADOPTADA
53
A continuación, teniendo en cuenta los objetivos planteados en el apartado 3.3,
se presenta la solución adoptada para las mejoras y para las nuevas características
para el SIT con interacción en lenguaje natural que se introducen en el MSGD (Módulo
de soporte de gestor de diálogo) y en el gestor de diálogo Watson Assistant.
4.1. Mejoras en la calidad del código del
proyecto previo
Tomando como punto de partida el proyecto implementado en [5] y descrito en
el apartado 2.2.2, se tiene el SITChatBotRuntime que es la implementación del MSGD
encargado de la comunicación entre el estudiante y el tutor automático utilizando
lenguaje natural a través del gestor de diálogo Watson Assistant.
Previo a las nuevas implementaciones para el cumplimiento de los objetivos del
presente proyecto, se realizaron las siguientes mejoras en el proyecto existente:
Versionamiento
Debido a los cambios y las nuevas implementaciones que se planea realizar en
el código del proyecto de partida, se requiere tener un control de versiones del proyecto,
para lo cual se utiliza la plataforma de desarrollo colaborativa GitLab que provee un
servicio de almacenamiento de repositorios basados en Git. El presente proyecto se
encuentra en: https://gitlab.com/muss-lopenchi/tfm/sit
GitLab provee una interfaz gráfica basada en la web, facilitando la visualización
y manejo del repositorio. En esta plataforma se tiene un repositorio privado con la
documentación y código fuente del proyecto.
Refactorización de código
La refactorización se basó en seguir los convenios de programación de C#. Entre
los cambios realizados se tiene:
Identación del código
Renombramiento de namespaces para que coincidan con la ubicación de
los archivos
SOLUCIÓN ADOPTADA
54
Renombramiento de atributos y métodos para que se cumpla con el estándar
camelCase1
Reordenamiento de paquetes
Se renombraron los paquetes con base en los módulos que conforman un SIT.
En el proyecto previo se tenía el paquete Ontology que contenía clases referentes a los
módulos mundo y estudiante, se lo dividió en dos paquetes: StudentModule y
WorldModule.
En la Figura 14 se muestran los paquetes de este proyecto, que son los
contenedores de las clases en las que se realizan las nuevas implementaciones.
El paquete Watson contiene las clases que gestionan la conexión y constante
comunicación con el gestor de diálogo Watson Assistant.
El paquete StudentModule contiene información, en tiempo de ejecución, de
cada uno de los estudiantes: información personal e información referente a las
actividades realizadas durante la práctica.
El paquete WorldModule contiene la ontología mundo, las clases que gestionan
el acceso a la información dentro de esta, y la generación de textos en lenguaje natural
para dar indicaciones referentes a objetos de esta ontología.
Figura 14. Diagrama de paquetes de SITChatBotRuntime
1 Explicación estándar camelCase: https://tinyurl.com/y5le7xxa
SOLUCIÓN ADOPTADA
55
Diagramas de clases de la solución adoptada
A continuación, las figuras: Figura 15, Figura 16 y Figura 17 muestran los
diagramas de clases de cada uno de los paquetes. En estas imágenes, se resalta las
soluciones implementadas con colores: verde (nueva implementación) y amarillo
(cambios en implementación existente), para entender el aporte de este proyecto
investigación.
Figura 15. SITChatBotRuntime: Diagrama de clases del paquete Watson
Figura 16. SITChatBotRuntime: Diagrama de clases del paquete StudentModule
SO
LUC
IÓN
AD
OPT
AD
A
56
Figu
ra 1
7.
SIT
Cha
tBot
Run
tim
e: D
iagr
ama
de c
lase
s de
l paq
uete
Wor
ldM
odul
e
SOLUCIÓN ADOPTADA
57
4.2. Implementaciones previas a la evaluación
Previo a la ejecución de la evaluación (apartado 3.2) se realizó la implementación
de dos nuevas características, las cuales dan soluciones a dos problemas ya conocidos.
A continuación, se describen estas soluciones.
4.2.1. Estudiante dentro de tramo controlado
Para cumplir con el objetivo del apartado 3.3.1.1 se implementó la propiedad
isInsideStretch en la clase Student que permita saber si dicho estudiante se encuentra
dentro o fuera del tramo controlado.
Cada estudiante está relacionado con una lista de acciones a realizar, la cual se
modifica mientras el estudiante va realizando las acciones de la práctica. La propiedad
isInsideStretch se inicia como verdadera para todos los estudiantes.
Esta propiedad cambia su valor a falso, cuando el estudiante realiza la última
acción de su lista de acciones.
Figura 18. Métodos y atributos utilizados para la solución de: Estudiante dentro
de tramo controlado
SOLUCIÓN ADOPTADA
58
4.2.2. Servicio web para deshabilitar estudiante
Para cumplir con el objetivo descrito en el apartado 3.3.1.2 se creó un nuevo
servicio web denominado SITAdminHelper (ver Figura 19) que permite deshabilitar y
habilitar a un estudiante. Inicialmente, todos los estudiantes están habilitados.
Figura 19. SITChatBotRuntime: Diagrama de clases de paquete WebService
Para utilizar este servicio web se requiere realizar una petición que debe
contener el nombre del estudiante y la acción (habilitar o deshabilitar) como se muestra
en las figuras: Figura 20 y Figura 21.
Figura 20. Petición POST para deshabilitar un estudiante
Figura 21. Petición POST para habilitar un estudiante
SOLUCIÓN ADOPTADA
59
4.3. Soluciones a errores de la evaluación
A continuación, se listarán las soluciones adoptadas para resolver los problemas
encontrados durante la etapa de evaluación del SIT con interacción en lenguaje natural.
Los resultados de estas soluciones se encuentran como anexo en el apartado 7.2.
Las soluciones implementadas se encuentran clasificadas de acuerdo con el tipo
de error a solucionar (detallados en el apartado 3.2.2.2), y adicionalmente se especifica
en qué componente del SIT se realizó la solución.
Solución 1: Corrección de errores de tipografía
Ontología
mundo Se corrigió descriptionG y descriptionE del objeto autoclave para
que los estudiantes no lo confundan con una lavadora.
El autoclave es una maquinaria con forma de olla de presión del
tamaño de una lavadora.
Watson
Assistant Se corrigió la entidad químico, escribiéndola sin tilde pues es así
como se encuentra definida en la ontología.
Se corrigió la frase en la que se le pregunta al estudiante si necesita
ayuda, para que se le que pregunte por la ayuda que necesita. De
esta forma se evita un mensaje “si” por parte del estudiante, y que
no es posible de comprender por Watson.
Venga que lo vas a conseguir $nom_alu, ¿cómo te puedo ayudar?
Solución 2: Sinónimos en entidades
Watson
Assistant Se agregó nuevos sinónimos en entidad @documento:fundamento
a. libro(s) / libro azul / libro de color azul
b. tutorial azul
Se agregó nuevos sinónimos en entidad @documento:protocolo
a. libro(s) / libro verde / libro de color verde
b. tutorial verde
SOLUCIÓN ADOPTADA
60
Solución 3: Ejemplos en intenciones existentes
Watson
Assistant Se añadió ejemplos de uso, rescatados de las pruebas, en la
intención #General_Positive_Feedback entre los que se tiene:
a. okay thanks
b. okay
c. muchas gracias
Se añadió ejemplos de uso, rescatados de las pruebas, en la
intención #UBICACION_DOCUMENTO
a. ¿Cómo lo abro?
b. ¿Cómo abro los libros?
c. ¿Cómo puedo leerlos?
d. ¿Cómo puedo leerlo?
Solución 4: Evitar respuestas repetidas de que no se entiende algo
Watson
Assistant Sistema de
Diálogo
SitChatBot
Se agregó una nueva intención “#Ignore”, para que se ignoren
ciertos tipos de mensajes, y no le de ninguna respuesta al
estudiante. Entre los mensajes a ignorar se tiene:
a. jaja / ja ja / jeje / je je / lol
b. ! / !! / !!!
c. ? / ?? / ???
Crear una variable de contexto badmesage, y con esta variable un
contador en el SitChatBot.
Hay que responder que no se entiende a un máximo de 2
preguntas/afirmaciones no reconocidas, las siguientes se ignoran.
Se vuelve a generar una respuesta cuando Watson entienda una
entidad y/o una intención; en ese momento se reinicia el contador.
Con esta solución, también se pretende mitigar, de alguna manera,
la confusión que se producía cuando los estudiantes hablaban
entre ellos y el SIT debía ignorar lo que dicen.
SOLUCIÓN ADOPTADA
61
Solución 5: Nueva intención para logros del estudiante
Watson
Assistant
Se creó una nueva intención #General_Already_Done en el que se
tienen los siguientes mensajes:
a. Ok / okay/ okey
b. ya lo hecho
c. ya lo tengo
d. ya lo hice”
Se creó un nuevo nodo que al reconocer la intención
#General_Already_Done felicita al estudiante.
Solución 6: Nueva intención “como hacer”
Watson
Assistant
#Obtencion_Quimicos
Se agregó esta nueva intención que evalúa mensajes de cómo se
trabaja o se añade los químicos durante la práctica. Se añadió un nuevo nodo hijo que evalúe esta intención en los
nodos de acción siguiente: “agregarmys/agregarsacarosa” y
“agregaragar”
La respuesta del nuevo nodo es: Para añadir los químicos, abre la vitrina de químicos y selecciona
los que necesites.
Solución 7: Dos entidades (quimico-vitrina)
Watson
Assistant Se agregó un nodo hijo que busque la intención
“#Ubicacion_Contenedor” en los nodos principales de acciones
siguientes: “agregarmys/agregarsacarosa” y “agregarsacarosa”
Se agregó un nodo hijo que busque la intención
“#Descripcion_Contenedor” en los nodos principales de acciones
siguientes: “agregarmys/agregarsacarosa” y “agregarsacarosa”
SOLUCIÓN ADOPTADA
62
Se agregó un nodo hijo que busque la intención
““#Ubicacion_Quimicos” en los nodos principales de acciones
siguientes: “agregarmys/agregarsacarosa” y “agregarsacarosa”
Solución 8: Dos entidades (vaso-fregadero)
Watson
Assistant En el nodo principal de acción siguiente “soltarvasofregadero” se
agregó un nodo hijo que busque las palabras vaso o fregadero.
Este nodo envía como respuesta: $nom_alu acércate a cualquier fregadero y para soltar el vaso,
entra en el inventario y pulsa "Soltar".
Solución 9: Dos entidades (vaso-agitador)
Watson
Assistant En el nodo principal de acción siguiente “soltarvasoagitador” se
agregó un nodo hijo que busque las palabras vaso o agitador.
Este nodo envía como respuesta: $nom_alu tienes que llevar el vaso al agitador (encima de cualquier
mesa del fondo con un disco giratorio encima) y soltarlo ahí.
Solución 10: Dos entidades (botella-sala de autoclave)
Watson
Assistant En el nodo principal de acción siguiente “insertarbotellaautoclave”
se agregó un nodo hijo que busque la palabra botella.
Este nodo envía como respuesta: Debes autoclavar la botella introduciéndola en un autoclave, para
ello suelta la botella cerca del autoclave.
SOLUCIÓN ADOPTADA
63
4.4. Traza de estudiantes en tiempo real
4.4.1. Proyecto previo
En esta solución se utilizó como punto de partida el proyecto automatictutor
resultado de la investigación [3], específicamente los módulos: LoadLogsBiotech y
Its.StudentModule.Ontology.
El módulo Its.StudentModule.Ontology contiene la implementación de la
ontología estudiante (descrita en el apartado 2.4.3), específicamente archivos .owl que
representan cada una las ontologías modulares del estudiante.
El módulo LoadLogsBiotech es el encargado de procesar las acciones realizadas
por los estudiantes y registrarlas en esta ontología, específicamente en la traza del
estudiante.
De forma detalla, se realiza el registro de traza de los estudiantes en bloque, es
decir, se leen todas las acciones y errores desde un archivo de registros y, a través de
un bucle se las ingresa en la ontología de cada uno de los estudiantes.
4.4.2. Implementación
En el presente proyecto de investigación se implementó únicamente la
actualización de una parte de la ontología estudiante, concretamente, las ontologías
modulares utilizadas son:
Ontología información del estudiante (Student Information)
Ontología perfil del estudiante (Student Profile)
Ontología estado del estudiante (Student State)
Ontología traza del estudiante (Student Trace)
Además, con base en el proyecto automatictutor, se creó un método que sea
capaz de registrar las acciones y errores de los estudiantes de una en una, a medida
que llegan al SitChatBot por medio de los servicios web.
Para adaptar la solución del proyecto automatictutor al objetivo de este proyecto,
fue necesario eliminar la lectura del archivo de registros, y el bucle que recorre cada una
de las líneas de dicho archivo.
SOLUCIÓN ADOPTADA
64
Una vez adaptados los métodos al proyecto, se tiene como resultado la solución
que se explica a continuación:
Cuando un estudiante realiza una acción o comete un error en el entorno virtual,
se envía una petición con los datos del evento realizado como se muestra en las figuras
Figura 22 y Figura 23 a continuación.
Figura 22. Petición POST de tipo evento – acción
Figura 23. Petición POST de tipo evento – error
Este evento será guardado en la ontología estudiante con la ayuda del nuevo
método saveStudentEventInLogs presente en la clase StudentOntology.
Figura 24. Métodos y atributos utilizados para la solución de: Trazas de
estudiantes en tiempo real
SOLUCIÓN ADOPTADA
65
Cuando un estudiante realiza su primera acción (o error) se guarda al estudiante
en la ontología student_data.owl la cual contiene la información y el perfil de todos los
estudiantes, diferenciados con un identificador numérico (ver Figura 25).
Figura 25. Ejemplo de información y perfil del estudiante guardado en la
ontología mundo en tiempo real
Utilizando dicho identificador se crea un archivo nuevo id.owl dentro de la carpeta
Logs, el cual contiene el estado (student_state) y la traza (student_trace) de dicho
estudiante.
Figura 26. Ejemplo de traza y estado del estudiante guardado en la ontología
mundo en tiempo real
SOLUCIÓN ADOPTADA
66
4.5. Ubicación de objetos basada en aspectos
perceptivos y espaciales
4.5.1. Preprocesamiento: script que permite agregar
información a la ontología mundo
Para poder utilizar el algoritmo descrito en el siguiente apartado, fue necesario
crear nuevos individuos por cada objeto perteneciente al laboratorio virtual de
biotecnología.
Además, para generar la instrucción basada en aspectos perceptivos se
necesitan añadir propiedades de saliencia, tamaño, posición y orientación en cada uno
de estos individuos. Por otro lado, será necesario añadir las relaciones espaciales entre
los individuos que serán empleadas para generar las indicaciones de localización.
Esta información debe estar presente en el momento de la ejecución de la
práctica, por lo que es necesario realizar un preprocesamiento para agregarla al archivo
miles que tiene la definición de la ontología mundo. Para esto se creó un nuevo proyecto,
dentro de la solución SIT, denominado ScriptWorldInformation.
4.5.1.1. Proyecto ScriptWorldInformation
Este proyecto se encuentra implementado en C#, y su estructura se encuentra
definida por paquetes como se muestra en la Figura 27.
Figura 27. Diagrama de paquetes de proyecto ScriptWorldInformation
SOLUCIÓN ADOPTADA
67
El paquete OntologyInformation contiene las clases que representan a un
individuo o instancia dentro de la ontología mundo. El paquete OntologyAccess contiene
la clase para modificar la ontología mundo. Y el paquete Utils contiene clases que
permiten funcionalidades extras para este preprocesamiento tales como: conexión a
base de datos, registros en memoria, etc.
Funcionamiento de ScriptWorldInformation
A continuación, se detallará cada uno de los pasos realizados en el programa
principal de este proyecto para agregar la información en la ontología mundo.
(a) Archivo con definición de nuevos individuos
El primer paso fue crear un archivo JSON elements.json que tenga la definición
de los individuos o instancias a crear. Esta definición se basa en un arreglo de objetos
(Figura 28), en el que cada objeto representa una clase dentro de la ontología mundo.
Figura 28. Preprocesamiento: Formato principal del archivo con definición de
nuevos elementos para ontología mundo
Para entender el formato de cada uno de los objetos se tiene la Figura 29, en la
que se puede observar que cada uno de los objetos tiene una propiedad denominada
instances, en la que se especifican todas las instancias pertenecientes a esa clase, es
decir, cada objeto dentro de instances representa un individuo a ser creado en la
ontología.
SOLUCIÓN ADOPTADA
68
En cada una de estas instancias se tiene la propiedad references en la que se
especifica el tipo de relación (isInsideOf, toTheRightOf, etc) y el nombre de la instancia
con el que está relacionado.
Adicionalmente, en la Figura 29 se observa que cada uno de los objetos tienen
una propiedad denominada commonData en la que se describen las propiedades cuyos
valores son comunes para todas las instancias de la clase, entre los que tenemos:
ontologyClass
descriptionG / descriptionE
spanishName
spanishSentence
colorSalience / shapeSalience
Las demás propiedades necesarias en los individuos de la ontología mundo se
obtienen de una consulta a la base de datos de OpenSim, filtrando cada objeto con su
identificador denominado UUID. Este identificador es una propiedad de cada instance.
Figura 29. Preprocesamiento: Formato JSON utilizado en el archivo de definición
de individuos para la ontología
SOLUCIÓN ADOPTADA
69
(b) Información de la base de datos OpenSim
Para obtener los datos faltantes es necesario realizar una conexión a la base de
datos de OpenSim, la cual se encuentra en una base de datos relacional MySQL, por lo
que la consulta para cada objeto es la que se muestra en la figura a continuación.
Figura 30. Preprocesamiento: Consulta en SQL para obtener datos de los objetos
del laboratorio virtual en OpenSim
A través de la consulta se obtienen datos para llenar las siguientes propiedades
de cada individuo en la ontología mundo:
Tamaño (scaleX, scaleY, scaleZ)
Posición (positionX, positionY, positionZ)
Orientación (orientation)
(c) Cálculo de saliencias individuales
Para el cálculo de la saliencia individual de un objeto se utiliza la ecuación (3)
vista en el apartado 2.5.2.2, en la que es necesario tener los valores de las saliencias
por color, tamaño y forma de cada individuo.
Saliencia por color: Debido a que en el entorno virtual de aprendizaje del
laboratorio de biotecnología se tiene como color predominante el gris, la saliencia por
color se definió de manera subjetiva, tomando en cuenta que solo los objetos con
colores que resalten tendrán 1 o 0.5.
Saliencia por forma: Debido a que en el entorno virtual de aprendizaje del
laboratorio de biotecnología la mayoría de los objetos son rectangulares, la saliencia por
forma se definió de manera subjetiva, tomando en cuenta que los objetos cuya forma
sea rectangular tendrán una saliencia de 0, y si es distinta diferente será 0.5 o 1
dependiendo de cuánto resalte en el entorno.
SOLUCIÓN ADOPTADA
70
Saliencia por tamaño: Esta saliencia se calculó utilizando la ecuación (5) vista en
el apartado 2.5.2.2, por lo que se realizó un análisis de los valores más grandes de
longitud, ancho y altura de todos los objetos del laboratorio virtual.
(d) Actualización de la ontología mundo
Una vez que se tienen los objetos para la ontología mundo con todas sus
propiedades, se procede a actualizar la ontología, para lo cual se utiliza la clase
OntologyModification del paquete OntologyAccess.
Primero se crean todos los individuos utilizado un método de esta clase
denominado addInstancesToWorldOntology. Y posteriormente se añaden las
referencias entre individuos utilizando el método addReferencesToInstances.
Resultado de ScriptWorldInformation
Una vez que se ha ejecutado el programa, se tiene un archivo de registros en el
que se encuentran todos los objetos que han sido añadidos a la ontología.
Este archivo se encuentra en C:/ProgramData/SIT Scripts/instances.log y su
contenido tiene formato CSV, es decir cada columna está separada por el carácter “;”
(ver Figura 31).
Figura 31. Preprocesamiento: Muestra del archivo de registro con todos los
individuos creados en la ontología mundo
Para poder ver de forma más detallada todos los individuos que han sido
añadidos a la ontología, y su información se tiene en el apartado 7.1 “Anexo 1: Tabla de
individuos añadidos a la ontología mundo”.
SOLUCIÓN ADOPTADA
71
Además, se pueden observar los cambios en la ontología mundo, que es el
archivo miles.owl, que se podrá inspeccionar con la herramienta Protégé. Como se
muestra en la Figura 32, al lado izquierdo de color púrpura se tiene los nuevos individuos
creados. Y si se señala alguno de estos individuos, al lado derecho se mostrarán sus
propiedades con los valores asignado (data properties) y también las referencias que
tienen con otros individuos (objeto properties).
Figura 32. Preprocesamiento: Nuevos individuos como resultado de ejecutar el
programa ScriptWorldInformation
SOLUCIÓN ADOPTADA
72
4.5.2. Algoritmo de generación de indicaciones para
ubicar objetos
4.5.2.1. Explicación
Este algoritmo tiene como propósito generar una instrucción de ubicación que
guíe al estudiante a encontrar un objeto dentro del laboratorio virtual, por el cual ha
preguntado.
Para ello se utiliza como datos de entrada la información del laboratorio virtual
que se encuentra en la ontología mundo, y se obtiene como salida una instrucción en
español con la ubicación del objeto dentro del laboratorio virtual.
4.5.2.2. Proyecto previo
Este algoritmo se basa en el apartado 2.5 (proyecto de investigación [6]), por lo
tanto, cabe resaltar que la instrucción generada para un objeto no es siempre la misma,
pues depende de aspectos perceptivos y espaciales tales como la ubicación del
estudiante, su campo de visión y la saliencia de los objetos.
Sin embargo, el entorno virtual del proyecto de investigación [6] no es igual al del
laboratorio virtual, motivo por el que se han realizado cambios y/o consideraciones a los
algoritmos del apartado 2.5.
Consideración de distintos escenarios
En el proyecto de investigación [6] se trató la generación de indicaciones
solamente para objetos que estaban dentro del campo de visión del usuario o estudiante
(apartado 2.5.1.3). Ahora bien, en esta tesis de máster, se propuso un algoritmo capaz
de tratar también los casos en los que el objeto no se encuentra dentro de la misma sala
que el estudiante (apartado 2.5.1.1) y en el que, a pesar de estar en la misma sala, no
está dentro de su campo de visión (apartado 2.5.1.2).
Esta diferencia en la implementación fue necesaria, pues durante la práctica en
el laboratorio virtual se realizan actividades en varias salas o cuartos, y por tanto puede
ser necesario guiar al estudiante al cuarto en el que se encuentre el objeto que está
buscando.
SOLUCIÓN ADOPTADA
73
Objetos repetidos
Debido a que en el laboratorio virtual puede haber uno o más estudiantes
realizando la práctica al mismo tiempo, existen varios objetos del mismo tipo.
Este caso no estuvo planteado en el proyecto de investigación previo, por lo que
en este algoritmo se ha incluido la funcionalidad de generar la instrucción para la
instancia del objeto que esté más cercana al estudiante.
Simplificaciones por falta de información
a) Tiempo de visión
En el proyecto de investigación [6], la probabilidad de recuerdo de cada objeto
está basada en la historia de visión de cada uno. La historia de visión hace referencia
al tiempo de visión del estudiante sobre ese objeto, y a la claridad con que se lo observó.
Sin embargo, en el laboratorio virtual no se tiene esa información por lo que se
decidió simplificar la ecuación (8) para que no dependa de este valor, y se tiene como
ecuación definitiva la que se muestra a continuación:
b) Saliencia en base al contexto de color y forma
Debido a que no se tiene la información de color y forma de todos los objetos del
contexto, no es posible calcular los valores del contexto, y por lo tanto, tampoco se
puede calcular la distancia entre el valor del contexto y el de cada objeto.
Por lo tanto, para estandarizar la distribución se utilizó el valor de las saliencias
individuales de color y de forma.
SOLUCIÓN ADOPTADA
74
4.5.2.3. Pseudocódigo
SOLUCIÓN ADOPTADA
75
SOLUCIÓN ADOPTADA
76
4.5.3. Implementación
4.5.3.1. Posición y orientación del avatar del estudiante
El primer paso para la generación de indicaciones de ubicación utilizando
aspectos perceptivos y espaciales es conocer la posición y la orientación del estudiante
dentro del laboratorio virtual (entorno de entrenamiento procedimental).
Para ello, cada vez que el estudiante realice una pregunta al tutor automático se
debe enviar esta información junto con la pregunta. Un ejemplo de petición sería el que
se muestra en la Figura 33, en la que el recuadro verde es la orientación respecto al eje
vertical y el recuadro naranja es la posición en los ejes x, y, z.
Figura 33. Petición POST de chat de estudiante con su orientación y posición
Se añadieron las propiedades orientation y position en la clase Student, en la
ontología mundo, y se creó un nuevo método setOrientationPosition para que se
sobrescriban los valores de orientación y posición del estudiante en su instancia dentro
de la ontología mundo.
Figura 34. Métodos y atributos utilizados para guardar la posición y orientación
del estudiante en la ontología mundo
SOLUCIÓN ADOPTADA
77
4.5.3.2. Elección de la instancia del objeto a localizar
Debido a que se realizó el preprocesamiento, en la ontología mundo se tienen
varias instancias del mismo tipo de objeto.
Para evitar el acceso constante a la ontología mundo, el cual resultaría muy
lento, cuando un estudiante pregunta por la localización de un objeto, todas las
instancias de este objeto se cargan en memoria en la propiedad worldInformation de la
clase WorldOntology.
Cada una de las instancias es del tipo OntologyInformation (ver Figura 35) y los
valores de sus propiedades son cargados desde la ontología mundo. Las referencias a
otras instancias se convierten en una lista de ObjectProperty.
Figura 35. Clases utilizadas para representar un objeto de la ontología mundo en
el sistema
Instancias en la misma sala que el usuario
Con la información de todas las instancias del objeto a localizar, se procede a
filtrar las que se encuentren en el mismo cuarto o sala del usuario. Para ello, primero se
necesita que en la ontología mundo se tenga información de los cuartos o salas del
laboratorio.
SOLUCIÓN ADOPTADA
78
Asumiendo, que los cuartos son rectangulares es necesario que de cada uno se
tengan las coordenadas de sus cuatro esquinas. Como ejemplo se muestra el cuarto
Main_Room en la Figura 36.
Figura 36. Instancia de sala Main_Room en la ontología mundo
Todas las salas presentes en la ontología mundo también son cargadas en
memoria, en la propiedad Rooms que es una lista de objetos de tipo Room. Actualmente,
las que se encuentran en la ontología mundo son las de la Tabla. V
INSTANCIA NOMBRE COORDENADAS
Main_Room sala principal (92,85) (116,85) (116,108) (92,108)
Autoclave_Room sala de autoclave (92,85) (116,85) (116,108) (92,108)
Tabla. V. Instancias de los cuartos o salas de la ontología mundo
A continuación, se busca la sala en la que se encuentra el estudiante (método
getLocationRoomForInstance de la clase PerspectiveSpatial) utilizando las
coordenadas de su ubicación.
Una vez obtenida la sala del estudiante, se filtran las instancias del objeto a
localizar que se encuentren dentro de la misma sala, para ello se utiliza el método
isInsideRoom.
SOLUCIÓN ADOPTADA
79
Figura 37. Métodos utilizados para encontrar instancias de un objeto en el
mismo cuarto del estudiante
Instancia más cercana al estudiante
Si es que no existen instancias del objeto en la misma sala del estudiante, de
todas las instancias se busca la más cercana (método getNearestInstance) y se
proporciona una instrucción para que el estudiante vaya a ese cuarto.
En caso contrario, de las instancias presentes en el mismo cuarto del estudiante
se escoge la que está más cercana a él utilizado el método getNearestInstance.
El método getNearestInstance lo que hace es calcular las distancia entre la
posición del estudiante y cada instancia, y escoger la instancia cuyo valor de distancia
sea menor.
Figura 38. Métodos utilizados para encontrar la instancia más cercana al
estudiante
Cambio de la instancia del objeto a localizar
Siguiendo el pseudocódigo, si un objeto se encuentra dentro de otro objeto, el
objeto contenedor se convierte en el objeto a localizar (OL2). Debido a que se tienen las
referencias del objeto como una de sus propiedades, se verifica si alguna de ellas es
del tipo isInsideOf (dentro de) y si se cumple se procede a cambiar el objeto a localizar.
SOLUCIÓN ADOPTADA
80
4.5.3.3. Campo de visión del estudiante
Una vez que se tiene determinado el objeto a localizar, se procede a verificar si
este se encuentra dentro del campo de visión del avatar del estudiante.
Verificación de si el OL se encuentra en el campo de visión
Para verificar si el objeto se encuentra dentro del campo de visión, se necesita
asumir un ángulo de visión del estudiante, en este caso utilizando como referencia la
investigación [6] y la visión de la cámara en el laboratorio virtual, se ha decidido tomar
como ángulo horizontal 130º, y como ángulo vertical 180º (semicírculo). Con este
ángulo de visión, se calcula el vector que representa el campo de visión del estudiante.
Para verificar si el objeto se encuentra en el campo de visión, es necesario
calcular el ángulo existente entre el vector que representa el campo de visión del
estudiante, y el vector que se forma desde el estudiante hasta el objeto a localizar (ver
ángulo de color naranja en la Figura 39).
Figura 39. Representación de vectores y ángulos para verificar si un objeto se
encuentra dentro del campo de visión del estudiante
Para calcular el que representa el campo de visión del estudiante (vector
azul en la Figura 39) se necesita su ángulo de orientación. Se asume que altura es cero
(se anula eje z), y que la vista del usuario tiene un alcance de hasta 10m, por lo tanto,
conociendo el ángulo y su distancia se calcula el punto de visión:
y
SOLUCIÓN ADOPTADA
81
Para calcular el vector que se forma desde el estudiante hasta el objeto
a localizar (vector de color rojo en la Figura 39) es necesario tomar como punto (0,0) al
estudiante, y transformar la posición del objeto para que su sistema de referencia sea el
estudiante y no el laboratorio virtual.
Finalmente, se calcula el ángulo entre los dos vectores utilizando la ecuación
y si este es menor a 65º (130º/2) se dice que está dentro del campo de visión, caso
contrario no.
Para todo este proceso se utiliza el método isInsideFoV que devuelve verdadero,
si la instancia se encuentra dentro del campo de visión, y devuelve falso si no. Además,
devuelve como variable de salida el ángulo entre los vectores.
Figura 40. Métodos utilizados para verificar si el OL se encuentra o no en el
campo de visión del estudiante
Instrucción para que quede dentro del campo de visión
Si el objeto a localizar no está dentro del campo de visión del estudiante, es
necesario que se le dé una instrucción para que el estudiante y el objeto a localizar
queden frente a frente.
Para ello utilizamos el ángulo entre los dos vectores, el cual se aproxima a su
decena más cercana. Y se crea la dirección, izquierda o derecha, en base al signo del
ángulo de la siguiente manera:
Derecha: si el ángulo es positivo
Izquierda: si el ángulo es negativo
SOLUCIÓN ADOPTADA
82
4.5.3.4. Generación de la instrucción
Descripción del objeto
En el objeto estudiante se tiene la propiedad instructionLevel que sirve para
diferenciar que tipo de instrucción necesita el estudiante, general o específica.
Si el estudiante tiene específico como valor de instructionLevel, se añade la
descripción del objeto a la instrucción de ubicación. Esto con el objetivo de que la
respuesta recibida por el estudiante tenga más información.
Cálculo de la saliencia de contexto
El contexto está formado por el objeto a localizar y todos sus objetos referencias,
de los cuales se utilizan los que estén dentro del campo de visión del estudiante.
Una vez que se tienen los elementos del contexto, se procede a calcular los
siguientes valores de cada uno de ellos:
colorContextSalience
sizeContextSalience
shapeContextSalience
contextSalience
Para cada uno de los parámetros: color, tamaño, forma; se utilizan las
ecuaciones (6) y (7) vistas en el apartado 2.5.2.2 y se obtienen los valores
estandarizados de saliencia en relación al contexto. Después con la ecuación (4) vista
en el apartado 2.5.2.2 se calcula el valor total de la saliencia de contexto para cada una
de las instancias. Todo este proceso se realiza en un método de la clase
PerspectiveSpatial llamado calculateContexSalienceForAllInstances.
Figura 41. Método utilizado para calcular saliencia de contexto para todas las
instancias del contexto
SOLUCIÓN ADOPTADA
83
Cálculo de la saliencia general
Como siguiente paso para todas las instancias se calcula la saliencia general en
base a la saliencia individual y a la saliencia de contexto. Para ello se utiliza la ecuación
(2) vista en el apartado 2.5.2.2, que se implementó en el método
calculateGeneralSalienceForAllInstances de la clase PerspectiveSpatial.
Figura 42. Método utilizado para calcular saliencia general para todas las
instancias del contexto
Verificar si el objeto es saliente por sí mismo
Si el objeto a localizar tiene una saliencia general mayor a 0.6 significa que es
saliente por sí mismo y que no necesita un objeto de referencia y se genera una
instrucción intrínseca, es decir, relativa a la posición del estudiante.
De igual forma, en este laboratorio virtual si el objeto a localizar no tiene
referencias, se ha tomado la decisión de generar una instrucción intrínseca.
En estos dos casos se tendrían los siguientes tipos de instrucciones mostrados
en la Tabla. VI.
Dentro del campo de
visión Dentro de otro objeto Instrucción
Si Si El objeto 1 está dentro del objeto 2 que está al frente tuyo.
No El objeto 1 está al frente tuyo.
No
Si Estudiante gira x grados a la izquierda y verás el objeto 1 dentro del
objeto 2 que está al frente tuyo.
No Estudiante gira x grados a la izquierda y verás el objeto 1 al frente
tuyo.
Tabla. VI. Posibles instrucciones cuando el objeto a localizar es sobresaliente por
sí mismo o no tiene referencias
SOLUCIÓN ADOPTADA
84
Selección del mejor objeto de referencia
De todos los elementos del contexto se elige el mejor objeto de referencia
utilizando la ecuación (1) vista en el apartado 2.5.2.2, y una vez que se haya escogido,
se tienen los siguientes tipos de instrucciones mostrados en la Tabla. VII.
Dentro del campo de
visión Dentro de otro objeto Instrucción
Si Si
El objeto 1 está dentro del objeto 2 que está relación del objeto de
referencia.
No El objeto 1 está relación del objeto de referencia.
No
Si Estudiante gira x grados a la izquierda y verás el objeto 1 dentro del
objeto 2 que está relación del objeto de referencia.
No Estudiante gira x grados a la izquierda y verás el objeto 1 relación
del objeto de referencia.
Tabla. VII. Posibles instrucciones cuando la instrucción del objeto a localizar está
basada en un objeto de referencia
5 PRUEBAS
PRUEBAS
86
En este capítulo se describirán los resultados obtenidos en las pruebas
realizadas al SIT con interacción en lenguaje natural después de realizar las
implementaciones descritas en el capítulo anterior.
En el primer apartado se detallan las pruebas realizadas a las correcciones de
la evaluación, y en el segundo apartado se documenta la generación de una instrucción
de ubicación para el químico sacarosa.
5.1. Reformulación de preguntas con
respuestas erróneas durante la evaluación
Para realizar estas pruebas fue necesario enviar las peticiones hacia el MSGD
para lo cual se utilizó Postman2, que es un cliente de servicios web que través de una
interfaz gráfica permite enviar peticiones y recibir respuestas a las mismas.
Debido a que los errores encontrados se dieron en diferentes partes de la
práctica, es necesario replicar que la accionsiguiente sea la misma al momento de
realizar las preguntas. Por lo tanto, se enviaron peticiones de dos tipos: primero de tipo
event para obtener la accionsiguiente deseada, y después de tipo chat para reenviar los
mensajes de chat con respuestas erróneas obtenidos durante la evaluación.
En el apartado 7.2 se muestra una tabla con todas las preguntas realizadas y las
respuestas obtenidas después de haberse implementado la solución.
A continuación, se detalla una de las pruebas realizadas en la que se tienen los
siguientes datos provenientes de una pregunta (implícita) mal contestada durante la
evaluación:
Pregunta: no sé qué coger de la vitrina
Acción siguiente: agregaragar
Respuesta: Ahora no necesitas agar.
2 Postman: https://learning.getpostman.com/
PRUEBAS
87
Se realiza la petición de la Figura 43 para que la accionsiguiente sea
agregaragar. Debido a que la acción anterior es desbloquearphmetro, entonces se envía
una petición que simule que se ha completado esta acción.
Figura 43. Envió de petición de tipo event a través de Postman
Y posteriormente, se realiza una petición de tipo chat con la pregunta
previamente realizada por el estudiante. En este caso se puede observar que la
respuesta es “Debes agregar el agar”, lo que es correcto y distinto a lo obtenido durante
la evaluación.
Figura 44. Envió de petición de tipo chat a través de Postman
PRUEBAS
88
5.2. Generación de instrucción de ubicación
de objeto sacarosa
Para entender la generación de instrucciones de ubicación basadas en aspectos
perceptivos se va a utilizar la siguiente petición de un estudiante (Carolina López) que
pregunta por la ubicación de la sacarosa, que es un tipo de químico utilizado en la
práctica.
Figura 45. Petición POST de tipo chat utilizada en la prueba de generación de
instrucción de ubicación del químico sacarosa
Al momento que se realiza la petición, la posición y orientación del avatar del
estudiante dentro del laboratorio virtual es la que se muestra en la Figura 46.
Figura 46. Avatar de la estudiante Carolina Lopez en el laboratorio virtual, con
posición y orientación del momento que realiza la pregunta
PRUEBAS
89
5.2.1.1. Posición y orientación del avatar del estudiante
Una vez que se ha realizado la petición, en la ontología mundo se ha creado (si
no existía) una instancia del estudiante Carolina Lopez. Dicho estudiante tiene las
siguientes propiedades que fueron parte de la petición.
avatarPositionX
avatarPositionY
avatarPositionZ
orientationX
Figura 47. Resultado: Instancia de estudiante en ontología mundo con datos de
posición y orientación
5.2.1.2. Elección de la instancia del objeto a localizar
Posteriormente se carga en memoria el objeto sacarosa, del cual existen dos
instancias en la ontología. Como se puede ver en la Figura 48, el objeto es de tipo
OntologyInformation y todos sus datos han sido cargados desde la ontología mundo.
PRUEBAS
90
Figura 48. Ejemplo de instancias de un objeto (sacarosa) cargado en memoria
con datos de la ontología mundo
Instancias en el mismo cuarto que el estudiante
Primero se busca en qué cuarto o sala está el estudiante. En este ejemplo la
posición del estudiante es , y dichas coordenadas se
encuentran dentro de la sala principal (ver Tabla. V), por lo tanto, este es el cuarto del
estudiante.
Después se verifica si las dos instancias de sacarosa se encuentran dentro de la
sala principal, y debido a sus posiciones mostradas a continuación, las dos están en el
mismo cuarto que el estudiante.
sucrose_1
sucrose_2
PRUEBAS
91
Instancia más cercana al estudiante
De las dos instancias dentro del mismo cuarto que está el estudiante, se tiene
que escoger la más cercana a él.
Se calcula la distancia existente entre el estudiante y cada una de las instancias
y se tiene los resultados mostrados a continuación, con los que la instancia escogida es
sucrose_2.
distancia: student sucrose_1
distancia: student sucrose_2
Cambio de la instancia del objeto a localizar
Se verifica entre sus referencias (propiedad Properties) si es que sucrose_2 se
encuentra dentro de otro objeto. Como se puede ver en la Figura 49 se tiene la
referencia:
isInsideOf: Chemicals_Showcase_2
Esta referencia causa que se realice un cambio de la instancia del objeto a
localizar, por lo tanto, para los siguientes pasos la instancia es Chemicals_Showcase_2.
Figura 49. Referencias (properties) de la instancia escogida, sucrose_2, como
objeto a localizar
PRUEBAS
92
5.2.1.3. Campo de visión del estudiante
Cálculo del campo de visión del estudiante
Se tiene la orientación del estudiante cuyo valor en grados es .
Se transforma este valor en radianes y se calculan las coordenadas x y del vector campo
de visión del estudiante.
Verificación si Chemicals_Showcase_2 se encuentra dentro del
campo de visión
Como se puede observar en la Figura 46, en el campo de visión del estudiante
no se muestra ninguna vitrina. Existen únicamente las mesas del fondo que contienen
los agitadores y pH-metros. Por lo tanto, el algoritmo debe darnos como resultado que
no se encuentra en el campo de visión.
Se calcula el vector desde el estudiante hasta el objeto a localizar. Considerando
que el estudiante es el punto de referencia (0,0) se transforma la posición de
Chemicals_Showcase_2 para que quede en referencia al estudiante.
Entonces, si:
Se concluye que el valor del vector entre student Chemicals_Showcase_2 es:
Teniendo los dos vectores y se calcula el ángulo existente
entre ellos, dando como resultado grados. Con este resultado se sabe que
Chemicals_Showcase_2 no está en el campo de visión del usuario.
PRUEBAS
93
Instrucción para que quede dentro del campo de visión
Se genera la instrucción extra para que el Chemicals_Showcase_2 quede frente
al estudiante, como se muestra a continuación:
“Carolina gira aproximadamente 130 grados a la derecha, y encontrarás”
Como se puede observar en la Figura 50 a continuación, una vez que el
estudiante sigue la instrucción dada, la vitrina de químicos Chemicals_Showcase_2
queda al frente del avatar de la estudiante.
Figura 50. Avatar de la estudiante Carolina Lopez en el laboratorio virtual después de
seguir la instrucción para que el OL quede en su campo de visión
5.2.1.4. Generación de la instrucción
Descripción del objeto
Primero, se verifica si el estudiante tiene un nivel de instrucción específico o
general. En este caso es general, por lo tanto, no se agrega la descripción del objeto.
PRUEBAS
94
Cálculo de la saliencia de contexto y de la saliencia general
Se crea el contexto con todos los objetos que tienen una referencia con
Chemicals_Showcase_2 y que se encuentren dentro del campo de visión del estudiante.
En esta prueba los elementos pertenecientes al contexto son:
Vitrina de químicos (Chemicals_Showcase_2)
Mueble amarillo (Warning_Rack_3)
Caja roja (Red_Box)
A continuación, realiza el cálculo de saliencia de contexto y de saliencia general
de todos los elementos pertenecientes al contexto. Una vez realizado el cálculo se
obtuvieron los valores a continuación en la Tabla. VIII.
Instancia Saliencia general GS
Saliencia en contexto
Color Tamaño Forma Total
Warning_Rack_3 0,732423714796702 1 1 0 0.8
Red_Box 0,508671760559082 1 0 0 0.5
Chemicals_Showcase_2 0,297414983827391 0 0,8611 0 0,258
Tabla. VIII. Saliencia general y saliencias de contexto obtenidos para el contexto de
Chemicals_Showcase_2
Verificar si Chemicals_Showcase_2 es saliente por sí mismo
Observando la saliencia general (GS) de Chemicals_Showcase_2, este valor no
es mayor a 0.6, por lo tanto, el objeto vitrina de químicos no es saliente por sí mismo
por lo que se procede a buscar el mejor objeto de referencia.
Selección del mejor objeto de referencia
Utilizando la ecuación (1) vista en el apartado 2.5.2.2 se obtienen los resultados
de la Tabla. IX para la elección del mejor objeto de referencia
PRUEBAS
95
Instancia Saliencia general (GS)
Probabilidad de recuerdo (PR)
Conocimiento previo (PK) Suma
Warning_Rack_3 0,732424 0,6162119 1 2,34863557
Red_Box 0,508672 0,50433588 1 2,01300764
Tabla. IX. Selección del mejor objeto de referencia para Chemicals_Showcase_2
Escogiendo el valor más grande de la suma de: saliencia general, probabilidad
de recuerdo y conocimiento previo, se escoge como el mejor objeto de referencia a
Warning_Rack_3.
Instrucción generada por el algoritmo
Finalmente, la instrucción generada por el algoritmo es:
Carolina gira aproximadamente 130 grados a la derecha, y encontrarás la sacarosa
dentro de la vitrina de químicos que está a la derecha del mueble amarillo.
6 CONCLUSIONES Y TRABAJO FUTURO
CONCLUSIONES Y TRABAJO FUTURO
97
6.1. Conclusiones
La utilización de entornos de entrenamiento virtuales dedicados a la enseñanza
es una metodología que está en auge, y que permite la realización de prácticas que
serían imposibles o difíciles de realizarse en el mundo real, como es el caso de la
práctica del laboratorio de Biotecnología Agroforestal.
La incorporación del procesamiento de lenguaje natural al tutor automático del
laboratorio virtual de biotecnología convierte a este entorno virtual en un ambiente más
amigable pues el estudiante tiene el acompañamiento de un tutor cuando lo necesite,
respondiendo sus inquietudes y preguntas en lenguaje natural.
El hecho de tener implementado un gestor de diálogo con Watson Assistant
significa que el mismo debe tener entrenamiento continuo, pues todos los estudiantes
tienen diferentes maneras de realizar las mismas preguntas. Es por ello, que con la
evaluación realizada se mejoró la calidad de las respuestas a las preguntas realizadas
por los estudiantes, evitando que las respuestas causen confusión en vez de
proporcionar ayuda.
Además, cabe destacar que la evaluación dejó buenos resultados debido a que
únicamente 9 preguntas de un total de 80 recibieron respuestas erróneas graves que
confundieron al estudiante. Sin embargo, cada año que se realice la práctica se debería
refinar el gestor de diálogo teniendo en cuenta las novedades aparecidas en las
preguntas de los alumnos.
Con la clasificación de los errores encontrados en la evaluación (apartado
3.2.2.2) y las soluciones planteadas para cada tipo de error, se tiene una guía para
solucionar errores que se puedan presentar en la realización de futuras prácticas.
Adicionalmente, la incorporación del uso de aspectos perceptivos y espaciales
para la generación de instrucciones de ubicación marca un punto de mejora en el tutor
automático, pues con el uso de este algoritmo se podrían dar instrucciones de ubicación
para todos los elementos del laboratorio que se encuentren en la ontología mundo. Esto
permitirá que el tramo controlado por el tutor automático crezca y, por lo tanto, se
necesite menos la intervención de un tutor humano.
Asimismo, el uso de aspectos perceptivos y espaciales hace que la conversación
entre el estudiante y el tutor automático sea más natural, pues las instrucciones dejan
CONCLUSIONES Y TRABAJO FUTURO
98
de ser estáticas para ser instrucciones personalizadas para cada estudiante y su
posición dentro del laboratorio virtual.
6.2. Trabajo Futuro
Cargar en la ontología mundo los objetos de todas las regiones del
entorno virtual
Actualmente, en la ontología mundo existen los objetos referentes a la región del
entorno virtual llamado Biotec1. Debido a que los estudiantes realizan la práctica en esta
y otras regiones, se debe cargar los datos de los objetos de todas las regiones utilizando
el proyecto ScriptWorldInformation (explicado en el apartado 4.5.1.1).
Cargar en la ontología mundo más referencias a los objetos del
laboratorio virtual
Actualmente, las instancias en la ontología mundo tienen entre 1 y 3 referencias
a otras instancias. Para probar mejor la eficacia del algoritmo y poderlo afinar, es
necesario que los objetos tengan más referencias para que el contexto del campo de
visión sea más grande.
Actualización de la ontología mundo en tiempo de ejecución
Actualmente el servicio carga la ontología mundo cuando éste inicia. Para
realizar algún cambio en el fichero, es imprescindible detener y volver a lanzar el MSGD
para que éste actualice la información de la ontología. Una mejora en este sentido es
que el MSGD sea capaz de actualizar la ontología residente en memoria en tiempo de
ejecución bajo demanda.
Mejorar los algoritmos de generación de indicaciones basado en aspectos
perceptivos y espaciales
Actualmente, los valores de saliencia individual por color y por forma fueron
calculados de manera subjetiva a la vista del laboratorio virtual de biotecnología. Para
CONCLUSIONES Y TRABAJO FUTURO
99
que este algoritmo pueda ser reutilizado en otros entornos de aprendizaje se propone
mejorar el algoritmo utilizando todas las fórmulas propuestas en el trabajo de
investigación [6] incluidas las que permiten calcular las saliencias individuales de color
y forma de forma automática a partir de las geometrías de los objetos.
Adicionalmente, es necesario añadir el tiempo de visión en el cálculo de la
probabilidad de recuerdo de cada objeto. Para esto se necesita tener un control del
tiempo que un estudiante se encuentra en cada posición dentro del entorno virtual de
aprendizaje.
Validación de los cambios implementados en el SIT con interacción en
lenguaje natural con estudiantes
A pesar de haber realizado pruebas, es necesario validar que los objetivos
propuestos en este trabajo se cumplieron durante la práctica de los estudiantes de
Biotecnología Agroforestal que tendrá lugar en mayo del 2020.
7 ANEXOS
AN
EXO
S
101
7.1
. An
exo
1:
Tab
la d
e in
div
idu
os a
ñad
idos
a la
on
tolo
gía
mu
nd
o
INST
AN
CEN
AM
E PO
SITI
ON
O
RIE
NTA
TIO
N
SCA
LE
OB
JEC
TPR
OPE
RTI
ES
SALI
ENC
E C
OLO
R
SAL.
SI
ZE
SAL.
SH
APE
SA
L.
Frid
ge_1
(1
10,3
625,
106
,919
9, 2
3,51
33)
(270
, 0, 1
80)
(1, 2
,369
9, 0
,75)
[]
0,
2434
0
0,81
16
0
Han
dwas
h_1
(114
,089
3, 1
07,6
007,
23,
5750
) (0
, 0, 1
80)
(0,0
500,
0,1
999,
0,2
000)
[t
oThe
Rig
ht, F
ridge
_1]
0,37
85
0 0,
0951
1
Han
dwas
h_2
(113
,015
2, 1
07,6
007,
23,
5974
) (0
, 0, 1
80)
(0,0
500,
0,1
999,
0,2
000)
[t
oThe
Rig
ht, F
ridge
_1]
0,37
85
0 0,
0951
1
Han
dwas
h_3
(111
,841
3, 1
07,6
007,
23,
5974
) (0
, 0, 1
80)
(0,0
500,
0,1
999,
0,2
000)
[t
oThe
Rig
ht, F
ridge
_1]
0,37
85
0 0,
0951
1
War
ning
_Rac
k_1
(107
,676
5, 1
06,8
227,
23,
2509
) (0
, 0, 9
0)
(0,6
000,
0,6
000,
1,8
999)
[]
0,
7562
1
0,85
41
0
War
ning
_Rac
k_2
(106
,892
5, 1
06,8
227,
23,
2509
) (0
, 0, 9
0)
(0,6
000,
0,6
000,
1,8
999)
[]
0,
7562
1
0,85
41
0
War
ning
_Rac
k_3
(102
,163
8, 1
06,8
227,
23,
2509
) (0
, 0, 9
0)
(0,6
000,
0,6
000,
1,8
999)
[]
0,
7562
1
0,85
41
0
War
ning
_Rac
k_4
(101
,381
8, 1
06,8
227,
23,
2509
) (0
, 0, 9
0)
(0,6
000,
0,6
000,
1,8
999)
[]
0,
7562
1
0,85
41
0
Che
mic
als_
Show
case
_1
(105
,302
3, 1
06,9
651,
23,
5732
) (2
70, 0
, 180
) (1
,5, 2
,5, 0
,75)
[t
oThe
Rig
ht,
War
ning
_Rac
k_2]
0,
55
0 1
0
Che
mic
als_
Show
case
_2
(103
,606
2, 1
06,9
651,
23,
5732
) (2
70, 0
, 180
) (1
,5, 2
,5, 0
,75)
[t
oThe
Left,
War
ning
_Rac
k_3]
0,
55
0 1
0
IceM
achi
ne_1
(9
5,08
26, 1
00,7
820,
24,
1985
) (0
, 0, 9
0)
(0,9
677,
0,5
519,
0,0
250)
[]
0,
1678
0
0,22
6 0
IceM
achi
ne_2
(9
5,08
26, 9
1,33
97, 2
4,19
85)
(0, 0
, 90)
(0
,967
7, 0
,551
9, 0
,025
0)
[]
0,16
78
0 0,
226
0
Stir
rer_
Tabl
e_1
(95,
1817
, 98,
7746
, 23,
2502
) (0
, 0, 1
80)
(1, 1
,699
7, 0
,050
0)
[]
0,10
82
0 0,
3608
0
AN
EXO
S
102
Stir
rer_
Tabl
e_2
(95,
1817
, 96,
9689
, 23,
2502
) (0
, 0, 1
80)
(1, 1
,699
7, 0
,050
0)
[]
0,10
82
0 0,
3608
0
Stir
rer_
Tabl
e_3
(95,
1817
, 95,
1491
, 23,
2502
) (0
, 0, 1
80)
(1, 1
,699
7, 0
,050
0)
[]
0,10
82
0 0,
3608
0
Stir
rer_
Tabl
e_4
(95,
1817
, 93,
3399
, 23,
2502
) (0
, 0, 1
80)
(1, 1
,699
7, 0
,050
0)
[]
0,10
82
0 0,
3608
0
Stir
rer_
1 (9
5,45
22, 9
8,86
00, 2
3,34
89)
(56,
0, 2
69)
(0,3
400,
0,0
099,
0,1
649)
[a
bove
, Stir
rer_
Tabl
e_1]
0,
7338
1
0,11
26
1
Stir
rer_
2 (9
5,45
22, 9
7,05
99, 2
3,34
89)
(56,
0, 2
69)
(0,3
400,
0,0
099,
0,1
649)
[a
bove
, Stir
rer_
Tabl
e_2]
0,
7338
1
0,11
26
1
Stir
rer_
3 (9
5,45
22, 9
5,26
00, 2
3,34
89)
(56,
0, 2
69)
(0,3
400,
0,0
099,
0,1
649)
[a
bove
, Stir
rer_
Tabl
e_3]
0,
7338
1
0,11
26
1
Stir
rer_
4 (9
5,45
22, 9
3,45
99, 2
3,34
89)
(56,
0, 2
69)
(0,3
400,
0,0
099,
0,1
649)
[a
bove
, Stir
rer_
Tabl
e_4]
0,
7338
1
0,11
26
1
PH
Met
ro_1
(9
5,28
96, 9
9,37
99, 2
3,32
11)
(90,
0, 2
69)
(0,1
500,
0,0
099,
0,1
043)
[a
bove
, Stir
rer_
Tabl
e_1,
to
TheR
ight
, Stir
rer_
1]
0,71
82
1 0,
0608
1
PH
Met
ro_2
(9
5,28
96, 9
7,58
00, 2
3,32
11)
(90,
0, 2
69)
(0,1
500,
0,0
099,
0,1
043)
[a
bove
, Stir
rer_
Tabl
e_2,
to
TheR
ight
, Stir
rer_
2]
0,71
82
1 0,
0608
1
PH
Met
ro_3
(9
5,28
96, 9
5,77
99, 2
3,32
11)
(90,
0, 2
69)
(0,1
500,
0,0
099,
0,1
043)
[a
bove
, Stir
rer_
Tabl
e_3,
to
TheR
ight
, Stir
rer_
3]
0,71
82
1 0,
0608
1
PH
Met
ro_4
(9
5,28
96, 9
3,98
00, 2
3,32
11)
(90,
0, 2
69)
(0,1
500,
0,0
099,
0,1
043)
[a
bove
, Stir
rer_
Tabl
e_4,
to
TheR
ight
, Stir
rer_
4]
0,71
82
1 0,
0608
1
Gla
sses
_Sho
wca
se_1
(1
02,8
388,
85,
1547
, 23,
5778
) (2
70, 0
, 0)
(1,5
, 2,5
, 0,7
5)
[nea
rOf,
Left_
Wal
l] 0,
55
0 1
0
Gla
sses
_Sho
wca
se_2
(1
00,5
958,
85,
1547
, 23,
5778
) (2
70, 0
, 0)
(1,5
, 2,5
, 0,7
5)
[nea
rOf,
Left_
Wal
l] 0,
55
0 1
0
Gla
sses
_Sho
wca
se_3
(9
8,37
39, 8
5,15
47, 2
3,57
78)
(270
, 0, 0
) (1
,5, 2
,5, 0
,75)
[n
earO
f, Le
ft_W
all]
0,55
0
1 0
Sin
k_1
(102
,363
4, 9
3,56
33, 2
2,72
56)
(138
, 90,
138
) (0
,800
0, 0
,839
9, 0
,019
9)
[toT
heE
nd, W
ork_
Tabl
e]
0,41
75
0 0,
2251
0
Sin
k_2
(102
,363
4, 9
8,36
67, 2
2,72
56)
(138
, 90,
138
) (0
,800
0, 0
,839
9, 0
,019
9)
[toT
heE
nd, W
ork_
Tabl
e]
0,41
75
0 0,
2251
0
AN
EXO
S
103
Wor
k_Ta
ble_
1 (1
06,8
725,
93,
5638
, 23,
2503
) (0
, 0, 9
0)
(2, 6
,889
3, 0
,8)
[]
0,3
0 1
0
Wor
k_Ta
ble_
2 (1
06,8
725,
98,
3663
, 23,
2503
) (0
, 0, 9
0)
(2, 6
,889
3, 0
,8)
[]
0,3
0 1
0
Che
mic
als_
1 (1
05,4
418,
106
,925
3, 2
3,49
36)
(0, 0
, 90)
(0
,169
8, 0
,171
0, 0
,123
0)
[isI
nsid
eOf:
Che
mic
als_
Sho
wca
se_1
] 0,
0115
0
0,03
86
0
Che
mic
als_
2 (1
03,7
455,
106
,925
3, 2
3,49
36)
(0, 0
, 90)
(0
,169
8, 0
,171
0, 0
,123
0)
[isI
nsid
eOf:
Che
mic
als_
Sho
wca
se_1
] 0,
0115
0
0,03
86
0
Aga
r_1
(105
,441
8, 1
06,9
253,
23,
4936
) (0
, 0, 9
0)
(0,1
698,
0,1
710,
0,1
230)
[i
sIns
ideO
f: C
hem
ical
s_S
how
case
_1]
0,01
15
0 0,
0386
0
Aga
r_2
(103
,745
5, 1
06,9
253,
23,
4936
) (0
, 0, 9
0)
(0,1
698,
0,1
710,
0,1
230)
[i
sIns
ideO
f: C
hem
ical
s_S
how
case
_2]
0,01
15
0 0,
0386
0
Bis
acril
amid
a_1
(105
,441
8, 1
06,9
253,
23,
4936
) (0
, 0, 9
0)
(0,1
698,
0,1
710,
0,1
230)
[i
sIns
ideO
f: C
hem
ical
s_S
how
case
_1]
0,01
15
0 0,
0386
0
Bis
acril
amid
a_2
(103
,745
5, 1
06,9
253,
23,
4936
) (0
, 0, 9
0)
(0,1
698,
0,1
710,
0,1
230)
[i
sIns
ideO
f: C
hem
ical
s_S
how
case
_2]
0,01
15
0 0,
0386
0
Cas
eina
_1
(105
,441
8, 1
06,9
253,
23,
4936
) (0
, 0, 9
0)
(0,1
698,
0,1
710,
0,1
230)
[i
sIns
ideO
f: C
hem
ical
s_S
how
case
_1]
0,01
15
0 0,
0386
0
Cas
eina
_2
(103
,745
5, 1
06,9
253,
23,
4936
) (0
, 0, 9
0)
(0,1
698,
0,1
710,
0,1
230)
[i
sIns
ideO
f: C
hem
ical
s_S
how
case
_2]
0,01
15
0 0,
0386
0
Mur
ashi
ge_y
_sko
og_1
(1
05,4
418,
106
,925
3, 2
3,49
36)
(0, 0
, 90)
(0
,169
8, 0
,171
0, 0
,123
0)
[isI
nsid
eOf:
Che
mic
als_
Sho
wca
se_1
] 0,
0115
0
0,03
86
0
Mur
ashi
ge_y
_sko
og_2
(1
03,7
455,
106
,925
3, 2
3,49
36)
(0, 0
, 90)
(0
,169
8, 0
,171
0, 0
,123
0)
[isI
nsid
eOf:
Che
mic
als_
Sho
wca
se_2
] 0,
0115
0
0,03
86
0
Suc
rose
_1
(105
,441
8, 1
06,9
253,
23,
4936
) (0
, 0, 9
0)
(0,1
698,
0,1
710,
0,1
230)
[i
sIns
ideO
f: C
hem
ical
s_S
how
case
_1]
0,01
15
0 0,
0386
0
Suc
rose
_2
(103
,745
5, 1
06,9
253,
23,
4936
) (0
, 0, 9
0)
(0,1
698,
0,1
710,
0,1
230)
[i
sIns
ideO
f: C
hem
ical
s_S
how
case
_2]
0,01
15
0 0,
0386
0
Bat
a (1
13,5
608,
85,
1321
, 24,
3833
) (0
, 0, 0
) (0
,75,
0,0
399,
1,5
) []
0,
1657
0
0,21
9 0
Tabl
a. X
. In
stan
cias
agr
egad
as a
la o
ntol
ogía
mun
do
AN
EXO
S
104
7.2
. An
exo
2:
Res
ult
ado
de
la im
ple
men
taci
ón
de
solu
cio
nes
par
a p
rob
lem
as
enco
ntr
ado
s en
la
eval
uac
ión
PREG
UN
TA
AC
CIÓ
N S
IGU
IEN
TE
RES
PUES
TA A
NTE
RIO
R IN
CO
RR
ECTA
N
UEV
A R
ESPU
ESTA
no s
é qu
é co
ger d
e la
vitr
ina
agre
gara
gar
Aho
ra n
o ne
cesi
tas
la v
itrin
a R
ecue
rda
agre
gar e
l aga
r.
¿Cóm
o se
abr
en lo
s lib
ros?
ag
rega
rmys
/agr
egar
saca
ros
a P
regú
ntam
e de
otra
man
era
por f
avor
. C
arol
ina
acce
de a
los
fund
amen
tos
en:
http
://tin
yurl.
com
/lro9
6zp
???
solta
rvas
oagi
tado
r N
eces
ito q
ue m
e lo
pre
gunt
es d
e ot
ra m
aner
a...
(men
saje
vac
ío)
com
o lo
abr
o en
cend
erag
itado
r A
ngel
toca
el a
gita
dor p
ara
ence
nder
lo.
Car
olin
a ac
cede
a lo
s pr
otoc
olos
en:
ht
tp://
tinyu
rl.co
m/m
hyja
l8
la fl
echa
roja
sie
mpr
e in
dica
el l
ugar
do
nde
enco
ntra
mos
las
cosa
s?
entre
garv
aso
¡A ti
Jav
ier!
(men
saje
vac
ío) -
Des
pués
de
2 m
ensa
jes
inco
rrec
tos
no p
uedo
lava
r el v
aso
solta
rvas
ofre
gade
ro
Aho
ra n
o ne
cesi
tas
el v
aso
Car
olin
a, a
cérc
ate
a cu
alqu
ier f
rega
dero
y p
ara
solta
r el
vaso
, ent
ra e
n el
inve
ntar
io y
pul
sa "S
olta
r".
ya lo
he
hech
o cr
eo
solta
rvas
ofre
gade
ro
Pre
gúnt
ame
de o
tra m
aner
a po
r fav
or.
! Enh
orab
uena
! Con
tinúa
con
la p
ráct
ica
Car
olin
a
he d
ejad
o el
vas
o en
el g
rifo
de
agua
des
tilad
a y
ha d
esap
arec
ido
solta
rvas
ofre
gade
ro
Aho
ra n
o ne
cesi
tas
el g
rifo
Car
olin
a, a
cérc
ate
a cu
alqu
ier f
rega
dero
y p
ara
solta
r el
vaso
, ent
ra e
n el
inve
ntar
io y
pul
sa "S
olta
r".
a m
i igu
al
solta
rvas
ofre
gade
ro
¿Pue
des
expr
esar
se c
on o
tras
pala
bras
? N
o te
he
ente
ndid
o.
(men
saje
vac
ío) -
Des
pués
de
2 m
ensa
jes
inco
rrec
tos
a m
i tam
bién
por
fa
solta
rvas
ofre
gade
ro
Nec
esito
que
me
lo p
regu
ntes
de
otra
man
era.
.. (m
ensa
je v
acío
) - D
espu
és d
e 2
men
saje
s in
corr
ecto
s
AN
EXO
S
105
okey
ya
lo te
ngo
solta
rvas
oagi
tado
r N
eces
ito q
ue m
e lo
pre
gunt
es d
e ot
ra m
aner
a...
!Enh
orab
uena
! Con
tinúa
con
la p
ráct
ica
Car
olin
a
okey
than
ks
inse
tarb
otel
laen
auto
clav
e N
eces
ito q
ue m
e lo
pre
gunt
es d
e ot
ra m
aner
a...
¡Un
plac
er C
arol
ina!
ya c
ogi e
l vas
o, p
ero
no e
ncue
ntro
e
culti
vo
solta
rvas
ofre
gade
ro
Aho
ra n
o ne
cesi
tas
el v
aso
Car
olin
a, a
cérc
ate
a cu
alqu
ier f
rega
dero
y p
ara
solta
r el
vaso
, ent
ra e
n el
inve
ntar
io y
pul
sa "S
olta
r".
me
poni
a el
el t
utor
ial q
ue te
nia
que
coge
r un
vaso
so
ltarv
asof
rega
dero
A
hora
no
nece
sita
s el
vas
o C
arol
ina,
acé
rcat
e a
cual
quie
r fre
gade
ro y
par
a so
ltar e
l va
so, e
ntra
en
el in
vent
ario
y p
ulsa
"Sol
tar"
.
no m
e sa
le e
l tut
oria
l de
colo
r azu
l so
ltarv
asof
rega
dero
¿P
uede
s ex
pres
arse
con
otra
s pa
labr
as?
No
te h
e en
tend
ido.
- R
econ
oce
entid
ad, p
ero
no e
l IN
TEN
T
m
solta
rvas
ofre
gade
ro
¡De
nada
Osc
ar!
(men
saje
vac
ío) –
Igno
rado
ahor
a no
me
deja
cog
er u
n va
so
solta
rvas
ofre
gade
ro
Aho
ra n
o ne
cesi
tas
el v
aso
Car
olin
a, a
cérc
ate
a cu
alqu
ier f
rega
dero
y p
ara
solta
r el
vaso
, ent
ra e
n el
inve
ntar
io y
pul
sa "S
olta
r".
dim
e so
ltarv
asof
rega
dero
¿
Pue
des
expr
esar
se c
on o
tras
pala
bras
? N
o te
he
ente
ndid
o.
(men
saje
vac
ío) –
Igno
rado
que
va
solta
rvas
ofre
gade
ro
Hol
a O
scar
. ¿C
ómo
pued
o ay
udar
te?
Con
text
bad
mes
sage
no
sirv
e, p
orqu
e lo
reco
noce
co
mo
Gen
eral
_Gre
etin
gs
Don
de te
ngo
que
deja
r el v
aso?
so
ltarv
asoa
gita
dor
Aho
ra n
o ne
cesi
tas
el v
aso
Car
olin
a tie
nes
que
lleva
r el v
aso
al a
gita
dor (
enci
ma
de
cual
quie
r mes
a de
l fon
do c
on u
n di
sco
gira
torio
enc
ima)
y
solta
rlo a
hí.
esto
y en
la s
ala
auto
clav
e, n
o se
do
nde
solta
r la
bote
lla
inse
rtarb
otel
laen
auto
clav
e J
orge
aho
ra n
o lo
nec
esita
s...
Deb
es a
utoc
lava
r la
bote
lla in
trodu
cién
dola
en
un
auto
clav
e, p
ara
ello
sue
lta la
bot
ella
cer
ca d
el a
utoc
lave
.
com
o pu
edo
leer
lo n
o m
e de
eja
entre
garv
aso
¡Tú
pued
es A
lber
to! P
regú
ntam
e lo
que
qui
eras
. A
lber
to a
cced
e a
los
prot
ocol
os e
n:
http
://tin
yurl.
com
/mhy
jal8
, y a
cced
e a
los
fund
amen
tos
en:
http
://tin
yurl.
com
/lro9
6zp
com
o po
mgo
el a
gua
solta
rvas
ofre
gade
ro
Nec
esito
que
me
lo p
regu
ntes
de
otra
man
era.
.. A
ntes
de
llena
r el v
aso
con
agua
, prim
ero
debe
s so
ltar e
l va
so e
n el
freg
ader
o.
AN
EXO
S
106
com
o pu
edo
vert
er e
l h2o
en
la
cube
ta
solta
rvas
ofre
gade
ro
¡A ti
Alfo
nso!
A
ntes
de
llena
r el v
aso
con
agua
, prim
ero
debe
s so
ltar e
l va
so e
n el
freg
ader
o.
com
o ag
rego
los
quim
icos
ne
cesa
rios?
ag
rega
rmys
/agr
egar
saca
ros
a A
hora
no
nece
sita
s qu
imic
o
tiene
s q
solta
r el v
aso
prim
iero
ag
rega
rmys
/agr
egar
saca
ros
a A
hora
no
nece
sita
s qu
imic
o
jaja
ag
rega
rmys
/agr
egar
saca
ros
a N
eces
ito q
ue m
e lo
pre
gunt
es d
e ot
ra m
aner
a...
(men
saje
vac
ío) –
Igno
rado
eso
si te
lo re
spon
de
inse
rtarb
otel
laen
auto
clav
e N
eces
ito q
ue m
e lo
pre
gunt
es d
e ot
ra m
aner
a...
(men
saje
vac
ío) -
Des
pués
de
2 m
ensa
jes
inco
rrec
tos
y a
mi e
spal
da lo
s m
ater
iale
s pa
rece
in
serta
rbot
ella
enau
tocl
ave
Nec
esito
que
me
lo p
regu
ntes
de
otra
man
era.
.. (m
ensa
je v
acío
) - D
espu
és d
e 2
men
saje
s in
corr
ecto
s
pero
y c
onte
sta
a ca
da m
ensa
je c
on
esa
mie
rda
o q?
in
serta
rbot
ella
enau
tocl
ave
Nec
esito
que
me
lo p
regu
ntes
de
otra
man
era.
.. (m
ensa
je v
acio
)
com
o la
vo la
bot
ella
? in
serta
rbot
ella
enau
tocl
ave
Aho
ra n
o ne
cesi
tas
la b
otel
la
Deb
es a
utoc
lava
r la
bote
lla in
trodu
cién
dola
en
un
auto
clav
e, p
ara
ello
sue
lta la
bot
ella
cer
ca d
el a
utoc
lave
.
no p
uedo
sol
tar l
a bo
tella
in
serta
rbot
ella
enau
tocl
ave
Aho
ra n
o ne
cesi
tas
la b
otel
la
Deb
es a
utoc
lava
r la
bote
lla in
trodu
cién
dola
en
un
auto
clav
e, p
ara
ello
sue
lta la
bot
ella
cer
ca d
el a
utoc
lave
.
Tabl
a. X
I.
Res
ulta
do d
e la
impl
emen
taci
ón d
e so
luci
ones
par
a pr
oble
mas
enc
ontra
dos
en la
s pr
áctic
as
8 REFERENCIAS
108
[1] J. Paladines and J. Ramirez, "Sistema inteligente de tutoría para entrenamiento procedimental apoyado en un diálogo adaptado al contexto," Hamut´ay, vol. 2, no. 4, pp. 17-29, 2017.
[2] M. Rico, J. Ramirez, D. Riofrio and A. De Antonio, "An Architecture for Virtual Labs in Engineering," Proceedings of the 2012 IEEE Global Engineering Education Conference (EDUCON), pp. 1-5, 2012.
[3] D. Ríofrio, "Propuesta de un Modelo de Comportamiento Colectivo de Estudiantes para un Sistema Inteligente de Tutoría dirigido al Entrenamiento Procedimental," UPM: Tesis Doctoral, Madrid, 2017.
[4] R. Fernandéz Sánchez, "Implementación de un Sistema de Diálogo en Lenguaje Natural basado en Watson para un Sistema Inteligente de Tutoría," UPM: Tesis Fin de Grado, Madrid, 2019.
[5] R. García Mejía, "Módulo de Soporte para el Gestor de Diálogo en Lenguaje Natural de un Sistema Inteligente de Tutoría," UPM: Tesis Fin de Grado, Madrid, 2019.
[6] G. Lara López, "Modelo Computacional para la Generación de Indicaciones en la Localización de Objetos en Entornos Virtuales: Aspectos espaciales y perceptivos," UPM: Tesis Doctoral, Madrid, 2016.
[7] OpenSimulator, "http://opensimulator.org," 25 04 2019. [Online]. Available: http://opensimulator.org/wiki/Main_Page. [Accessed 01 05 2019].
[8] T. Murray, "Authoring Intelligen Tutorying Systems: An Analysis of the state of the art," Internatonal Journal Of Artificial Intelligence in Ecducation, vol. 10, pp. 98-129, 1999.
[9] IBM Cloud, "Watson Assistant," [Online]. Available: https://cloud.ibm.com/docs/services/assistant?topic=assistant-dialog-overview. [Accessed 06 06 2019].
[10] X. Wang, D. Zhang, T. Gu and H. K. Pung, "Ontology Based Context Modeling and Reasoning using OWL," Percom workshops, vol. 18, p. 22, 2004.
[11] J. Clemente, J. Ramírez and A. De Antonio, "A proposal for student modeling based on ontologies and diagnosis rules," Expert Systems with Applications, vol. 38, no. 7, pp. 8066-8078, 2011.