Ontologías para comunicación entre agentes
Posted in
Computers
Tags: agentes inteligentes, inteligencia artificial, ontolingua, ontologías, xml
An ontology is a formal definition of a body of knowledge. The most typical type of ontology used in building agents involves a structural component. Essentially a taxonomy of class and subclass relations coupled with definitions of the relationships between these things.
Jim Hendler
Una ontología es una especificación de objetos, conceptos y relaciones de un determinado área de interés. En el ejemplo de Blocks-World, el término Block representa un concepto y el término On (lo utilizábamos para indicar que un bloque está encima de otro) representa una relación. Los conceptos pueden ser representados mediante lógica de primer orden como predicados unitarios. Para expresar la idea de que un bloque es un objeto físico, podríamos utilizar la siguiente expresión de primer orden:

Hay otras más representativas. En lugar de (Block A), se podría usar la expresión (instanceOf A Block). Tanto A como Block son objetos del universo que estamos tratando, y se introducen las nuevas relaciones instanceOf y subclassOf:
(class Block) (class PhysicalObject) (subclassOf Block PhysicalObject) ∀x, y, z (instanceOf x y) Λ (subclassOf y z) → (instanceOf x z)
El último código es una regla que expresa la idea de un tipo de jerarquía. Un ontología es más que una taxonomía de clases (o tipos). La ontología debe describir las relaciones que existen entre sus elementos. Las clases y las relaciones se deben representar en la ontología, en cambio no es necesario incluir las instancias de la clase. Por ejemplo, no hay necesidad de representar A en la ontología al igual que tampoco (Block A) o (instanceOf A Block). Una ontología es análoga al esquema de una base de datos, donde no incluimos las tuplas existentes en el esquema.

Todos los agentes que compartan una misma ontología para la representación de conocimiento tendrán un entendimiento de palabras en el lenguaje de comunicación que usen. Muchos agentes poseen conocimientos donde las relaciones están definidas a mayor detalle. Por ejemplo, el dominio y el rango de una relación binaria se puede especificar de la siguiente manera:
(domain On PhysicalObject) (range On PhysicalObject)
Estas restricciones limita ciertos valores para usar las relaciones. (On A B) está permitido si tanto A como B son instancias de PhysicalObject mediante un cierre transitivo de subclassOf; (On A Dream1) estaría prohibido si Dream1 no es un PhysicalObject (objeto físico).
Anteriormente ya hemos visto un lenguaje con el que podríamos definir ontologías: KIF. Usando KIF podemos expresar las propiedades de un dominio y las relaciones que existen entre los objetos de dicho dominio. Como KIF no fue ideado principalmente para ser un lenguaje para el uso de humanos (más bien para el procesamiento en máquinas), se han desarrollado herramientas para permitir desarrollar ontologías en KIF. La aplicación más conocida es Ontolingua, un servicio basado en web que ofrece una plataforma común donde las ontologías desarrolladas por diferentes grupos se pueden compartir.
El componente central es una librería de ontologías, expresadas en el lenguaje de definición de ontologías de Ontolingua (basado en KIF). Una aplicación residente en el servidor proporciona el acceso a esta librería. Se puede acceder a la librería de diferentes modos: editando directamente de una interfaz web o a través de aplicaciones que se conectan de forma remota al servidor a través de una interfaz NGFP. El servidor de Ontolingua es capaz de transformar automáticamente ontologías expresadas es un formato a otros (CORBA, …).
Hay otros lenguajes para definir ontologías más intuitivos para el ser humano. Uno de los más importantes (y más sencillos en mi opinión) es XML (eXtensible Markup Language). Para entender de donde viene XML, es necesario echar un vistazo a la historia de la web. La web esencialmente comprende a grandes rasgos dos elementos: un protocolo (HTTP) que proporciona una conjunto de reglas para permitir a los servidores y clientes comunicarse el uno con el otro, y el formato para el intercambio de documentos HTML (Hypertext Markup Language). HTML define esencialmente una gramática para intercalar información con etiquetas definidas. Esas etiquetas dan indicaciones al navegador de cómo mostrar un documento (HTML no es un lenguaje de programación, sino un lenguaje descriptivo). La gramática de HTML está definida por un documento de declaración de tipo llamado DTD (Document Type Declaration). Un DTD podría ser análogo a las gramáticas formales que se usan para definir la sintaxis de un lenguaje de programación. Un documento DTD está expresado en un lenguaje formal llamado SGML (Standard Generalized Markup Language). Podríamos decir que SGML es un lenguaje para definir otros lenguajes. XML fue desarrollado para responder a una de las mayores críticas de la web: la falta de etiquetas semánticas.
I have a dream for the Web [in which computers] become capable of analysing all the data on the Web - the content, links, and transactions between people and computers. A Semantic Web, which should make this possible, has yet to emerge, but when it does, the day-to-day mechanisms of trade, bureaucracy and our daily lives will be handled by machines talking to machines. The intelligent agentes people have touted for ages will finally materialise.
Tim Berners Lee
Más información | Ontolingua
Más información | Wikipedia
Más información | Multiagent Systems and Societies of Agents, M. H. and Larry M. S.
Más información | MultiAgent Systems, Michael Wooldridge






DraXus
14 jun 2007 20:06:54
También está el OWL.
Veo que le estás metiendo caña a estos artículos, ¿estás dando IA o es por tu cuenta?
Saludos!
Alfonso Jiménez
16 jun 2007 18:34:27
Tengo en mente un post exclusivamente para OWL. Digamos que es por mi cuenta :)
Saludos!