Sistema CLIPS
(Apuntes)
Autor:
Título:
Área:
N.º Págs.:
Aitor San Juan Sánchez (
[email protected])
“Sistema CLIPS (Apuntes)”
Sistemas Basados en el Conocimiento (I.A.)
100
Indica extranjerismos, así como símbolos, signos o conjuntos de signos que no
constituyan vocablos.
Ej.: “... la construcción deftemplate ...”
Código en CLIPS tal y como se teclearía (Nota: ignórense los signos de
acentuación y la letra ñ, ya que CLIPS no los reconocerá).
Ej.: (printout t "ERROR" crlf)
fuente fija
Bibliografía
2
CLIPS
Prólogo
Este documento pretende ser una herramienta base de trabajo y de consulta. No intenta sustituir al
manual, pero sí está pensado para no hacerle imprescindible. Por otra parte, se suponen conocimientos
básicos sobre sistemas de mantenimiento de la verdad, sistemas de producción y sistemas basados en
objetos estructurados (frames).
Se pueden distinguir tres partes en este documento:
Introducción y programación básica en CLIPS [cap. 1, 2 y 3],
I.
II. Control de la ejecución (desarrollo modular y variables globales) [cap. 4 y 5], y
III. Programación orientada a objetos en un sistema de producción: CLIPS [cap. 6 y 7,
principalmente el capítulo 6].
Así mismo, se incluyen varios apéndices que tratan temas adicionales sobre CLIPS.
Convenciones tipográficas
cursiva
•
= CLIPS User’s Guide: ofrece una introducción a CLIPS. Se compone de 2 volúmenes:
Volume I: Rules, introducción a la programación basada en reglas usando CLIPS.
Volume II: Objects, introducción a la programación orientada a objetos usando COOL
(parte de CLIPS para la programación orientada a objetos).
•
= CLIPS Reference Manual: consta de 3 volúmenes, de los cuales se han utilizado el I y II.
Volume I: The Basic Programming Guide, descripción de la sintaxis de CLIPS y
ejemplos de uso.
Volume II: Advanced Programming Guide, describe en detalle las características más
sofisticadas de CLIPS para programación de aplicaciones avanzadas.
NASA Lyndon B. Johnson Space Center, 1993
•
= Expert Systems: Principles and Programming
Joseph Giarratano & Gary Riley. 2nd Edition.
PWS Publishing Company, 1994
Entornos de desarrollo de SBC (I.A. II) - ASJS 97/98
CLIPS
ÍNDICE
3
Página
1. INTRODUCCIÓN............................................................................................................................. 5
1.1 ¿QUÉ ES CLIPS? ................................................................................................................................ 5
1.2 REPRESENTACIÓN DEL CONOCIMIENTO............................................................................................. 5
1.3 ESTRUCTURA DE UN PROGRAMA EN CLIPS....................................................................................... 6
2. PROGRAMACIÓN BÁSICA EN CLIPS ....................................................................................... 6
2.1 MEMORIA DE TRABAJO (MT)..................................................................................................... 6
2.1.1 Estructura: lista de hechos y lista de instancias.......................................................................... 6
2.1.2 Elementos básicos de programación: tipos de datos, funciones y constructores........................ 6
2.1.3 Abstracción de datos: hechos, objetos y variables globales ....................................................... 8
2.1.3.1 Hechos: ordenados y no ordenados. Constructor deftemplate. Atributos............................ 8
2.1.3.2 Objetos ............................................................................................................................... 13
2.2 BASE DE CONOCIMIENTO (BC) ................................................................................................ 13
2.2.1 Estructura de las reglas: construcción defrule .......................................................................... 13
2.2.2 Elementos condicionales (EC): tipos. Variables. Operadores lógicos. Predicados.................. 14
2.2.2.1 Tipos de elementos condicionales: pattern, test, or, and, not, exists, forall, logical.......... 14
2.2.2.2 EC’s que “obtienen” la dirección de elementos de la MT ................................................. 19
2.2.3 Comandos (acciones) predefinidos........................................................................................... 20
2.2.4 Funciones predefinidas: de E/S, matemáticas, de conversión, de strings, de manejo de valores
multicampo y funciones de entorno. Nombres lógicos predefinidos................................................. 22
2.2.5 Funciones definidas por el usuario: constructor deffunction.................................................... 32
2.2.6 Propiedades de las reglas: salience y auto-focus...................................................................... 32
2.3 MOTOR DE INFERENCIA............................................................................................................ 33
2.3.1 Ciclo básico............................................................................................................................... 33
2.3.2 Filtrado (match) ........................................................................................................................ 34
2.3.3 Resolución de conflictos: estrategias (select)........................................................................... 36
2.3.4 Ejecución (act).......................................................................................................................... 38
3. EJECUCIÓN DE PROGRAMAS.................................................................................................. 38
3.1 EL ENTORNO DE TRABAJO................................................................................................................ 38
3.2 INICIALIZACIÓN DE LA MT .............................................................................................................. 38
4. CONTROL DE LA EJECUCIÓN ................................................................................................. 39
4.1 INTRODUCCIÓN ................................................................................................................................ 39
4.2 DISEÑO MODULAR: CONSTRUCCIÓN DEFMODULE ........................................................................... 39
4.2.1 Importación y exportación. ....................................................................................................... 41
4.3 MÓDULOS Y CONTROL DE LA EJECUCIÓN ........................................................................................ 42
4.3.1 El comando focus...................................................................................................................... 42
4.3.2 El comando return. ................................................................................................................... 43
5. VARIABLES GLOBALES: CONSTRUCCIÓN DEFGLOBAL................................................. 46
6. PROGRAMACIÓN ORIENTADA A OBJETOS EN CLIPS: COOL....................................... 48
6.1 INTRODUCCIÓN. ¿QUÉ ES COOL? ................................................................................................... 48
6.2 CLASES PREDEFINIDAS POR EL SISTEMA.......................................................................................... 49
6.3 DEFINICIÓN DE CLASES.................................................................................................................... 51
6.3.1 Construcción defclass ............................................................................................................... 51
6.3.2 Herencia múltiple: reglas .......................................................................................................... 51
6.3.3 Especificadores de clase ........................................................................................................... 53
Entornos de desarrollo de SBC (I.A. II) - ASJS 97/98
4
CLIPS
6.3.4 Atributos (slots) y propiedades................................................................................................. 53
6.3.5 Proceso de pattern-matching con objetos................................................................................. 59
6.3.6 Documentación de gestores de mensajes.................................................................................. 60
6.4 GESTORES DE MENSAJES (MESSAGE HANDLERS): CREACIÓN. ......................................................... 61
6.4.1 Parámetros................................................................................................................................. 62
6.4.2 Acciones.................................................................................................................................... 63
6.4.3 Demonios (daemons) ................................................................................................................ 64
6.4.4 Gestores de mensajes predefinidos........................................................................................... 64
6.5 DISPATCHING................................................................................................................................... 66
6.6 MANIPULACIÓN DE INSTANCIAS: CREACIÓN, MODIFICACIÓN Y BORRADO...................................... 67
6.7 MANIPULACIÓN DE CONJUNTOS DE INSTANCIAS: CONSULTAS. OPERACIONES............................... 71
7. FUNCIONES GENÉRICAS........................................................................................................... 75
7.1 CARACTERÍSTICAS. .......................................................................................................................... 75
7.2 CONSTRUCCIÓN DEFGENERIC: CABECERAS.................
Comentarios de: Sistema CLIPS (0)
No hay comentarios