205
Introducción a los Agentes Máster en Servicios Web y Comercio Electrónico Curso 2006/2007 Curso de Web Semántica Sergio Ilarri Artigas [email protected]

Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Embed Size (px)

Citation preview

Page 1: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Introducción a los Agentes

Máster en Servicios Web y Comercio Electrónico

Curso 2006/2007

Curso de Web Semántica

Sergio Ilarri [email protected]

Page 2: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Índice

Introducción al concepto de agenteCaracterísticas de los agentesArquitecturas de agentesPlataformas de agentes

Page 3: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Tres Áreas Relacionadas

Teoría de agentesQué es un agente, cómo se pueden representar sus propiedades formalmente y razonar sobre ellas

Arquitecturas de agentes:Cómo diseñar componentes software que tengan propiedades de agente

Lenguajes de agentes:Cómo programar los agentes

Page 4: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

¿Qué es un Agente?

“encapsulated computer system, situated in some environment, and capable of flexible

autonomous action in that environment in order to meet its design objectives” (Wooldridge)

Page 5: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

¿Qué es un Agente?

“encapsulated computer system, situated in some environment, and capable of flexible

autonomous action in that environment in order to meet its design objectives” (Wooldridge)

• control sobre el estado interno y comportamiento

Page 6: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

¿Qué es un Agente?

“encapsulated computer system, situated in some environment, and capable of flexible

autonomous action in that environment in order to meet its design objectives” (Wooldridge)

• control sobre el estado interno y comportamiento• “siente” el entorno (sensores) y actúa sobre él

(actuadores)

Page 7: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

¿Qué es un Agente?

“encapsulated computer system, situated in some environment, and capable of flexible

autonomous action in that environment in order to meet its design objectives” (Wooldridge)

• control sobre el estado interno y comportamiento• “siente” el entorno (sensores) y actúa sobre él

(actuadores)• responde a cambios en el entorno (react./adapt.)

Page 8: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

¿Qué es un Agente?

“encapsulated computer system, situated in some environment, and capable of flexible

autonomous action in that environment in order to meet its design objectives” (Wooldridge)

• control sobre el estado interno y comportamiento• “siente” el entorno (sensores) y actúa sobre él

(actuadores)• responde a cambios en el entorno (react./adapt.)• actúa para conseguir sus objetivos (proactivo)

Page 9: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

OrígenesAgentes y sistemas multiagente:

Conceptos con origen en la Inteligencia ArtificialAuge en los 90 de los sistemas multiagente y los agentes móviles:

paradigma de software adecuado para el desarrollo y explotación de entornos altamente distribuidos y abiertos (ej.: Internet)

El área de los sistemas multiagentes estáinfluenciada e inspirada por muchos otros campos:

Teoría de juegos, lógica, ecología, ciencias sociales, economía, ...

Page 10: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Campos Relacionados

Inteligencia artificialIngeniería del softwareSistemas distribuidosCiencia de las organizacionesBases de datosEconomíaTeoría de juegosVida artificial

Page 11: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Agentes

Son programas:AutónomosActúan en representación de alguienTienen una agenda de objetivos“Inteligentes”, aprenden

Pueden también ser:CooperativosMóviles

Nuevo paradigma de diseño de software:AOSE = Agent Oriented Software Engineering

DefiniciónProblemática

Page 12: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

¿Son Éstos Agentes?

Web crawler = spider = antCliente de e-mailVirus

Is it an Agent, or just a Program?: A Taxonomy for AutonomousAgents. Stan Franklin and Art Graesser. Proceedings of the ThirdInternational Workshop on Agent Theories, Architectures, and

Languages, Springer-Verlag, 1996.

Page 13: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Metáfora de los Agentes

Representante del usuarioAutonomíaPersistenciaÉnfasis en comunicación:

Con otros agentesCon el usuario

Especialmente importante si hay dinero en juego

Page 14: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Utilidad de los Agentes

Capacidad de operación en un entorno dinámico, abierto, impredeciblePotencial para utilizar los recursos de Internet Interacción con software legadoModelado de entornos complejosPotencial para software más inteligente (sinergia)Nivel de abstracción natural, modularidad, división de problemas…

Page 15: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Los Agentes No Son

AsistentesLenguajes de scriptLenguajes de programaciónRedes neuronalesSistemas basados en reglasSistemas expertosObjetos

Page 16: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide
Page 17: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Agentes vs. Objetos (I)

Fuente: Software Agent Technology, Summary Lecture, Heimo Laamanen, 2.5.2006

Page 18: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Agentes vs. Objetos (II)

Ambos encapsulan el estadoLos agentes, además, encapsulan un comportamiento

Los objetos no, dado que no tienen ningún control sobre la ejecución de sus métodos

Obsérvese la diferencia:Invocamos métodos de objetosPedimos a los agentes que ejecuten acciones

Page 19: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Características de los Agentes

Propiedad Otros nombres Significadoreactivos (sentir y actuar) responder a tiempo a cambios en el entorno

autónomos ejercer control sobre las propias accionesproactivos orientados a objetivos no actúan simplemente en respuesta al entorno

persistentes temporalmente continuos son procesos que se ejecutan continuamentecomunicativos sociables se comunican con otros agentes, quizá personas

adaptativos que aprenden cambian su comportamiento con experiencias previasmóviles se pueden mover de máquina a máquinaflexibles similar a adaptativos sus acciones no están pre-programadascarácter personalidad y estado emocional

Importante, por ejemplo en negociaciones

Page 20: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Clasificación(Jennings/Wooldridge)

Débiles Fuertes Otras propiedadesAutonomía Conocimiento/creencias RacionalidadSociabilidad Intenciones SinceridadReactividad Deseos/Objetivos BenevolenciaProactividad Obligaciones Movilidad[Puntualidad] Capacidades Emociones[Persistencia]

Podría ser un proceso UnixCaracterísticas humanas

Page 21: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Propiedades de Noción DébilAutonomía

Control sobre el estado interno y accionesOperación sin interacción directa con otros

Sociabilidad:Interacción entre agentesLenguajes de comunicación

ReactividadPerciben el entorno (GUI, red, etc.) y reaccionan

ProactividadObjetivosToman la iniciativa

Page 22: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplo de Noción Débil de Agente

SoftbotRobot softwarePercibe el entorno (ls, pwd, etc.)Ejecuta acciones sobre el entorno (mv, cp, etc.)

Page 23: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Noción Fuerte de Agente

Asigna a los agentes atributos humanosNociones mentalistas:

Conocimiento, creencia, intención, obligación, actitud

Incluso agentes emocionales

Page 24: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Actitudes de los Agentes

Actitudes de información:CreenciaConocimiento

Pro-actitudes:DeseoIntenciónObligaciónCompromisoElección…

Estado cognitivo

Estrechamenterelacionadas

Les llevan a ejecutar acciones

Page 25: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Utilidad de Esta VisiónUn interruptor puede considerarse un agente (hardware)

Tiene la capacidad de transmitir corriente a su voluntadPercibe nuestro deseo de encender/apagar la luz cuando lo movemosEs muy cooperativo, pues deja/para la corriente cuando cree que es eso lo que queremos

En este caso, es más fácil una visión mecanicistaPero en otros la visión de agente puede ayudarnos a describir y entender un sistema complejo

Page 26: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Otras Propiedades

Sinceridad/veracidadNo distribuyen información falsa a sabiendas

Benevolencia:No tienen objetivos en conflictoSiempre intentan hacer lo que se les pide

