27/10/09

Introduccion a Clips - C Language Integrated Production System

¿Qué es CLIPS?


CLIPS (C Language Integrated Production System) es una herramienta para el desarrollo de sistemas expertos (SE) creada por la Software Technology Branch (STB), NASA/Lyndon B. Johnson Space Center. Los orígenes de CLIPS se remontan a 1984.
Se diseñó para facilitar el desarrollo de software que modele el conocimiento humano (expertise):
  • Con propósitos específicos: alta portabilidad, bajo coste, y facilidad de integración.
    CLIPS permite integración completa con otros lenguajes de programación como C o Ada.
    Puede ser llamado desde un lenguaje procedural, realizando su función y devolver el control al programa que le llamó.
    También se puede definir código procedural como funciones externas llamadas desde CLIPS. Cuando el código externo finaliza su ejecución devuelve el control a CLIPS.
CLIPS es un entorno completo para la construcción de SE basados en reglas y/o objetos. La versión estándar de CLIPS proporciona un entorno de desarrollo interactivo orientado a texto, incluyendo una herramienta de depuración, ayuda on-line y un editor integrado, aunque se han desarrollado interfaces visuales para plataformas Macintosh, Windows 3.x y el sistema X Window.

CLIPS distingue mayúsculas y minúsculas (case-sensitive), igual que el lenguaje C.

Representación del conocimiento

CLIPS ofrece paradigmas heurísticos y procedurales para representar el conocimiento.

A) Conocimiento heurístico: reglas
Las reglas se utilizan para representar heurísticos que especifican un conjunto de acciones a
El creador del SE define una colección de reglas que, en conjunto, resuelven un problema.
Se puede pensar que las reglas son como sentencias IF-THEN de lenguajes procedurales como C o Ada. Sin embargo, las reglas actúan más bien como sentencias SIEMPRE QUE-ENTONCES.

B) Conocimiento procedural: funciones y objetos.
Este tipo de conocimiento se expresa mediante funciones definidas por el usuario (deffunctions), funciones genéricas y la programación orientada a objetos (POO). Ésta en CLIPS soporta las cinco características generalmente aceptadas: clases, mensajes, abstracción, encapsulamiento, herencia y polimorfismo.

Es posible desarrollar software utilizando sólo reglas, sólo objetos, o una mezcla de ambos.
Estructura de un programa en CLIPS

El shell (parte de CLIPS que realiza inferencias o razonamiento) provee los elementos básicos de un SE:
1. memoria global de datos (memoria de trabajo, MT): conocimiento factual (fact-list e instancelist).
2. base de conocimiento (knowledge base): contiene las reglas de la base de reglas.
3. motor de inferencia (inference engine): controla la ejecución global de las reglas: decide qué reglas deben ejecutarse y cuándo.

Un programa escrito en CLIPS puede consistir en reglas, hechos y objetos. Un SE basado en reglas escrito en CLIPS es un programa dirigido por los datos (data driven), es decir, hechos y objetos. Las reglas pueden matchear con objetos y hechos, aunque los objetos pueden usarse por sí solos (mediante el envío de mensajes) sin utilizar el motor de inferencia.


No hay comentarios:

Publicar un comentario