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 orgenes de CLIPS se remontan a 1984. Se dise para facilitar el desarrollo de software que modele el conocimiento humano (expertise): Con propsitos especficos: alta portabilidad, bajo coste, y facilidad de integracin. CLIPS permite integracin completa con otros lenguajes de programacin como C o Ada. Puede ser llamado desde un lenguaje procedural, realizando su funcin y devolver el control al programa que le llam. Tambin se puede definir cdigo procedural como funciones externas llamadas desde CLIPS. Cuando el cdigo externo finaliza su ejecucin devuelve el control a CLIPS. CLIPS es un entorno completo para la construccin de SE basados en reglas y/o objetos. La versin estndar de CLIPS proporciona un entorno de desarrollo interactivo orientado a texto, incluyendo una herramienta de depuracin, 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 maysculas y minsculas (case-sensitive), igual que el lenguaje C. 1.2 Representacin del conocimiento CLIPS ofrece paradigmas heursticos y procedurales para representar el conocimiento. A) Conocimiento heurstico: reglas Las reglas se utilizan para representar heursticos que especifican un conjunto de acciones a realizar para una situacin dada. El creador del SE define una coleccin de reglas que, en conjunto, resuelven un problema. Se puede pensar que las reglas son como sentencias IF-THEN de lenguajes procedurales como Co Ada. Sin embargo, las reglas actan ms 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 genricas y la programacin orientada a objetos (POO). sta en CLIPS soporta las cinco caractersticas generalmente aceptadas: clases, mensajes, abstraccin, encapsulamiento, herencia y polimorfismo. Es posible desarrollar software utilizando slo reglas, slo objetos, o una mezcla de ambos. 6 CLIPS Entornos de desarrollo de SBC (I.A. II) - ASJS 97/98 1.3 Estructura de un programa en CLIPS El shell (parte de CLIPS que realiza inferencias o razonamiento) provee los elementos bsicos 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 ejecucin global de las reglas: decide qu reglas deben ejecutarse y cundo. 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 envo de mensajes) sin utilizar el motor de inferencia. HECHOS ORDENADOS Secuencia de cero o ms campos separados por espacios y delimitados por parntesis. El campo inicial suele expresar una relacin entre los campos siguientes. Ej.: (altitud es 1000 metros) (lista-de-la-compra pan leche arroz) Los campos de un hecho ordenado pueden ser de cualquier tipo primitivo de datos, excepto el primero, que debe ser un smbolo. No es necesario declararlos. No existe restriccin alguna en el orden de los campos, pero Para matchear con una regla sus campos deben aparecer en el mismo orden que indique la regla. Es decir, los hechos ordenados codifican la informacin segn la posicin. Para acceder a esa informacin, el usuario debe saber la informacin que almacena el hecho y qu campo la contiene.
Que es el Lenguaje de Programacion PROLOG
PROLOG est orientado a la resolucin de problemas mediante el clculo de predicados, basado en:
Preguntas a la base de datos. Pruebas matemticas.
El programa PROLOG especifca cmo debe ser la solucin, en vez de dar el algoritmo para su resolucin. La solucin se obtiene mediante bsqueda aplicando la lgica de predicados. Coulmerauer (1970) desarroll un lenguaje para hacer deducciones de texto. Se aplica un mecanismo de resolucin sobre predicados especiales, clusulas de Horn, llamado unificacin. La difusin del lenguaje se produce en los 80, pero de forma muy limitada debido a la falta de aplicaciones en dicho lenguaje.
Un
ejemplo
sencillo
Perspectiva del lenguaje
El programa prolog se compone de unos hechos (datos) y un conjunto de reglas, es decir, relaciones entre objetos de la base de datos. La ejecucin del programa cargado en memoria consiste en realizar una pregunta de forma interactiva: el interprete generar por inferencia los resultados que se deducen a partir del contenido de la base de datos.
PROLOG tiene una sintaxis y semntica simples. Slo busca relaciones entre los objetos creados, las variables y las listas, que son sus estructuras bsicas. Comentarios entre /* */
Un ejemplo ms extenso
DESCRIPCION DE LA ASIGNATURA La asignatura de Sistemas Expertos es de naturaleza TEORICO-PRACTICA, y constituye una de las bases para que el alumno se encuentre capacidad de representar y modelar el conocimiento humano a travs del uso de la computadora. Es parte fundamental del curso lograr que el alumno se motive por medio de la transmisin de conocimientos y experiencias de la vida real, para que investigue y se sienta inmerso de la representacin del conocimiento por medio de Bases de Conocimiento. La materia comprendio los temas de: Inteligencia Artificial, Sistemas Expertos, Bases de Conocimiento, Motores de Inferencia, Representacin del Conocimiento, Ejercicios Prcticos. COMENTARIO SOBRE LA MATERIA Me atrevo a decir que la materia es muy importante puesto que aprendimos realmente que es un sistema experto, esperamos que la materia se profundice mucho mas y que no la den en 10 ciclo si no en octavo ciclo y una continuidad o segunda parte de la materia en noveno ciclo de la carrera Ing en sistemas. Muchas gracias por regalarnos su experiencia sobre este tema que es Sistemas Expertos, y tocara por cuenta propia investigar, capacitarse sobre sistemas expertos