El meta-modelo de objetivos y tareas tiene como propósito recoger las motivaciones del SMA, definir las acciones identificadas en los modelos de organización, interacciones o de agentes y cómo afectan estas acciones a sus responsables. Esta información constituye parte de la especificación de cómo se quiere que sea el control del agente a alto nivel. El meta-modelo de agente habla de Procesadores y Gestores de Estado Mental que establecen el proceso deliberativo y de mantenimiento del conocimiento del agente. El meta-modelo de interacción de los estados mentales requeridos por parte de un conjunto de agentes que interactúen. Aquí se trata de poder expresar cuáles son las consecuencias de ejecutar las tareas y de por qué se deberían llegar a ejecutar. Una vez proporcionada esta información, son las entidades anteriores las que determinan, dado un conjunto de tareas a ejecutar, cuál se elige.
La justificación del uso de objetivos como representación del control del agente, se encuentra en el principio de racionalidad ya enunciado con anterioridad. La asociación de los objetivos con las tareas es algo que surge en los comienzos de la planificación y cuyo uso ha sido ratificado con modelos teóricos como el BDI. Según el modelo BDI, los seres humanos tienden a enfocar sus acciones siguiendo una pauta concreta: cuál es la situación actual (creencias), qué es lo que se quiere (objetivos) y cómo se puede llegar a alcanzar (intenciones). Siguiendo también el principio de racionalidad, las acciones del agente se justifican por los objetivos que persigue, lo cual lleva también a la asociación de tareas y objetivos. Finalmente, la inclusión de las tareas en este meta-modelo obedece a que, además de asociarse con objetivos, juegan un papel fundamental en la evolución del estado mental de sus responsables. El por qué aparece esta información aquí y no en el meta-modelo de agente o de organización se debe a que el ámbito de estos meta-modelos no es el de relacionar tareas con objetivos. El meta-modelo de organización fija el marco de ejecución de las tareas mientras que el meta-modelo de agente sólo informa de las características de un agente concreto.
Para desarrollar los contenidos de este meta-modelo, primero se estudia cómo son las tareas y objetivos en otras metodologías y herramientas de desarrollo de SMA, después se presenta el meta-modelo que recoge las ideas más relevantes de los trabajos estudiados, a continuación una guía de generación de modelos de tareas y objetivos. Para terminar, se presentan ejemplos de modelos de tareas y objetivos.
El concepto tarea aparece repetidas veces en la literatura de agentes. En [Ferber 99] aparece un resumen de diferentes interpretaciones de qué es una tarea. Una tarea se puede ver como: transformaciones del estado global, respuestas a eventos, un proceso, una acción física o un comando.
De estas acepciones, se han elegido dos, que son complementarias: tarea como transformadora del estado global y tarea como proceso. La primera es útil porque concibe la tarea como pre-condiciones y post-condiciones (el cómo son estas pre y post-condiciones se discutirá más tarde). Esto permite su incorporación en mecanismos de planificación y razonamiento. La segunda es más pragmática y acorde con la realidad final: que la tarea será un conjunto de instrucciones que han de ejecutarse. En concreto, interesa la interpretación de OMG [OMG 00c], que ve la tarea como proceso integrado en un flujo de trabajo, planteamiento similar al que se adopta en el meta-modelo de organización.
En cuanto a la integración de tareas en los SMAs, se ha estudiado TAEMS y ZEUS. De TAEMS [Decker 96;Decker y Lesser 95;Decker 95] se ha tenido en cuenta la forma de dividir tareas, funciones de coste asociadas a tareas, influencias entre tareas y la integración de recursos como bienes necesarios para la ejecución de tareas. De ZEUS [Nwana et al. 99] se toma el modelo de ejecución de las tareas. En este modelo, las tareas se comienzan cuando se satisfacen sus precondiciones expresadas en términos del conocimiento del agente (hechos). Se incluye, como en Wooldridge [Wooldridge 92], la posibilidad de contabilizar como acción la actualización del conocimiento, que consiste en la adición o sustracción de uno o más hechos. Otra idea tomada de ZEUS es la asociación de atributos, concretamente coste y duración, a la tarea. Como en todos estos enfoques, cada tarea se asigna a un agente. Este agente tiene la responsabilidad de comenzar, controlar y ejecutar la tarea según los términos establecidos por el diseñador.
Se han dejado aparte otros desarrollos que podrían verse como relevantes. Agent Tool [DeLoach 01;Wood y DeLoach 00] se ha descartado por la forma de detallar el comportamiento de las tareas, similar al SDL [International Telecommunication Union 99 A.D.b] y por lo tanto poco adecuado para el diseño de agentes cognitivos. La metodología GAIA [Wooldridge, Jennings y Kinny 00] también ha sido dejada a un lado por concebir la tarea como precondiciones y postcondiciones expresadas con fórmulas lógicas. Aunque este enfoque está de acuerdo con las tendencias convencionales de programación, plantea serios problemas a la hora de comprender su funcionamiento y de conseguir generación automática de código. Precondiciones y postcondiciones como fórmulas lógicas (como las que se muestran en GAIA), no son válidas si no se establece y formaliza un dominio para las mismas. Y formalizar el dominio, si bien es deseable, es muy costoso.
Sin querer prescindir de estas ideas, antes de hablar de precondiciones como en GAIA, se ha preferido utilizar precondiciones como en ZEUS, donde éstas se identifican con la parte izquierda de una regla y cuyos términos son entidades de conocimiento recogidas en una ontología. Al considerar las postcondiciones, debido a la integración de las tareas en los flujos de trabajo, se ha tomado la decisión de modelarlas como la producción o modificación de entidades mentales y la utilización de elementos del entorno, como en ZEUS. De esta forma, sólo quedaría por determinar cuál es la postcondición de la utilización de un elemento del entorno, pero ello se enmarca ya en la ingeniería convencional, como se verá en el meta-modelo de entorno.
Para simplificar el meta-modelo, se ha optado por restringir lo que se puede hacer en una tarea omitiendo el estado de la tarea. Así, la tarea existe como proceso durante un tiempo finito1. En caso de necesitar conservar el estado de una ejecución a otra, éste se puede expresar a través de entidades mentales.
En este trabajo, los objetivos se emplean para razonar acerca de las posibles alternativas que se le presentan a un agente en un momento dado. Para representar estas alternativas, existen dos tendencias:
Objetivos como agregación. Este es el enfoque predominante en planificación clásica (STRIPS [Fikes y Nilsson 71]). El objetivo se ve como una descripción del estado del mundo a alcanzar. Cuando la descripción del estado del mundo se hace con un conjunto de predicados, el objetivo se convierte en una agregación de estos predicados.
Objetivos como entes. Este enfoque se usa en el modelo BDI y en los paradigmas lógicos descritos en el primer capítulo. No se trata de agregaciones de predicados, como antes, sino de entes autorepresentativos. Un objetivo, según [Ferber 99], es una unidad mental resultado de impulsos (del propio agente) y solicitudes, de otros agentes. Según el modelo BDI, se trata de un deseo que se quiere satisfacer. El principio de racionalidad ve los objetivos como guía y justificante de las acciones del agente.
Aunque el término objetivo (goal) tiene el sentido descrito en la mayoría de los casos, existe otra interpretación sutilmente diferente: objetivos como requisitos. Algunas metodologías como Kaos [Bradshaw 96], TROPOS [Bresciani et al. 01] o MaSE [DeLoach 01;DeLoach, Wood y Sparkman 01;Wood y DeLoach 00] utilizan este planteamiento para reflejar en el diseño los requisitos que debe satisfacer el sistema.
En este trabajo, los objetivos se toman inicialmente como entes autorepresentativos que guían el comportamiento del agente. Para tener en cuenta el enfoque de planificación, hay que permitir el relacionar los objetivos con el conjunto de elementos (e.g. predicados) al que representa. En cuanto al último enfoque (objetivos como requisitos), la asimilación de objetivos con requisitos es puramente interpretativa. Es decisión del ingeniero el considerar un objetivo como requisito o no.
El meta-modelo de tareas y objetivos se usa para expresar la motivación que hay detrás de las tareas y qué opciones de actuación se le presentan a un agente en un momento dado. La Ilustración 1 muestra la parte del meta-modelo de tareas y objetivos dedicada a este fin.
En el meta-modelo se refleja la relación de los objetivos con los agentes, roles y organizaciones. Una organización, como entidad autónoma al igual que un agente persigue objetivos (GTPersigue). Los roles, por el contrario, se asocian con los objetivos en el marco de los flujos de trabajo, por ello se asocian con otra meta-relación, WFPersigue. Los agentes, por poder aparecer en los flujos de trabajo y ser una entidad autónoma, como la organización, pueden asociarse con cualquiera de las dos.

