330 likes | 461 Views
Knowledge Interchange Format - KIF. Comunicación entre agentes software. AGENTES SOFTWARE. proceso autónomo dirigido por objetivos, capaz de desarrollar acciones situado en un entorno y reactivo al mismo coopera con otros agentes (software o humanos) para cumplir sus tareas.
E N D
Knowledge Interchange Format - KIF Comunicación entre agentes software
AGENTES SOFTWARE • proceso autónomo dirigido por objetivos, capaz de desarrollar acciones • situado en un entorno y reactivo al mismo • coopera con otros agentes (software o humanos) para cumplir sus tareas
AGENTES SOFTWARE - Comunicación • necesario agentes sean capaces de comunicarse información entre ellos para permitir la interactuación • habilidad de interactuar con otros agentes, móviles o estáticos, o con fuentes de información “agentificadas” • lenguaje comunicación de agentes debe ser visto como una herramienta con capacidad de integrar diferentes fuentes de información • debe ser común y compartido. • sus palabras deberían tener el mismo significado para ambas partes de una comunicación. • el significado de sus elementos debe ser compartido,
AGENTES SOFTWARE - Comunicación • comunicación entre agentes distinto de transporte de flujo de bits a través de un canal • medio de alcanzar un alto nivel de interoperabilidad y abstracción • comunicación en un lenguaje común
BÚSQUEDA DE UN LENGUAJE COMÚN. ESTANDARIZACIÓN • varios lenguajes, diferentes paradigmas de programación (o.o., lógica, funcional, ...) pueden ser usados para la implementación de agentes • plataformas hardware y los sistemas operativos, también serán variados • agentes pueden ser escritos como aplicaciones autónomas . No se pueden hacer suposiciones sobre su estructura interna
ESTANDARIZACIÓN - CAPAS capas a través de las cuales pueden ser aplicados los principios de estandarización: • capa de traducción entre lenguajes de la misma familia (o entre familias) de lenguajes • capa para garantizar que el contenido semántico de los elementos se mantiene entre aplicaciones. Mismo significado aun con diferentes nombres. ONTOLOGÍA. • capa relativa a la comunicación entre agentes. deben ser capaces de comunicar aptitudes complejas sobre su información y contenido de conocimiento
INTEROPERABILIDAD EN AGENTES MÓVILES • residen en entornos muy heterogéneos • no todas las plataformas para los agentes móviles son iguales (propuesta estandarización del entorno de ejecución: The Mobile Agent Facility – MAF) • Puede necesitar interactuar con: • otros en una plataforma diferente • agentes no móviles • fuente de información no expresamente preparada para agentes
INTEROPERABILIDAD EN AGENTES MÓVILES • necesario diversas fuentes de información puedan interactuar entre si • fuentes de información pueden estar implementadas o hacer uso de diferentes lenguajes del utilizado por el agente móvil. • => elementos que usa para referirse a los mismos conceptos pueden ser diferentes.
LENGUAJE COMÚN DE COMUNICACIÓN DE AGENTES • tres problemas básicos • cómo traducir de un lenguaje a otro • cómo garantizar que el significado de los conceptos, objetos, relaciones, ... es el mismo para los diferentes agentes • cómo el conocimiento va a ser compartido entre los agentes • un ACL es una herramienta que sigue el camino de la abstracción por capas de la interoperabilidad. • introduce una gran abstracción al separar la expresión que es el contenido del intercambio, de su significado.
ACL - ventajas • puede ser usado como herramienta de interoperabilidad entre: • agentes móviles y estáticos • agentes móviles diseñados para diferentes plataformas • agentes móviles y fuentes “agentificadas” estáticas de información. • complementa aproximación procedimental que domina el paradigma de los agentes móviles, con las ventajas potenciales de la aproximación declarativa (“cómo” realizar una tarea en lugar de “que” tarea debe ser realizada) • introduce un nivel de abstracción que puede acomodar múltiples paradigmas.
KNOWLEDGE SHARINF EFFORT - KSE • iniciativa para atacar cuestión interoperabilidad sobre las líneas de las tres capas • trabajo del KSE concluyó en tres lenguajes, cada uno relacionado con una de las tres capas. • Ontolingua. Desarrollado como un lenguaje en el cual se pueden escribir ontologías portables. (capa 2) • Knowledge Query and Manipulation Language (KQML). Lenguaje para la comunicación entre agentes. (capa 3) • Knowledge Interchange Format (KIF). Diseñado como una solución al problema de la traducción. (capa 1)
KNOWLEDGE INTERCHANGE FORMAT - KIF • Ideal, lenguaje (y un sistema computacional relacionado) bueno para representar un gran rango de cosas, como el lenguaje natural, pero sin la ambigüedad e imprecisión que éste presenta. • KIF es un lenguaje lógico, propuesto como estándar para describir objetos dentro de un sistema computacional (sistemas expertos, bases de datos, agentes inteligentes, ...); • lenguaje útil como mediador en la traducción de otros lenguajes usándolo como una representación intermedia.
CONOCIMIENTO EN KIF Conocimiento en KIF KIF Traductor Leng1 Base Conoc. en Leng1 Sistema 1 KIF Traductor Leng2 Base Conoc. en Leng2 Sistema 2 Librería
CARACTERÍSTICAS ESENCIALES • semántica declarativa. Es posible comprender el significado de las expresiones sin necesidad de que un intérprete las manipule • comprensible lógicamente. Provee medios para la expresión de cualquier sentencia en cálculo de predicados (a diferencia de otros lenguajes cómo los lenguajes relacionales de bases de datos –limitados a sentencias atómicas, la mayoría-, o lenguajes como Prolog que están limitados a cláusulas Horn). • medios para la representación de conocimiento sobre el conocimiento. Permite introducir nuevas representaciones del conocimiento sin cambiar el lenguaje y hacer todas las representaciones del conocimiento explícitas.
OTRASCARACTERÍSTICAS • Translatibidad. Proveer medios prácticos para la traducción de bases de conocimiento declarativas, a o desde lenguajes de representación de conocimiento. • Legibilidad. Aunque no es su fin principal el de interaccionar con personas, la legibilidad del lenguaje por parte de éstas, facilita su uso en la descripción de la representación de semánticas de lenguaje, así como su uso como un lenguaje de publicación o como asistente para personas en problemas de traducción de bases de conocimiento, ... • Implementabilidad. Pese a no ser diseñado como un lenguaje para la representación o comunicación dentro de programas, puede ser usado para ello.
ESPECIFICACIÓN DE KIF • utiliza versión prefija de cálculo de predicados de primer orden, con extensiones para soportar razonamiento no monótono y definiciones. • descripción del lenguaje incluye tanto una especificación para su sintaxis, como para su semántica. • provee medios para codificar conocimiento sobre el conocimiento
ESPECIFICACIÓN DE KIF (2) • La especificación de kif cubre los siguientes aspectos: • SINTAXIS • LÓGICA • NÚMEROS • LISTAS • CARACTERES Y STRINGS • METACONOCIMIENTO
SINTAXIS • Tres capas: • Los caracteres básicos del lenguaje, que pueden ser combinados para formar • Lexemas, que pueden ser combinados para formar • expresiones gramaticalmente correctas.
SINTAXIS (expresiones) • Se forman con lexemas. Tres tipos de expresiones: • Términos. Para denotar objetos del mundo. (+ a b) • Sentencias. Expresar hechos sobre el mundo (=> a b) • Definiciones. Definir constantes (defrelation rel sentencia) • Las definiciones y las sentencias se denominan “forms” • Base de conocimiento: conjunto finito de forms.
LÓGICA • Base para la semántica. Conceptualización del mundo en términos de objetos y relaciones entre ellos. • Engloba: • Términos Funcionales (+ 2 3) • Términos Lógicos (if (>1 2) 1 (>2 1) 2 0) • Bottom • True y False • Equations y Inequalities (= term term) (/= term term) • Sentencias Relacionales (> 1 2) • Sentencias Lógicas (=> a b) • Sentencias Cuantificadas forall exists • Definiciones (defobject s := t)
NÚMEROS • constante numérica se asume que es el número para el cual esa constante es la representación en base 10. • Funciones sobre Números. Ej: (* t1 ... tn) (+ t1 ... tn) (max t1 ... tk) • Relaciones sobre Números. Ej: (integer t) (complex t)
LISTAS • secuencia de objetos. Objetos de una lista no necesitan ser expresiones KIF (listof Obj1 (listof lob1 lob2 lob3) Obj3) • proporciona funciones para el trabajo con listas. Ej: • first • rest • last • reverse • append • sublist
CARACTERES Y STRINGS • Carácter: símbolo imprimible, como un dígito o una letra. Hay 128 caracteres distintos. • Cadenas (Strings): lista de caracteres. Varias maneras de referirse a ellos: • "abc". • #3qabc • (listof #\a #\b #\c)
METACONOCIMIENTO • medios para codificar conocimiento sobre el conocimiento • Nombrado de Expresiones: expresiones tratadas como objetos en el universo del discurso, en el cual hay funciones y relaciones apropiadas a esos objetos. • Tipos de Expressiones: Para facilitar la codificación del conocimiento sobre KIF, incluye relaciones tipo para las diferentes categorías sintácticas. • Cambiar Niveles de Denotación: posible escribir expresiones que describan sentencias KIF. También una forma de escribir sentencias que aseveran la certeza de las sentencias descritas. El efecto de añadir esta sentencias de metanivel a una base de conocimiento es el mismo que incluir directamente el conjunto (potencialmente infinito) de sentencias descritas en la base del conocimiento.
EJEMPLOS SIMPLES EN KIF(1) (salario 76706923z Analista 670000) (salario 76712364j Operador 150000) • representa tuplas de una base de datos de empleados guardando su DNI, puesto y salario.
EJEMPLOS SIMPLES EN KIF(2) (>(salario empleado1)(salario empleado2)) • para indicar que el empleado1 tiene un salario mayor que empleado2.
EJEMPLOS SIMPLES EN KIF(3) (=>(and(num-real ?x) (num-par ?n)) (>(expt ?x ?n) 0)) • indica que el resultado de elevar un número real a una potencia par, da un resultado positivo (mayor que cero).
EJEMPLOS SIMPLES EN KIF(4) (interested Amador `(salario ,?x ,?y ,?z)) • para indicar que el agente Amador está interesado en recibir tuplas de la relación salario. Las comas indican que las variables no deben ser tomadas literalmente. Sin ellas indicaría que se está interesado en la sentencia (salario ?x ?y ?z) en lugar de en sus instancias.
EJEMPLOS SIMPLES EN KIF(5) • También se pueden describir procedimientos: (progn (fresh-line t) (print "Hola!") (fresh-line t)) • la primera línea se asegura de que haya una línea libre en el flujo de salida estándar, la segunda imprime “Hola” y la tercera añade un retorno de carro.
EJEMPLOS SIMPLES EN KIF(6) • Definiendo una relación: (defrelation soltero(?x) := (and(hombre ?x) (not(casado ?x)))
EJEMPLOS SIMPLES EN KIF(7) • Aseverar creencias: (believes Juan ‘(material mesa madera)) (=> (believes Juan ?p) (believes María ?p)) (=> (believes Juan (listof ‘material ?x ?y)) (believes Luisa (listof ‘material ?x ?y))
EJEMPLOS SIMPLES EN KIF(8) • Predicado de certeza (wtr). Aseverar la certeza de sentencias: (=> (p ?x) (q ?x)) Para indicar que es true: (wtr ‘(=> (p ?q) (q ?x)))
SOFTWARE RELACIONADO • PROLOGIC: representación del conocimiento common lisp y sistema de razonamiento compatible con KIF http://logic.stanford.edu/sharing/programs/prologic/ • EPILOG: sistema de inferencia common lisp compatible con KIF . http://logic.stanford.edu/sharing/programs/epilog/ • JKP: parser Java. http://www.csee.umbc.edu/kse/kif/jkp/ • Un parser C para KIF http://logic.stanford.edu/sharing/programs/kif/