¿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.
0 comentarios:
Publicar un comentario