Ilustración 1. Relaciones entre objetivos y tareas
Las tareas se asocian con los objetivos mediante la meta-relación GTAfecta (ver Ilustración 2), cuya semántica es que la ejecución de la tarea afecta de una forma específica a una entidad mental. El ámbito de actuación de la tarea, en cuanto a GTAfecta, se limita a las entidades mentales del ejecutor de la tarea. La modificación del estado mental de otros agentes se modela haciendo que una tarea produzca una interacción con otro agente. Esta interacción provoca la ejecución en el otro agente de tareas que son las responsables finales de realizar el cambio.

Ilustración 2. Formas en que una tarea afecta a un objetivo
Se distinguen tres formas de alterar el estado mental: destruyendo una o varias entidades (GTDestruye), creándolas (GTCrea) o modificándolas (GTModifica). Todas ellas se decoran con un patrón de estado mental para indicar en qué condiciones la creación, modificación o destrucción tiene lugar. Para el caso de la modificación y destrucción, se puede colocar dentro de estos patrones una entidad del mismo tipo que el que se va a ver afectado para reflejar dependencias de las entidades a modificar o destruir. La modificación de entidades mentales no se llega a detallar en profundidad. Sólo se señala que tal modificación existirá.
Para el caso de los objetivos, se ha especializado la relación GTModifica. Como el desarrollo que se propone se basa en la utilización de objetivos, es justificable el considerar cómo se satisfacen o fracasan los objetivos. Por ello se ha dispuesto de dos especializaciones que concretan la forma de modificar un objetivo: satisfaciéndolo (GTSatisface) o haciéndolo fallar (GTFalla). Estas dos últimas se condicionan a la existencia de ciertas evidencias que indiquen cuándo tiene lugar el fallo o la satisfacción del objetivo (propiedad Evidencia). Esta condición se expresa con patrones de estado mental, ya mencionados en el capítulo anterior. Queda pendiente el decidir qué hacer cuando se alcanza un objetivo o cuando este fracasa. Aquí se consideran dos enfoques:
Delegar en el gestor y procesador de estado mental. De forma genérica se establece cual es el tratamiento de los objetivos fracasados o satisfechos. Este tratamiento entraría dentro de las especificaciones del gestor y procesador de estado mental.
Definir nuevas tareas para tratar con objetivos fracasados o satisfechos. El cómo se realiza la gestión de entidades se detalla mediante tareas que destruyen, crean o modifican las entidades mentales existentes. La ventaja de este enfoque es que se hace explícito el tratamiento de gestión.
Para que este último enfoque funcione correctamente, es necesario definir relaciones de herencia entre entidades mentales. En concreto, se definen relaciones de herencia entre hechos. El resto de entidades mentales también podría necesitar este tipo de relaciones, pero de momento no ha sido necesario.