Racionalidad:Actúan para lograr sus objetivosNo hacen cosas que puedan evitarlos

Movilidad

Page 27: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Arquitecturas de Agentes (I)

Metodología para construir agentes:Cómo descomponer en módulosCómo deben esos módulos interaccionarCómo determinar las acciones a realizar a partir del estado interno y los estímulos…

Page 28: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Arquitecturas de Agentes (II)

Tipos:DeliberativasReactivasHíbridas

Page 29: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Deliberativas (I)

Interés en IA desde principios de 1970Inteligencia artificial simbólicaVen a los agentes como un tipo de sistema basado en el conocimiento

Objetivo: programación automáticaAgentes que planifican (deliberan):

Determinan las acciones que tienen que realizar para conseguir un determinado objetivo

Page 30: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Deliberativas (II): STRIPSSTRIPS (1971):

Estado actual/objetivo: fórmulas lógicas

Operadores: precondición, postcondición

Planificación: encontrar una secuencia de acciones que lleve al estado final

Ver cómo las acciones, a través de sus postcondiciones, nos acercan al objetivo

Page 31: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Deliberativas (III): STRIPS

Estado inicial:estado(horno,sucio) & estado(frigorífico, sucio) &

estado(suelo,limpio) & estado(fregadera, limpia) & estado(mesas, limpias)

Estado final:estado(horno, limpio) & estado(frigorífico, limpio) &estado(suelo, limpio) & estado(fregadera, limpia) &

estado(mesas, limpias)

Page 32: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Deliberativas (IV): STRIPS

limpiar_horno:Pre:estado(horno, sucio)Post: Borrar: estado(horno, sucio) & estado(suelo, X)

Añadir: estado(horno, limpio) & estado(suelo, sucio)barrer_suelo:

Pre: estado(suelo, sucio)Post: Borrar: estado(suelo, sucio)

Añadir: estado(suelo, barrido)

Page 33: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Deliberativas (V): STRIPS

STRIPS es:Muy simplePero ineficaz para problemas de complejidad moderada

Por ello, aparecen otras técnicas:Planificación jerárquicaPlanificación no lineal

Page 34: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Deliberativas (VI): BDI

Beliefs (creencias)Modelado del mundo

Desires (deseos)“Estados” que interesan

Intentions (intenciones)Determinación de llegar a un estadoobjetivoLos deseos seleccionados (limitados por losrecursos)

Perseguir lasintenciones hasta

lograrlas o descartarlaspor imposible

Page 35: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Deliberativas (VII): BDI

-

Page 36: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Deliberativas (VIII)

Agente deliberativoRepresenta un modelo simbólico del mundo y toma decisiones mediante razonamiento lógico

Dos problemas:Problema de traducción/representación: comotraducir el mundo real en símbolos (y a tiempo)Problema de razonamiento: cómo razonar con ellos

El agente decide mediante razonamiento lógico, basado en manipulación simbólicay emparejamiento de patrones

Page 37: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Deliberativas (IX)

Investigación en:Visión por computadorInterfaces oralesRepresentación del conocimientoAprendizajeRazonamiento automático Planificación automática

Los agentes deliberativos son demasiado “caros” para tiempo real

Page 38: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Reactivas (I)

Idea:La inteligencia depende del contextoSurge como resultado de la interacción con el entorno

“A reactive system is one whose purpose is to maintain some ongoing interaction with its environment”

(Fisher y Wooldridge)

No hay razonamiento simbólico

Page 39: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Reactivas (II)Entradas(sensores)

Registro deestados

Acciones(actuadores)

Rosenschein et al.

Page 40: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Reactivas (III)

“Intelligent behaviour is an emergent phenomenon arising from the interaction of societies of nonintelligent systems” (Maes)

Page 41: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Reactivas (IV)

Selección de acción:Objetivos que varían en el tiempoContingencias/oportunidadesObjetivos conflictivosSensores “ruidosos”Reaccionar rápido

Page 42: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Reactivas (V)

Brooks (subsumption architecture)Pionero en las arquitecturas reactivasJerarquía de comportamientosCada capa compite con el resto por obtener el controlCapas inferiores representan comportamientos más primitivos (como evitar obstáculos)

Page 43: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Híbridas

Ni completamente deliberativas ni completamente reactivas

Ejemplo: arquitecturas BDI

Page 44: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Híbridas: PRS (I)

PRS = Procedural Reasoning SystemPrimer sistema BDICreencias, objetivos, intenciones y biblioteca de planesEs híbrido porque es activo y reactivo al mismo tiempo

Page 45: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Híbridas: PRS (II)

Bucle de control:Determinar las creencias actuales, objetivos e intenciones

Encontrar planes aplicables en las circunstanciasactuales (biblioteca de planes)

Decidir qué plan aplicar

Ejecutar el plan

Page 46: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Sistemas multiagenteRed de agentes software que interactúan pararesolver problemas que van más allá de lascapacidades individuales o del conocimiento de cadauno (K. Sycara)

Capaces de desarrollar acciones autónomas parala realización de sus tareasCapaces de interaccionar (comunicarse, cooperar, coordinar, negociar) con otros para realizar sustareas

Comunicación:ACLs: KQML, FIPA-ACL, …Intercambio de conocimiento

Page 47: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplos de Aplicaciones (I)Resolución cooperativa de problemas e Inteligencia Artificial Distribuida

Control de tráfico aéreoRecuperación de información Fabricación asistida por computadorLogísticaControl de procesos de negocioComercio electrónico

Agentes Interface (asistentes personales)Filtro de noticias interesantes o de emailsAgentes “secretarios” (ej., planificación de reuniones)Trabajo cooperativo

Page 48: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplos de Aplicaciones (II)

Agentes de información y sistemas de información cooperativos:

Muchas fuentes de datos heterogéneas, distribuidas y dinámicas (bases de datos, otros agentes, etc.)

Juegos de ordenador, realidad virtual, cine interactivo

Agentes “creíbles”, con emociones, que parezcan reales

Page 49: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplos de Aplicaciones (III)

Sistemas complejosLos agentes son una abstracción útil (módulos autónomos especializados en resolver ciertos problemas)Permite abordar un diseño desde un punto de vista de especialistas que cooperan

Computación ubicuaAgentes autónomos (con un objetivo + o - claro)Proactivos (sugieren al usuario)Reactivos (al entorno y necesidades del usuario)Adaptativo (a las preferencias del usuario)

Page 50: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplos de Aplicaciones (IV)

Encapsulación de sistemas legados

Incorporándolos así en una comunidad de cooperación, permitiendo que otros componentes software los utilicen

Agent wrapper, agentification

Page 51: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Algunos Inconvenientes

No hay perspectiva globalEl control del sistema está distribuidoEl comportamiento detallado del agente sólo puede precisarse en tiempo de ejecuciónEl comportamiento del sistema emerge sólo en tiempo de ejecución

Dudas respecto a su uso en sistemas críticos (como control de tráfico aéreo)

Page 52: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

www.multiagent.comAkiraAgent FactoryBee-gent FrameworkCougaarExcaliburJADE, Jadex BDIJATLiteJava Communicating Agents

JACKJESSMAPOAAPRSSIM_AGENTZeusAgent UMLBB1

Page 53: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Referencias (I)An Introduction to MultiAgent Systems, Michael Wooldridge, John Wiley and Sons, 2002

Multiagent Systems: Where game theory, artificial intelligence, distributed programming, and the semantic web meet:http://www.multiagent.com/

