¿que es clips?
CLIPS es una herramienta que provee un ambiente de desarrollo para la producción y ejecución de sistemas expertos. Fue creado a partir de 1984, en el Lyndon B. Johnson Space Center de la NASA. Los fondos cesaron a principios de los años 1990, y hubo un mandato de la NASA para comprar software comercial.

CLIPS es un acrónimo de C Language Integrated Production System (Sistema de Producción Integrado en Lenguaje C). En la actualidad, entre los paradigmas de programación que soporta CLIPS se encuentran la Programación lógica, la Programación imperativa y la Programación Orientada a Objetos.
aca les dejo el archivo para que descarguen
http://www.megaupload.com/?d=UNXZNRE9
instalan y veran dos archivos como estos :

el que esta arriba es para arrancar en modo DOS y el segundo el que vamso a usar es para aranca en tipo windos osea una ventana normal como casi cualquier ide:
asemos doble clicn en CLIPSWin.exe y vemos esto :


como ven la interface es sencilla solo ponenmos los comando y todo lo necesario para poder programar en CLIPS.

bueno para empezar la definicion teorica CLIPS es un lenguaje para sistemas expertos.
para eso debemos saber lo que es un sistema experto les adjunto esta imagen de como es la arquitectura de un sistema experto y sus definiciones.


ahora bien ya sabemos que es la base de conocimiento y la base de echos. estas son importantes para la creacion de un sistema experto tiene que quedar muy claro pues la base de conocimiento son los atributos comparandolo con objetos y los echos son los metodos.
comandos basicos en CLIPS:
La órdenes básicas para la ejecución de un programa en clips es:
(exit) .- Sale de CLIPS
(clear) .- Elimina todas las definiciones de programa ( tipos de hechos, reglas, etc.) tal como si saliésemos y entrásemos en CLIPS
(reset) .-Elimina la información dinámica de la memoria y resetea la agenda.
(run) .- Indica el ciclo de evaluación del programa se detiene cuando la agenda quede vacía.
Comienza la ejecución de un programa CLIPS.
(step) .- Realiza un único ciclo de evaluación.
(facts).- Despliega la lista de los hechos que están actualmente definidos.
(rules) .-Despliega la lista de las reglas que están actualmente definidas
(agenda).- Muestra las reglas instanciadas. Para cada instancia muestra la prioridad de la regla, el nombre de la regla y los hechos reconocidos por la regla.
sentencias basicas:
las variables van antecedidas de ? ejemplo: integer ?a, float ?c, etc
Bind : Asignar Valor
(bind ?se (+ 3 4)) --> recordar que esto es una notacion infija osea es se=3+4
Ingresar Datos
(bind ?resp (read))
Imprimir Datos
(printout t ”El resultado será:” crlf)
sqrt (Raíz Cuadrada)
eq (Comparar Símbolos)

constructores en CLIPS:
Permite al programador añadir elementos a la base de hechos y a la base de conocimiento (funciones, reglas, hechos, clases).
Modifican entorno CLIPS (no devuelven valor):

deffunction: Para definir funciones
defglobal: Para definir variables globales
deftemplate: Para definir plantillas
deffacts: Para definir hechos
defrule: Para definir reglas
defmodule: Para definir módulos

Para definir objetos:

defclass
definstances
defmessage-handler
defgeneric
defmethod
bien con todo esto dicho relizamos nustro primer ejemplo en CLIPS.
1.- hallar el mayor de 2 numeros.
esto se ase con una funcion :

(deffunction mayorMenor (?a ?b)
(if(> ?a ?b) then
(printout t "El mayor es = " ?a crlf)
else
(printout t "El mayor es = " ?b crlf))
)

vamos al clips y agregamos una hoja para poder trabajar en borrador y le ajustamos vertical se veria algo asi:

bueno luego pegamos el codigo hecho en clips en el borradorsombreamos tdo y click derecho ...load selection y ven lo que pasa en la derecha , tenemos definida nuestra primera funcion en clips.

para definir una funcion envez de abrir y cerrar llave como en los lenjuages que conocen aca es con
(deffuntion <nombre_funcion>(<parametro1> <parametro2>.....)
........................... aca va el cuerpo de la funcion las entencias repetitivas,etc que ya conocen de los lenguajes
)

recordar que cada linea de comando debe ir en ( )

Última modificación: jueves, 7 de junio de 2018, 07:39