Ilustración 3. Relación de herencia entre hechos
La herencia definida es del tipo herencia simple y establece que lo que se hereda son las propiedades definidas en el ancestro.

Ilustración 4. Meta-modelo de objetivos y tareas. Descomposición de tareas y objetivos.
Debido a la complejidad que pueden existir en los objetivos y las tareas, se han incorporado meta-relaciones que representan la descomposición de objetivos y tareas (GTDescompone y WFDescompone). Estas relaciones de descomposición dan lugar a grafos acíclicos donde se distinguen tareas, objetivos, sub-tareas y sub-objetivos. Este aspecto estructural se complementa con la expresión de dependencias entre objetivos. Nótese que no se incorporan dependencias entre tareas, aunque éstas son expresables mediante otras relaciones que se verán a continuación. La descomposición de objetivos da lugar a árboles Y/O [Rich y Knight 90], que están soportados por instancias de GTDependeY y GTDependeO. GTDependeY asume que cuando todos los sub-objetivos (los definidos por esta relación) han sido satisfechos, el objetivo padre puede darse por alcanzado. La definición de GTDependeO se diferencia en que sólo se requiere que al menos uno de los objetivos referenciados haya sido satisfecho. Estas instancias también se usan para transmitir un fallo desde un sub-objetivo al objetivo padre. La transmisión de fallos desde los sub-objetivos al padre se hace en función del tipo de dependencia. GTDependeY hace que el objetivo padre falle si cualquiera de sus sub-objetivos falla. GTDependeO hace que el objetivo padre falle si todos sus sub-objetivos fallan.
Aunque según estas definiciones de dependencias entre objetivos, se podría asimilar descomposición a dependencia, en la realidad esta equivalencia no tiene por qué darse. Por ejemplo, se pueden definir un bosque de descomposición de objetivos y relaciones de dependencias Y/O entre objetivos pertenecientes a distintos árboles de descomposición estructural.