AgentLink.org: European Co-ordination Action for Agent-Based Computing:http://www.agentlink.org/

Is it an Agent, or just a Program?: A Taxonomy for Autonomous Agents, Stan Franklin and Art Graesser. Third International Workshop on Agent Theories, Architectures, and Languages, Springer-Verlag, 1996.

Page 54: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Referencias (II)Intelligent Agents: Theory and Practice, M. J. Wooldridge and N. R. Jennings, (1995), The Knowledge Engineering Review 10 (2) 115-152:http://www.csc.liv.ac.uk/~mjw/pubs/ker95.pdf

Agent-Based Software Development (slides), Michael Luck, Ronald Ashri, Mark d’Inverno:http://www.ecs.soton.ac.uk/~mml/absd/contents.html

UMBC AgentWeb:http://www.cs.umbc.edu/aw/

Enlaces de agentes:http://sid.cps.unizar.es/SILARRI/LINKS/agents.html

Page 55: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Fin

Page 56: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Estándares de Agentes

Máster en Servicios Web y Comercio ElectrónicoCurso 2006/2007

Curso de Web Semántica

Sergio Ilarri [email protected]

Page 57: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Índice

IntroducciónKQMLFIPAMASIF (agentes móviles)¿Otras propuestas?

Page 58: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide
Page 59: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Necesidades

Para que dos agentes puedan “hablar”:Sintaxis común (ej. KIF)Semántica común (ej. Ontolingua)

Interpretación de mensajesOntologías comunes

Pragmática común (ej. KQML)Saber con quién hablar y cómo encontrarloSaber cómo iniciar y mantener una conversación

Page 60: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Pig!!!

Bitch!Pig!

Je, je

Fuente: “A New Ph.D. Program in Computational Transportation Science”, Ouri Wolfson

La semántica es importante

Page 61: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Teoría Actos del Habla (I)

Estudia el lenguaje como acciónLos hablantes realizan “actos del habla”(informar, preguntar, sugerir, etc.), no sólo expresan sentencias verdaderas o falsasEs decir, tienen una intención, pretenden conseguir un efecto en el oyenteIdentificar el acto del habla es imprescindible para una buena comunicación

Page 62: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Teoría Actos del Habla (II)

En un acto del habla hay 3 elementos:Locución: contexto Ilocución: intenciónPerlocución: acto resultado

Ejemplo: “Cierra la ventana”Locución: quién es el emisor, hay ventana abierta, etc.Ilocución: el emisor quiere que el receptor cierre la ventanaPerlocución: el receptor cierra o no la ventana

Page 63: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Comunicación entre Agentes

Fuente: Software Agent Technology, Summary Lecture, Heimo Laamanen, 2.5.2006

Page 64: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide
Page 65: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Introducción (I)

Knowledge Query and Manipulation Language

Lenguaje y protocolo de comunicación de alto nivel orientado a mensajes para intercambio de información y conocimiento

Parte del ARPA Knowledge Sharing Effort(KSE), junto con KIF (Knowledge InterchangeFormat)

Page 66: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Introducción (II)

Independiente de:

Mecanismo de transporte: TCP/IP, SMTP, IIOP, etc.

Lenguaje del contenido

Ontología asumida por el contenido

Page 67: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Niveles en KQML

Organización en tres niveles:1) Contenido

Lenguajes de representación: texto, binario,

KIF, SQL, STEP, Prolog, etc.

2) ComunicaciónEmisor, receptor, id. de mensaje, etc.

3) MensajeCodifica los mensajes

Page 68: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplo de Petición en KQML

(ask-one:sender joe:content (PRICE IBM ?price):receiver stock-server:reply-with ibm-stock:language LPROLOG:ontology NYSE-TICKS)

Sintaxis basada en las s-expresiones de Lisp

Page 69: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplo de Petición en KQML

(ask-one:sender joe:content (PRICE IBM ?price):receiver stock-server:reply-with ibm-stock:language LPROLOG:ontology NYSE-TICKS)

Performative

Page 70: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplo de Petición en KQML

(ask-one:sender joe:content (PRICE IBM ?price):receiver stock-server:reply-with ibm-stock:language LPROLOG:ontology NYSE-TICKS)

Argumentos: pares palabra clave/valor

Page 71: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplo de Petición en KQML

(ask-one:sender joe:content (PRICE IBM ?price):receiver stock-server:reply-with ibm-stock:language LPROLOG:ontology NYSE-TICKS)

Nivel de contenido

Page 72: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplo de Petición en KQML

(ask-one:sender joe:content (PRICE IBM ?price):receiver stock-server:reply-with ibm-stock:language LPROLOG:ontology NYSE-TICKS)

Nivel de comunicación

Page 73: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplo de Petición en KQML

(ask-one:sender joe:content (PRICE IBM ?price):receiver stock-server:reply-with ibm-stock:language LPROLOG:ontology NYSE-TICKS)

Nivel de mensaje

Page 74: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplo de Petición en KQML

(ask-one:sender joe:content “price(IBM, [?price, ?time])”:receiver stock-server:reply-with ibm-stock:language standard_prolog:ontology NYSE-TICKS)

Usando Prolog estándar

Page 75: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplo de Petición en KQML

(ask-all:sender joe:content “price(IBM, [?price, ?time])”:receiver stock-server:reply-with ibm-stock:language standard_prolog:ontology NYSE-TICKS)

Podemos pedir un conjuntode respuestas

Page 76: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplo de Petición en KQML

(stream-all:sender joe:content (PRICE ?VL ?price)…)

Si ?VL es un gran conjuntode símbolos

Page 77: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplo de Petición en KQML

(standby:content (stream-all

:sender joe:content (PRICE ?VL ?price)…)

)

-standby espera en contenido un mensaje KQML-next/reply-discard/rest

Page 78: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplo de Petición en KQML

(generate:sender joe:content (PRICE ?VL ?price)…)

Abreviatura de lo anterior

Page 79: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplo de Petición en KQML(subscribe:content (stream-all

:content (PRICE ?VL ?price))…)

(monitor:content (PRICE ?VL ?price)…)

subscribe perfomative

monitor perfomativeAbreviatura de la anterior

Page 80: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ontologías

Un vocabulario y significados comunes

Utiliza símbolos/términos para referirse a objetos, atributos y relaciones

Utiliza reglas/restricciones para capturar aspectos significativos del dominio

Page 81: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ontologías: Ejemplofruta

manzana cítrico

lima limón naranja

-Un agente le pide a otro que le busque fotos de cítricos

-No encuentra fotos de cítricos, pero sabe que los limones son cítricos y sí que encuentra fotos de limones

Page 82: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Performatives en KQMLIndican el tipo de mensaje: afirmación, consulta, petición, etc.También llamados actos de comunicación (speech acts)

Aunque en KQML no se usa este término

Teoría de los actos de comunicación:Teoría sobre cómo las expresiones verbales se utilizan para lograr ciertas intencionesSon “acciones” en el sentido de que pretenden lograr un cambio

Page 83: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Atributos Reservados

Nombre Breve Descripción

:content La información contenida en el mensaje

:sender El emisor del mensaje

:receiver El receptor del mensaje

:languageEl nombre de lenguaje de representación utilizado en el atributo :content

:ontology El nombre de la ontología utilizada en el atributo :content

:reply-with Etiqueta para la respuesta

:in-reply-to La etiqueta esperada en la respuesta, de acuerdo con :reply-with

Page 84: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Performatives (I)

Categoría TiposInformación tell, untell

Consulta evaluate, reply, ask-if, ask-about, ask-one, ask-all, sorryConsulta con respuesta múltiple stream-about, stream-all

Orden achieve, unachieve

Control de respuestas standby, ready, next, rest, discard

Capacidad advertise

Notificación subscribe, monitor

Red register, unregister, forward, broadcast, pipe, break

Facilitaciónbroker-one, broker-all, recommend-one, recommend-all, recruit-one, recruit-all

Page 85: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Performatives (II)

Nombre Breve Descripción

tell Se comunica una información al agente destino

evaluate Se pide al agente destino que evalúe una expresión

reply Se comunica al agente una respuesta que espera

ask-if Se pregunta al agente destino si sabe si cierto hecho es cierto

ask-about Se pregunta al agente destino todo lo que sepa acerca de una cierta expresión

ask-one Se hace una pregunta al agente destino

stream-about Versión en respuesta múltiple de ask-aboutachieve Se pide al destino que convierta en verdadera la expresión comunicada

Ejemplos

Page 86: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Performatives (III)

Nombre Breve Descripción

standby Se indica que se queda a la espera de respuestas

ready Indica que se está preparado para responder a un mensaje

nextSe pide la devolución de la siguiente respuesta de una pregunta con respuesta múltiple

advertiseAnuncia que se está preparado para responder a una determinada performative

register Se indica al destino la presencia y el nombre simbólico

broadcast Se pide al destino que envíe a todos los agentes que conozca

recommend-oneSe pide al destino la recomendación de un agente que pueda responder

recruit-one Se pide al destino un agente que pueda responder

Ejemplos

Page 87: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplo I

Pregunta

(ask-one :content (interested ‘(sobre, bloqueA, ?x)):language KIF :ontology bloques :reply-with q1)

Respuesta

(reply :content (sobre bloqueA bloqueB) :language KIF :ontology bloques :in-reply-to q1)

Page 88: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplo IIPregunta

(stream-about :content bloqueA :language KIF :ontology bloques :reply-with q1)

Respuestas

(tell :content (sobre bloqueA bloqueB) :language KIF :ontology bloques :in-reply-to q1)

(tell :content (sobre mesa bloqueA) :language KIF ::ontology bloques :in-reply-to q1)

(sorry :in-reply-to q1)

Page 89: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplo III

Pregunta

(achieve :content (sobre mesa bloqueB) :language KIF:ontology bloques :reply-with q1)

Respuesta (tras hacer la tarea pertinente)

(tell :language KIF :ontology bloques :in-reply-to q1 :content (sobre mesa bloqueB))

Page 90: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Criterio de DiseñoQue KQML pueda soportar una gran variedad de arquitecturas de agentes:

Pequeño número de performativesRouters KQML:

Punto de contacto entre el agente y la red (entrada/salida de mensajes)

Agentes facilitadores de comunicaciónPara el envío de mensajes cuyo destino no se especifica con precisión:

Registro de nombres de serviciosCada router se anuncia a su facilitador local

Page 91: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Algunos Protocolos Básicos

Agente 1 Agente 2ask-onereply

Agente 1 Agente 2

subscribereply

replyreply

Page 92: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Algunos Protocolos Básicos

Agente 1 Agente 2

query (ej., stream-all)

manejador

next

reply

next

reply

Page 93: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Agentes Facilitadores de Comunicación

Clase de agentes especial que realiza diversos tipos de servicios de comunicación como:

Mantener un registro de nombres de serviciosEnviar mensajes a servicios con nombreEncaminar mensajes en función del contenidoEmparejar proveedores de información y clientesProporcionar servicios de mediación y traducción

Page 94: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplo 1

Tell(X)

F

A B

Ask(X)

Si A conoce a B, puede preguntarle directamente

Page 95: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplo 2

tell(X)

Si A no conoce a B, puede preguntar a través del mediador

F

A B

subscribe(ask(X))tell(X)

1

2

3

Page 96: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplo 2

tell(X)

Si A no conoce a B, puede preguntar a través del mediador

F

A B

subscribe(ask(X))tell(X)

1

2

3

Performative subscribe

Page 97: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplo 3

tell(X)

F

A B

broker(ask(X))tell(X)

advertise(ask(X))

ask(X)

1’

1

2

3

4

Si A no conoce a B, puede preguntar a través del mediador

Page 98: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplo 3

tell(X)

F

A B

broker(ask(X))tell(X)

advertise(ask(X))

ask(X)

1’

1

2

3

4

Si A no conoce a B, puede preguntar a través del mediador

Performative broker

Page 99: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplo 4

F

A B

recruit(ask(X))advertise(ask(X))

ask(X)

1’

1

2

tell(X)3

Page 100: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplo 4

F

A B

recruit(ask(X))advertise(ask(X))

ask(X)

1’

1

2

tell(X)3

Performative recruit

Page 101: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplo 4

F

A B

recruit(ask(X))advertise(ask(X))

ask(X)

1’

1

2

tell(X)3

Las respuestas las envía B directamente al agente originalPiensa en el ejemplo: recruit(subscribe(ask-all(x)))

Page 102: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplo 5

Frecommend(ask(X))

A B

advertise(ask(X))1’

1

3

2

reply(B)

ask(X)

tell(X)4

Page 103: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplo 5

Frecommend(ask(X))

A B

advertise(ask(X))1’

1

3

2

reply(B)

ask(X)

tell(X)4

Performative recommend

Page 104: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Lenguajes de Contenido

Knowledge Interchange Format (KIF)

Knowledge Representation SpecificationLanguage (KRSL)

Lenguajes más tradicionales como SQL, etc.

Page 105: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Lenguajes de Contenido: KIFKnowledge Interchange FormatVersión extendida de una lógica de predicados de primer orden Ampliamente usado entre sistemas basados en el conocimientoEjemplos (notación prefija):

(exists ?person (mother mary ?person))(=> (apple ?x) (red ?x))(forall ?x (=> (P ?x) (Q ?x)))

Page 106: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Semántica en KQMLInicialmente, definida sólo parcialmente de modo informalElementos:

PrecondicionesPara que un agente envíe una performativePara que otro agente la reciba y procese con éxito (si no, devuelve error o sorry)

PostcondicionesEstado posterior de emisor y receptor

Condición de finalización

Lenguaje de actitudes mentales: creencia, conocimiento, deseo e intención

Page 107: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide
Page 108: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Introducción

robots, humanos

Foundation for Intelligent PhysicalAgentsAsociación sin ánimo de lucroObjetivo: promover la utilización de la tecnología de agentes y desarrollar especificaciones para posibilitar la interoperabilidad entre sistemas

Page 109: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Especificaciones FIPA (I)

Page 110: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Especificaciones FIPA (II)

FIPA ACL Message Structure Specification (2002-12-06)FIPA Ontology Service Specification (2001-08-15, experimental)

Page 111: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Especificaciones FIPA (III)

Protocolos de interacciónContract Net, Iterated Contract Net, Subscribe, Request, etc.

Actos de comunicación (2002-12-06)

accept, agree, confirm, query, query-ref, etc.

Lenguajes de contenidoSL (Semantic Language, 2006), CCL (Constraint ChoiceLanguage , 2001), KIF (Knowledge Interchange Format, 2003), RDF (Resource Description Framework , 2001)

Page 112: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Especificaciones FIPA (IV)

Gestión de agentesFIPA Agent Management Specification (2004-03-18)

