Curso UIMP: Sistemas Basados en Contexto


En la segunda sesión del primer día del curso de la UIMP, el profesor José Manuel Molina López del Grupo de Inteligencia Artificial Aplicada (GIAA) de Universidad Carlos III Madrid y director del curso, nos ha hablado de los sistemas basados en información de contexto como pieza fundamental de los sistemas de Inteligencia Ambiental (AmI)

La inteligencia Ambiental (AmI) o Computación Ubicua busca integrar la computación en el entorno, recogiendo la información de contexto del usuario y utilizándola para las aplicaciones que proporcionan al usuario los servicios que necesita en cada momento en función del lugar, la hora, las actividades que desea realizar el usuario, sus necesidades, su estado de ánimo, su compañía, etc. facilitando la vida al usuario que además no necesitará conocer la tecnología.

La clave de todo este montaje es la información de contexto. Este término es muy genérico y difícil de definir (como sucede con el término inteligencia) Se puede decir que cuando se pone en valor la información referente al usuario se habla de contexto y que esta información caracteriza a la entidad a la que pertenece (sea un usuario, un objeto del entorno, etc.) Bill Schilit uno de los padres de la computación ubicua, identificó varias “visiones” o aspectos de la entidad o usuario, que aporta el contexto: Who (identidad, perfil), What (qué puede/quiere hacer), Where (localización de la entidad/usuario, “location awareness”), When (en que punto temporal está la entidad/usuario, “time awareness”), Why (que determina el comportamiento de los dispositivos, los interfaces de usuario, para conseguir comunicar fácilmente con la computadora en la realización de tareas cotidianas, a ser posible, de manera implícita, es decir, sin intervención por parte del usuario)

En las aplicaciones comerciales basadas en el contexto que hoy en día son una realidad, la parte que tiene mayor peso y es omnipresente es el “where”, es decir, la localización, como núcleo fundamental y único del contexto que permite ofrecer los servicios personalizados al usuario.

La localización tiene un modelo geométrico (evidente) y un modelo simbólico. El modelo geométrico implica conocer unas coordenadas en un espacio tridimensional, posicionar al usuario en un espacio físico (como hace por ejemplo la aplicación TomTom) El simbólico tiene un nivel superior que implica una descripción en cierto modo de la actividad del usuario (p.e el alumno entra en el aula, el alumno está en el aula, …)

¿Qué se debe meter como información de contexto en una aplicación? De lo que hemos explicado hasta ahora parece claro que debemos incluir: identidad, información espacial y temporal, datos del entorno (tiempo que hace, objetos/personas que hay alrededor, …), información social, actividades/agenda, recursos cercanos disponibles, …

La información de contexto es recogida por una red de sensores comunicada de forma inalámbrica con los recursos de computación distribuidos. Existen dos niveles de contexto: de bajo nivel o físico que representa información directa recogida (y fusionada) de la red de sensores y de alto nivel que requiere el procesado de esos datos.

¿Cómo se pone operativa la información de contexto en una aplicación? Eso es lo que vamos a ver en el taller de por la tarde durante esta semana. Vamos a aprender a extraer, interpretar y usar el contexto en una aplicación basada en el contexto. La representación del contexto es un problema que se debe de resolver antes de poder aplicarlo.

Aplicaciones Basadas en Contexto

Una aplicación basada en contexto se puede definir simplemente como una aplicación capaz de usar la información de contexto, que usa el paradigma de context-aware, extrayendo, interpretando y usando la información de contexto (un tarea compleja) para adaptar su funcionalidad al estado actual de dicho contexto. Las aplicaciones pueden clasificarse en activas (Active context awareness) o pasivas (Passive context awareness) en función de si el usuario no interviene o sí lo hace, respectivamente.

El modelo de aplicación basada en el contexto se basa en el modelo de aplicación basada en el conocimiento de la Inteligenica Artificial Simbólica. En este modelo existe un motor de inferencia, una base de hechos y una base de conocimientos en donde se almacenan los hechos y conocimientos en un mecanismo de representación (o un conjunto de mecanismos) De esta manera el conocimiento podrá cambiar pero el motor permanecerá fijo. En el caso de las aplicaciones basadas en el contexto se tendrá un “context engine” como plataforma y la información de contexto con sus mecanismos de representación, que será la materia a adquirir mediante los sensores adecuados con o sin intervención del usuario.

En el mundo real ha habido una evolución de la infraestructura física, lógica y metodológica sobre los que se han construido las aplicaciones basadas en el contexto, y en especial, basadas en la localización. Las librerías integradas que definen APIs de localización para diversos sistemas operativos y servicios web han sido el primer paso; luego han venido los frameworks y finalmente el modelo de sistemas basados en la localización en los que solamente hay que definir de forma adecuada la información de contexto que luego es utilizada por un “context engine”. El dominador total hasta el momento en este nuevo paradigma es Appear Netowrks.

Entre los frameworks que se mencionaron en la charla (muy por encima) destacan los siguientes:

