Knowledge Interchange Format - KIF
Comunicación entre agentes software
2
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
3
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,
4
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
5
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
6
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
7
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
8
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.
9
LENGUAJE COMÚN DE COMUNICACIÓN DE AGENTES
tres problemas básicos1. cómo traducir de un lenguaje a otro 2. cómo garantizar que el significado de los conceptos,
objetos, relaciones, ... es el mismo para los diferentes agentes
3. 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.
10
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.
11
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)
12
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.
13
CONOCIMIENTO EN KIF
KIF Traductor Leng1
Base Conoc. en Leng1
Sistema 1
KIF Traductor Leng2
Base Conoc. en Leng2
Sistema 2
Librería
Conocimiento en KIF
14
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.
15
OTRAS CARACTERÍ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.
16
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
17
ESPECIFICACIÓN DE KIF (2)
La especificación de kif cubre los siguientes aspectos:
• SINTAXIS• LÓGICA• NÚMEROS• LISTAS• CARACTERES Y STRINGS• METACONOCIMIENTO
18
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.
19
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.
20
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)
21
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)
22
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
23
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)
24
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.
25
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.
26
EJEMPLOS SIMPLES EN KIF (2)
(>(salario empleado1)(salario empleado2))
para indicar que el empleado1 tiene un salario mayor que
empleado2.
27
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).
28
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.
29
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.
30
EJEMPLOS SIMPLES EN KIF (6)
Definiendo una relación:
(defrelation soltero(?x) := (and(hombre ?x) (not(casado ?x)))
31
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))
32
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)))
33
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/
Top Related