Ilustración 5. Meta-modelo de tareas y objetivos. Descripción de tareas
Las tareas (Ilustración 5) se describen mendiante meta-relaciones que definen precondiciones (WFConsume, WFUsa, GTAfecta) y postcondiciones (WFProduce, GTAfecta). WFConsume indica que para que se ejecute la tarea se necesita que existan determinadas entidades mentales (objetivos, creencias, hechos, etc.). La meta-relación WFUsa indica que se necesitan algunos de los recursos que se identifican en el meta-modelo de entorno. GTAfecta indica que se actúa sobre una entidad mental, por lo que se requiere de su existencia. Las postcondiciones se representan con WFProduce y GTAfecta. WFProduce indica la creación de entidades mentales, interacciones o reposición de recursos en el seno de un flujo de trabajo. GTAfecta también puede señalar la creación de entidades mentales, pero se usa para indicar cambios en las entidades mentales no relacionadas con el flujo de trabajo en que se enmarca.
Aunque la ejecución de la tarea debe decidirla el procesador de estado mental, se asume que no se pueden ejecutar tareas que no satisfagan las precondiciones especificadas o que no dispongan de recursos o que, cuando se trate de tareas ejecutadas en el curso de una interacción, no se satisfagan las condiciones impuestas en instancias de UIInicia y UIColabora.

Ilustración 6. Meta-modelo de tareas y objetivos. Uso de entidades del entorno
Durante la ejecución de la tarea se ejecutan acciones sobre el entorno, que en este trabajo se considera como una agregación de agentes, aplicaciones y recursos. Las acciones sobre otros agentes se consideran como interacciones en el sentido de instancias del meta-modelo de interacción. Sin embargo, las accciones sobre otras aplicaciones o recursos están dentro de un orden distinto. Al principio del desarrollo, estas acciones se representan con WFUsa sin llegar a explicitar exactamente qué operación se está utilizando. En etapas avanzadas se emplea WFUsaLlamada donde se anexa como información qué operación se está utilizando.

Ilustración 7. Meta-modelo de tareas y objetivos. Restricciones sobre elementos consumidos
Cuando existen múltiples instancias de las entidades mentales referenciadas, se emplea como ámbito el contexto de ejecución de la tarea dado por el flujo de trabajo. Si dentro del mismo flujo de trabajo existen varias instancias de la misma entidad mental, se hace una selección no determinista (WFConsumeNoDeterminista) o bien una selección basada en restricciones sobre los atributos asociados a la entidad (WFConsumeRestrictivo).
El ejemplo utilizado es el modelado de un agente planificador de tareas. El agente sabe ejecutar dos tipos de tareas: tarea A y tarea B. De la utilización de éstas depende que se alcance el objetivo O (Ilustración 8).

Ilustración 8. Modelo de agente para representar el agente planificador.
Inicialmente, el agente cuenta con los hechos A y B. Con esta información, el procesador de estado mental del agente, que es en realidad un planificador de tareas, se pregunta si será capaz de alcanzar el objetivo propuesto (O). Para determinar si será capaz o no, hace falta más información, concretamente bajo qué condiciones el objetivo O se alcanza y qué efectos tiene la ejecución de las tareas A y B.

Ilustración 9. Modelo de tareas y objetivos para especificar las tareas A y B
La Ilustración 9 muestra las consecuencias de ejecutar las tareas A y B. En este caso, ambas se limitan a producir nuevas entidades mentales.

