Professional Documents
Culture Documents
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.
INTRODUCCIN A CLIPS
Ejemplos.
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:
INTRODUCCIN A CLIPS
(assert <hecho>+)
INTRODUCCIN A CLIPS
INTRODUCCIN A CLIPS
10
INTRODUCCIN A CLIPS
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
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
19
INTRODUCCIN A CLIPS
INTRODUCCIN A CLIPS
21
INTRODUCCIN A CLIPS
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
27
INTRODUCCIN A CLIPS
28
INTRODUCCIN A CLIPS
29
INTRODUCCIN A CLIPS
30