Sei sulla pagina 1di 30

INTRODUCCIN A CLIPS

Introduccin.
CLIPS es un lenguaje en sistemas expertos, soporta tres tipos de paradigmas de programacin:
o Basado en reglas o Orientado a objetos o Por procedimientos Los componentes bsicos de un sistema experto basado en reglas que se encuentran dentro de CLIPS son: o Lista de hechos: contiene los datos de los que se derivan las inferencias. o Base de conocimiento: Comprende todas las reglas o Mecanismo de inferencia: Controla la ejecucin global
1

INTRODUCCIN A CLIPS

Introduccin.
Existe siete tipos de campos, llamados tambin datos primitivos de CLIPS: flotantes, enteros, smbolos, cadena, direccin externa, nombre del caso y direccin de caso. CLIPS es sensible a maysculas y minsculas.

Entrada y salida en CLIPs.


Active el comando de ejecucin apropiado para la maquina que se ha activado: CLIPS> El modo normal de abandonar CLIPS es exit CLIPS>exit
2

INTRODUCCIN A CLIPS

Ejemplos.

La entrada (+ 3 4) es una llamada de la funcin +, que

realiza la suma en tanto que sus argumentos son los valores 3 y 4 y el valor de devolucin de esta llamada a funcin es 7
3

INTRODUCCIN A CLIPS

Hechos
Un programa de CLIPS debe tener datos e informacin con las que pueda razonar, a cada fragmento de informacin se le llama hecho. Los hechos constan de un nombre de relacin (un campo simblico) seguido por cero o ms ranuras (tambin campos simblicos) y sus valores asociados. Ejemplo

(persona (nombre Francisco I. Madero) (edad 23) (color-ojos azul) (color-pelo negro))
El smbolo persona es el nombre de relacin del hecho y ste contiene cuatro ranuras
4

INTRODUCCIN A CLIPS

Plantillas de definicin
Los grupos de hechos que comparten el mismo nombre de relacin y contienen informacin comn pueden describirse utilizando la construccin plantillas de definicin o deftemplates. El formato general de una platilla de definicin es: (deftemplate<nombre-relacin> [<comentario-opcional>] <definicin-ranura>*) La descripcin sintctica <definicin-ranura> se define como: (ranura <nombre-ranura>) | (ranura mltiple <nombre-ranura>)

INTRODUCCIN A CLIPS

Hechos ordenados
A los hechos con un nombre de relacin que tienen una plantilla de definicin correspondiente se les llama hechos de plantilla de definicin. A los hechos con un nombre de relacin que no la tiene se les llama hechos ordenados. Como un hecho ordenado solo tiene una ranura, no se requiere el nombre de sta para definirlo , por ejemplo, una lista de nmeros podra estar representada con el siguiente hecho:

(nmero-lista 7 9 3 4 20)

INTRODUCCIN A CLIPS

Hechos ordenados
En esencia, esto es equivalente a definir la siguiente plantilla de definicin:

(deftemplate nmero-lista (valores de varias ranuras))


Y luego se define el siguiente hecho como sigue:

(nmero-lista (valores 7 9 3 4 20)

INTRODUCCIN A CLIPS

Adicin y Eliminacin de hechos


En posible agregar nuevo hechos a la lista usando el comando assert, cuya sintaxis es:

(assert <hecho>+)

INTRODUCCIN A CLIPS

Adicin y Eliminacin de hechos


Observe que el comando assert devuelve un valor, <Fact-0>. El comando facts puede utilizarse para desplegar los hechos que se encuentran en la lista.

INTRODUCCIN A CLIPS

Adicin y Eliminacin de hechos


A la eliminacin de hechos de la lista se le llama retraccin y se realiza con el comando retract, su sintaxis es:
(retract <hecho-ndice>+1)

10

INTRODUCCIN A CLIPS

Modificacin y Duplicacin de hechos


Los valores de ranura de hechos de planilla de definicin pueden modificarse utilizando el comando modify, cuya sintaxis es:
(modify <ndice-hecho><modificador-ranura>+) donde <modificador-ranura> es (<slot-nombre-ranura><slot-valor-ranura>)

11

INTRODUCCIN A CLIPS

El comando modify funciona retirando el hecho original y luego afirmando uno nuevo con los valores especficos de ranura modificados
12

INTRODUCCIN A CLIPS

Modificacin y Duplicacin de hechos


El comando duplicate funciona de la misma manera solo que no retira el hecho original:

13

INTRODUCCIN A CLIPS

Comando WATCH
El comando watch es til para depurar programas. La sintaxis de este comando es:

(watch <elemento-observado>)
donde <elemento observado> es uno de los smbolos hechos, reglas, actuaciones, estadsticas recopiladas, enfoque o todo. Los efectos de un comando watch pueden desactivarse utilizando el comando correspondiente unwatch, cuya sintaxis es: (unwatch <elemento-observado>)
14

INTRODUCCIN A CLIPS

Comando WATCH

La secuencia de caracteres <== indica que se est retirando el hecho previo, y ==> indica que se est afirmando el nuevo
15

INTRODUCCIN A CLIPS

La Construccin DEFFACTS
Los grupos de hechos que representan el conocimiento inicial pueden definirse utilizando la construccin deffacts. Por ejemplo, la siguiente instruccin de deffacts proporciona la informacin inicial sobre algunas personas ya encontradas:

(deffacts persona Algunas personas que conocemos (persona (nombre Francisco Madero) (edad 24) (color-ojos azul) (color-pelo negro)) (persona (nombre Omar Valencia G.) (edad 33) (color-ojos azul) (color-pelo negro))

16

INTRODUCCIN A CLIPS

La Construccin DEFFACTS
El formato general de deffacts es: (deffacts <nombre de deffacts>[<comentario opcional>] <hechos>*)

Los hechos de una instruccin de deffacts se afirma utilizando el comando reset de CLIPS, que elimina todos los hechos y luego afirma los hechos de la instruccin de deffacts existente. La sintaxis del comando reset es: (reset)

17

INTRODUCCIN A CLIPS

La Construccin DEFFACTS

18

INTRODUCCIN A CLIPS

COMPONENTES DE UNA REGLA


Un SE debe tener reglas y hechos, las reglas pueden escribirse directamente en CLIPS o cargarse desde un archivo de reglas creado por un editor. Por ejemplo, consideremos los tipos de hechos y reglas que pueden utilizarse para vigilar y responder a un rango de urgencias posibles como un incendio o una inundacin. A continuacin se muestra el pseudocdigo para una de las posibles reglas del SE de vigilancia de una planta industrial: SI la urgencia es un incendio ENTONCES la respuesta es activar el sistema antiincendios

19

INTRODUCCIN A CLIPS

COMPONENTES DE UNA REGLA


Deben definirse las plantillas de definicin para los tipos de hechos a los que hace referencia la regla. (deftemplate urgencia (slot tipo))

(deftemplate respuesta (slot accin))


El formato general de una regla es: (defrule <nomve de regla> [<comentario>] <patrones>* ; lado izquierdo de la regla ==> <acciones>*) ; lado derecho de la regla
20

INTRODUCCIN A CLIPS

COMPONENTES DE UNA REGLA

21

INTRODUCCIN A CLIPS

COMPONENTES DE UNA REGLA

22

INTRODUCCIN A CLIPS

LA AGENDA Y EJECUCION
Es posible hacer que un programa de CLIPS se ejecute con el comando run, que tiene la siguiente sintaxis: (run [<limite>])

donde el argumento opcional <limite> es el nmero mximo de reglas que habr de dispararse, pero si no se incluye <limite> o es igual a -1, se dispararn todas las reglas hasta que no quede ninguna en la agenda. El comando agenda permite mostrar la lista de reglas en la agenda y su sintaxis es:
(agenda)
23

INTRODUCCIN A CLIPS

LA AGENDA Y EJECUCION

24

INTRODUCCIN A CLIPS

Reglas y Refraccin
Con la regla urgencia-incendio en la agenda, ahora el comando run provocar que se dispare la regla. El hecho (respuesta (accion activar-sistema-antiincendios)) se agregar a la lista de hechos como la accin de la regla.

La propiedad refraccin significa que no se disparan ms de una vez para un conjunto especfico de hechos.
25

INTRODUCCIN A CLIPS

Reglas y Refraccin
El comando refresh vuelve a disparar la regla, este comando vuelve a colocar en la agenda todas las activaciones que ya se han disparado para una regla. La sintaxis del comando refresh es: (refresh <nombre-regla>)

26

INTRODUCCIN A CLIPS

Observacin de activacines, reglas y estadsticas


Si se estn observando las activaciones, CLIPS imprimir automticamente un mensaje cada vez que se agregue o elimine una activacin a la agenda. Al igual que con los hechos, la secuencia <== indica que se est eliminando una activacin de la agenda, y ==> que se est agregando. La siguiente secuencia de comandos ilustra activacines que se estn observando:

27

INTRODUCCIN A CLIPS

Observacin de activacines, reglas y estadsticas

28

INTRODUCCIN A CLIPS

Observacin de activacines, reglas y estadsticas


Si se estn observando las reglas, CLIPS imprimir un mensaje cada vez que se dispare una de ellas

29

INTRODUCCIN A CLIPS

Observacin de activacines, reglas y estadsticas


Si se estn observando estadsticas, al terminar una ejecucin CLIPS imprimir mensajes informativos como el siguiente:

30