Esta tarde hemos estado hablando de si tenía sentido seguir usando FIPA-ACL o KQML como lenguajes de comunicación. Todo esto motivado por el post sobre SPARQL que lo proponía como lenguaje de comunicación para los agentes en la web semántica.
El problema con FIPA-ACL no es tanto su semántica como en la sintaxis que utiliza: definiciones entre paréntesis y etiquetas identificadas con ":", siguiendo un estilo LISP. Al aplicar los agentes a la web semántica (y a los servicios web como veremos más adelante) resultan adecuados como lenguajes de contenidos los basados en XML, como RDF, OWL, OWL-S o WSML. Estos lenguajes desplazarían a FIPA-SL, que mantiene la misma sintaxis que FIPA-ACL.
Entonces, si hemos modificado el lenguaje de contenidos y usamos RDF ¿por qué no hacer lo mismo con el ACL? Esto nos permitiría usar el mismo parser para el ACL y el lenguaje de contenido, simplificando la programación del agente. Hoy en día no somos conscientes de esta complejidad porque la mayoría de las plataformas ofrecen una API que permite trabajar directamente con clases/estructuras de datos y nos ocultan los procesos de parseo de los mensajes en ACL.
Pero ¿no son realmente FIPA-ACL o KQML ontologías que representan el lenguaje que usan los agentes para comunicarse? Entonces ¿no sería más adeucado usar los lenguajes para la manipulación de ontologías, como OWL? Esto nos permitiría tener agentes que se comunicaran indistintamente en un lenguaje u otro.
Por ejemplo, usando la posibilidad de definir clases equivalentes en OWL se pueden establecer las equivalencias entre los mensajes FIPA-ACL y KQML de forma que se pueda construir un agente que se comunique indistintamente en cualquiera de estos lenguajes:
<owl:class id="fipa-query-if">
<rdfs:subclassof resource="#FIPA-ACL"/>
<owl:equivalentclass resource="kqml-ask-if"/>
</owl:Class>
Bueno, pues esta tarde me he puesto a buscar por si alguien había hecho algo así ya y me he encontrado un proyecto de la Univ. Politècnica de Catalunya en el que han construido una ontología en OWL para FIPA-ACL y más cosas. Alguna de esas "cosas" es también FIPA-SL (aquí viene un gran OMFG), cuya razón no entiendo muy bien, pero bueno.
Si quieres leer algo más, te dejo un par de artículos
Además también está disponible la
ontología en OWL de FIPA-ACL y el grafo completo para que veas toda la
ontología de forma gráfica.
El estudio de esta propuesta, implementar un agente que la utilice o cualquier otra cosa que se te ocurra también sirve como trabajo para la asignatura.