DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA RECOMENDADOR
PARA LA BÚSQUEDA DE COLEGIOS.
Ing. Héctor Rodrigo Arias Cueca
Ing. Isidro Francisco Cortés Sánchez
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
ESPECIALIZACIÓN EN INGENIERÍA DE SOFTWARE
BOGOTÁ D.C. 2018
DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA RECOMENDADOR
PARA LA BÚSQUEDA DE COLEGIOS.
Ing. Héctor Rodrigo Arias Cueca Ing. Isidro Francisco Cortés Sánchez
Proyecto de grado para optar por el título de
Especialista en Ingeniería de Software
Director
Julio Barón Velandia
Revisor
Sandra Milena Cortes
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
ESPECIALIZACIÓN EN INGENIERÍA DE SOFTWARE BOGOTÁ D.C.
2018
CONTENIDO
INTRODUCCIÓN ................................................................................................................. 7
PARTE I. CONTEXTUALIZACIÓN DE LA INVESTIGACIÓN ..................................... 8 CAPÍTULO 1. DESCRIPCIÓN DE LA INVESTIGACIÓN ............................................. 9
1.1. Descripción del problema .................................................................................... 9
1.1.1. Formulación del problema..............................................................................10
1.1.2. Sistematización del problema........................................................................10
1.2. Objetivos ...............................................................................................................10
1.2.1. Objetivo General ..............................................................................................10
1.2.2. Objetivos específicos ......................................................................................10
1.3. Justificación ..........................................................................................................11
1.4. Hipótesis ...............................................................................................................12
1.5. Estado del Arte ....................................................................................................12
1.5.1. Marco Teórico ..................................................................................................12
1.5.2. Marco Conceptual............................................................................................13
1.5.3. Características de los Chatbots ....................................................................15
1.5.4. Análisis de Chatbots existentes ....................................................................16
1.6. Metodología de la investigación........................................................................21
1.6.1. Tipo de estudio.................................................................................................21
1.6.2. Método de investigación .................................................................................21
1.6.3. Fuentes y técnicas para la recolección de información.............................21
1.6.4. Tratamiento de la información .......................................................................23
1.7. Alcance .................................................................................................................23
1.7.1. Limitaciones ......................................................................................................23
1.7.2. Resultados esperados ....................................................................................24
1.8. Organización del trabajo de grado ...................................................................24
1.9. Estudio de sistemas previos ..............................................................................25
PARTE II. DESARROLLO DE LA INVESTIGACIÓN .................................................27
CAPÍTULO 2. ANALISIS DE LA INFORMACIÓN .......................................................28
2.1. Entrevistas a personas con hijos .........................................................................28
2.2. Encuesta a personas con hijos ............................................................................28
CAPÍTULO 3. ARQUITECTURA EMPRESARIAL ......................................................29
3.1. Análisis y diseño de la solución de la Arquitectura ...........................................29
3.2. Capa de negocio.....................................................................................................29
3.2.1. Punto de Vista de Organización ................................................................29
3.2.2. Punto de Vista de Cooperación de actor..................................................30
3.2.3. Punto de Vista de Función de Negocio ....................................................31
3.2.4. Punto de Vista de Proceso de Negocio....................................................31
3.2.5. Punto de Vista de Cooperación de Proceso de Negocio ......................32
3.2.6. Punto de Vista de Producto........................................................................33
3.3. Capa de Aplicación ................................................................................................33
3.3.1. Punto de Vista de Comportamiento de Aplicación .................................33
3.3.2. Punto de Vista de cooperación de Aplicación .........................................34
3.3.3. Punto de Vista de Estructura de Aplicación.............................................35
3.3.4. Punto de Vista de Uso de Aplicación........................................................36
3.4. Capa de Tecnología............................................................................................37
3.4.1. Punto de Vista de Infraestructura ..............................................................37
3.4.2. Punto de Vista de uso de infraestructura .................................................38
3.4.3. Punto de Vista de Implementación y Despliegue ...................................39
3.4.4. Punto de Vista de estructura de Información ..........................................40
3.4.5. Punto de Vista Realización del Servicio ...................................................41
3.4.6. Punto de Vista de Capas ............................................................................41
3.5. Capa de Motivación ............................................................................................42
3.5.1. Punto de Vista de Stakeholder...................................................................42
3.5.2. Punto de Vista de principios .......................................................................43
3.5.3. Punto de Vista de Realización de Objetivos............................................44
3.5.4. Punto de Vista de Contribución de Objetivos ..........................................45
3.5.5. Punto de Vista de Motivación.....................................................................46
3.6. Capa de Proyecto................................................................................................47
3.6.1. Punto de Vista de Proyecto ........................................................................47
3.6.2. Punto de Vista de Migración ......................................................................48
3.6.2. Punto de Vista de migración e implementación .........................................49
CAPÍTULO 4. DETALLE DE LA SOLUCION...............................................................50
4.1. Metodología de Desarrollo RUP ..........................................................................50
4.2. Requerimientos funcionales y no funcionales ...................................................51
4.4. Análisis y Diseño de la solución ...........................................................................52
4.4.1. Diagrama de casos de uso ............................................................................53
4.4.2. Diagrama de actividades ................................................................................56
4.4.3. Diagrama de componentes ............................................................................57
4.4.4. Diagrama de despliegue.................................................................................58
4.3. Tecnología Utilizada...............................................................................................58
4.3.1. Chatbot .............................................................................................................58
4.3.2. Funcionamiento de AIML ..............................................................................59
4.3.3. Dialogflow ........................................................................................................63
4.3.4. Motor de búsqueda ........................................................................................65
4.3.5. Resumen Herramientas.................................................................................66
PARTE III CIERRE DE LA INVESTIGACIÓN ..............................................................67
CAPÍTULO 5. RESULTADOS Y DISCUSIÓN..............................................................68 CAPÍTULO 6. CONCLUSIONES ....................................................................................69
5.1. Verificación, contraste y evaluación de objetivos..............................................69
5.2. Síntesis del modelo propuesto .............................................................................70
5.3. Aportes Originales ..................................................................................................71
5.4. Trabajos o Publicaciones Derivadas ...................................................................71
CAPÍTULO 7. PROSPECTIVA DEL TRABAJO ..........................................................72
6.1. Líneas de investigación futuras............................................................................72
6.2. Trabajos de investigación futuros ........................................................................72
BIBLIOGRAFÍA .................................................................................................................74 ANEXOS .............................................................................................................................76
ANEXO 1 AIML PATRONES MANEJO BAJO OPERADORES .............................76
ANEXO 2 DISEÑO DE LA ENCUESTA APLICADA ................................................82
ANEXO 3 ENCUESTA APLICADA .............................................................................85
ANEXO 4 RESULTADOS DE LA ENCUESTA .........................................................86
TABLA DE ILUSTRACIONES
Ilustración 1: Los mejores colegios en Colombia .........................................................25
Ilustración 2: App Colombian Schools ............................................................................26 Ilustración 3: Metamodelo Caso Organización .............................................................30 Ilustración 4 Metamodelo Caso Cooperación de Actor ...............................................30
Ilustración 5: Metamodelo Caso Función Negocio .......................................................31 Ilustración 6: Metamodelo Caso Proceso de Negocio .................................................32
Ilustración 7: Metamodelo Caso Cooperación de Proceso .........................................32 Ilustración 8: Metamodelo Caso Vista de Producto .....................................................33 Ilustración 9: Metamodelo Comportamiento de Aplicación .........................................34
Ilustración 10: Metamodelo Caso Cooperación de Aplicación ...................................35 Ilustración 11: Metamodelo Caso Estructura de Aplicación........................................36
Ilustración 12: Metamodelo Caso de Uso de Aplicación .............................................37 Ilustración 13: Metamodelo Caso de Infraestructura ...................................................38 Ilustración 14: Metamodelo Caso Uso de Infraestructura ...........................................39
Ilustración 15: Metamodelo Caso Implementación y Despliegue ..............................40 Ilustración 16: Metamodelo Caso Vista Estructura de Información ...........................40
Ilustración 17: Metamodelo Caso Vista Realización del Servicio ..............................41 Ilustración 18: Metamodelo Vista de Capas ..................................................................42 Ilustración 19: Punto Vista StakeHolder.........................................................................43
Ilustración 20: Punto Vista Principios .............................................................................44 Ilustración 21: Punto Vista Realización Objetivos ........................................................45
Ilustración 22: Punto Vista Contribución Objetivos.......................................................46 Ilustración 23: Punto Vista Motivación............................................................................47 Ilustración 24: Punto de Vista de Proyecto ....................................................................48
Ilustración 25: Punto Vista Migración .............................................................................48 Ilustración 26: Punto de Vista de migración e implementación ..................................49
Ilustración 27: Fases RUP Clásica..................................................................................50 Ilustración 28. Diagrama de caso de uso Chatbot........................................................53 Ilustración 29: Diagrama de actividades ........................................................................57
Ilustración 30: Diagrama de componentes ....................................................................57 Ilustración 31: Diagrama de despliegue .........................................................................58
Ilustración 32: Lista de AIML etiquetas de plantilla. .....................................................60 Ilustración 33: Lista de AIML patrón de los operadores ..............................................60 Ilustración 34: Recursividad AIML ...................................................................................61
Ilustración 35: Visión general del funcionamiento de Dialogflow ...............................65 Ilustración 36: Google Cloud Platform. Creación de agente .......................................65
Ilustración 37: Encuesta aplicada....................................................................................85 Ilustración 38; ¿Es importante un colegio bilingüe?.....................................................86 Ilustración 39: ¿Tipo de Jornada? ...................................................................................86
Ilustración 40: ¿Tipo de Calendario? ..............................................................................87 Ilustración 41: ¿Genero? ..................................................................................................87
Ilustración 42: ¿Medio de búsqueda para seleccionar colegio? ................................88 Ilustración 43: ¿Es importante la formación deportiva?...............................................88 Ilustración 44: ¿Prefiere un colegio cerca a la casa? ..................................................89
INTRODUCCIÓN
Los sistemas inteligentes actualmente se aplican en el campo de la medicina, ingeniería, economía, el entretenimiento. En el presente documento se presenta el diseño de un agente inteligente en orientación para búsqueda de instituciones
educativas, para apoyar a los padres a seleccionar el colegio de acuerdo con los criterios, intereses, aptitudes personales que se identifiquen, de acuerdo con sus
expectativas. Un agente inteligente es un software que automatiza el proceso de razonamiento humano en este documento denominaremos a este sistema como “chatbot” o agente inteligente indistintamente. Un “chatbot” es un programa que simula un
dialogo con una persona.[1] El análisis de orientación a la búsqueda de colegios se describe como un estudio
que permite a los padres determinar que opciones son las más indicadas para sus hijos de acuerdo con si sufren una enfermedad física, trastorno psicológico y/o
comportamiento. Con la finalidad de que elijan el colegio adecuado para las situaciones anteriormente mencionadas, teniendo en cuenta el gran abanico de posibilidades existentes.
La elección de colegio permite a los padres, tener la confianza y seguridad de cómo
van a estar sus hijos de acuerdo con los criterios evaluados, en donde se les proporcionara una forma de vida, por lo tanto, la elección debe hacerse consciente de que con ello los hijos van a formar una identidad, se formaran como persona y
asumirán un rol.
El sistema que se presenta está capacitado para poder pensar como un ser humano, un programa que puede simular una conversación escrita, con la intención de hacer creer a un humano que está hablando con otra persona. La conversación
tiene como finalidad determinar la orientación de búsqueda de colegio de los usuarios. Para su diseño utilizamos el lenguaje de programación AIML (Lenguaje
de marcas para inteligencia artificial), que es una extensión de XML (Extensible Markup Languaje), Lenguaje de Marcas Extensible, este lenguaje es utilizado para crear “chatbots” o sistemas conversacionales.
La aplicación de los métodos y modelos de la inteligencia artificial nos permite
desarrollar sistemas de utilidad a todos los sectores sociales como es el caso de nuestro “chatbot” que permite apoyar a los padres a seleccionar el colegio idóneo para su hijo, de acuerdo con ubicación, métodos de enseñanza, nivel de educación,
etc., utilizando un agente inteligente conversacional desde la comodidad y privacidad de su casa o lugar de trabajo. Estos sistemas inciden en una disminución
de la deserción escolar en los distintos niveles académicos y coadyuvan a formar estudiantes competentes en los diversos sectores y sociales de nuestro entorno.
PARTE I. CONTEXTUALIZACIÓN DE LA INVESTIGACIÓN
CAPÍTULO 1. DESCRIPCIÓN DE LA INVESTIGACIÓN
1.1. Descripción del problema
Surge la necesidad de poseer una herramienta tecnológica que permita el mayor aprovechamiento de recursos, conocimientos y aprendizaje de forma centralizada,
para que esta herramienta se desempeñe de una forma pedagógica adecuada y adaptable a los padres de familia.
Con esto se presenta el hecho de que para crear esta herramienta debe iniciarse con el estudio y análisis de modelos y técnicas basadas en inteligencia artificial con
el fin de generar las bases fundamentales del diseño de un Sistema Inteligente para proveer la información de los colegios que permita mejorar el proceso de selección para los hijos que se encuentren próximos a incursionar en el área de la educación.
Por lo tanto, se busca como eje principal de esta primera fase de la investigación construir los conocimientos necesarios para aplicar diferentes modelos y técnicas
de la inteligencia artificial a corto plazo, encaminadas a sustentar el diseño del software a largo plazo y que permitan generar una alternativa viable de solución tecnológica para el desarrollo.
La investigación centra su estudio en el análisis y aplicación de técnicas de
Inteligencia Artificial (IA), sin embargo, mediante este proyecto de investigación se busca establecer las bases fundamentales sobre la aplicación de técnicas de inteligencia artificial que puedan ser adaptadas al diseño y construcción de un
sistema inteligente de búsqueda para padres y que este software exhiba un comportamiento similar al de un humano que imparta conocimiento personalizado,
es decir, que brinde los resultados y la colaboración que el usuario desea. La inteligencia artificial en todas sus áreas presenta una gran cantidad de modelos,
técnicas y herramientas que permiten obtener desde la concepción de parámetros principales de análisis hasta la resolución de casos complejos por medio de agentes
inteligentes y además utiliza métodos de resolución de problemas basados en estrategias factibles y búsquedas de soluciones para situaciones generales.
Por lo cual, esta investigación analiza esos fundamentos y enfoques de inteligencia artificial buscando así elaborar un modelo de análisis que represente la
funcionalidad y estructura de componentes de un software inteligente de búsqueda, incorporando en la investigación la selección de herramientas e instrumentos de medición pertenecientes al campo de la Inteligencia artificial que brinden una guía
inicial para el desarrollo futuro del sistema inteligente con el propósito de que éste sea capaz de identificar la forma en que el padre busca el colegio, para así brindarle
ayuda sobre los diferentes criterios, con explicaciones en el momento preciso.
1.1.1. Formulación del problema
¿De qué manera se puede brindar información centralizada de colegios, que se utilice de insumo para los padres de familia, logrando la adecuada selección de colegio para su hijo con base en la búsqueda de criterios personales, cognitivos y
sociales?
1.1.2. Sistematización del problema
1. ¿Cómo puede un modelo de afinidad ayudar a los padres de familia tomar
una mejor decisión al momento de seleccionar el colegio para su hijo?
2. ¿Cómo la implementación de una herramienta de asistente conversacional ayuda en la identificación de colegios, logrando una toma de decisiones?
3. ¿Cuáles son los criterios personales de búsqueda que se deben tener en cuenta al momento de contribuir la base de conocimiento a partir de un modelo de identificación de colegios?
1.2. Objetivos
1.2.1. Objetivo General
Implementar un prototipo chatbot basado en modelos y técnicas de inteligencia artificial que oriente y apoye a la toma decisiones en la selección de un colegio a los
padres de familia, con una base de conocimientos centralizada de información (jornada, extracurriculares, calendario, discapacidad que cubre, enfoque de
idiomas) de los colegios privados de Bogotá D.C.
1.2.2. Objetivos específicos
Analizar conceptos de procesamiento de lenguaje para el desarrollo un agente conversacional (chatbot), comparando casos de éxito donde se hayan utilizado, para seleccionar el más adecuado siendo este la base de
comunicación entre el usuario y el chatbot.
Plantear un modelo de afinidad mediante la creación de una base de conocimiento que servirá como fuente de información para el sistema de
búsqueda colegios.
Implementar el diseño del sistema chatbot, utilizando como fuente de información una base de conocimiento, con el fin que los padres de familia
cuenten con información centralizada y apoye el proceso de selección de colegio.
1.3. Justificación
La orientación hacia la búsqueda colegio proporciona información que permite a los padres de familia seleccionar el colegio de acuerdo con sus criterios personales, los
cuales serán base para el desarrollo de vida del estudiante, al automatizar este proceso, el análisis de orientación se puede realizar desde la privacidad y
comodidad de su casa. De acuerdo con lo anterior, el presente proyecto tiene como fin ofrecer una nueva
plataforma para los padres de familia, en la que podrán recibir orientación sobre los diferentes colegios privados que se encuentran en Bogotá D.C. y así tener un mejor
criterio de selección al momento de seleccionar el colegio para su hijo. Esta investigación se basa en investigaciones de la última década, ya que han
surgido nuevos tipos de sistemas, basados en robots virtuales que han demostrado ser de gran apoyo para las diversas áreas de conocimiento. Por esta razón el utilizar
este tipo de métodos que permite modernizar el proceso de orientación a una mejor educación o que se adapte los criterios necesarios, ya que se realiza por una conversación tipo chat interactivo que ofrecerá a los usuarios la posibilidad de hacer
preguntas sobre colegios con enfoques de idiomas, calendario, actividades extracurriculares, jornada, inclinaciones religiosas, valor pensión, entre otras. Logrando de esta manera obtener una afinidad e información relevante sobre el
colegio de interés, esto con el fin de permitirle al padre de familia vincular a su hijo a la educación, bajo los criterios deseados.
En la actualidad no existe un medio en donde los padres de familia puedan realizar sus consultas por un medio natural que les evite el desplazamiento (como si fuesen
a cada colegio para averiguar), no se utiliza tecnología para estos análisis, lo cual es un obstáculo para que los padres dispongan de un apoyo para tomar la mejor
decisión del colegio para su hijo. Hay ocasiones en el que algunos padres realizan este análisis, pero los resultados
obtenidos no son los esperados de acuerdo con sus expectativas, criterios y otros aspectos y se guardan la intención de volver a hacer este estudio. Por el hecho de
ser un trámite largo, el involucrar desplazamiento y el invertir más tiempo, por lo cual deciden continuar con sus dudas y muchas veces escoger un colegio que no es el adecuado para sus hijos. Con este sistema podrán realizar este análisis el
número de veces que consideren necesarias. Ya que el acceso es desde internet y
puede ser desde la comodidad de su casa.
En esta área, la falta de una adecuada orientación, el manejo de un gran volumen de datos y por otro lado, la facilidad de utilizar interfaces de sistemas y el hecho de que cada día más personas están acostumbradas al uso de sistemas informáticos
hace que este modelo de sistema sea una herramienta para ayudar a que los padres y estudiantes se interesen por ella y la utilicen.
1.4. Hipótesis
La investigación de este proyecto centro su interés en la contribución del conocimiento sobre la aplicación de técnicas y modelos de inteligencia artificial en
el diseño de un sistema de orientación inteligente que contribuya a la búsqueda de colegio de acuerdo con sus expectativas, teniendo en cuenta variables como la
ubicación, precio, infraestructura, programa académico y actividades extracurriculares.
El estudio de los modelos y técnicas aplicables a sistemas inteligentes de este tipo supondrá el avance del “estado del arte” sobre nuevos conocimientos, tanto en lo
relativo a la representación de este sistema que pueda dar lugar a nuevos desarrollos teóricos y la construcción de aplicaciones de mayor calidad. Además, se analizarán las técnicas basadas en inteligencia artificial, así como en la integración
de estas en la arquitectura de sistemas inteligentes y que permitan incluir aspectos de aprendizaje y enseñanza vinculándolos con otros parámetros propios del
estudiante que serán objeto de estudio.
1.5. Estado del Arte
1.5.1. Marco Teórico
El desarrollo de esta investigación tiene como soporte teórico, los planteamientos
identificados en el área de la educación para los niños, en la búsqueda de colegio. La problemática radica en la búsqueda descentralizada de este tipo de información y soportada por criterios particulares de los usuarios (Padres, niños, familiares etc.).
Con el fin de establecer los objetivos y estrategias para solucionarlo, se identifica
criterios específicos sobre los tipos de información relevante para esta investigación y las fuentes de datos que se podrían acceder, con el fin de proponer una solución
estratégica a la necesidad actual. Varias de las problemáticas de buscar colegio es
el poder investigar las innumerables opciones que se presentan de una forma ágil, contemplando aspectos personales y generales que brinden un panorama más
claro y en tiempo real. Realizar investigación externa en el entorno global, para visualizar estrategias de
apoyo para el diseño de solución.
La investigación que se plantea para el desarrollo del posible proyecto se basa en la información expuesta por los colegios y las problemáticas expuestas en la red, sobre este tema. También se fundamenta en la información del uso de las diferentes
aplicaciones que están en línea. Ya que siendo un servicio tan necesario se debe plantear soluciones que brinden satisfacción a los usuarios.
Los chatbots, son un sistema de software novedoso basado en inteligencia artificial y con gran impacto en los diferentes ambientes donde es usado. Para el área
educativa se han integrado pocas funcionalidades. “La principal razón se achaca a la rapidez con la que mejoran los softwares de Inteligencia Artificial, siendo los
culpables de este auge las principales tecnológicas de Silicon Valley como Facebook y Google, entre otros. Y es que la IA permite a los ordenadores procesar el lenguaje, y en el fondo conversar con las personas, de una forma que nunca se
había visto”.[2]
1.5.2. Marco Conceptual
El siguiente marco muestra las definiciones de los conceptos básicos que aparecen
a lo largo del proyecto y que resultan de vital importancia para el desarrollo de este. Los BOTS: son sistemas informáticos que simulan el comportamiento humano
capaces de llevar a cabo tareas específicas, Los BOTS son creados mediante sistemas de Inteligencia Artificial que permiten que estos interactúen con las
personas y otros sistemas. [6] Por ejemplo, enviar correos electrónicos, entablar conversaciones vía chat, editar documentos, incluso existen algunos diseñados con fines maliciosos, como por ejemplo para propagación de virus, ataques cibernéticos,
entre otros.
Estos sistemas son usados para automatizar tareas de manera más rápida que lo que lo haría un humano y para manejar ciertos procesos de forma desatendida ya que tienen la ventaja de estar disponibles 24/7, en la actualidad se están creando
BOTS manejando componentes de inteligencia artificial como por ejemplo el Bot Framework Machine Learning de Microsoft, otras plataformas como Google, IBM
tienen sus propios marcos de trabajo para la creación de BOTS. [4]
Existen diferentes tipos de BOTS que se podrán categorizar de acuerdo con su
funcionalidad:
Crawlers: Recolectan información de la web o de otras Apis
Informativos: ayudan a gestionar la información de los diferentes canales
ChatBot: Son función es simular una conversación humana, ofreciendo
información y ayudando a solucionar dudas
Transaccionales: Actúan como intermediarios entre personas y medios externos
Hacker Bots: su función principal es distribuir virus y realizar acciones fraudulentas
Spam Bots: diseñados para enviar Spam masivamente
Game Bots: diseñados para funcionar con inteligencia artificial en los juegos
y permitan simular que se está jugando contra otro competidor
Scrapet Bots: diseñados para robar información
Estrategia: Conjunto de líneas maestras para la toma de decisiones que tienen
influencia en la eficacia a largo plazo de una organización. Requerimientos o levantamiento de información: Es la determinación de las
necesidades o de las condiciones a satisfacer para un software nuevo o modificado,
tomando en cuenta los diversos requisitos de los inversores. [5] Software de aplicación: Aquel que permite a los usuarios llevar a cabo una o varias
tareas específicas, en cualquier campo de la actividad susceptible de ser automatizado o asistido, con especial énfasis en los negocios. [6]
Sistema: Conjunto de partes o elementos organizados y relacionados que
interactúan entre sí para lograr un objetivo.
Navegador web: Programa informático que permite visualizar, interactuar e
interpretar el contenido de una página web dentro de una red. Online: En línea. Se refiere a cualquier documento, archivo o servicio de la red.
Web: Es un servicio que permite acceder por medio del internet a muchas
prestaciones y funciones, así como a un sin número de programas, tiendas, servicios, etc. Sus fundamentos son el protocolo HTTP y el lenguaje HTML
BOT Framework: Es una plataforma para construir, conectar, testear y desarrollar
poderosas aplicaciones e inteligentes bots. Conectado con Azure Bot Service. Bot Framework permite construir bots que soportan diferentes tipos de interacción con
los usuarios. Se puede manejar sistemas conversacionales que pueden usar Texto plano o texto más complejo que incluya imágenes, acciones o botones. (Microsoft) Bot Framework provee poderosas herramientas para ayudar a construir los bots. [6]
Bot Builder: provee varias opciones e implementaciones sobre plataformas .Net,
Ademas incluye un emulador para realizar las pruebas de los bots con un gran número de ejemplos que se pueden usar para su construcción.[3] Bot framework portal: es un portal web que permite administrar los bots creados,
contiene herramientas de diagnóstico y control para cada Bot creado.
Chanels: Es una herramienta que permite desplegar el Bot en diferentes
plataformas tales como (Skype, Facebook, Messenger, entre otros.
SDK (Software Development Kit – Kit de Desarrollo de Software): El SDK es un
paquete instalable de Java que contiene la interfaz de programación de aplicaciones (API) de Java. La API de Java es una colección grande de clases listas para usar y que están agrupadas en bibliotecas para ayudarle a desarrollar y desplegar
aplicaciones. [7]
El SDK también incluye:
Compilador Java.
Máquina virtual Java (JVM o VM).
Herramientas para supervisar, depurar y documentar aplicaciones.
Herramientas para desarrollar interfaces de usuario o GUI.
Bibliotecas de integración para aplicaciones que necesitan acceder a bases de datos y a objetos remotos.
1.5.3. Características de los Chatbots
Las características que diferencian a los agentes conversacionales son:
Autonomía: un agente es completamente autónomo si es capaz de actuar
basándose en su experiencia. El agente es capaz de adaptarse, aunque el entorno cambie severamente, puede brindar diferentes formatos (o estilos) de respuesta, dependiendo del tipo de usuario, del tipo de pregunta realizada, etc.
Sociabilidad: este atributo permite a un agente comunicar con otros agentes o
incluso con otras entidades, la cual sería la característica diferenciadora de los chatbots.
Racionalidad: el agente siempre realiza lo correcto a partir de los datos que percibe
del entorno, sabe formular respuestas, analizando la frase introducida, son capaces
de generar la respuesta más apropiada Reactividad: un agente actúa como resultado de cambios en su entorno. En este
caso, un agente percibe el entorno y esos cambios dirigen el comportamiento del agente. Pueden proporcionar respuestas de diversa naturaleza. Es decir, no tienen
que limitarse a brindar frases como respuestas. Pueden proporcionar enlaces dentro de la web o incluso recursos Electrónicos como respuesta.
Pro-actividad: un agente es pro-activo cuando es capaz de controlar sus propios
objetivos a pesar de cambios en el entorno. Pueden ser programados para
comprender el contexto de la conversación y situar la pregunta en el mismo. Adaptabilidad: está relacionado con el aprendizaje que un agente es capaz de
realizar y si puede cambiar su comportamiento basándose en ese aprendizaje. Se encuentra en fase de desarrollo, pero ya con avances promovedores.
Movilidad: capacidad de un agente de trasladarse a través de una red telemática.
Veracidad: asunción de que un agente no comunica información falsa a propósito. Personalidad: cada agente es único y depende del programador las características
que quiera darle como emociones, comportamiento no verbal, entre otros.[3]
Se muestran características generales que deben tener un agente conversacional para determinar sus particularidades como Chatbot.
1.5.4. Análisis de Chatbots existentes
Dentro de las alternativas de chatbot, existen multitud de soluciones, por lo que no
es posible analizarlas todas; sin embargo, se ha realizado una muestra entre las opciones disponibles, con el fin de ver la utilidad y el impacto que tiene el uso de
este tipo de tecnologías. De acuerdo con lo anterior, la selección de estos se debió a los siguientes criterios:
Idioma: Se tuvo en cuenta chatbots que dialoguen en multilenguaje.
Calidad: Se han seleccionado chatbots que han tenido resultado para las empresas en las que opera.
Disponibilidad púbica, sobre su funcionamiento: Se toma esta alternativa, valorando la alternativa de que el código se ha totalmente abierto o que
tenga respaldo de una comunidad.
Utilidad: Se clasifica para los chatbots existentes según la utilidad práctica real que tienen, y de esta manera tenemos Sin utilidad práctica (Disponibles en la web) y con utilidad práctica (Chatbots cuyo objetivo es
el de reemplazar en cierta medida algún rol humano).
Domino's simplifica el pedido de pizza usando la tecnología conversacional
Fundada en 1960, Domino's ahora opera más de 14,000 pizzerías en más de 85
países. Sus conductores cubren más de 10 millones de millas para entregar 10.5 millones de pizzas por semana solo en los Estados Unidos. Durante años, los clientes han podido pedir pizzas a través de "Dom", un simple bot de pedidos
disponible en línea y a través de las aplicaciones móviles de la compañía. "Somos uno de los primeros en este espacio en lanzar nuestro propio asistente de pedidos
de voz artificialmente inteligente a través de nuestras propias aplicaciones nativas", dice Mandi Galluch, líder del programa Domino para la experiencia digital. [10]
Decidida a innovar y seguir el ritmo del comportamiento cambiante de los consumidores, la empresa optó por crear experiencias de conversación
enriquecedoras basadas en la comprensión del lenguaje natural (NLU) y el aprendizaje automático. [8]
Enfoque
Domino's comenzó a explorar varias soluciones de NLU en agosto de 2016. Finalmente, eligieron a Dialogflow por su capacidad de escalar y adaptarse a la cantidad de intentos necesarios, uno de los mayores puntos críticos que
encontraron inicialmente. "Con una conversación más contenida, no necesita tantos caminos que la gente pueda seguir", explica Galluch. "Pero puedes ir en tantas
direcciones al ordenar nuestro menú, y tuvimos que darnos cuenta de todo eso". [2] El equipo también apreció la interfaz de usuario (UI), una de las razones principales
que disfrutan al utilizar Dialogflow. "Es fácil de usar, intuitivo y simplemente tiene sentido", dice Galluch. "La otra pieza clave es el procesamiento del lenguaje natural
(PNL), que es el mejor que hemos probado". El alcance del proyecto era más grande de lo que nadie hubiera esperado, pero
Domino aprovechó sus más de 50 años de conocimiento de servicio al cliente y las capacidades de NLU de Dialogflow para crear interacciones simples con el cliente
y escenarios de pedidos cada vez más complejos. "Pudimos lograr una sólida
experiencia para el cliente con bastante rapidez", dice Ken Natoli, líder comercial de
la empresa.
Cualquier persona que use un dispositivo con el Asistente de Google incorporado, como una página de inicio de Google "simplemente puede decir: 'Oye Google, habla con Domino's' y podrás realizar el pedido directamente con nosotros". [8]
KLM construye el chatbot de reservas y empaquetado 'BB'
Fundada en 1919, KLM Royal Dutch Airlines, con sede en Ámsterdam, es la aerolínea global más antigua que sigue volando con su nombre original. Sirven a
más de 30 millones de pasajeros al año, operan más de 200 aviones y vuelan a 163 destinos en todo el mundo. También son el tercer empleador privado más grande
de los Países Bajos. [8] El cliente promedio vuela con KLM 1.4 veces al año y es posible que no tarde en
descargar la aplicación móvil de la aerolínea para reservar un vuelo. Para ese cliente, la aerolínea quería "un nuevo punto de entrada", uno que brindara
oportunidades para las interacciones de conversación mediante voz o texto. "Una experiencia de conversación permite ese enfoque personal. Aporta calidez y personalidad a las conversaciones con nuestros clientes", dice Ruben Klerks,
gerente de redes sociales de KLM. [8]
"Para nosotros, los medios sociales incluyen todos los canales de mensajes y plataformas de asistencia como el Asistente de Google", dice Martine van der Lee, directora de medios sociales de KLM. Klerks agrega: "Creemos que KLM debe ir al
cliente y estar donde está". [7]
Enfoque KLM comenzó a explorar formas de proporcionar una experiencia de conversación
para los clientes en 2016. La aerolínea eligió Dialogflow después de probar varias plataformas. "Nos encanta Dialogflow", dice van der Lee. "Tiene capacidades muy
sólidas de comprensión del lenguaje natural (NLU), lo que significa que pudimos automatizar una gran parte de la conversación. Y fue fácil para nuestros desarrolladores utilizar Dialogflow. Pudimos crear y enviar la experiencia realmente
rápido. [8]
El primer proyecto de la aerolínea fue un bot de reserva para Facebook Messenger, que introdujeron en septiembre de 2017. KLM lo apodó 'BB', para Blue Bot (el azul es su color característico). La personalidad de BB es femenina, servicial, amigable
y profesional. Ella también es un poco nerviosa, y en ocasiones incluso hace bromas. "Si desea hacer una reserva a través de Messenger, BB le preguntará su
destino, cuándo quiere volar, etc.", explica van der Lee. "Le mostraremos las opciones, y usted puede comprar, completar sus datos personales y obtener la confirmación de su reserva, todo allí en la aplicación de conversación". Al conectar
a BB con el sistema de CRM de KLM, un agente humano puede asumir el control
fácilmente si no puede responder. [5]
Unos meses más tarde, KLM creó otra forma nueva para que los clientes interactúen con BB. La aerolínea lanzó un servicio de embalaje para el Asistente de Google en diciembre de 2017. "BB lo guiará a través de todo lo que necesita para llevar a su
destino y durante la duración de su viaje", dice van der Lee. "Ella hace todas las preguntas correctas, como si necesita solicitar una visa o si necesita traer
medicamentos, para que los viajeros estén preparados para su viaje. Según el pronóstico del tiempo, ella verificará si necesita traer más ropa o una sombrilla”.
La aerolínea desarrolló BB en gran parte dentro de pocos meses, un esfuerzo multifuncional que involucró a miembros de marketing, TI, comunicaciones,
redacción de textos publicitarios, UX, ingeniería y más. También incorporó una agencia digital para crear la experiencia de embalaje. [8]
Resultados
KLM está satisfecho con el sólido desempeño inicial de BB. También aprendieron que a los clientes les encanta conversar con BB solo para descubrir respuestas divertidas de Easter-egg a todo tipo de preguntas.
La aerolínea planea fusionar las experiencias de reservación y empaque, para que
los viajeros puedan abordar fácilmente la logística de la planificación del viaje y enfocarse en sus itinerarios de vacaciones. También continuarán creciendo las capacidades de BB. "Nuestro objetivo es ayudar a los viajeros durante todo el viaje
del cliente", dice Klerks. "Realmente vemos a BB como una extensión de la familia de servicios KLM".[8]
Ticketmaster conecta a las personas con eventos y boletos más rápido a través de experiencias de conversación
“Ticketmaster es la principal empresa de venta de entradas para eventos en vivo
del mundo. Fundada en 1976, venden más de 500 millones de boletos al año en 29 países diferentes. Al reconocer la precisión y la potencia cada vez mayores del procesamiento del lenguaje natural, Ticketmaster recurrió a la tecnología
conversacional de Dialogflow para proporcionar servicios más rápidos y más personalizados para los compradores de boletos.
Las oportunidades en torno a las herramientas de conversación son enormes", dice Patrick Jackson, ingeniero de software de Ticketmaster. La compañía vio posibilidades para ofrecer una mejor experiencia de navegación, mejorar la
búsqueda de eventos e incluso proporcionar direcciones a lugares y estacionamiento. "Estas interfaces de conversación nos permiten realizar una
experiencia realmente rápida y útil; en algunos casos, más que abrir una aplicación o un sitio web. Nuestro objetivo es ser su asistente para encontrar eventos y obtener entradas", agrega Jackson”.[8]
Enfoque
Antes de que comenzaran a usar Dialogflow en enero de 2017, el equipo de Ticketmaster investigó varias tecnologías de la competencia. "Reconocimos los pros y los contras de muchos de ellos y decidimos usar Dialogflow", explica Jackson. El
equipo tenía tres razones principales para elegir Dialogflow:
Rápido y fácil de comenzar a construir: el equipo vio el mínimo esfuerzo y la codificación necesarios para poner en marcha su experiencia de
conversación.
Buena experiencia de desarrollador: el entorno de desarrollo intuitivo permitió
al equipo elegir fácilmente cómo debería verse, sentirse y sonar la experiencia.
Fácil de escalar: la experiencia podría escalar bien a medida que la base de
usuarios creciera.
A pesar de que tenían poca experiencia en el procesamiento del lenguaje natural, el equipo utilizó fácilmente las herramientas de Dialogflow para crear experiencias
de usuario de voz convincentes. "Fue genial aprovechar la experiencia de Dialogflow en el aprendizaje automático y el procesamiento del lenguaje natural, por lo que podemos concentrarnos en las cosas que sabíamos hacer", dice Jackson.
"Dialogflow nos facilitó agregar una intención y asegurarnos de que nuestro
sistema estaba capacitado para entender los nombres de miles de artistas musicales diferentes. La simplicidad y flexibilidad de Dialogflow nos permiten
concentrarnos en el back-end: manejar el dominio del descubrimiento de eventos y La venta de entradas, que es nuestra área de especialización”. [12]
El equipo de Jackson también quedó impresionado por la precisión del lenguaje
natural de Dialogflow. "Es alucinante lo bien que el sistema traduce mi discurso y el de todos a mi alrededor", dice. Por ejemplo, un cliente de Ticketmaster puede simplemente decirle al Asistente de Google en su teléfono con Android o iOS "Hable
con Ticketmaster" y luego preguntar directamente a Ticketmaster, "¿Qué eventos divertidos están ocurriendo este fin de semana?" Ticketmaster mostrará una lista de
lugares, fechas y horas. Al conversar con la interfaz de conversación, el cliente puede comprar boletos directamente a través de una cuenta de Ticketmaster existente. [12]
1.6. Metodología de la investigación
1.6.1. Tipo de estudio
El tipo de estudio planteado para esta investigación busca proponer una solución que ayude como herramienta de aplicación y uso, para esto se identifican los hechos o las causas del problema y sus consecuencias y las situaciones que suelen
presentarse a fin de mitigar el problema. Otros hechos que inciden pero que no son visibles deben determinarse para abordar el problema en su totalidad, dejando un
precedente que pueda ser el insumo clave para futuras investigaciones dentro del contexto planteado.
La investigación se determinará mediante el nivel de profundidad y la forma en que se abordara es de tipo descriptivo, realizando una previa caracterización de
acuerdo con entrevistas y fuentes de conocimiento.
1.6.2. Método de investigación
Los métodos de investigación que se utilizarán para el desarrollo del proyecto serán a partir de la observación y la inducción.
Se inicia desde la observación como método de investigación teniendo en cuenta la experiencia personal y de la observación participando de procesos, las técnicas de
recolección inferirán en la base de conocimiento logrando la implementación y consulta de este. De igual forma se apoyará en encuestas direccionadas a la población con esta
problemática (Padres de familia, profesores. etc.). Se analizará información de los aspectos generales, apoyada en encuestas que permitirán abastecer de datos El
método inductivo en esta investigación permitirá, desde las entrevistas y encuestas, generalizar comportamientos que permitan direccionar a una solución propuesta.
1.6.3. Fuentes y técnicas para la recolección de información
1.6.3.1. Fuentes primarias
Las fuentes primarias para la recolección de la información parten de una
observación inicial en donde se contrasta la información personal para tener una masa conceptual inicial que será refinado con técnicas anteriores.
Entrevistas con los padres de familia
Entrevistas con jefes de admisiones de los colegios Información que se desea obtener
Se busca captar las principales necesidades bajo problemáticas de búsqueda de este tipo de información en diferentes poblaciones y estratos.
1.6.3.2. Fuentes secundarias
La recopilación de la información secundaria inicia de tres fuentes clave en la realización del estudio, la primera corresponde a la información que está
relacionada con los requerimientos dentro del entorno planteado, lo cual incluye:
Análisis documental: consulta de información sobre aplicaciones o sitios de búsqueda que permitan brindar esta información. Como también información sobre como esto es manejado en otros países.
Consulta de fuente de información en línea: Realizar búsqueda de
aplicaciones a nivel general que brinden funcionalidades de este tipo, para que así se pueda identificar los lineamientos de solución.
La segunda fuente principal corresponde a la información que se debe tener en cuenta para definir la arquitectura empresarial del proceso, es decir, revisar
documentación existente y practicas acordes para este problema en particular, para esto se busca:
Seleccionar la metodología para levantamiento de requerimientos indicada.
Definición de la arquitectura empresarial orientada al proceso.
La tercera fuente principal corresponde a la búsqueda de información sobre la
metodología de desarrollo de software y ciclo de vida a tener en cuenta.
Realizar consultas bibliográficas sobre casos de estudio que estén
relacionados con las metodologías de desarrollo de software y el ciclo de vida que se utilice.
Las tres fuentes mencionadas se encuentran relacionadas al problema de investigación y los objetivos específicos. Buscando que sirvan de apoyo en la forma
en la que se va a realizar la solución del problema.
1.6.4. Tratamiento de la información
Para el tratamiento de la información obtenida tanto de fuentes primarias como de secundarias, es necesario aplicar técnicas de tratamiento de información específicas para cada caso:
Fuentes primarias de Información: Para el caso de las entrevistas se procede
a consolidar la información y analizarla y representar el conocimiento obtenido a través de modelos visuales como mapas conceptuales y
documentos de tipo descriptivo y posteriormente expresar las necesidades específicas en una sección de requerimientos formal. En el caso de las encuestas se debe consolidar la información y utilizar técnicas estadísticas
de tabulación y representarla en los gráficos correspondientes.
Fuentes secundarias de información: para el caso los temas relacionados de consultas acerca de la metodología de desarrollo de software, se pretende establecer los lineamientos y directrices del desarrollo, con la definición de
las tareas específicas a realizar y un cronograma orientado al desarrollo del prototipo. Se plantea que el tratamiento de la información y la obtención de
las fuentes de información se establezcan tanto al inicio como en toda la duración del proyecto de investigación, es decir las actividades de recolección y el tratamiento de la información deben continuarse realizando
hasta que la definición de todo el contexto del proyecto se encuentre definido en su totalidad.
1.7. Alcance
El presente proyecto de investigación analizara y realizara de forma propositiva una solución tecnológica (Prototipo) para apoyar a la problemática planteada.
La base de conocimiento se centra en las en la ciudad de Bogotá para colegios privados bajo criterios específicos.
La metodología de chat será a través de preguntas y/o inferencias que el Chatbot realice a la persona.
1.7.1. Limitaciones
La falta de información actualizada de los colegios en cuanto a sus
programas académicos.
La falta de información necesaria por parte de los encuestados.
El acceso a fuentes de datos que permitan hacer una integración de
búsqueda.
No se pueden realizar comparaciones entre colegios.
1.7.2. Resultados esperados
El principal resultado de este proyecto es plantear un prototipo de chatbot bajo la
solución basada en criterios de implementación de un aplicativo capaz de facilitar la búsqueda de colegio, bajo criterios específicos de búsqueda. Con el fin de brindar una orientación en la selección de un colegio privado en la ciudad de Bogotá,
basado en una fuente de conocimiento con diferentes fuentes de datos permitiendo la toma de decisiones de una forma más clara y objetiva, logrando ahorrar tiempo y
brindando comodidad al padre de familia.
1.8. Organización del trabajo de grado
Este documento está organizado en los siguientes capítulos:
En el primer capítulo se presenta la parte introductoria del trabajo de investigación
incluyendo planteamiento del problema y su sistematización, justificación, definición de los objetivos, hipótesis que se pretende probar, el alcance, las limitaciones del proyecto de investigación y la reseña de la organización del trabajo.
En el segundo capítulo se desarrolla el análisis de la información recolectada de
fuentes primarias, secundarias durante el desarrollo de la investigación. En el tercer capítulo se detalla el diseño de la solución de software bajo
componentes de arquitectura empresarial, que busca resolver la problemática identificada. En este capítulo se presentan los diferentes diagramas que permiten
comprender el producto de software. En el cuarto capítulo se describen los componentes de la solución, presentando el
detalle de cada uno.
En el quinto capítulo se presentan los resultados obtenidos con la solución de software desarrollada.
En el sexto capítulo se presentan las conclusiones contrastando el cumplimiento de
objetivos y el aporte del trabajo realizado.
En el séptimo capítulo se detallan los trabajos futuros que pueden desarrollarse a partir de esta investigación planteada.
1.9. Estudio de sistemas previos
En la actualidad existen diferentes soluciones basadas en plataformas, que han sido desarrolladas para diferentes propósitos. Pero muy pocos con las particularidades
que ofrece este proyecto y a la comunidad a la que va dirigida.
Plataforma Web mejores colegios
La plataforma Web http: //losmejorescolegios.com/colegios/, permite ofrece las opciones de búsquedas por diferentes criterios. Tienen una base de información de
los colegios adscritos. Esta plataforma permite visualizar en el resultado de la búsqueda, información estructurada. Así describe esta página Web su
funcionalidad: “En esta guía de colegios encontrarás descripciones detalladas de la oferta educativa donde podrás conocer, proyectos educativos, procesos de admisiones, mapas interactivos e información práctica que permite comparar y
elegir el colegio que mejor se adapte a cada necesidad”.[8]
Ilustración 1: Los mejores colegios en Colombia
Fuente: https://losmejorescolegios.com/colegios/
Aplicación Móvil Colombian Schools - Android
Esta aplicación permite al usuario realizar mediante un clic la búsqueda de colegio de acuerdo con opciones particulares. Hay opciones de búsqueda por tipo
calendario escolar (A o B). Como también si es campestre o bilingüe entre otras. Así describe esta página Web la funcionalidad de la aplicación: “Para los padres no
es fácil encontrar un colegio privado en Colombia por varias razones. Una de las principales es que muchos no tienen el tiempo suficiente para buscarlo debido a sus trabajos. Otra es que no todos los niños y niñas son iguales y algunos requieren
más atención que otros ya sea porque sufren una enfermedad física o padecen un trastorno psicológico y del comportamiento que les dificulta adaptarse a la rutina
escolar. Por esta razón, Edison Charry y Carolina Lozada crearon la aplicación Colombian Schools, que facilita al padre la identificación de colegios ideales que se ajustan a sus expectativas, teniendo en cuenta variables como la ubicación, el
precio, la infraestructura, el programa académico y las actividades extracurriculares. Es gratuita y está disponible en Google Play Store”.[9]
Ilustración 2: App Colombian Schools Fuente:
https://play.google.com/store/apps/details?id=com.colegiosyjardines&hl=es_CO
PARTE II. DESARROLLO DE LA INVESTIGACIÓN
CAPÍTULO 2. ANALISIS DE LA INFORMACIÓN
Para esta investigación, se optó por realizar entrevistas personalizadas debido a que presentan la forma más próxima de entender el problema y los lineamientos
que la solución debe tener en cuenta.
2.1. Entrevistas a personas con hijos
En el proceso de levantamiento de información se realizaron cuestionamientos
abiertos a estudiantes con hijos de la Universidad Francisco José de Caldas, como también a familiares con el fin de compartir el objetivo y alcance del proyecto, y así
mismo conocer las necesidades de esta comunidad y así plantear de manera conjunta un enfoque de solución que pueda aportar a los procesos de selección.
El trabajo realizado en las diferentes sesiones, se hizo basado en los resultados de la encuesta llevada a cabo con el apoyo de personas con este perfil. En donde se
resaltó la necesidad con respecto a que son muchas las opciones que se presentan a nivel de colegios, pero que la disposición de tiempo limita a tener mayor amplitud de opciones para tomar una buena decisión
Como conclusión de la posible interacción con una aplicación (Prototipo Web), se
produjo un resultado positivo y optimista con respecto al desarrollo del proyecto y su implementación. Esto debido a que el enfoque en el cual se proyecta se presta para varios propósitos que se pueden transformar en trabajos futuros y satisfacer
diferentes necesidades.
2.2. Encuesta a personas con hijos
Se diseñó y aplico una encuesta dirigida a las personas que tengan hijos en edad de colegio. El objetivo fue conocer su punto de vista acerca de los criterios de búsqueda que tienen en cuenta a la hora de buscar colegio En el anexo 1 se
encuentra el formato de la encuesta enviada.
La encuesta fue aplicada utilizando la herramienta Google Formulario. Esta cuenta con capacidades que permiten responder las preguntas de forma intuitiva y disfrutando de una experiencia de usuario cómoda.
Se recibieron en total 80 respuestas entre el 21 de julio y el 15 de agosto. Los resultados por pregunta se pueden ver en el Anexo 1.
CAPÍTULO 3. ARQUITECTURA EMPRESARIAL
3.1. Análisis y diseño de la solución de la Arquitectura
ArchiMate es un lenguaje de diseño para describir la arquitectura de negocio y
arquitecturas de TI en coherencia entre sí. Al margen del lenguaje de diseño, ofrece una amplia gama de técnicas para la visualización, análisis, diseño y uso de la arquitectura empresarial con el fin de resolver los cambios necesarios del negocio.
A continuación, se presentan los diagramas y modelos utilizados para analizar y
diseñar la solución objeto de este estudio descompuesto en capas.
3.2. Capa de negocio
Es una de las capas más importantes debido a que el lenguaje que se utiliza permite
hablar en términos de las entidades del negocio, por lo que es importante distribuir adecuadamente la semántica. Esta capa gira en torno a tres dimensiones de
comportamiento: procesos, servicios y producto (centro del negocio).
3.2.1. Punto de Vista de Organización
El metamodelo de la organización describe los actores del área de la empresa, en cual se va a aplicar el estudio. Los actores del modelo son los siguientes:
-MINE - viceministro de educación básica, primaria, bachillerato.
-Padres de familia. La ubicación de la empresa está en la ciudad de Bogotá.
Ilustración 3: Metamodelo Caso Organización
Fuente: Los Autores
3.2.2. Punto de Vista de Cooperación de actor
Hace referencia a las relaciones existentes entre los actores con su entorno. Es importante este modelo debido a que evidencia como sus componentes de
aplicación cooperan para realizar un proceso de negocio. Se observan en este modelo los dos actores que forman una colaboración llamada "búsqueda" luego se desprende un rol de "puente de información" que enlaza a los clientes y padres de
familia por medio de un portal web.
Ilustración 4 Metamodelo Caso Cooperación de Actor
Fuente: Los Autores
3.2.3. Punto de Vista de Función de Negocio
Este punto de vista muestra las principales funciones de negocio de una organización, así como su relación en flujos de información. La función de negocio provee una mirada de alto nivel en las operaciones generales de la organización.
En este modelo se precisan dos roles fundamentales, el padre de familia y el agente
conversacional; el primero con la función principal de realizar la consulta de información de colegios, posteriormente el agente como realizar la interpretación y responder la conversación.
Ilustración 5: Metamodelo Caso Función Negocio
Fuente: Los Autores
3.2.4. Punto de Vista de Proceso de Negocio
Este punto de vista es usado para mostrar la estructura de alto nivel y composición de uno o más procesos de negocio. Se muestra las actividades a realizar hasta el
retorno de la información bajo los criterios seleccionados.
Ilustración 6: Metamodelo Caso Proceso de Negocio
Fuente: Los Autores
3.2.5. Punto de Vista de Cooperación de Proceso de Negocio
Este punto de vista es usado para mostrar las relaciones de uno o más procesos de
negocio entre sí mismos y con su ambiente. Se observa el flujo de una consulta realizada:
Ilustración 7: Metamodelo Caso Cooperación de Proceso
Fuente: Los Autores
3.2.6. Punto de Vista de Producto
Representa el valor que los productos ofrecen a los clientes o a otros externos involucrados. También para mostrar las interfaces a través de las cuales es ofrecido el producto y los eventos asociados a él. En este punto de vista se plantean los
beneficios de la implementación de la aplicación
Ilustración 8: Metamodelo Caso Vista de Producto
Fuente: Los Autores
3.3. Capa de Aplicación
La capa de aplicación ofrece servicios de presentación, por ejemplo, servicios de almacenamiento y comunicación necesarios para ejecutar aplicaciones. Esta capa
muestra la conexión entre el hardware y los sistemas de software.
3.3.1. Punto de Vista de Comportamiento de Aplicación
El comportamiento de aplicación describe el comportamiento interno de una aplicación, por ejemplo, el cómo realiza uno o más servicios de aplicación Este punto de vista es útil en el diseño de los comportamientos principales de las
aplicaciones, o para identificar los cambios funcionales entre diferentes aplicaciones.
El modelo comportamiento de aplicación describe la búsqueda realizada por el
usuario, allí encontramos diferentes componentes con funciones específicas, los procesos que se desprenden de estos componentes son:
Ilustración 9: Metamodelo Comportamiento de Aplicación
Fuente: Los Autores
3.3.2. Punto de Vista de cooperación de Aplicación
Este punto de vista describe las relaciones entre componentes de aplicaciones en
términos de los flujos de información entre ellas, o en términos de los servicios que ellas ofrecen o utilizan. Este punto de vista es usado típicamente para crear una
visión general del panorama de aplicaciones de una organización también es usado para expresar la cooperación interna o la orquestación de servicios que en conjunto soportan la ejecución de un proceso de negocio.
Este modelo muestra dos partes fundamentales que son el frontend y el backend
de los componentes involucrados. Por el lado del frontend tenemos 2 componentes:
Bot WepApi
Comunidad
ChatBot
Por el lado del backend tenemos 2 componentes:
Interpretador
Información
Ilustración 10: Metamodelo Caso Cooperación de Aplicación
Fuente: Los Autores
3.3.3. Punto de Vista de Estructura de Aplicación
El punto de vista de estructura de aplicación muestra la estructura de una o más
aplicaciones o componentes. Este punto de vista es utilizado en el diseño o entendimiento de la estructura principal de aplicaciones o componentes y los datos
asociados, por ejemplo, para descomponer la estructura del sistema que está en
construcción.
Para el presente modelo se elaboran 3 componentes con sus respectivas interfaces, el componente central es el chatbot el cual tiene las siguientes interfaces:
Conexión
Búsqueda
Interacción
Ilustración 11: Metamodelo Caso Estructura de Aplicación
Fuente: Los Autores
3.3.4. Punto de Vista de Uso de Aplicación
Este punto describe como son usadas las aplicaciones para soportar uno o más procesos de negocio, y como estas son usados por otras aplicaciones. Puede ser
utilizado en el diseño de una aplicación identificando los servicios necesitados por procesos de negocio y otras aplicaciones.
Para el presente modelo intervienen los siguientes elementos en el proceso de
búsqueda:
Consulta Interactiva
Salida de Información
Ilustración 12: Metamodelo Caso de Uso de Aplicación
Fuente: Los Autores
3.4. Capa de Tecnología
La capa de tecnología ofrece servicios de infraestructura, por ejemplo servicios de almacenamiento y comunicación necesarios para ejecutar aplicaciones. Esta capa
muestra la conexión entre el hardware y los sistemas de software.
3.4.1. Punto de Vista de Infraestructura
El presente punto de vista contiene los elementos de infraestructura de software y
de hardware que soportan la capa de aplicación, tales como dispositivos físicos, redes o sistemas de software por ejemplo (sistemas operativos, bases de datos, red, servidores).
El metamodelo de Infraestructura muestra la estructura de ChatBot la cual soporta
la capa de aplicación, podemos observar algunos componentes de software y hardware. El diagrama inicia con 2 nodos principales.
Este portal se encuentra en un hosting con el servidor web y el servidor de base de
datos. El portal se encuentra desarrollado en AIML y en JAVA, opera bajo un servidor Microsoft.
Ilustración 13: Metamodelo Caso de Infraestructura
Fuente: Los Autores
3.4.2. Punto de Vista de uso de infraestructura
En el punto de vista uso de infraestructura muestra como las aplicaciones son soportadas por la infraestructura de software y hardware. Este punto de vista juega un papel importante en el análisis de rendimiento y escalabilidad ya que relaciona
la infraestructura con las aplicaciones.
El metamodelo de uso de infraestructura describe como los componentes de la capa de aplicación son soportados por la capa de tecnología. Observamos que el Chatbot se conecta por medio de un web service a la información; el portal cuenta con un
componente de interpretación. Los componentes que implementa el lenguaje natural son (Plugin de interpretador).
Ilustración 14: Metamodelo Caso Uso de Infraestructura
Fuente: Los Autores
3.4.3. Punto de Vista de Implementación y Despliegue
Este punto de vista muestra como una o más aplicaciones son llevadas a la realidad
en la capa de infraestructura. Esto implica el mapeo de aplicaciones y componentes lógicos en artefactos físicos como por ejemplo Java NetBeams.
En este modelo podemos observar una colaboración entre los componentes (Servidor de App y Servidor de enlace) esta colaboración forma un webservice
bidireccional, esto es debido a que los 2 pueden enviar y recibir peticiones, este sistema permite que el acceso a los datos sea por autorización en cada uno de los
nodos.
Ilustración 15: Metamodelo Caso Implementación y Despliegue
Fuente: Los Autores
3.4.4. Punto de Vista de estructura de Información
Permite visualizar la capa de información y el flujo de actividades que interactúan. Permite visualizar el flujo de datos en un flujo de actividades y su asociación con el
chat bot.
Ilustración 16: Metamodelo Caso Vista Estructura de Información
Fuente: Los Autores
3.4.5. Punto de Vista Realización del Servicio
Permite visualizar de una manera sencilla la plataforma y sus diferentes servicios. Permite visualizar en el prototipo (Proyecto), los diferentes servicios que interactúan con el chat bot.
Ilustración 17: Metamodelo Caso Vista Realización del Servicio
Fuente: Los Autores
3.4.6. Punto de Vista de Capas
El modelo de capas permite visualizar los diferentes componentes que interactúan.
Ilustración 18: Metamodelo Vista de Capas
Fuente: Los Autores
3.5. Capa de Motivación
La capa motivacional añade los conceptos motivacionales tales como objetivos, principios y requerimientos. Esto direcciona la forma en que la arqui tectura
empresarial está alineada a su contexto, tal como lo describen los elementos motivacionales.
3.5.1. Punto de Vista de Stakeholder
El punto de vista stakeholder le permite al analista modelar a los interesados, los motores de cambio y las valoraciones en términos de fortalezas, debilidades,
oportunidades y amenazas. También pueden ser descritos los enlaces a los objetivos iniciales de alto nivel que direccionan estos asuntos y valoraciones. Estos objetivos conforman las bases para el proceso de ingeniería de requerimientos,
incluyendo el refinamiento de objetivos y análisis de contribuciones y conflictos.
Cada stakeholder cuenta con un objetivo (goal) y una evaluación:
Ilustración 19: Punto Vista StakeHolder
Fuente: Los Autores
3.5.2. Punto de Vista de principios
El punto de vista de principios permite al diseñador modelar los principios que son relevantes al problema de diseño que se está resolviendo, incluyendo los objetivos
que motivaron dichos principios. En pocas palabras los principios son valores corporativos de la organización en base al objetivo planteado.
Se observa en este punto de vista los principios que surgen de cada uno de los objetivos, los principios se pueden tomar como los valores corporativos que se
ofrecen por cada objetivo. Con cada principio se brinda valor al servicio ofrecido por la organización.
Ilustración 20: Punto Vista Principios
Fuente: Los Autores
3.5.3. Punto de Vista de Realización de Objetivos
Este punto de vista permite al diseñador modelar el refinamiento de objetivos de alto nivel en objetivos más concretos y el refinamiento de dichos objetivos concretos en
requerimientos o restricciones que describen las propiedades que son necesarias para realizar los objetivos.
En este modelo podemos observar los requerimientos y restricciones que tiene cada objetivo de las partes interesadas, con este descubrimiento se puede pensar a
grandes rasgos las restricciones del sistema al momento de su implementación para este proceso de negocio de la organización.
Ilustración 21: Punto Vista Realización Objetivos
Fuente: Los Autores
3.5.4. Punto de Vista de Contribución de Objetivos
El presente punto de vista permite modelar las relaciones influyentes entre objetivos y requerimientos. Las vistas resultantes pueden ser usadas para analizar el impacto
que tienen los objetivos. Se observa en este punto de vista como se generan nuevos objetivos a partir de los
requerimientos, se toman dos requerimientos de los cuales se muestran sus objetivos positivos y negativos. Se pueden crear objetivos negativos ya que se
pueden cruzar los requerimientos con los objetivos.
Ilustración 22: Punto Vista Contribución Objetivos
Fuente: Los Autores
3.5.5. Punto de Vista de Motivación
El punto de vista permite modelar aspectos generales como una vista completa de los aspectos motivacionales relacionando a las partes interesadas, sus objetos
primarios, los principios que aplican y los requerimientos principales en servicios, procesos, aplicaciones y objetos.
Para el último modelo de la capa de motivación observamos un complemento de stakeholders, motivadores, valores, restricciones, objetivo y requerimientos. Todos
ellos unidos de manera lógica en base a un objetivo principal.
Ilustración 23: Punto Vista Motivación
Fuente: Los Autores
3.6. Capa de Proyecto
La capa de proyecto incluye conceptos para modelar la implementación de
programas y los proyectos que soportan dicho programa, portafolio, gestión de proyectos y el concepto de platea para soportar la planeación de migraciones.
3.6.1. Punto de Vista de Proyecto
El punto de vista de proyecto es usado principalmente para modelar la gestión del cambio de arquitectura. La Arquitectura del proceso de migración de una vieja
situación (estado actual de la arquitectura empresarial) a una nueva y deseada situación tiene consecuencias significativas en el mediano y largo plazo de la estrategia de crecimiento puesto que realizar la Arquitectura empresarial para toda
una organización es un proceso que puede tardar a nos y es necesario el entero compromiso de todas las partes interesadas.
El presente modelo muestra una vista general el objetivo del proyecto, el cual es
construir una aplicación.
Ilustración 24: Punto de Vista de Proyecto
Fuente: Los Autores
3.6.2. Punto de Vista de Migración
El punto de vista de migración implica modelos y conceptos que pueden ser usados para especificar la transición de una arquitectura existente a una arquitectura
deseada. Los conceptos principales modelados son las planteadas (hitos del proyecto) y las brechas (dificultades que deben ser superadas).
En este punto de vista observamos el estado actual de la organización a nivel de plataforma web y el esquema de brecha para la transición entre el estado actual y
el estado final.
Ilustración 25: Punto Vista Migración Fuente: Los Autores
3.6.2. Punto de Vista de migración e implementación
El presente punto de vista es usado para relacionar programas y proyectos con las partes de la arquitectura que ellos implementan. Esta vista permite modelar el alcance de programas, proyectos, actividades de proyectos en términos de las
plateas que son realizadas o los elementos individuales de arquitectura que son afectados.
Para este último modelo observamos un diagrama completo entre objetivo organizacional, entregable y análisis de brecha según los hitos de la
implementación.
Ilustración 26: Punto de Vista de migración e implementación
Fuente: Los Autores
CAPÍTULO 4. DETALLE DE LA SOLUCION
4.1. Metodología de Desarrollo RUP
Para el proyecto “PROTOTIPO WEB”, se definió la metodología RUP. Ya que,
gracias a la claridad en los requerimientos y el alcance definido, no se ejecutaron
variaciones en el tiempo de la ejecución del proyecto. Por esta razón se definió esta metodología para llevar a fin término este proyecto bajo el tiempo y el alcance estimado.
El proyecto pudo ser correctamente ejecutado siguiendo el ciclo de vida en cascada
como se define en las siguientes fases:
Ilustración 27: Fases RUP Clásica
Fuente: Los Autores Requerimientos: Se analizan las necesidades de los usuarios del software para ver
los objetivos a cumplir. Análisis: Descomposición y organización del sistema en elementos que se
elaboren por separado. Diseño: Se crean los algoritmos para cumplir los requerimientos del usuario y
análisis que permitan saber las herramientas a utilizar.
Codificación: Se programan los algoritmos y códigos, mediante prototipos,
ensayos y errores. Prueba: Se ensamblan los elementos programados para comprobar el buen
funcionamiento.
4.2. Requerimientos funcionales y no funcionales
Requerimientos funcionales
Los requerimientos funcionales arquitecturalmente significantes que impactan la
arquitectura teniendo asociación a funcionalidades o características críticas, esfuerzos como la integración, riesgos en particular o que están influenciados fuertemente por los requerimientos no funcionales, son:
REQ01 Consulta de información
El sistema permitirá el ingreso de una oración de consulta en lenguaje natural. REQ02. Respuesta sobre la consulta de información
En caso de que el sistema encuentre información sobre la consulta realizada, se debe informar la respuesta mediante lenguaje natural.
REQ03. Independencia en el uso de acentos
REQ04. Trazabilidad de las conversaciones El sistema guardara en un log histórico, la conversación realizada entre el usuario y
el chatbot. REQ05. Base de conocimiento
El sistema tendrá un conjunto den preguntas y respuestas, que se utilizará para mantener la conversación entre el usuario y el chatbot
Requerimientos no funcionales
Los requerimientos no funcionales del sistema “PROTOTIPO WEB” se representan a continuación en términos de atributos de calidad.
Rendimiento:
Una respuesta a un usuario no puede tomar más de 30 segundos en procesarse.
La información consultada debe ser actualizada permanente y simultáneamente, sin que se afecte el tiempo de respuesta de las solicitudes.
Disponibilidad
El sistema debe estar disponible el tiempo estipulado modo 7x24.
Multiplataforma
La aplicación podrá ser ejecutada desde cualquier entorno que tenga la posibilidad de ejecutar JavaScript, entre los cuales se encuentran los 3
navegadores más frecuentes Chrome, Safari, Firefox, incluso se podrá llegar a ejecutar desde tabletas y móviles que soporten esta tecnología.
Concurrencia
La aplicación debe soportar el ingreso de 100 usuarios concurrentes realizando consultas.
Seguridad
La solución debe estar diseñada para garantizar la disponibilidad y prever de ataques que indispongan el sistema.
Escalabilidad
El sistema está diseñado para que en el futuro se integren nuevas bases de
conocimientos sobre otros colegios.
4.4. Análisis y Diseño de la solución
El análisis y diseño de la solución fue el proceso más importante durante la
construcción. En este se realizaron tareas propias de esta fase del ciclo de vida y para este propósito se llevó a cabo un proceso de entendimiento de las necesidades
del problema, interpretación y análisis de los resultados obtenidos durante las actividades de recolección de información, adopción de conocimientos propios de la tecnología a utilizar y planteamiento de soluciones.
Como insumo principal para el análisis se realizó una tarea de levantamiento de
requerimientos, los cuales se documentaron en casos de uso que manifiestan las necesidades de los actores del negocio y a partir de ello se plantearon los modelos que soportaran la solución propuesta.
Se realizó como apoyo a la fase de codificación la creación de diagramas UML
(Lenguaje Unificado de Modelado). Con el fin de presentar un lenguaje visual común, comprensible por los desarrolladores de software, usuarios de negocios y demás personas que quisieran entender el sistema.
4.4.1. Diagrama de casos de uso
La solución cuenta con los siguientes componentes:
Usuario
Chat bot
Web Api
Servicios Web
Base de Datos
En la siguiente ilustración se describe las operaciones que realizan los usuarios
(padres de familia, administrador) en la interacción con la plataforma, nombradas a un alto nivel en donde posteriormente en la descripción de los casos de uso, se detalla el proceso de la operación.
Ilustración 28. Diagrama de caso de uso Chatbot
Fuente: Los Autores
CU-01 Consulta de Información
Versión 1.0 (12/08/2018) Dependencias Precondición Inicio asistente virtual.
Descripción El sistema deberá comportarse como se describe en el siguiente caso de uso, cuando la información solicitada está disponible en el chatbot.
Secuencia
normal
Paso Acción
1 El usuario escribe en el cuadro de dialogo o habla presionando el botón del
micrófono.
2 Pulsar “Enter” o si el usuario esta con el micrófono se
envía la pregunta automáticamente.
3 Se envía sincrónicamente
la petición mediante HTTP al servidor.
4 Se obtiene respuesta Pos condición Se muestra la respuesta al usuario. Excepciones Paso Acción
4 En el caso de que el
componente chatbot no responda, continuara la ejecución del programa,
solicitando una nueva oración.
CU-02 Respuesta sobre la consulta
Versión 1.0 (12/08/2018) Dependencias Precondición CU-01 no se encuentra respuesta Descripción El sistema comprobará si existe alguna palabra clave en la
base de conocimiento y responderá al usuario. Secuencia
normal
Paso Acción
1 Se realiza petición síncrona HTTP al servidor.
2 Se analizará la oración,
identificando los elementos clave.
3 Búsqueda de elementos en
la base de datos.
4 Se obtiene respuesta Postcondición Se muestra la respuesta al usuario. Excepciones Paso Acción
2 Si el módulo de análisis, no encuentra elementos clave,
solicita otra oración.
3 Si no se encuentra
información en la base de datos, se pedirá al usuario que ingrese otros términos
de búsqueda. CU-03 Actualizar base de conocimiento de preguntas
Versión 1.0 (12/08/2018) Dependencias Precondición Descripción Se deberán seguir los siguientes pasos para actualizar la base
de conocimiento de preguntas, no es necesario detener el
chatbot. Secuencia normal
Paso Acción
1 Realizar una copia de
seguridad.
2 Revisar la base histórica conversacional del chatbot,
para extraer preguntas de conocimiento.
3 Crear script “.sql”, con la
nueva base de preguntas.
4 Ejecutar el script “.sql” y comprobar resultado de respuesta.
5 Comprobar el correcto
funcionamiento del chatbot. Postcondición Se puede utilizar correctamente la aplicación, con la nueva
base de conocimiento de preguntas. Excepciones Paso Acción
5 En caso de un
comportamiento no esperado, cargar la copia
de seguridad de la base de datos.
CU-04 Actualizar base de conocimiento de repuestas
Versión 1.0 (12/08/2018) Dependencias Precondición Descripción Se deberán seguir los siguientes pasos para actualizar la base
de conocimiento de respuestas, no es necesario detener el
chatbot. Secuencia normal
Paso Acción
1 Realizar una copia de
seguridad.
2 Revisar la base histórica conversacional del chatbot, para extraer preguntas de
conocimiento y así definir las respuestas que se
pueden informar al usuario.
3 Crear script “.sql”, con la nueva base de respuestas.
4 Ejecutar el script “.sql” y
comprobar resultado de respuesta.
5 Comprobar el correcto funcionamiento del chatbot.
Postcondición Se puede utilizar correctamente la aplicación, con la nueva
base de conocimiento de respuestas. Excepciones Paso Acción
5 En caso de un comportamiento no
esperado, cargar la copia de seguridad de la base de
datos.
4.4.2. Diagrama de actividades
Presenta los procesos de negocios a un alto nivel, direccionándolo sobre el movimiento de datos. Las acciones son representadas a un alto nivel del sistema, plasmando las tareas sobre un flujo de acciones.
Ilustración 29: Diagrama de actividades
Fuente: Los Autores
4.4.3. Diagrama de componentes
Se muestra la vista de la solución a partir de elementos funcionales, de forma
atómica. Esta vista muestra las responsabilidades por componentes, abstrayendo la arquitectura por funcionalidades.
A continuación, se presenta el diagrama de componentes que ilustra cada una de estas funcionalidades con la responsabilidad individual para el proyecto Prototipo
Web.
Ilustración 30: Diagrama de componentes
Fuente: Los Autores
4.4.4. Diagrama de despliegue
Describe la implementación física de la información generada por el prototipo Web
en los componentes de hardware. A la información que genera la aplicación se la conoce como artefacto.
Ilustración 31: Diagrama de despliegue
Fuente: Los Autores 4.3. Tecnología Utilizada
Este ítem detalla la tecnología utilizada para la construcción del producto. Se describen aspectos importantes definidos en el diseño de solución.
4.3.1. Chatbot
Este ítem está indicado inicialmente en el documento. En este punto se describen las funciones que realizan y como está estructurada esta tecnología para su
implementación en la solución planteada. “Un asistente virtual se puede implementar en los lenguajes más comunes de
programación como pueden ser Java, C, Python, pero estos lenguajes no están especializados en procesamiento de lenguaje, y menos en programación de
chatbots. En este apartado la decisión tecnológica fue fácil, el lenguaje de programación para chatbots más extendido es AIML (Artificial Intelligence Mark-up Language) se pueden encontrar numerosas comunidades con tutoriales y
ejemplos. Es un lenguaje muy básico pero muy potente, está basado en XML, y su
propósito es crear una base de conocimiento para dar respuesta mediante patrones”. [9]
4.3.2. Funcionamiento de AIML
AIML (Inteligencia Artificial Lenguaje de Marcado), es un estándar XML para la definición de chatbot respuestas. Se basa específicamente en conceptos de
conocimiento similar a la del cerebro humano. [9] Tiene tres componentes básicos que son:
Categorías
Son las unidades fundamentales de conocimiento, es la etiqueta que marca el inicio de una regla de conocimiento que contiene al menos un patrón y una plantilla.
Etiqueta: <category> Patrones
El lenguaje AIML se basa en patrones. La entrada de texto es comparada con los patrones, estos son expresiones en lenguaje formal que puede contener:
1. Lenguaje natural en mayúsculas. 2. El símbolo “*” que equivale a una o más palabras.
3. El símbolo “_”es igual que “*” pero prevalece. 4. <name/> que es reemplazado cuando se carga por el nombre del chatbot.
Etiqueta: <pattern> Plantillas
Si se tiene una coincidencia con este patrón, la respuesta del chatbot se sitúa en la
en la descripción de la plantilla.
Etiqueta: <template>
Ilustración 32: Lista de AIML etiquetas de plantilla. Fuente: http://es.botlibre.com/manual-aiml.jsp
AIML define como un robot debe responder a una pregunta con <patrón> y
<plantilla> elementos. Un patrón representa al usuario de la pregunta, y la plantilla
define el bot de la respuesta. El patrón y la plantilla de elementos se agrupan en una categoría de elemento, que se pueden agrupar bajo el tema de los elementos .
[9]
Ilustración 33: Lista de AIML patrón de los operadores
Fuente: http://es.botlibre.com/manual-aiml.jsp
Ejemplos
Aquí es un simple 'Hola' AIML ejemplo:
Este código hara responder al bot con "Hola, como estas?.
<aiml>
<category>
<pattern>Hola</pattern> <template>Hola como estas?</template>
</category>
</aiml> Ejemplo 1: (Básico)
<category>
<pattern>HOLA</pattern> <template> Bienvenido, espero poder ayudarte. </template>
</category>
En este caso si el usuario enviara el mensaje de “Hola”, el chatbot respondería con
“Bienvenido, espero poder ayudarte.”
Tú: Hola
BOT: Bienvenido, espero poder ayudarte.
A partir del ejemplo se pueden ir complicando con etiquetas que aportan otras
funcionalidades como son:
“<star/>”, esta etiqueta es sustituida por las palabras que coinciden con “*”
“<srai>X</srai>” llama recursivamente al patrón que coincide con X “<sr/>” = <srai><star/></srai>
Con estos nuevos elementos podemos ver que se pueden crear ejemplos más complejos. Ejemplo 2: (Recursividad)
El Input del usuario es: -Esto es una prueba para Buscando Colegió
Ilustración 34: Recursividad AIML
Fuente: https://faustol.wordpress.com/2007/09/05/anlisis-sintctico-descendente-ll1/
Partiendo de que el nombre del chatbot es Buscando Colegió la recursión iría realizando las siguientes llamadas:
Paso 1:<sr/>=ESTO ES UNA PRUEBA PARA
Paso2: <sr/>=ESTO ES UNA PRUEBA Paso3:<sr/>=UNA PRUEBA
La respuesta final es: “Ejemplo 2 Fin” Partiendo de que el nombre del chatbot es Buscando Colegió la recursión iría
realizando las siguientes llamadas:
Paso 1:<sr/>=ESTO ES UNA PRUEBA PARA Paso2: <sr/>=ESTO ES UNA PRUEBA Paso3:<sr/>=UNA PRUEBA
La respuesta final es:“Ejemplo 2 Fin”
Otras etiquetas bastante prácticas son: “<that></that>”, se utiliza como un patrón, pero de lo que dijo previamente el chatbot, frecuentemente se utiliza para preguntas.
Ejemplo 3:
<category> <pattern>TOCK TOCK</pattern>
<template>Quién es?</template> </category>
<category> <pattern>*</pattern>
<that>¿Quién es?</that> <template>Sabía que eras tú, <star/></template>
</category> Diálogo:
-Tock tock .¿Quién es?
-Luis .Sabía que eras tú, Luis “<random><li></li></random>”, permite responder aleatoriamente una de las
respuestas entre las etiquetas <li> Ejemplo 4:
<category>
<pattern>¿QUÉ TAL TE ENCUENTRAS HOY?</pattern> <template>
<random> <li>Bien </li> <li>Regular </li> <li>Mal </li> </random> </template> </category>
Dialogo:
-¿Qué tal te encuentras hoy? .Bien
-¿Qué tal te encuentras hoy? .Mal -¿Qué tal te encuentras hoy?
.Bien
Se hace una descripción bajo patrones AIML que se pueden visualizar en el ANEXO 1: AIML PATRONES MANEJO BAJO OPERADORES
4.3.3. Dialogflow
Es una herramienta (Api), que permite la creación de Chatbots muy fácilmente.
Permite crear interfaces conversacionales. Se basa en tecnología de Google para crear estos tipos de sistemas reconociendo lenguaje natural.
Dialogflow es un paquete de desarrollo integral que permite crear interfaces de
conversación para sitios web, aplicaciones móviles, plataformas de mensajería populares y dispositivos de Internet de las Cosas. Puedes utilizarlo para diseñar
interfaces (por ejemplo, robots de conversación) que ofrezcan una interacción profunda y natural entre los usuarios y tu empresa. Gracias al aprendizaje
automático, Dialogflow puede reconocer la intención y el contexto de las palabras de un usuario para que tu interfaz de conversación responda con precisión y eficacia. [9]
Principal ventaja de Dialogflow frente a otras plataformas
Dialogflow permite establecer normas de reconocimiento natural del lenguaje y
varias respuestas naturales.
Ejemplo:
Con herramientas básicas:
Si el usuario dice “Hola cómo te llamas”, entonces responde “Me llamo robot”.
Con Dialogflow: si el usuario pregunta por mi nombre entonces responde “Me llamo robot”, o “Mi nombre es robot”, o “Yo no me llamo, siempre comunico, pero otros me llaman robot”.
Conceptos básicos:
“Agentes. Los agentes son como proyectos o como módulos de reconocimiento
natural del lenguaje. En bots sencillos, un agente bastará para agruparlo todo. Sin embargo, en proyectos más grandes, podrías tener varios agentes para un mismo
proyecto (marca, tienda, cuenta), cada uno de ellos agrupando una particularidad o intención común de la conversación. Por ejemplo, este agente podría ser “Agente de atención al cliente”. [10]
Intents. Son las intenciones del cliente o, dicho de otra forma, qué es lo que quiere.
Aquí definimos las posibles preguntas o peticiones de los clientes y qué posibles respuestas. Por ejemplo: si pregunta por el estado de un pedido. [10]
Entities. Las entidades son las herramientas de que disponemos para extraer parámetros o variables de lo que ha dicho el usuario. Por ejemplo, cuando un
usuario diga “Quiero consultar el estado del pedido con ID 0237908” se usa las entidades para extraer el valor del ID del pedido en lo que está diciendo el usuario. [10]
Actions. Las acciones es lo que hacemos cuando se detecta una intención de un
usuario. Cuando lo que dice el usuario se corresponde con un Intent, entonces se extraen los parámetros y se pasan a la acción que hayas definido, que puede ser “responde esto” o incluso conecta con tal servicio online y pide la respuesta con una
petición de API.[10]
Contexts. Los contextos de esta herramienta permiten definir intenciones en función del contexto de la conversación. ¿Qué? Espera, te cuento. Imagina que el usuario poner robot. ¿A qué se refiere? ¿Es su nombre? ¿El de su novio? En una
conversación normal que se deduce por lo que se ha hablado justo antes, ¿verdad? Mi novia se llama Consuelo, ¿y el tuyo? robot. Pues eso son los contextos, una
forma de relacionar y hacer fluida la conversación. [10] Fullfillment. Permite hacerlo todo desde su plataforma en plan si el usuario dice, tú
respondes. Pero, por norma general, el usuario no querrá respuestas predefinidas sino más bien respuestas para su caso particular. De poco serviría hacer un chatbot
al que se le preguntes “¿Dónde está mi pedido?” y la respuesta siempre fuese “Envíanos un correo a”. ¿Me sigues? Pues bien, DIalogflow te permite enviar peticiones a Webhooks (que ya sabes lo que es) para que la respuesta sea mucho
más natural al recuperar la información, por ejemplo, de tu Prestashop.[10]
Ilustración 35: Visión general del funcionamiento de Dialogflow
Fuente: https://javilopezg.com/tag/dialogflow/
4.3.4. Motor de búsqueda
Cuando se habla de búsqueda, se puede definir como software enfocado a la búsqueda de recursos expuestos en la red mediante palabras clave. Cuando
hablamos de recursos, podemos decir que los hay de diferentes tipos: videos, documentos, imágenes etc.
La gestión de búsqueda de la solución (chatbot) está bajo tecnología Google. En la interfaz de la plataforma se crea el asistente (agente) de AI virtual. Cada asistente
se con habilidades específicas, estas también se van aprendiendo en la interacción con él. Se llama “agente”. [8]
Ilustración 36: Google Cloud Platform. Creación de agente
Fuente: https://console.dialogflow.com/
Al crear el agente, se crean unos intents por defecto. Estos se encargan de
procesar las solicitudes de los usuarios. Los “intents” (intenciones) permite crear conexiones entre las entidades y lo que el usuario dijo en lenguaje natural con las
acciones que quieres que haga el programa. [8]
4.3.5. Resumen Herramientas
Las versiones de las herramientas que se han utilizado son las siguientes:
Hosting
Dialogflow (Chatbot)
Portal Web
Servidor Node Js
Bases de Datos Sql Server
PARTE III CIERRE DE LA INVESTIGACIÓN
CAPÍTULO 5. RESULTADOS Y DISCUSIÓN
A partir de la definición de requerimientos por medio de la metodología de desarrollo
de software (RUP Clásica), la definición de la arquitectura empresarial orientada al proceso de autoevaluación y el levantamiento de la información del contexto del problema, se logra construir un prototipo Web capaz de permitir interactuar bajo un
lenguaje natural y bajo criterios de búsqueda. Este prototipo de aplicación es la implementación a la problemática planteada Se da por finalizada la construcción del
prototipo dando cumplimiento al alcance del problema. Se mencionan los resultados alcanzados más destacados de la investigación:
Apropiar del conocimiento de integración de chatbot en una aplicación Web
para el sistema planteado.
Conocer de las necesidades de las personas a la hora de escoger colegios
Construir una aplicación Web que integra inteligencia artificial para la
búsqueda y respuesta de información a usuarios.
Construir una aplicación web y de servicios que permite gestionar interacción similar a la humana.
Motivar la construcción de este tipo aplicaci9ones bajo servicio web que permita la integración de diferentes fuentes de datos.
CAPÍTULO 6. CONCLUSIONES
5.1. Verificación, contraste y evaluación de objetivos
Durante el desarrollo de la investigación se llevaron a cabo actividades que han
podido dar como resultado el producto planteado en el objetivo principal. Se describe información general del trabajo realizado:
La implementación de un modelo de afinidad basado en un modelo de
orientación para la búsqueda de colegios y soportado en un sistema conversacional automático (Chatbot) apoya de una manera interactiva a los padres de familia que en la actualidad realizan la búsqueda de colegio para
sus hijos, teniendo información centralizada que en la actualidad no es posible.
Con el auge y el uso de los chatbots, se visualiza un cambio profundo y radical en la forma en que las personas se comunican e interactúan en la
web. Como también la forma en que en la interacción disponen de información específica, que poyan a la toma de decisiones como lo es en
este caso la búsqueda de colegio.
El uso de un chatbot como plataforma de implementación de un tema tan
importante como la orientación de selección de colegio, que cumpla con las expectativas de los padres de familia ayuda que las tecnologías de
información apoyen los procesos de selección de acuerdo con criterios dados, promoviendo la mejor elección de estudio para su hijo en su vida académica, lo cual facilite su desarrollo de habilidades duras y blandas.
La investigación, base del proyecto centro su interés en la contribución del
conocimiento sobre la aplicación de técnicas y modelos de inteligencia artificial en el diseño de un sistema de orientación inteligente que contribuye
a la búsqueda de colegio de acuerdo a criterios de búsqueda, teniendo en cuenta variables como: colegio bilingüe, Jornada, Calendario etc...
El estudio de los modelos y técnicas aplicables a sistemas inteligentes da un avance del “estado del arte” sobre nuevos conocimientos, tanto en lo relativo
a la representación de este sistema que pueda dar lugar a nuevos desarrollos teóricos y la construcción de aplicaciones de mayor calidad.
Además, se analizó técnicas basadas en inteligencia artificial, así como en la integración de estas, en la arquitectura de sistemas inteligentes que permitan incluir
aspectos de aprendizaje y enseñanza vinculándolos con otros parámetros propios del estudiante que son objeto de estudio.
ArchiMate es un lenguaje que nos brinda una guía para modelar la arquitectura de
un sistema de información o de una empresa en general, no obstante, se requiere tener claro el enfoque, los procesos y las tecnologías que se van a implementar, así
como el contexto dentro del cual se trabajara para evitar ambigüedades en la diagramación.
5.2. Síntesis del modelo propuesto
Como resultado podemos observar que aunque en el país se han realizado diferentes proyectos que puedan servir como apoyo al momento de buscar y elegir
colegio para un niño, aún hace falta más conocimiento y divulgación de las diferentes plataformas y a la vez estas sean más usables, lo cual facilite la utilización y por ende brinde orientación, es por esto que realizar la implementación sobre una
plataforma de fácil acceso y que brinde una conversación tipo chat, esto representa una oportunidad para que la plataforma y el modelo estén al alcance de más
personas de una forma más fácil. La verificación de la efectividad del Bot es un proceso a largo plazo, se debe realizar
la prueba sobre padres de familia en que sus hijos están próximos a iniciar su proceso académico, y luego realizar un seguimiento en los primeros meses, para
verificar que tan acertado fue el modelo al momento que se realizó. Se construyó la solución (Prototipo Web) basada en una arquitectura
cliente/servidor, en la que el servidor aloja una aplicación Web y a su vez esta integra el chatbot. La aplicación conversacional integra servicios como Api's para
realizar consultas a una base de información. El lado del cliente está definido por una aplicación WEB.
La implementación de un chatbot y el apalancamiento en la posibilidad de realizar integración con las redes sociales hace que el software pueda llegar a más personas
y a futuro pueda llegar a difundirse en todo el territorio colombiano y por qué no, poder llegar a convertirlo en modelo de referencia al momento de seleccionar el colegio para sus hijos.
Revisar ANEXO 2 DISEÑO DE LA ENCUESTA APLICADA, ANEXO 3 ENCUESTA APLICADA y ANEXO 4 RESULTADOS DE LA ENCUESTA.
5.3. Aportes Originales
El proyecto “DESARROLLO DE PROTOTIPO WEB, DE UN SISTEMA RECOMENDADOR PARA LA BÚSQUEDA DE COLEGIOS”, utiliza tecnologías innovadoras y de vanguardia que permiten implementar soluciones bajo tecnología
de punta para una amplia gama de áreas. Algunos de los aportes más destacados del proyecto:
Se construyó una aplicación para apoyar a la búsqueda de colegios a través
de un sistema conversacional “chatbot”.
Creación de una aplicación conversacional funcional, moderna y con proyección para convertirse en una base de búsqueda en esta área de
educación.
Propuesta de un mecanismo apoyado en la tecnología para realizar
búsquedas de colegio, bajo criterios específicos de búsqueda.
Prever un cambio profundo y radical de como las personas realizan las
búsqueda y selección de un colegio.
5.4. Trabajos o Publicaciones Derivadas
Como un trabajo derivado de este proyecto, se implementó bajo tecnología Google (Dialogflow) el prototipo Web de búsqueda de colegios, para evaluar su
funcionamiento desde cualquier navegador.
CAPÍTULO 7. PROSPECTIVA DEL TRABAJO
6.1. Líneas de investigación futuras
Se detectaron las siguientes líneas de investigación:
Construcción de soluciones que utilicen la tecnología de inteligencia artificial
bajo chatbot en diferentes áreas y sectores.
Integración con herramientas como google maps para que adicional a la
información se permita mostrar la ubicación.
Desarrollo de aplicaciones bajo esta tecnología que permita buscar otro tipo de información.
Integración con herramientas de entrada de voz para personas con discapacidad visual.
Integrar una mayor empatía humana y diálogos cotidianos en los chatbot,
bajo Inteligencia Artificial en la comunicación del servicio al cliente de los diferentes sectores.
Desarrollo de menús personalizados e integración con sistemas académicos, redes sociales y sistemas financieros.
6.2. Trabajos de investigación futuros
Es presente trabajo fue desarrollado dentro de un tiempo limitado a la duración de la especialización por tal motivo fue necesario limitar la implementación a un
prototipo del software, el cual está orientado brindar la orientación de búsqueda de colegios privados basado en un modelo de afinidad en la ciudad de Bogotá D.C.
Por lo anterior se proyecta que en un futuro cercano se pueda realizar la implementación de las siguientes actividades las cuales permitirán ampliar el
prototipo aumentando la cobertura en cuanto a ciudades y colegios.
Ampliar la cobertura de las ciudades a nivel nacional, puesto que al ser una herramienta web se puede hacer desde cualquier lugar con conexión a
internet.
Involucrar a los colegios oficiales y privados a nivel nacional en el proyecto para llegar a una mayor cantidad de usuarios.
Establecer convenios interinstitucionales a nivel nacional con el fin de
aumentar los recursos disponibles para la ejecución y divulgación del proyecto
El modelo de datos se diseñó de tal manera que pueda ser escalable a cualquier sistema que permita realizar una prueba basado en información de entidades, esto
conlleva a que el sistema puede extenderse para ser utilizado como una plataforma de búsqueda de información con preguntas y respuestas para diversos temas sobre entidades como universidades, bancos, entidades del estado, lo cual podría ser
configurable usando el modelo de datos y la plataforma.
BIBLIOGRAFÍA
[1] «Pandorabots,» 2008. [En línea]. Available: https://www.pandorabots.com/docs/aiml/aiml-basics.html.
[2] «El economista,» 13 04 2016. [En línea]. Available:
http://www.eleconomista.es/tecnologia/noticias/7488529/04/16/Que-son-exactamente-los-chatbots-y-para-que-sirven.html.
[3] TECHCETERA, «https://techcetera.co/bots-y-eso-para-que-sirve/,» ¿Bots y eso para qué sirve?, vol. I, nº 1, pp. 1-4, 2018.
[4] Google, «Dialogflow,» Case studies, vol. I, nº 1, p. 1, 2016.
[5] «7 Técnicas de levantamiento de requerimientos software,» PMOInformática, 03 08 2016. [En línea]. Available:
http://www.pmoinformatica.com/2016/08/tecnicas-levantamiento-requerimientos.html. [Último acceso: 05 11 2018].
[6] L. Olarte Gervacio, «Clasificación de software de sistemas y aplicaciones,»
conogasi, 02 04 2018. [En línea]. Available: http://conogasi.org/articulos/clasificacion-de-software-de-sistemas-y-
aplicaciones/. [Último acceso: 10 11 2018].
[7] «BOtlibre!,» 26 07 2018. [En línea]. Available: http://es.botlibre.com/manua l-aiml.jsp. [Último acceso: 02 11 2018].
[8] IBM, «Kit de desarrolladores de software (SDK) de IBM,» 11 2016. [En línea]. Available:
https://www.ibm.com/support/knowledgecenter/es/SSYKE2_8.0.0/com.ibm.java.80.doc/user/java_sdk.html.
[9] J. C. Cobos Torres, «Integración de un chatbot como habilidad de un robot
social con gestor de diálogos,» 10 2013. [En línea]. Available: http://repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T-
SENESCYT-000332.pdf.
[10] L. E. Cubero Caba, «eprints,» 2015. [En línea]. Available: https://eprints.ucm.es/32448/1/Asistente%20Virtual%20%28chatbot%29%20
para%20la%20Web%20de%20la%20Facultad%20de%20Inform%C3%A1tica%28Luis%20Enrique%20Cubero%20Final%29.pdf. [Último acceso: 02 11
2018].
[11] V. Campuzano, «Dialogflow: la herramienta de Google para crear chatbots – Guía 2018,» 2018. [En línea]. Available: https://vicampuzano.com/dialogflow/.
[Último acceso: 01 11 2018].
[12] L. Ares, «Visual Engineering,» 24 04 2018. [En línea]. Available:
https://www.nubalia.com/que-es-dialogflow-asistente-virtual-google/. [Último acceso: 20 10 2018].
[13] «Los mejores colegios,» 2018. [En línea]. Available:
http://losmejorescolegios.com/colegios/.
[14] «Enter,» 25 08 2014. [En línea]. Available: http://www.enter.co/cultura -
digital/colombia-digital/encuentre-colegio-para-sus-hijos-con-la-aplicacion-colombian-schools/.
[15] «AI and Machine Learning Products,» Google Cloud, 2018. [En línea]. Available: https://cloud.google.com/dialogflow-enterprise. [Último acceso: 02 11 2018].
[16] Anthony & Cols, 1984. [En línea]. Available: http://www.sie.es/crl/archivo_pdf/ORIENTACION%20VOCACIONAL.pdf.
[17] L. Duran, «ORIENTACION VOCACIONAL,» 17 11 2008. [En línea]. Available: http://orientacionvocacionalccsa.blogspot.com/2008/11/historia-de-lo-orientacin-vocacional.html.
[18] S. Arteaga, «Los mejores navegadores de 2018,» computerhoy.com/listas/tecnologia/mejores-navegadores-2018-274789,
España, 2018.
ANEXOS
ANEXO 1 AIML PATRONES MANEJO BAJO OPERADORES
Ejemplos
Aquí es un simple 'Hola Mundo' AIML ejemplo: Este código hará que su bot responder con "Hola a ti también' a la pregunta 'Hola
Mundo'. <aiml> <category> <pattern>HELLO WORLD</pattern> <template>Hello to you too</template> </category> </aiml>
Aquí es un simple ejemplo de comodín: Este código hará que su bot responder con "Hola a ti también" a cualquier
pregunta que contengan la palabra 'hola'. <aiml> <category> <pattern>* HELLO *</pattern> <template>Hello to you too</template> </category> </aiml>
Aquí es una broma 'que' ejemplo:
Este código hará que su bot contar un chiste. <aiml> <category> <pattern>TELL ME A JOKE</pattern> <template>Why did the chicken cross the road?</template> </category> <category> <pattern>* WHY *</pattern> <that>Why did the chicken cross the road?</that> <template>To get to the other side.</template> </category> </aiml>
Aquí es un complejo ejemplo de plantilla:
Este código hará que el robot responder a la pregunta "¿te gustan las manzanas o
¿te gustan las naranjas' con 'me encantan las manzanas y me encantan las naranjas'.
<aiml> <category>
<pattern>* OR *</pattern> <template><srai><star/></srai> and <srai><star index="2"/></srai></template> </category> <category> <pattern>DO YOU LIKE *</pattern> <template>I love <star/></template> </category> </aiml>
^ y # Comodines
<category> <pattern>^ aiml ^</pattern> <template>AIML is cool.</template> </category> <category> <pattern>^ chat bot^</pattern> <template>Yes, I am a chat bot.</template> </category>
$ Prioridad <category> <pattern># sex #</pattern> <template>I'm not that kind of bot.</template> </category> <category> <pattern>$what is your sex</pattern> <template>I am female.</template> </category>
() y [] Listas de
<category> <pattern>do [you u] (really) [like love luv lv] me</pattern> <template>Yes, I love you.</template> </category>
Expresiones regulares
<category> <pattern>my email is /.+\@.+\..+</pattern> <template>That is a valid email</template> </category>
Conjuntos de <category> <pattern>I am <set>name</set></pattern> <template>Pleased to meet you <star/>.</template> </category> <category>
<pattern><set>number</set> + <set>number</set></pattern> <template><srai>addition <star/> <star index="2"/></srai></template> </category>
AIML plantilla para establecer un conocimiento del tipo de objeto:
<category> <pattern>load animals</pattern> <template> <think> <map name="meaning" value="dog">dog</map><map name="instantiation" value="animal"><map name="meaning">dog</map></map> <map name="meaning" value="dog">doggy</map> <map name="meaning" value="cat">cat</map><map name="instantiation" value="animal"><map name="meaning">cat</map></map> </think> </template> </category>
Patrón etiquetas
<category> <pattern><bot name="name"/></pattern> <template>Yes, that's my name.</template> </category> <category> <pattern>I am </pattern> <template>That is my age too.</template> </category> <category> <pattern></pattern> <template>You are repeating yourself.</template> </category> <category> <pattern><response/></pattern> <template>Please don't repeat me.</template> </category>
Atributos como Elementos <category> <pattern>My * is *</pattern> <template>I will remember that your <star/> is <star index="2"/><think><set><name><star/></name><star index="2"/></set></think></template> </category> <category> <pattern>What is my *</pattern> <template>Your <star/> is <get><name><star/></name></get></template>
</category>
Mapas
<category> <pattern>what is the capital of <set>country</set></pattern>
<template>The capital of <star/> in <map name="capital"><star/></map>.</template> </category>
Bot Libre se extiende el mapa de la operación a la que también permiten establecer el mapa de valor. De esta forma se establecerá el valor de una relación
en el conocimiento del objeto. <category> <pattern>the opposite of * is *</pattern> <template>Okay, the opposite of <star/> is <star index="2"/>. <think><map name="opposite"><value><star index="2"/></value><star/></map></think> </template> </category> <category> <pattern>what is the opposite of *</pattern> <template>the opposite of <star/> is <map name="opposite"><star/></map> </template> </category>
Condiciones y Bucles
<category> <pattern>count down from <set>number</set></pattern> <template> <think><set var="count"><star/></set></think> <condition var="count"> <li value="5"><think><set var="count">4</set></think>5 <loop/></li> <li value="4"><think><set var="count">3</set></think>4 <loop/></li> <li value="3"><think><set var="count">2</set></think>3 <loop/></li> <li value="2"><think><set var="count">1</set></think>2 <loop/></li> <li value="1"><think><set var="count">0</set></think>1 </li> </condition> </template> </category> <category> <pattern>what is <set>number</set> + <set>number</set></pattern> <template> <think> <set var="result"><star/></set> <set var="count">0</set> </think> <condition var="count"> <li><value><star index="2"/></value></li> <li> <think> <set var="result"><map name="word"><map name="next"><map name="meaning"><get var="result"/></map></map></map></set> <set var="count"><map name="word"><map name="next"><map name="meaning"><get var="count"/></map></map></map></set> </think> <loop/> </li> </condition> The answer is <get var="result"/> </template> </category>
El aprendizaje <category> <pattern>learn question * answer *</pattern> <template> <think> <learn> <category> <pattern><eval><star/></eval></pattern> <template><eval><star index="2"/></eval></template> </category> </learn> </think> Okay, I will answer "<star index="2"/>" to "<star/>" next time </template> </category> <category> <pattern>wrong</pattern> <template>What should I have said?</template> </category> <category> <pattern>*</pattern> <that>what should I have said</that> <template> <think> <learn> <category> <pattern><eval><input index="3"/></eval></pattern> <template><eval><star/></eval></template> </category> </learn> </think> Okay, I will answer "<star/>" to "<input index="3"/>" next time </template> </category>
Sraix <category> <pattern>ask * about *</pattern> <template><star/> says "<sraix default="Timeout or max anonymous API calls exceeded"><botname><star/></botname><star index="2"/></sraix>"</template> </category> <category> <pattern>ask pandorabot * about *</pattern> <template><star/> says "<sraix server="http://www.pandorabots.com" default="Timeout or max anonymous API calls exceeded"><botid><star/></botid><star index="2"/></sraix>"</template> </category>
<category> <pattern>ask pandorabot chomsky about *</pattern> <template>He says "<sraix server="http://www.pandorabots.com" botid="b0dafd24ee35a477" default="Timeout or max anonymous API calls exceeded"><star/></sraix>"</template> </category>
<category> <pattern>wikidata *</pattern> <template><sraix service="wikidata" default="Timeout or missing data"><star/></sraix> </category> <category> <pattern>wikidata * hint *</pattern> <template><sraix service="wikidata" default="Timeout or missing data"><hint><star index="2"/></hint><star/></sraix></template> </category> <category> <pattern>wiktionary *</pattern> <template><sraix service="wiktionary" default="Timeout or missing data"><star/></sraix></template> </category>
Auto
<category> <pattern>what is * + *</pattern> <template><star index="1"/> + <star index="2"/> = <self>star + star</self></template> </category>
Se encuentra en la referencia de información BOTLibre. [10]
ANEXO 2 DISEÑO DE LA ENCUESTA APLICADA
La importancia de la escuela en la constitución de las sociedades ha sido clave y
ampliamente reconocida por los estudiosos del área, ya que a través de ella se constituyen los modelos de ciudadanía y los valores éticos, morales y patrios
indispensables para la perpetuación del sistema social.
Por esta razón es importante realizar un sondeo a nivel investigaciones de lo que se quiere encontrar a la hora de buscar colegio.
Una de las premisas para realizar una encuesta satisfactoria que nos permita analizar la información es direccionarla hacia una población específica:
Padres con niños pequeños que estén en la edad de colegio (Educación
básica primaria).
Personas adultas que tengan familiares que estén en la edad de colegio (Educación básica primaria).
Docentes del área de educación básica primaria.
Nota: Las edades de los niños deben estar entre los 4 a 11 años.
Reglas de redacción del cuestionario
El lenguaje utilizado debe ser acorde con el del sujeto al que se dirige la encuesta, utilizando el vocabulario y términos adecuados. Las preguntas
deben estar redactadas de la forma más corta posible, con el fin de facilitar su lectura y comprensión.
Las preguntas deben plantearse con claridad y de forma inequívoca, un típico error de redacción consiste en incluir dos preguntas en una, lo que conduce a no poder concretar a cual corresponde la respuesta.
Debe empezarse por las preguntas más fáciles o sencillas para pasar después a las más difíciles o complicadas.
Se debe tener un especial cuidado con la información de preguntas que puedan resultar delicadas o embarazosas para el encuestado, redactándolas de forma que pueda obtenerse la información sin provocar un rechazo o una
falsa respuesta. Estas preguntas deben ir, además, al final del cuestionario. No se debe incluir en las preguntas juicios de valor ni afirmaciones que
puedan condicionar las respuestas, ni que puedan verse afectadas por el orden en que figuren dentro del cuestionario.
Las preguntas deben formularse de forma que faciliten tanto el esfuerzo de
memoria que tenga que realizar el encuestado, como en su caso, la realización de cálculos, para evitar errores en las respuestas.
Propósito
Estructurar la encuesta que permitirá identificar los campos más relevantes por la cual los usuarios del prototipo podría usar:
1. ¿Nombre? 2. ¿Edad?
3. ¿Nivel de estudios?
Primaria
Bachillerato
Pregrado
Postgrado
4. Tiene hijos
SI
NO
5. ¿Cuántos hijos?
1
2
3
Más de 3
6. ¿Tiene niños cercanos (familiares) que estén en etapa de colegio (Educación básica primaria)?
SI
NO
7. ¿Cuántos niños relacionaría?
1
2
3
Más de 3
8. ¿Qué características cree usted que son las más importantes a la hora de
seleccionar colegio para un niño? (Seleccione más de una)
Ubicación
Con enfoque a diferentes Idiomas
Ruta
Horario jornada completa
Educación tecnológica
Formación deportiva
Formación cultural
Formación religiosa
Costo
¿Si selecciono costo, cuál sería el valor que de acuerdo a sus necesidades estaría dispuesto a pagar?
¿Si selecciono formación religiosa, cual es el tipo de su elección? Descríbala
(Editable por el usuario)
¿Indique el valor? (Editable por el usuario)
¿Si selecciono que la formación en idiomas es importante, indique que idiomas cree que sería importante?
Ingles
Francés
Alemán
Japonés
Mandarín
Italiano
¿Otro, cuál? (Editable por el usuario)
9. ¿Qué otras características cree que se deberían tomar en cuenta a la hora
de seleccionar colegio para un niño?
Puede escribir más de una.
10. ¿Cuáles cree usted que son los medios que se utilizan para encontrar colegio? (Puede seleccionar más de una opción)
Página Web del colegio
Aplicación Web
Directamente en el colegio.
Por referencia de un conocido, un familiar etc...
¿Otra, cuál? (Editable por el usuario).
11. ¿Le gustaría que el colegio se enfocara en deportes?
SI
NO
ANEXO 3 ENCUESTA APLICADA
Ilustración 37: Encuesta aplicada Fuente: Los Autores
PREGUNTA OPCIONES DE RESPUESTA
¿Es importante un colegio bilingüe? Si
No
No responde
¿Tipo de Jornada? Mañana
Tarde
Completa
¿Tipo de Calendario? A
B
Otra
¿Genero? Masculino
Mixto
Femenino
¿Medio de búsqueda para seleccionar colegio? Página Web del colegio
Aplicación Web
Directamente en el colegio.
Por referencia de un conocido
¿Es importante la formación deportiva? Si
No
¿Prefiere un colegio cerca a la casa? Si
No
La siguiente encuesta va dirigida a personas con hijos, los cuales estén en edad escolar.
Una de las premisas para realizar una encuesta satisfactoria que nos permita analizar la
información es direccionarla hacia una población específica:
• Padres con niños pequeños que estén en la edad de colegio (Educación básica primaria).
• Personas adultas que tengan familiares que estén en la edad de colegio (Educación
básica primaria).
• Docentes del área de educación básica primaria.
ANÁLISIS DE INFORMACION NECESARIA
PARA OPTAR POR UN COLEGIO
ANEXO 4 RESULTADOS DE LA ENCUESTA
1. ¿Es importante un colegio bilingüe?
Ilustración 38; ¿Es importante un colegio bilingüe?
Fuente: Los Autores
2. ¿Tipo de Jornada?
Ilustración 39: ¿Tipo de Jornada? Fuente: Los Autores
Si75%
No19%
No responde
6%
¿Es importante un colegio bilingüe?
Si No No responde
Mañana37%
Tarde50%
Completa13%
¿Tipo de Jornada?
Mañana Tarde Completa
3. ¿Tipo de Calendario?
Ilustración 40: ¿Tipo de Calendario?
Fuente: Los Autores
4. ¿Genero?
Ilustración 41: ¿Genero?
Fuente: Los Autores
A62%
B25%
Otra
13%
¿Tipo de Calendario?
A B Otra
Masculino
12%
Mixto69%
Femenino19%
¿Genero?
Masculino Mixto Femenino
5. ¿Medio de búsqueda para seleccionar colegio?
Ilustración 42: ¿Medio de búsqueda para seleccionar colegio?
Fuente: Los Autores
6. ¿Es importante la formación deportiva?
Ilustración 43: ¿Es importante la formación deportiva? Fuente: Los Autores
Página Web del colegio; 15; 19%
Apl icación Web; 5; 6%
Directamente en
el colegio.; 40; 50%
Por referencia de un conocido; 20;
25%
¿Medio de búsqueda para seleccionar colegio?
Página Web del colegio Aplicación Web
Directamente en el colegio. Por referencia de un conocido
Si69%
No31%
¿Es importante la formación deportiva?
Si No
7. ¿Prefiere un colegio cerca a la casa?
Ilustración 44: ¿Prefiere un colegio cerca a la casa?
Fuente: Los Autores
Si75%
No25%
¿Prefiere un colegio cerca a la casa?
Si No
Top Related