NOTA: No se mencionaron las aplicaciones comerciales que aparecen en las transparencias 20 a 25 (consultar) La transparencias 26 a 33 describen con cierto detalle la plataforma AppearIQ de creación de aplicaciones basadas en contexto. Las transparencias 35-42 describen un ejemplo de una aplicación de un aeropuerto.

Se describió un escenario de aplicación basada en el contexto y de cómo se aborda su construcción en la plataforma de referencia de appear. Esto srive como modelo de desarrollo de aplicaciones de este tipo en otras plataformas y puede servir de guía de implementación en cualquier caso.

El escenario por excelencia (implementado en la empresa que gestiona el metro de paris) es el de una PDA que se suministra al empleado en la que se cargan aplicaciones e información de la empresa cuando el trabajador entra en la misma y se descargan cuando sale de forma dinámica dejando solamente las aplicaciones de ocio y personales del usuario/empleado.

En la plataforma de appear lo primero que hay que hacer es definir y caracterizar los usuarios (perfiles de usuario) Lo segundo es delimitar las zonas, los lugares físicos en donde se va a aplicar el efecto del contexto (por ejemplo delimitar la zona que ocupan las instalaciones de la empresa y las diferentes subzonas) Luego se deben definir y asignar tareas/servicios (la funcionalidad de la aplicación corporativa) a cada zona y las reglas que espeifican que servicio o tarea se activa para cada perfil de usuario/empleado (son reglas del estilo if/then, tipo reglas de producción de un sistema experto clásico de inteligencia artificial simbólica)

El empleado con su PDA se conectará via red Wifi nada más entrar en las instalaciones de la empresa y deberá identificarse con usuario y contraseña. En ese momento el context engine aplicará las reglas en función del perfil del empleado (WHO), de lo qe puede hacer (o su agenda de trabajo del día) (WHAT) y de su situación (p.e en que sucursal de la empresa o en qué estación de metro se encuentra) (WHERE) y le cargará en la PDA las aplicaciones y datos que precise para realizar su trabajo diario.

Sistemas MultiAgente (MAS)

El problema que tiene la plataforma de appear es que el contexto está centralizado y por lo tanto ello perjudica su escalabilidad. Lo ideal es tener el contexto distribuido como ocurre con un paradigma alternativo del desarrollo de aplicaciones basadas en el contexto: los sistemas de agentes distribuidos (MAS, MultiAgent Systems) con un agente(s) central/broker, agentes usuarios (con su información de contexto) y agentes proveedores de servicios (con su información de contexto)

Este es el paradigma de desarrollo que vamos a ver en el taller de la tercera sesión. Los agentes usuarios y proveedores se registran en el sistema por medio del broker y comunican sus servicios y sus necesidades. El agente central se encarga de mantener un directorio de servicios en los que los agentes usuario pueden buscar lo que necesitan y comunicarse posteriormente con los proveedores para negociar y obtener el servicio que necesitan, proporcionando la parte de información de contexto que poseen que se necesita para el servicio que demandan. El agente central puede proporcionar información de contexto adicional, como es la localización, identidad y perfil público de los usuarios a los agentes proveedores para que estos puedan actuar de forma proactiva ofreciendo sus servicios. De esta manera pone en contacto al proveedor con el usuario pero no interviene en sus transacciones.

La información de contexto del usuario (proveedor) está en posesión del mismo y cede parte de la misma (la que considere en cada momento que debe ser pública) al sistema para que pueda ser utilizada como información de contexto de la aplicación. Esta es una manera elegante de gestionar el problema de la privacidad y seguridad de la información.

Los sistemas multiagente tienen la ventaja de poder coordinar distintos subsistemas e integrar objetivos particulares de cada subsistema en un objetivo común.

JADE/JADEX/LEAP Framework

El framework que vamos a ver en el taller, basado en sistemas multiagente, se llama JADE/JADEX. Implementa esquemas reactivos y deliberativos (BDI) de agentes. Los agentes se comunican entre ellos utilizando un marco común estándar basado en ontologías (transparencias 54-60) definido en un organismo de estandarización llamado FIPA. La definición de la ontología y su traducción a código se realiza con herramientas como Protege.

El modelo BDI, es la mezcla de un comportamiento reactivo basado en eventos y comportamiento pro-activo orientado a objetivos, de un agente, que usa conceptos mentales derivados de modelos psicológicos del ser humano. Según estos modelos hay tres tipos de actitudes: Beliefs/Creencias, Desires/Deseos (Objetivos: detectar usuarios, registrar usuarios, filtrar proveedores, etc.) e Intentions/Intenciones (Planes: gestionar información, negociaciones, diálogos, etc.).

Para construir sistemas multiagente se pueden utlizar diversas metodologías que se han venido desarrollando. En las transparencias (51-52; 61-68) se mencionan algunas metodologías de desarrollo de agentes (aunque no se ve ninguna porque no dio tiempo):

Un comentario en “Curso UIMP: Sistemas Basados en Contexto

  1. Hola que tal?
    Mi pregunta es, cual es la diferencia existente entre servicios ubicuos y servicios o sistemas basados en contexto?

    Le agradecería su valiosa información.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s