Agreement Technology: presentando el proyecto

Bueno, acabamos de llegar a Barcelona (al IIIA-CSIC) y después de tomar un bocado (hemos llegado algo tarde) empezamos con la reunión. Entre hoy y mañana vamos a tratar de conocernos todos los que participamos en este proyecto: gente de CSIC, de la Rey Juan Carlos I y de la Univ. Politécnica de Valencia. Nos han concedido un proyecto Consolider (uno de los primeros de Informática) y ahora tenemos 5 años para currar.

El objeto de la investigación se resume en construir

Large scale open distributed systems

Los puntos clave en este tipo de sistemas son conceptos como

  • autonomía: la toma de decisiones es independiente -> indeterminismo
  • interacción
  • movilidad, tanto de los componentes como de los individuos
  • topologías dimámicas (esta parte me gusta, por lo de las redes sociales)
  • semantic mismatching
  • confianza (y desconfianza)

Las técnicas que se necesitan incluyen negociación, argumentación, toma de decisiones, modelización del conocimiento, organiaciones virtuales, planning y aprendizaje. Todo esto podr´ñia llevarnos a algo más "profundo": un nuevolenguaje de programación o incluso de un nuevo tipo de sistemas operativos.

Va a haber trabajo teórico, herrameintas de desarrollo de software y también una serie de aplicaciones en las que probar todos los desarrollo, en eProdurement, mHealth y mWater (gestión de recursos hídricos, en el que estoy yo)

Ubicuidad, delegación, computación global, web semántica, servicios web, P2P, grid, Web 2.0.... es el contexto en el que este proyecto se va a mover. Son elementos fundamentales con los uqe hay uqe contar y en los que se pueden enmarcar varias líneas de investigación fundamentales:

  • semántica
  • gestión de recursos
  • dimamicidad
  • adaptabilidad
  • workflow
  • composición
  • escalabilidad
  • seguridad
  • usabilidad

¿Cuál me gusta a mi de todos estos? la verdad es que aún no lo sé. En estos días me gustaría ver en qué parte del proyecto podría seguir trabajando con las cosas que me interesan ahora: redes sociales, web semántica, servicios web, web 2.0.... de momento parece que casa cob las líneas de semántica, dinamicidad, adaptabilidad, composición y escalabilidad sobretodo.

El proyecto también tiene una parte de investigación aplicada, pues tambiénb estamos haciendo ingeniería y deseamos crear herramientas que faciliten el diseño de este tipo de sistemas: algoritmos, metodologías, toolbox y los tres casos de estudio ya comentados: eProcurement, mHealth y mWater.  De todo, casi me gusta más la parte algorítmica.

 

Blogged with Flock

Tags: , ,

Redes sociales y organizaciones

«Una buena estrategia para crear organizaciones que sean capaces de resolver problemas complejos es formar a los individuos para que respondan a la ambigüedad buscando a través de redes sociales, en lugar de obligarles a forjar y participar en herramientas y bases de datos de arquitectura centralizada para la resolución de problemas. [...] comprendiendo el modo en que los individuos buscan socialmente, puede ser posible diseñar procedimientos más efectivos por medio de los cuales se pueden formar organizaciones robustas sin que sea preciso especificar, para ello, con precisión los detalles de la arquitectura organizativa misma.»

Duncan J. Watts, en Seis grados de separación.

Este va a ser mi trabajo en los próximos meses: ver cómo el uso de redes sociales y estrategias de búsqueda dentro de la red mejora la flexibilidad, la robustez y la escalabilidad de los sistemas centralizados.

En principio voy a probar con grafos generales, con la idea de transferir los resultados obtenidos a la distribución de los servicios de páginas blancas (AMS) y de páginas amarillas (SF en Thomas).

Mi idea inicial es probar dos aproximaciones: la solución de Jon Kleinberg, que garantiza que se encuentran los caminos más cortos (solución diseñada), y la utilización de contextos e identidades dentro de grupos (solución autoorganizada). Para la pimera necesito una forma de estimar la distancia o la posición de un agente desconocido en el sistema. Para la segunda, resolver el problema de la desigualdad del triángulo en espacios distintos. Aquí necesito una idea feliz: he probado con proyecciones y con geometría hiperbólica, pero estoy algo atascado.

Reflexiones sobre Andriod

Una de las cosas que estamos mirando es cómo utilizar Android como plataforma de ejecución de agentes inteligentes. En principio, la idea es tener una arquitectura de agente que se pueda ejecutar sobre Android. Si además este agente es capaz de controlar el resto de aplicaciones nativas y acceder a sus datos, entonces sería fantástico y estaríamos cerca del agente que aparece en el vídeo Apple's Knowledge Navigator (mov, 15 Mb).

Pero poco a poco.de momento, bastaría con que nuestro modelo de agente sea implementable en dispositivos móviles. Y la verdad es que los conceptos que se manejan en Andriod--actividades, intenciones, servicios y proveedores de contenidos--casan bastante bien con los componentes de nuestros agentes: comportamientos, capacidades, eventos y (por supuesto) creencias.

En principio, un agente está formado por un conjunto de comportamientos que se asocian a distintos escenarios o estados del mundo exterior. Cada comportamiento está formado por una serie de capacidades que establecen qué sabe o puede hacer el agente en cada situación. una capacidad representa una especie de regla Evento-Condición-Acción: cuando llega un evento determinado, si se cunple la condición de activación se ejecuta la acción asociada. Si un comportamiento está activo, todas sus capacidades están activas. Sólo se atenderá a los eventos que tengan alguna capacidad asociada, por lo que de esta forma se permite focalizar la atención del agente en los eventos que sean de interés o relevantes para el escenario en el que se encuentra actualmente.

La traducción de este esquema a entidades de Andriod es bastante intuitiva.

  1. Las capacidades se corresponden a las actividades de Andriod
  2. Los eventos están intimamente relacionados con las intenciones. El "Intent Receiver" de Andriod sería algo semejante a un manejador de eventos para el agente (?)
  3. El hilo de control del agente, encargado de la activación y desactivación de los comportamientos, e incluso de cada comportamiento, queda oculto para los usuarios que sólo ven las capacidades que proporciona el agente sin preocuparse por su ciclo de ejecución. Los servicios de Android cumplen bastante bien esta función: entidades en ejecución en segundo plano.
  4. Las creencias del agente, como conocimiento compartido por todas sus capacidades, tendrían una interfaz a través del proveedor de contenidos.

Blogged with Flock