Clips
El sistema CLIPS
Notas
CLIPS es un entorno para desarrollar sistemas expertos Este define un lenguaje que permite la representaci´n de o conocimiento declarativo y procedimental Su lenguaje permite representar reglas de producci´n y frames o Su base es un motor de inferencias con razonamiento hacia adelante El motor de inferencias esta implementado sobre un int´rprete dele lenguaje
Javier B´jar c b e a (LSI - FIB - UPC) e
El lenguaje CLIPS
IA - Curso 2005/2006
1 / 29
El sistema CLIPS
El lenguaje de CLIPS
Notas
El lenguaje CLIPS deriva su sintaxis del lenguaje LISP Se trata de un lenguaje parentizado con notaci´n prefija o Los tipos de datos predefinidos que nos interesar´n son: reales, a enteros, strings, s´ ımbolos, apuntador a hechos,nombre de instancia y apuntador a instancia. Los tipos habituales poseen los operadores mas comunes El lenguaje de CLIPS auna tres paradigmas de programaci´n: lenguaje o de reglas, lenguaje funcional, lenguaje orientado a objetos
Javier B´jar c b e a (LSI - FIB - UPC) e
El lenguaje CLIPS
IA - Curso 2005/2006
2 / 29
El leguaje de reglas
El lenguaje de reglas de CLIPS - Hechos
NotasLos dos elementos que permiten representar problemas utilizando reglas de producci´n son los hechos y las reglas. o Los hechos en CLIPS pueden ser de dos tipos ordered facts y deftemplate facts Los Ordered Facts tienen formato libre, por lo tanto no tienen una estructura predefinida, siguen el esquema: (relacion p1 p2 ... pn) relaci´n ha de ser un s´ o ımbolo, el resto de par´metros puede serde a cualquier tipo, por ejemplo (padre juan pedro) (num-hijos juan 2)
Javier B´jar c b e a (LSI - FIB - UPC) e
El lenguaje CLIPS
IA - Curso 2005/2006
3 / 29
El leguaje de reglas
El lenguaje de reglas de CLIPS - deftemplates
Los deftemplate facts tienen una estructura predefinida, podr´ ıan asimilarse a representaciones al estilo de los frames. En estos hechos definimos una seriede campos (slots) que definen su estructura. Cada campo puede tener una serie de restricciones como tipo, cardinalidad y un valor por defecto que podr´ ser una constante ıa o un funci´n para calcularlo o (deftemplate nombre-template "comentario" (slot nombre-slot) (multislot nombre-slot)) Por ejemplo: (deftemplate persona (slot nombre (type STRING)) (slot edad (type INTEGER) (default 0)))
JavierB´jar c b e a (LSI - FIB - UPC) e El lenguaje CLIPS IA - Curso 2005/2006 4 / 29
Notas
El leguaje de reglas
El lenguaje de reglas de CLIPS - crear hechos
Notas
La creaci´n de hechos se realiza mediante la sentencia assert (uno o solo) o deffacts (un conjunto), por ejemplo: (assert (padre pepe juan)) (assert (persona (nombre "pedro") (edad 25))) (deffacts mis-hechos (casa roja) (pelotaverde) (persona (nombre "luis") (edad 33)))
Javier B´jar c b e a (LSI - FIB - UPC) e
El lenguaje CLIPS
IA - Curso 2005/2006
5 / 29
El leguaje de reglas
El lenguaje de reglas de CLIPS - hechos
Notas
(facts) permite saber que hechos hay definidos (clear) borra todos los hechos definidos (retract ) elimina el hecho identificado por el indice dado (get-deftemplate-list) retorna lalista de deftemplates definidos
Javier B´jar c b e a (LSI - FIB - UPC) e
El lenguaje CLIPS
IA - Curso 2005/2006
6 / 29
El leguaje de reglas
El lenguaje de reglas de CLIPS - reglas
Notas
Las reglas en CLIPS estan formadas por:
Una parte izquierda (LHS) que define las condiciones a cumplir Una parte derecha (RHS) que define las acciones a realizar
Sintaxis: (defrulenombre-regla "comentario" (condicion-1) (condicion-2) ... => (accion-1) (accion-2) ...)
Javier B´jar c b e a (LSI - FIB - UPC) e
El lenguaje CLIPS
IA - Curso 2005/2006
7 / 29
El leguaje de reglas
El lenguaje de reglas de CLIPS - variables
Notas
Para poder establecer patrones en las condiciones de las reglas hacen falta variables Las variables en CLIPS se denotan poniendo un...
Regístrate para leer el documento completo.