Ilustración 10. Modelo de tareas y objetivos para mostrar la satisfacción del objetivo O por la ejecución de la Tarea B
La asociación de objetivos con tareas es fundamental. Como se ha mencionado con anterioridad, hace falta justificar por qué el agente elige un curso de acciones. Aquí, la elección de la Tarea B se justifica porque con ello se alcanza el objetivo O. La relación se decora con un patrón de estado mental (Ejemplo de satisfacción del objetivo O) que denota el estado mental requerido para dar por satisfecho O.

Ilustración 11. Modelo de agente para representar el estado mental requerido para alcanzar el objetivo O
La Ilustración 11 muestra lo que faltaba, una descripción del estado mental requerido para alcanzar el objetivo O. En este caso, se requiere que el que persigue O contenga también el hecho D. A partir de este momento, el procesador de estado mental del agente, que es un planificador, tiene información suficiente para deducir que debe ejecutar Tarea A antes de ejecutar Tarea B para alcanzar el objetivo O.
El problema se podría haber especificado de una forma alternativa. En lugar de asociar directamente el objetivo O con la Tarea B, se podría haber aplicado descomposición de objetivos y asociar los nuevos subobjetivos con las tareas existentes.

Ilustración 12. Modelo de objetivos y tareas para mostrar la descomposición de O en O1 y O2 (izquierda) y las dependencias entre éstos (derecha)
La Ilustración 12 muestra la descomposición del objetivo O en otros dos (O1 y O2) con los que se establece una dependencia Y. Esto significa que cuando O1 y O2 hayan sido alcanzados, automáticamente, O se dará por alcanzado.

Ilustración 13. Modelo de objetivos y tareas para mostrar la asociación de las tareas A y B con los objetivos O1 y O2
La Ilustración 13 sirve para asociar los objetivos O1 y O2 con las tareas que sabe ejecutar el agente. La descripción detallada del estado mental requerido por O1 y O2 se omite aquí. Baste decir que para alcanzar O1 y O2 se necesitan que existan los hechos C y D.
Este meta-modelo se orienta principalmente a justificar la ejecución de tareas basándose en los objetivos, que a su vez, se van modificando tras dicha ejecución. Por ello, la mayoría de relaciones con los modelos consiste en recoger, agrupar e interrelacionar los objetivos que aparecen en ellos, poniéndolos en el contexto de justificantes de la ejecución de tareas (ver Ilustración 14). Así, las relaciones con los meta-modelos de agente, organización e interacción se reduce a recoger todos los objetivos y tareas que allí aparecen y trabajar con ellos.

Ilustración 14. Dependencias del meta-modelo de objetivos y tareas respecto de otros meta-modelos
La única asociación de propósito diferente es la establecida con el meta-modelo de entorno. Este meta-modelo proporciona recursos y aplicaciones con las que habilitar las tareas.
Por lo tanto, la mayoría de los criterios de consistencia en este meta-modelo se restringen a verificar que se satisfacen las siguientes condiciones:
Todas las tareas que aparecen en un modelo de tareas y objetivos también deben aparecer en algún modelo de agente o en algún modelo de organización.
Todo objetivo que aparezca en un modelo de tareas y objetivos debe aparecer en un modelo de agente o en un modelo de organización.
Si una tarea produce una interacción, debe existir un modelo de organización donde se enmarque esta tarea dentro de un flujo de trabajo y un modelo de interacción para la interacción producida.
Cuando los resultados de una tarea se necesiten en otra, se entiende que se tiene un flujo de trabajo. Por lo tanto, debe crearse una nueva entidad flujo de trabajo en un modelo de organización y especificar allí cómo se conectan las tareas.
Todo recurso que aparece en este modelo debe aparecer en un modelo de entorno.
Las entidades mentales consumidas, producidas, modificadas o destruidas deben pertenecer al estado mental del agente ejecutor. Para modificar el estado mental de otro agente se utiliza una interacción.
1 Las tareas de duración infinita no se incluyen como tales porque no son convenientes desde el punto de vista del control del agente expuesto en este trabajo. Como se verá más adelante, la ejecución de tareas suele requerir recursos. Si una tarea toma un recurso y no lo libera, como podría suceder con una tarea de duración infinita, se correrían el riesgo de tener un interbloqueo de tareas. La situación, no obstante es salvable extrayendo el estado de la tarea y depositándolo en el estado mental del agente. Así el control del agente sería responsable de ejecutar indefinidamente la tarea sin peligro de interbloqueos.