Creación, registro, deregistro, búsqueda, comunicación, movimientos, etc.

FIPA Agent Discovery Service Specification(2003-11-10, preliminar)

Descubrimiento de servicios en redes ad-hoc

FIPA JXTA Discovery Middleware Specification(2003-11-10, preliminar)

Page 113: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Especificaciones FIPA (V)

Transporte de mensajes de agentesFIPA Agent Message Transport ServiceSpecification (2002/12/03)FIPA Messaging Interoperability ServiceSpecification (2002-04-22, experimental)

Agentes móviles FIPA00087, deprecado en Mayo de 2002

Page 114: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

FIPA ACL (I)Sintaxis similar a KQML

Las primitivas de comunicación se llaman communicative acts (CAs) en lugar de performatives

Para definir la semántica de los CAs, se utiliza SL (Semantic Language)

Page 115: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

FIPA ACL (II)Elementos en SL: creencias, deseos, creencias inciertas, intenciones (primitivas tipo BDI)

La semántica de un CA se especifica mediante fórmulas en SL que describen:

Precondiciones de realización (para el emisor)Efecto racional esperado

Podría producirse o no, según el receptor

Page 116: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplo(inform:sender (agent-identifier :name i):receiver (agent-identifier :name j):content ”door( now, open )":language Prolog)

Page 117: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplos de CAs¿Está abierta la puerta?

Abre la puerta

De acuerdo, abriré la puerta

La puerta está abierta

No puedo abrir la puerta

No abriré la puerta

Avísame cuando esté abierta la puerta

¿Alguien puede abrirme la puerta?

Puedo abrir la puerta por ti... a un cierto precio

¿Puerta? ¿Qué es eso? Lo siento, no te entiendo

query

request

agree

inform

failure

refuse

subscribe

cfp

propose

not-understood

los básicos

Page 118: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Ejemplo de Interacción: Query Interaction Protocol

Otro ejemplo de excepción: not-understood

Excepciones

conversation-id

Page 119: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

KQML vs. FIPA ACL (I)Sintaxis idénticaNo especifican el lenguaje de contenidoDescripción semántica:

KQML (informal)Elementos: precondiciones, postcondiciones, condiciones de finalizaciónLenguaje: creencia, conocimiento, deseo e intención

FIPA (SL)Elementos: precondiciones de realización y efecto racionalLenguaje: creencias, deseos, creencias inciertas, intenciones

Page 120: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

KQML vs. FIPA ACL (II)

FIPA no tiene primitivas de facilitación (variantes de broker, recommend, recruit)

Page 121: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Plataforma de Agentes FIPA

AMS DF ACC

Plataforma de transporte de mensajes

AAagentes

AP (Agent Platform)Los agentes residen en plataformas de agentes, que proporcionan ciertosservicios

IIOP

Page 122: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Plataforma de Agentes FIPA

AMS DF ACC

Plataforma de transporte de mensajes

AAagentes

AMS (Agent Management System): agente que proporciona servicios de gestión del ciclo de vida (creación, borrado, pausa, etc.), servicio de nombres(registro y búsqueda) y autentificación

IIOP

Page 123: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Plataforma de Agentes FIPA

AMS DF ACC

Plataforma de transporte de mensajes

AAagentes

DF (Directory Facilitator): agente que proporciona un servicio de páginas amarillas, que describe losatributos y capacidades de los agentes de la plataforma

IIOP

Page 124: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Plataforma de Agentes FIPA

AMS DF ACC

Plataforma de transporte de mensajes

AAagentes

ACC (Agent Communication Channel): agente que se encarga de la entrega de mensajes entre agentes situados en la misma o en distintas plataformas

Soporta IIOP para interoperar con otrasplataformas

IIOP

Page 125: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Algunas Plataformas FIPA

Tryllian Agent Development Kit (www.tryllian.org)

FIPA OS (http://fipa-os.sourceforge.net/)

Grasshopper (ya no es gratuita)

JADE (http://jade.cselt.it/)

LEAP (http://leap.crm-paris.com/)

Otras en: http://www.fipa.org/resources/livesystems.html

Page 126: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

MASIF

Es un estándar para agentes móviles...

Por tanto, siento defraudaros pero lo comentaremos más adelante

Page 127: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Otras PropuestasInteragent Communication Language (OAA, Open Agent Architecture, de SRI International)

Lenguaje declarativo basado en lógica (sintaxis Prolog)Capaz de representar expresiones en lenguaje naturalSe expresa qué se desea, no cómo ni quién debe hacerlo (delegated computing, facilitator agents)Facilidades para comunicación humanos-agentes: voz/escritura, GUIs, etc.

Page 128: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Referencias (I)Agent Communication Languages: The Current Landscape, Y. Labrou, T. Finin, Y. Peng, IEEE Intelligent Systems 14(2): 45-52, 1999

KQML as an Agent Communication Language, T. Finin R. Fritzson, D. McKay, R. McEntire, Third International Conference on Information and Knowledge Management (CIKM’04)

Evaluation of KQML as an Agent Communication Language, Intelligent Agents Volume II -- Workshop on Agent Theories, Architectures, and Languages, Lecture Notes in Artificial Intelligence, Springer-Verlag, 1996

Page 129: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Referencias (II)KQML Papers and presentations, UMBC KQML Web, Tim Finin, UMBC Lab for Advanced Information Technology:http://www.cs.umbc.edu/kqml/papers/

The Foundation for Intelligent Physical Agents (FIPA): http://www.fipa.org/

MASIF, the OMG Mobile Agent System Interoperability Facility, Dejan Milojičić y otros, Mobility: processes, computers, and agents, 1999:http://www.hpl.hp.com/personal/Dejan_Milojicic/ma4.pdf

Mobile Agent Facility Specification (listado bajo la cabecera de CORBA Common Facilities):http://www.omg.org/cgi-bin/doc?formal/2000-01-02

Page 130: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Fin

Page 131: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Tecnología de Agentes Móviles

Máster en Servicios Web y Comercio Electrónico

Curso 2006/2007

Curso de Web Semántica

Sergio Ilarri [email protected]

Page 132: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Índice (I)

Caracterización de la Movilidad

Agentes Móviles: Definición, Ventajas, Aplicaciones

Movilidad: Fuerte y Débil

Plataformas de Agentes Móviles

Page 133: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Índice (II)

SPRINGSProxies DinámicosProblema de Livelock

MASIF

Ejemplos de Sistemas Basados en Agentes Móviles

Page 134: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Agentes vs. Agentes Móviles

Agentes: Inteligencia artificialSon “inteligentes”Pueden moverse o no

Agentes móviles:Computación distribuidaSon móvilesPueden ser inteligentes o no

Conflicto y esperada reconciliación

Page 135: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Agentes Móviles: DefiniciónAgentes software:

Se mueven de ordenador a ordenadorA petición del usuario, autónomamenteEjemplo: gestión de viajes

Soportan usuarios móviles

(asíncronos)

Page 136: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Los Ancestros...

Frente al paradigma clásico cliente/servidor, surge la idea de movilidad de código

Código móvil:Evaluación remotaCódigo bajo demandaProcesos móviles

Page 137: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Paradigma Cliente/ServidorAproximación clásica en sistemas distribuidosCliente y servidor estáticosEl cliente le pide algo al servidorEl servidor lo hace y le devuelve al cliente un resultadoConceptos de lenguajes de programación:

RPCRMIServicios web

Frente a C/S, los agentes móviles Paradigma de diseño alternativoParadigma de diseño complementario

Page 138: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Paradigma de Evaluación Remota

Remote Evaluation (REV)Extiende la idea de RPCEl cliente envía código al servidor para que lo ejecuteEjemplos:

El lenguaje Postscript para impresorasEl envío remoto de trabajos por lotesNCL (Network Command Language)SQL remoto

Page 139: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Paradigma de Código Bajo Demanda

Code-on-demandTambién se envía código... pero del servidor al clientePor tanto, se usan recursos del clienteEjemplo: applets de Java

Page 140: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Procesos Móviles

Área de los sistemas operativos distribuidos (finales de los 80)Migración de procesos para balancear cargaEjemplo: SpriteEjemplo de técnica de implementación: checkpointing

Imágenes periódicasEnvío de la imagen

Page 141: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Procesos vs. Agentes Móviles

Frente a los procesos móviles, los agentes móviles:

No sólo se mueven por balanceo de cargaAcceso a servicios

La migración no la inicia el SO o middleware

Agente autónomo

No sólo se mueven una vezMigración multi-salto, itinerario

Page 142: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Caracterización de la Movilidad

Códigomóvil

Com

puac

ión

móv

il

Estado

móvil

RPC, RSH, RMI, servlets,procedimientos almacenados

Instalación remota,applets

Checkpointing

Movilidaddébil

Movilidadfuerte

Migraciónde

procesos

Adaptado de una transparencia de Niranjan Suri([email protected])

Page 143: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Agentes Móviles

Programa que se ejecuta en un cierto contexto de ejecución o place, y viaja de place a place

Capaces de transportarse a sí mismos entre ordenadoresNecesita cierta infraestructura (plataforma de agentes)Agentes móviles ≠ código móvil

Alternativa a RPC, pero también es una tecnología complementaria

Page 144: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Agentes Móviles (I)

Espera un poco…Toma el resultadoUsando conexión inalámbrica

Page 145: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Agentes Móviles (II)

Agente móvil: programa que puede cambiar de ordenador (código+ datos+ estado) para llevar acabo su tarea

Entorno de ejecuciónEl entorno comprueba sus credencialesSe ejecuta autónomamentePara realizar su tarea: trasladarse a otras máquinas, usar recursos locales/remotos, interactuar con otros agentes, crear nuevos agentes y diseminarlos, etc..Una vez realizada su tarea, el agente lleva o envía los resultados al cliente, u otro servidor, destinatario, etc...

Page 146: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Características Básicas

Algunas características interesantes de los agentes (móviles)Autonomía: no/mínima interacción con el creadorInteroperabilidad: hardware, SO, etc.Reactividad: cambios/eventos del entornoCooperación: objetivo común“Inteligencia” (especialistas)Movilidad (code-shipping vs. data-shipping)

Agentes móviles en particular (sinergia)

Page 147: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

VentajasEvitan instalaciones innecesarias“Salvan” la latencia de red: comunicación localEncapsulan protocolos (bases de datos, etc.)Asíncronos/autónomos: desconexionesAdaptativosReaccionar entornoMoverse: balanceado de carga, localidad datosIntegración de sistemas heterogéneosRobustez/tolerancia a fallosAdaptación de interfaces

Page 148: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Aplicaciones (I)Recuperación de información distribuida (ej., motores de búsqueda de música o gráficos)Procesamiento paraleloAsistente personalDiseminación de informaciónComercio electrónico (agentes que compran como nosotros)Gestión de red

heterogeneidad, monitorización, personalización, enrutamiento

Aplicaciones de workflowBrokeringEntornos distribuidos: entornos móviles, ubicuos, inteligentes, P2P, etc.Otros

Page 149: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Aplicaciones (II)

¿Y la killer application?No hay¿Cómo puede defenderse un lenguaje estructurado frente a un lenguaje ensamblador?

Page 150: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Agentes Móviles en Computación Móvil

Apropiados para computación inalámbrica:Desconexiones:

Breve conexión: se envía el agente a la red fijaPosteriormente: se recupera el agente de la red fija

Descarga de trabajo del clienteContribuyen a limitar el uso de las comunicaciones inalámbricas:

Reduce los datos a intercambiar por el enlace inalámbrico Evita interacciones entre cliente y servidorSólo hay que comunicar el agente y el resultado

Page 151: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Agentes Móviles y Java (I)

Normalmente, el lenguaje en que se implementa la plataforma de agentes móviles y los agentes coincide

Salvo Tacoma (plataforma en C; agentes en C, Tcl/Tk, Perl, Python, Scheme)D’Agents (plataforma en C; agentes en TCL, Scheme, Java)

La mayoría de plataformas de agentes móviles son en Java

Page 152: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Agentes Móviles y Java (II)

Ventajas:PortabilidadOrientado a objetosMuchas librerías (programación en red, etc.)Seguro:

Ejecutado en una JVM (no acceso directo al SO)No hay punterosByte-code verifierSecurity Manager (red, ficheros, etc.)Formato en código intermedio (fácil comprobación de violaciones de seguridad)

Page 153: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Agentes Móviles y Java (III)

Desventajas:No permite capturar el estado de ejecuciónCarencia de control de recursos (memoria, CPU)

Ataques de denegación de servicios

Page 154: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Movilidad: Cómo FuncionaLos agentes móviles se crean en places y viajan entre places

moveTo(newHost)Se interrumpe la ejecución del threadSe serializa el código, datos y (quizá) el estado de ejecución del agente (qué estaba ejecutando):

Movilidad fuerte y movilidad débil

El agente se reconstruye en el place destino y continúa su ejecución

Page 155: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Movilidad Fuerte

public class AgenteMovFuerte extends Agente{

public static void main(String[] args){

System.out.println(“En ordenador origen”);moveTo(destino);System.out.println(“En ordenador destino”);

}}

Dificultades:-No es posible con Java estándar-No todos los recursos son móviles: múltiples threads, ficheros abiertos, etc.

Page 156: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Movilidad Débil (Voyager)public class AgenteMovDebil extends Agent {

public void metodoDestino (Object init) {System.out.println (“En ordenador destino”);

}public void move(String destino) {

Iagent proxy = Agent.of(this);System.out.println (“En ordenador origen”);proxy.moveTo(destino, “metodoDestino”);

}}

public static void main(String[] args) {Voyager.startup("8000"); String serverClass = "AgenteMovDebil"; AgenteMovDebil ag = new AgenteMovDebil(); ag.move("tcp://fargo.sdsu.edu:8000");

}

Page 157: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Movilidad Fuerte vs. Débil (I)Movilidad débil

No se transfiere el estado de ejecuciónEn destino, se ejecuta siempre un método predefinido o un método callback especificado por el programadorEl programador guarda y restaura el estado de ejecución

Movilidad fuerteSe transfiere el estado de ejecuciónPlataformas basadas en lenguajes de scriptPlataformas basadas en Java:

Preprocesado para cambiar el código y capturar “a mano” el estadoModificaciones a la máquina virtual de Java

Page 158: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Movilidad Fuerte vs. Débil (II)

Baumann [1995] señala que la movilidad fuerte es inútil

Un movimiento es un gran cambio en la vida del agenteEl agente ejecuta “fases” y ninguna implica varios places

Cabri et. al. [2000] indica que la movilidad fuerte lleva a un código más limpioNosotros decimos que... la movilidad fuerte no es necesaria y es difícil de implementar (aunque podría ser útil)

Page 159: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Transferencia de CódigoVarias estrategias:

PushSe envía el agente y las clases que usa

PullEl agente irá pidiendo las clases que necesitaPeligra la autonomía

Estrategias híbridasLas clases que es más probable que necesite, con push,el resto con pull

Migraciones a menor granularidad: Kalong (Tracy)Permite especificar qué clases se transmiten de quéformaPermite transmitir datos bajo demanda

Page 160: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Reflexión

¿Puede, en algún caso, sobrecargarse la red más usando agentes móviles que no usándolos?¿Alguna otra cosa que haya que considerar?

Canales de comunicación asimétricos (ej., dispositivo móvil utilizando GPRS)

Page 161: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Modelos de Comunicación

Paso de mensajesAsíncronosSíncronos

Comunicación remotaInformation spaces

BlackboardCada dato tiene un identificador que debe especificar el lector

Espacio de tuplasPermite recuperar información de manera asociativa, usando pattern-matching

Page 162: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Plataformas de Agentes Móviles

AgletsVoyagerTryllianGrasshopperJade, Tracy, Mole, SeMoa, …Todas presentan muchos problemas...

Por ejemplo, de escalabilidad y concurrenciaPor ello, desarrollamos SPRINGS

Page 163: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

SPRINGS

Escalable, mucho mejor rendimiento(3000 agentes en test exigente)Transparencia de localización:

Llamadas: proxies dinámicoscallAgentMethod(“MovingAgentExample”,”go” args);

Movimientos: callbacksmoveTo("C2","end");

Reintentos automáticosPrevención de livelock

http://sid.cps.unizar.es/SPRINGS/

Page 164: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Región k

Nodo k (RNS)

RNS

Region 1 Region nNode 1 (RNS) Node n (RNS)

RNS RNS

Agent1

Context1

Agent5

Node 2

Agent2

UpdaterProxy

UpdaterProxy

Proxy Collector

ProxyUpdater

UpdaterProxy

Context2Context4Context3

Node 3

Node 4

Agent7Agent3

Agent4

Agent6

ContextCollector

Proxy

ManagerContext

ContextManager

Proxy CollectorManager

Context

Manager

Proxy Collector

SPRINGS: Arquitectura

Page 165: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Proxies Dinámicos

Proxy a Agente1

Contexto C1

Contexto C2

C1

Estoy en C2

C2

Estoy en C3

C3

Contexto C4

Contexto C3

Page 166: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Problema de Livelock

Proxy a Agente1

Contexto C1

C1

Estoy en C2

C2ERROR

ERROR

Contexto C2Contexto C4

Contexto C3

Page 167: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Problema de Livelock

Contexto C1

Contexto C2Contexto C4

En SPRINGS

-Primero se actualizan los proxies, luego se renuda el agente

-Se retardan agentes muy rápidosContexto C3

Page 168: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Comparación con 100 Agentes

0500

100015002000250030003500400045005000

0:00

0:30

1:00

1:30

2:00

2:30

3:00

3:30

4:00

4:30

5:00

5:30

6:00

6:30

7:00

7:30

8:00

8:30

9:00

9:30

10:00

Test time (in minutes)

#ite

ratio

ns

SPRINGS Voyager Aglets Grasshopper Tryllian

Todos los agentes acaban4600, 89 acaban

2600, 0 acaban2040, 33 acaban

600, 1 acaban#ite

raci

ones

Tiempo de test (minutos)

Page 169: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide
Page 170: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Introducción (I)

Mobile Agent System Interoperability FacilityPrimer estándar para sistemas de agentes móviles (Grasshopper es el primero que lo considera)Especificación de OMGLa Request for Proposal se emitió en noviembre de 1995Se acepta en febrero de 1998 Última versión de la especificación: 2000

Page 171: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Introducción (II)Objetivo: lograr un cierto grado de interoperabilidad entre plataformas de agentes móviles de distintos fabricantesEstas especificaciones no son la base de un sistema de agentes, sino que pueden “añadirse” a sistemas ya existentesEstandariza:

Gestión de agentesSeguimiento de agentesTransporte de agentesNombrado

Page 172: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Niveles de Estandarización (I)

Gestión de agentes:Crear agentes remotamente, pararlos, arrancarlos, y otras funciones relacionadas con el ciclo de vida

Seguimiento de agentes:Localización de agentes en un entorno distribuido, consultas remotas a directorios de agentes en distintas plataformas

Transporte de agentes:Envío y recepción de ficheros de clases entreplataformas, hacerlas disponibles para ejecución

Page 173: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Niveles de Estandarización (II)

Nombrado:Sintaxis y semántica estandarizada para los nombres de agentes y sistemas de agentes

MASIF no considera la comunicación entre agentes

En cierto modo, ligado a CORBA

Page 174: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Terminología de Referencia

PlaceEntorno de ejecución de agentes

AgencySistema de agentesPuede tener varios placesPuede crear, ejecutar y transferir agentes

RegionConjunto de agencies que pertenecen a una misma unidad administrativa

Page 175: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Estándares MASIF (I)Definidos en términos de servicios CORBAestándar

De nombres, ciclo de vida, externalización, seguridad

Los estándares se recogen en dos IDLs:

MAFFinder

MAFAgentSystem

Page 176: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Estándares MASIF (II)

MAFFinderregister_agent, register_agent_system, register_place, lookup_agent, lookup_agent_system, lookup_place, unregister_agent, unregister_agent_system, unregister_place

Page 177: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Estándares MASIF (III)

MAFAgentSystemcreate_agent, fetch_classreceive_agentresume_agent, suspend_agent, terminate_agentlist_all_agents…

Page 178: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Algunas Plataformas MASIF

Grasshopper (ya no es gratuita, Enago Mobile, IKV++)

SOMA (http://www-lia.deis.unibo.it/Research/SOMA/)

Aglets (http://aglets.sourceforge.net/)

Próximamente... SPRINGS

Page 179: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide
Page 180: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Simulación de Entornos Móviles (I)

•Entorno móvil:

-Proxies

-Objetos móviles

Place

Agente móvil

•El agente móvil se ejecuta siempre en el proxyque daría cobertura al objeto que representa

•Pueden mezclarse en un mismo escenario objetosy proxies reales y simulados

Page 181: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Simulación de Entornos Móviles (II)

Page 182: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Simulación de Entornos Móviles (III)

Algunas ventajas de usar agentes móviles:

Mayor paralelismo con la realidadInteracciones locales, aumenta la precisiónPermite una fácil distribución de recursos, mayor escalabilidadPodríamos acceder a servicios de proxiesreales no disponibles remotamente

Page 183: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Simulación de Entornos Móviles (IV)

Reutilización del código original del servicio a testear (Plug & Simulate)Problema:

Si el objeto móvil a simular contiene agentes (móviles), tendremos en simulación agentes móviles que “contienen” agentes

S. Ilarri, E. Mena and A. Illarramendi, "Testing Agent-based Mobile Computing Applications Using Distributed Simulations", Seventh International DEXA Workshop on Mobility in Databases and Distributed Systems (MDDS'2004), Zaragoza (Spain), IEEE Computer Society, ISBN 0-7695-2195-9, ISSN 1529-4188, pp. 652-656, September 2004.

Page 184: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Integración de Referencias Bibliográficas (I)

Existen dos máquinas que almacenan citas bibliográficas en ficheros

Independientes, controladas por grupos distintos

Las citas pueden contener errores o inconsistencias, o estar duplicadasQueremos integrar la información de ambas fuentes de bibliografía en una tercera máquina

Page 185: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide
Page 186: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Integración de Referencias Bibliográficas (II)

Algunas ventajas de usar agentes móviles:

Pueden traernos sólo la información relevante (filtrado de datos)Podemos cerrar el navegador (e incluso apagar el ordenador) mientras el agente trabaja

Page 187: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

ADUS (I)

Adaptación dinámica de interfaces de usuarioUn agente móvil llega al PDA y se crea el GUIen función de las capacidades del dispositivo y preferencias del usuarioEl GUI se crea localmente a petición del agente móvil que llega

Por tanto, no es preciso que el agente móvil sepa crear GUIs para distintos tipos de dispositivosLo único que trae es una especificación del GUIque necesita (en lenguaje XUL)

N. Mitrovic, J.A. Royo and E. Mena, "ADUS: Indirect Generation of User interfaces on Wireless Devices", Fifteentth International Workshop onDatabase and Expert Systems Applications (DEXA'2004), Seventh International Workshop Mobility on Databases and Distributed Systems (MDDS'2004), IEEE Computer Society, ISBN 0-7695-2195-9, ISSN 1529-4188, pp. 662-666, September 2004.

Page 188: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide
Page 189: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

LRSLocker Rental ServiceUn usuario móvil puede alquilar espacio de disco en la red fijaConforme se mueve de un sitio a otro, puede ser conveniente que sus ficheros “le sigan”: agentes móviles

Interacciones más cercanas, ahorrando comunicaciones

Y. Villate, A. Illarramendi and E. Pitoura, "Keep Your Data Safe and Available While Roaming", International Journal of Mobile Networks and Application (MONET), Special Issue on Pervasive Computing, 7(4):315-328, August 2002.

Page 190: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

SRS (I)

Software Retrieval ServiceAlternativa a sistemas tipo Tucows

Permite buscar software en base a requerimientos semánticosUna ontología contiene una descripción semántica del software disponible en distintos repositorios

Page 191: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

SRS (II)

Se usan distintos tipos de agentes. Por ejemplo:

Un agente móvil trae un catálogo de software al dispositivo del usuario

Evita traer información de software no instalable (ej., para otro SO)

Un agente móvil trae finalmente el software deseado y lo instala

E. Mena, J.A. Royo, A. Illarramendi and A. Goñi, "An Agent-based Approach for Helping Users of Hand-Held Devices to Browse Software Catalogs", Cooperative Information Agents VI, 6th International Workshop CIA 2002, Lecture Notes on Artificial Intelligence (LNAI), ISBN 3-540-44173-5, pp. 51-65, September 2002.

Page 192: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide
Page 193: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

LOQOMOTION (I)

LOcation-dependent

Queries

On

Moving

ObjecTs

In

mObile

Networks

2 tipos de elementos:•Proxies

-gestionan información de localización-alojan un place

•Objetos móviles-dispositivos móviles-acceden a los proxies y emiten preguntas-son objeto de preguntas

Ej.: Monitorizar la posición de los coches de policía cercanos a un coche robado

Page 194: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

LOQOMOTION (II)

P2P5

P6

P4 P3

P1

Monitor

P0

(1)

(3)(3)

(2)(2)

(3)

(3)

(3)

DMS

MonitorTracker

Tracker

Updater

DMS

MonitorTracker

Tracker

Updater

Red de agentes

Page 195: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

LOQOMOTION (III)

Ventajas de los agentes móviles:Seguimiento eficiente de los objetos móviles de interésOptimización de las comunicaciones inalámbricasSoporte para el procesamiento distribuidoNo necesidad de mantener servidores especializados en los proxies

Page 196: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

LOQOMOTION (IV)

http://sid.cps.unizar.es/ANTARCTICA/LDQP/index.html

S. Ilarri, E. Mena and A. Illarramendi, "Location-Dependent Queries in Mobile Contexts: Distributed Processing Using Mobile Agents", IEEE Transactions on Mobile Computing, ISSN 1536-1233, 5(8):1029-1043, IEEE Computer Society, August 2006.

Page 197: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

LOQOMOTION (V)

Prototipo: Juan Luis Serrano

S. Ilarri, J.L. Serrano, E. Mena and R. Trillo, "3D Monitoring of Distributed Multiagent Systems", International Conference on Web Information Systemsand Technologies (WEBIST’07), Barcelona (Spain), INSTICC Press, ISBN ???, pp. 4, March 2007.

Page 198: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Otros (I)

REMOTE: Request Management fOrTask Execution

Música/televisión que sigue al usuario

Andante (agentes móviles musicales)

Page 199: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Otros (II)

¡Incluso servicios de contactos!

Hi, what'syour name?

Sofia, andyours?

Page 200: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Conclusiones (I)

Los agentes móviles tienen ventajas muy atractivasSon un paradigma de programación complementario al de cliente/servidorSe han aplicado en distintos campos con buenos resultadosHay diversas plataformas... la mejor de las cuales es SPRINGS

Page 201: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Conclusiones (II)

Hemos presentado (por encima) diversos ejemplos de servicios... Y si tenéis interés en más detalles, ¡sólo tenéis que decirlo!

Page 202: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Referencias (I)Understanding Code Mobility, A. Fuggetta, GP. Picco, G. Vigna, IEEE Transactions on Software Engineering, Vol. 24, No. 5, May 1998, pp. 362-375

Mobile Agents for Mobile Computing, Kotz D., R. Gray, D. Rus, S. Nog, G. Cybenko, Technical Report PCS-TR96-285, May 1996, Computer Science Department, Dartmouth College

Seven Good Reasons for Mobile Agents, Danny B. Lange, Mitsuru Oshima, Communications of the ACM, Volume 42 , Issue 3 (March 1999), pp. 88-89, ACM Press, ISSN:0001-0782, 1999

Page 203: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Referencias (II)Wireless Computational Models: Mobile Agents to the Rescue, C. Spyrou, G. Samaras, E. Pitoura, P. Evripidou, DEXA99 International Workshop on Mobility in Databases and Distributed Systems, August 1999, pp 428-433, IEEE Computer Society

SPRINGS: A Scalable Platform for Highly Mobile Agents in Distributed Computing Environments, S. Ilarri, R. Trillo and E. Mena, 4th International WoWMoM 2006 workshop on MobileDistributed Computing (MDC'06), Buffalo, New York (USA), IEEE Computer Society, ISBN 0-7695-2593-8, pp. 633-637, June 2006

Mobile Agents: Basic Concepts, Mobility Models, and the Tracy Toolkit, Peter Braun and Wilhelm R. Rossak, Morgan KaufmannPub., 464 pages, ISBN 1558608176

Page 204: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Referencias (III)Mobile Agents and Security, Giovanni Vigna (Ed.), Lecture Notes in Computer Science 1419 Springer 1998, ISBN 3-540-64792-9

Research Group of Distributed Information Systems (SID),http://sid.cps.unizar.es/

Links About Mobile Agents, http://sid.cps.unizar.es/SILARRI/LINKS/mobileAgents.html

SPRINGS, http://sid.cps.unizar.es/SPRINGS/

Aglets, http://aglets.sourceforge.net/

Tryllian, http://www.tryllian.org/

Voyager, http://www.recursionsw.com/

Jade, http://jade.tilab.com/

Page 205: Introducción a los Agentes - eolo.cps.unizar.eseolo.cps.unizar.es/docencia/masterserviciosweb/WebSemantica1... · Problemade razonamiento: cómo razonar con ellos El agente decide

Fin