Escolar Documentos
Profissional Documentos
Cultura Documentos
CLIPS
C LANGUAGE INTEGRATED PRODUCTION SYSTEM
UCC. 2016
INGENIERÍA DEL CONOCIMIENTO
RECURSOS DE CLIPS
• HTTP://CLIPSRULES.SOURCEFORGE.NET/
• HERRAMIENTA PARA SBC DESARROLLADA POR LA
SECCIÓN DE TECNOLOGÍA DE SOFTWARE (SOFTWARE
TECHNOLOGY BRANCH) DE LA NASA.
• PROGRAMACIÓN PROCEDIMENTAL
Interfaz
HECHOS
• LOS HECHOS (“FACTS”) EN CLIPS CONSTAN
DE
• UN NOMBRE DEL HECHO (EJ: RELACIÓN)
• UNA O MÁS RANURAS (“SLOTS”)
• ANTES DE CREAR HECHOS, PARA CADA TIPO
DE HECHO PUEDE DEFINIRSE UNA PLANTILLA
CON LA LISTA DE RANURAS VÁLIDAS PARA
ESE TIPO DE HECHO.
EJEMPLO: DECLARACIÓN DE UNA PLANTILLA PARA HECOS QUE
DESCRIBIRÁN UNA PERSONA:
(assert (persona
(nombre “Juan Mora")
(edad 35)
(estatura 168)
(color-de-cabello negro)))
<Fact-0>
AGREGANDO OTRO HECHO A LA LISTA DE HECHOS:
(assert (persona
(nombre “Pedro Pombo")
(edad 46)
(estatura 172)
(color-de-cabello negro)))
<Fact-1>
VER LISTA DE LOS HECHOS:
(facts)
f-0 (persona (nombre "Juan Mora")
(edad 35) (estatura 168)
(color-de-cabello negro))
f-1 (persona (nombre "Pedro
Pombo") (edad 46) (estatura
172) (color-de-cabello
negro))
For a total of 2 facts.
MODIFICAR RANURA DE UN HECHO:
(retract 0 2 5)
(retract * )
SE PUEDEN DEFINIR RANURAS MULTICAMPO, QUE ADMITEN
VARIOS VALORES:
(individuo
(nombre Juan Mora Duarte)
(edad 35)
(estatura 168)
(color-de-cabello negro)))
SE PUEDEN DECLARAR VARIOS HECHOS COMO CONOCIMIENTO
INICIAL CON DEFFACTS:
Ejemplo de regla:
(defrule peligro-presion “regla ejemplo”
(peligro (tipo presion-excesiva))
=>
(assert (respuesta
(action abrir-valvula))))
AGENDA
CLIPS coloca en la Agenda las reglas cuyos
patrones antecedente concuerdan con hechos.
El contenido de la Agenda se puede
inspeccionar con el comando agenda
(AGENDA)
0 emergencia-tipo-1: f-0
0 emergencia-tipo-2: f-1
5 ambulancia-libre: f-2
OTROS COMANDOS
• (CLEAR)
RESTAURA EL ESTADO INICIAL DE CLIPS: BORRA TODOS LOS
HECHOS Y TODAS LAS REGLAS, REINICIA A CERO EL
IDENTIFICADOR DE HECHOS.
• (RUN)
EJECUTA EL PROGRAMA. ESTE TERMINA CUANDO YA NO HAY
ACTIVACIONES EN LA AGENDA
(defrule R-abuelo
(papa ?x ?y )
(papa ?y ?z )
=>
(assert (abuelo ?x ?z ) )
)
VARIABLES EN REGLAS
Y SEAN LOS HECHOS:
(papa agustin pedro )
(papa pedro hernando )
La regla R-abuelo se activa ( agenda), y al
ejecutarse resultan las asignaciones:
?x agustin
?y pedro
Y se crea el hecho:
(abuelo agustin hernando )
COMODINES (“WILDCARDS”)
A VECES EN LA COMPARACIÓN DE PATRONES Y HECHOS EXISTEN
CAMPOS EN UN HECHO CUYOS VALORES NO NOS INTERESAN
PARA LO QUE QUEREMOS, PERO DEBEN TENERSE EN CUENTA
PARA QUE HAYA CONCORDANCIA.
CLIPS> (run)
juan es rubio
CLIPS>
UN EJEMPLO CON 2 REGLAS
CLIPS> (assert (perro rintintin))
<Fact-0>
CLIPS> (assert (perro lassie))
<Fact-1>
CLIPS> (assert (perro laika))
<Fact-2>
CLIPS> (assert (gato felix))
<Fact-3>
CLIPS> (assert (gato garfield))
<Fact-4>
<CLIPS>
CLIPS> (defrule ladran ""
(perro ?x)
=>
(assert (ladra ?x))
(printout t "ladra " ?x crlf))
CLIPS> (defrule maullan ""
(gato ?x)
=>
(assert (maulla ?x))
(printout t "maulla " ?x crlf))
CLIPS>
CLIPS> (facts)
f-0 (perro rintintin)
f-1 (perro lassie)
f-2 (perro laika)
f-3 (gato felix)
f-4 (gato garfield)
For a total of 5 facts.
CLIPS>
CLIPS> (run)
maulla garfield
maulla felix
ladra laika
ladra lassie
ladra rintintin
CLIPS>
CLIPS> (facts)
f-0 (perro rintintin)
f-1 (perro lassie)
f-2 (perro laika)
f-3 (gato felix)
f-4 (gato garfield)
f-5 (maulla garfield)
f-6 (maulla felix)
f-7 (ladra laika)
f-8 (ladra lassie)
f-9 (ladra rintintin)
For a total of 10 facts.
CLIPS>
PRIORIDADES DE LAS
REGLAS
A las reglas se les puede asignar una
prioridad (“salience”). Estas se pueden
declarar así:
(DECLARE (SALIENCE 25) )
en la regla, entre el comentario opcional y
el primer patrón del antecedente.
El valor puede ir de -10000 a +10000.
Si no se declara, CLIPS asume un valor
de cero.
ORDEN DE EJECUCIÓN DE LAS
REGLAS
En la Agenda las reglas de mayor valor
“salience” se colocan sobre las de menor
valor, y se ejecutan primero.
Dentro de reglas de igual “salience”, la
colocación de las reglas en la agenda
está determinada por una estrategia de
resolución de conflictos basada en el
orden en que se van activando las reglas.
GRACIAS.