Monografias.com > Computación > Programación
Descargar Imprimir Comentar Ver trabajos relacionados

CLIPS – Programación Basada en Reglas




Enviado por Pablo Turmero



Partes: 1, 2, 3


    Monografias.com

    Introducción
    CLIPS: C Language Integrated Production System
    Variación muy especializada de Lisp
    Herramienta para desarrollo de sistemas expertos, creada en el Johnson Space Center (NASA) en 1986
    Problemas usualmente resueltos por “expertos humanos” gracias a su importante base de conocimiento sobre el dominio.
    Los expertos necesitan uno o varios mecanismos de razonamiento para aplicar su conocimiento a los problemas propuestos.

    Monografias.com

    Introducción
    Soporta programación lógica, y tanto programación imperativa como orientada a objeto (COOL)
    Facilita diseñar programas dirigidos por datos:
    En ellos los datos, o hechos, estimulan la ejecución del programa a través del motor de inferencia
    Permite realizar el procesamiento de forma interactiva, mediante la ventana de comandos, o por lotes. Admite la depuración
    Diseñado para facilitar integración con otros lenguajes:
    Puede llamarse desde otros lenguajes: CLIPS ejecuta una función, retornando resultado y control.
    CLIPS puede llamar a funciones externas, que devuelven la salida y control a CLIPS.
    Jess (Java Expert System Shell), CLIPS reprogramado en Java con ligeras variaciones
    Extensiones, p.e. para Lógica Borrosa (FuzzyCLIPS)

    Monografias.com

    Introducción
    Sistema de producción que incluye:
    Mantenimiento de la verdad con encadenamiento hacia adelante
    Adición dinámica de reglas y hechos
    Diferentes estrategias de resolución de conflictos
    Componentes básicos:
    Base de hechos: Datos introducidos e inferidos
    Base de conocimiento: Reglas, funciones, …
    Mecanismo de inferencia: Controla la ejecución
    CLIPS proporciona tres elementos básicos de programación:
    Tipos primitivos de datos
    Funciones para la manipulación de los datos
    Constructores

    Monografias.com

    Instalación
    Para descargar la aplicación, acude a la página oficial CLIPS.

    Disponible para varias plataformas. La versión para Windows dispone tanto de ejecutable en línea, como con ventanas. Haciendo clic sobre el icono de esta última (CLIPSWin) lanzarás la ventana que acompaña a este texto. Para salir teclea (exit) o acude a la barra de menú.

    Monografias.com

    Elementos básicos: Órdenes
    Una vez abierta la interfaz, veamos algunas órdenes o comandos básicos de operación.
    Todo comando se escribe siempre entre paréntesis. Los comandos, se ejecutan habitualmente en top-level y no devuelven valor, al contrario que las funciones que sí retornan un valor:

    (exit) Cierra la interfaz CLIPS.
    (run) Lanza la ejecución del programa CLIPS actualmente cargado. Se le puede indicar el número máximo de reglas a lanzar.
    (clear) Elimina todos los hechos y reglas almacenados en memoria, equivalente a cerrar y rearrancar CLIPS.
    (reset) Elimina sólo los hechos, no las reglas, anulando la agenda y añadiendo los elementos definidos por defecto o iniciales.
    (watch ) Permite realizar depuración del programa.

    La barra de menú ofrece acceso a algunos comandos, así como la aparición de ventanas útiles para depuración (p.e. ventana de hechos Window->Facts Window).

    Monografias.com

    Elementos básicos: Tipos de datos
    Reales (float): 1.5, -0.7, 3.5e-10
    Enteros (integer): 1, -1, +3, 65
    Símbolos (symbols): Cualquier secuencia de caracteres que no siga el formato de un número. Distingue entre mayúsculas y minúsculas. Ej.: Febrero, febrero, fuego, 35B, fiebre
    Cadenas (strings): Deben estar entre comillas
    Direcciones externas (external-address): Estructura de datos externa devuelta por una función escrita en C o Ada
    Direcciones de hechos (fact-address): Hechos referenciados por su posición o por un nombre
    Nombres de instancias (instance-name)
    Direcciones de instancias (instance-address)

    Monografias.com

    Elementos básicos: Constructores
    Permiten al programador añadir elementos tanto a la base de hechos como a la de conocimiento. Modifican el entorno CLIPS:

    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
    defclass: Para definir clases
    definstances
    defmessage-handler
    defgeneric
    defmethod

    Monografias.com

    Hechos
    CLIPS mantiene una lista de hechos y reglas, permitiendo éstas operar con los hechos almacenados en la lista de hechos, dado que los hechos son necesarios para disparar o activar las reglas.

    Un hecho es una forma básica de representación de información, es una pieza de información o patrón. Puede tener un campo o varios de tipo numérico, simbólico, cadena, etc., p.e. (color azul) or (padre_de Juan Sara) (nombre “Juan Manuel”)

    Los espacios separan distintos símbolos. Observa sin embargo que en una cadena no es lo mismo tener dos espacios en blanco consecutivos que sólo uno.

    De similar manera, se debe tener en cuenta el uso de minúsculas y mayúsculas.

    Monografias.com

    Hechos
    Un valor o campo puede ser uni o multicampo:

    Unicampo: Cualquier valor de los tipos de datos mencionados anteriormente
    Multicampo: Secuencia de cero o más valores unicampo entre paréntesis. Ejemplos:
    ( )
    (x)
    (hola)
    (relaciona "rojo" 23 1e10)
    Señalar que no es lo mismo el valor unicampo hola que el valor multicampo (hola)

    Monografias.com

    Hechos
    Los hechos pueden añadirse y eliminarse de forma dinámica. Para añadir uno o varios hechos empleamos la orden assert. Cada hecho se identificará a continuación mediante un índice único:

    CLIPS> (assert (tiempo nublado))

    Para eliminar un hecho (o varios), conociendo su identificador o índice utilizamos (retract ), por ejemplo (retract 1) elimina el hecho con identificador 1. Podemos eliminarlos todos introduciendo (retract *).

    La orden (clear) elimina todos los hechos pero también todas las reglas, éstas las trataremos más adelante. El comando (reset) elimina todos los hechos de la lista y posteriormente añade los iniciales, a priori sólo (initial-fact).

    Monografias.com

    Hechos
    Tecleando (facts) nos permite ver la lista completa de hechos actual, apareciendo cada hecho junto a su índice o identificador único. Para nuestro caso

    CLIPS> (facts)
    f-0 (initial-fact)
    f-1 (tiempo nublado)
    For a total of 2 facts

    Para listar los hechos a partir de un identificador usamos (facts ).

    Para mostrar un rango concreto de hechos podemos teclear los índices límite (facts ).

    Monografias.com

    Hechos
    Comentábamos que un hecho puede ser eliminado de la base de hechos utilizando el comando (retract ), indicando el índice (* para eliminarlos todos) del hecho que se desea eliminar. Observa en el ejemplo que los índices no se reutilizan tras una eliminación:

    CLIPS> (reset)
    CLIPS> (assert (color azul) (color rojo))

    CLIPS> (facts)
    f-0 (initial-fact)
    f-1 (color azul)
    f-2 (color rojo)
    For a total of 3 facts.
    CLIPS> (retract 1)
    CLIPS> (facts)
    f-0 (initial-fact)
    f-2 (color rojo)
    For a total of 2 facts.

    Monografias.com

    Hechos
    La ventana de hechos que se activa por medio del menú Window->Facts Window es otra posibilidad muy útil que permite observar los movimientos en la base de conocimiento:

    Monografias.com

    Hechos
    Ejercicios:

    Inserta el hecho (color verde) utilizando assert
    ¿Qué ocurre si ahora se ejecuta la orden reset?
    Inserta cuatro hechos más.
    Muestra los hechos con índice >=3
    Muestra los hechos del 2 al 4
    Abre la ventana de hechos
    Añade un nuevo hecho
    Elimina el hecho 1
    Elimina todos los hechos

    Monografias.com

    Hechos
    Por legibilidad es habitual introducir un hecho (o como veremos luego reglas, etc.) en varias líneas. Debes recordar acabar siempre tecleando ENTER

    CLIPS> (clear)
    CLIPS> (assert (lista-compra
    papas
    cebolla
    ajos
    pescado))

    CLIPS> (facts)
    f-0 (lista-compra papas cebolla ajos pescado)
    For a total of 1 fact.

    Monografias.com

    Hechos
    Como herramienta para depuración, la orden (watch facts) muestra los hechos cada vez que se insertan o eliminan en la base de conocimiento.

    CLIPS> (watch facts)
    CLIPS> (assert (dia miercoles))
    ==> f-2 (dia miercoles)

    La orden (unwatch facts) desactiva la depuración de la base de hechos. Otros elementos con posibilidad de ser observados:

    (watch rules): Muestra las reglas disparadas
    (watch activations): Muestra las reglas activadas, los hechos que las han activado, y las reglas que quedan desactivadas.
    (watch methods)
    (watch deffunctions)
    (watch compilations)
    (watch slots)
    (watch globals)
    (watch all)

    Partes: 1, 2, 3

    Página siguiente 

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter