fbpx
Wikipedia

CLIPS

CLIPS es una herramienta que provee un entorno de desarrollo para la producción y ejecución de sistemas expertos. Fue creado a partir de 1984, en el Lyndon B. Johnson Space Center de la NASA. Los fondos cesaron a principios de los años 1990, y hubo un mandato de la NASA para comprar software comercial.

CLIPS es un acrónimo de C Language Integrated Production System (Sistema de Producción Integrado en Lenguaje C). En la actualidad, entre los paradigmas de programación que soporta CLIPS se encuentran la Programación lógica, la Programación imperativa y la Programación Orientada a Objetos.

CLIPS probablemente es el sistema experto más ampliamente usado debido a que es rápido, eficiente y gratuito. Aunque ahora es de dominio público, aún es actualizado y mantenido por su autor original, Gary Riley.

Historia y motivación

Durante el año 1984, en el Lyndon B. Johnson Space Center, la sección de Inteligencia Artificial había desarrollado alrededor de una docena de prototipos de sistemas expertos usando hardware y software de aquella época. A pesar del demostrado potencial de los sistemas expertos, la mayoría de aquellos prototipos no estaban siendo usados regularmente. Según la NASA esto se debió a que el lenguaje de programación usado para el desarrollo de estas aplicaciones era LISP. Se encontraron varias debilidades de LISP, entre las que se destacan tres: no estaba disponible para una amplia variedad de equipos de cómputo, no era fácilmente integrable con otras aplicaciones, y su costo era muy elevado.

La sección de Inteligencia Artificial notó que el uso de un lenguaje convencional (como C) eliminaría la mayoría de esos inconvenientes. Al principio se buscó que la nueva herramienta fuera desarrollada por terceros, pero los costos aún eran demasiado altos y los tiempos de entrega no eran satisfactorios. Por lo tanto, fue necesario que la sección de Inteligencia Artificial desarrollara su propio lenguaje para sistemas expertos basado en C.

Primeras versiones

El primer prototipo de CLIPS fue desarrollado durante la primavera (boreal) de 1985, y tomó poco más de dos meses. Era compatible con todos los desarrollos hechos por la sección de Inteligencia Artificial, y su sintaxis estaba basada en la sintaxis de ART (otra herramienta para el desarrollo de sistemas expertos). Sin embargo, CLIPS fue desarrollado sin tener acceso o haber conocido previamente el código fuente de ART.

Inicialmente, con el desarrollo de CLIPS se buscaba tener mayor conocimiento sobre la construcción de sistemas expertos y sentar las bases de un lenguaje para reemplazar las herramientas comerciales que estaban siendo usadas. La versión 1.0 de CLIPS demostró que eso era posible. Después de un desarrollo adicional, se vio que el costo de CLIPS sería significativamente menor al de otras herramientas y que sería ideal para entrenamiento. Otro año de desarrollo y de uso interno sirvió para mejorar portabilidad, desempeño, funcionalidad y documentación de soporte. A mediados de 1986, CLIPS v3.0 estuvo disponible para grupos fuera de la NASA.

Madurez y expansión

Otras funcionalidades agregadas transformaron CLIPS; ya no era una herramienta para entrenamiento sobre construcción de sistemas expertos, sino que ahora servía también para el desarrollo y ejecución de los mismos. Las versiones CLIPS v4.0 y v4.1 (1987) tenían significativas mejoras en cuanto a desempeño, integración con otros lenguajes, y capacidad de ejecución. CLIPS v4.2 (1988) fue una completa re-escritura del código fuente con el fin de hacerlo más modular. Esta versión también incluyó un manual detallado de la arquitectura de CLIPS y una aplicación de ayuda para la verificación y validación de programas basados en reglas. Nuevas funcionalidades vinieron con la CLIPS v4.3 (1989).

Originalmente, CLIPS era un lenguaje de reglas basado en el Algoritmo Rete (Programación Lógica). CLIPS v5.0 (1991) introdujo dos nuevos paradigmas de programación: Programación Imperativa y Programación Orientada a Objetos (POO). El lenguaje POO dentro de CLIPS es llamado COOL (CLIPS Object-Oriented Language, o Lenguaje Orientado a Objetos de CLIPS). CLIPS v5.1 (1991) ya soportaba las recientemente desarrolladas o mejoradas interfaces X Window, MS-DOS y Macintosh. CLIPS v6.0 (1993) tenía nuevas funcionalidades relacionadas con el reconocimiento de patrones en objetos/reglas y soporte a Ingeniería de Software basada en reglas. CLIPS v6.1 (1998) soportaba compiladores C++, aunque ya no soportaba los viejos compiladores C no ANSI. También se agregaron comandos para llevar control del tiempo de desarrollo y para funciones definidas por el usuario. CLIPS v6.2 es soportada por diversos sistemas operativos, y tiene mejoras en su interfaz de desarrollo para Windows 95/98/NT y MacOS.

Actualmente, CLIPS es mantenido fuera de la NASA como software de dominio público.

Características principales

Las características principales de CLIPS son:

  • Representación del Conocimiento: CLIPS permite manejar una amplia variedad de conocimiento, soportando tres paradigmas de programación: el declarativo, el imperativo, y el orientado a objetos. La programación lógica basada en reglas permite que el conocimiento sea representado como reglas heurísticas que especifican las acciones a ser ejecutadas dada una situación. La POO permite modelar sistemas complejos como componentes modulares. La programación imperativa permite ejecutar algoritmos de la misma manera que en C, Java, LISP y otros lenguajes.
  • Portabilidad: CLIPS fue escrito en C con el fin de hacerlo más portable y rápido, y ha sido instalado en diversos sistemas operativos (Windows 95/98/NT, MacOS X, Unix) sin ser necesario modificar su código fuente. CLIPS puede ser ejecutado en cualquier sistema con un compilador ANSI de C, o un compilador de C++. El código fuente de CLIPS puede ser modificado en caso de que el usuario lo considere necesario, con el fin de agregar o quitar funcionalidades.
  • Integrabilidad: CLIPS puede ser integrado en código imperativo, invocado como una sub-rutina, e integrado con lenguajes como C, Java, FORTRAN y otros. CLIPS incorpora un completo lenguaje orientado a objetos (COOL) para la elaboración de sistemas expertos. Aunque está escrito en C, su interfaz más próxima se parece a LISP. Pueden escribirse extensiones a CLIPS sobre C, y al contrario, CLIPS puede ser llamado desde C. CLIPS puede ser extendido por el usuario mediante el uso de protocolos definidos.
  • Desarrollo Interactivo: La versión estándar de CLIPS provee un ambiente de desarrollo interactivo y basado en texto; este incluye herramientas para la depuración, ayuda en línea, y un editor integrado. Las interfaces de este ambiente tienen menús, editores y ventanas que han sido desarrollados para MacOS, Windows 95/98/NT, X Window, entre otros.
  • Verificación/Validación: CLIPS contiene funcionalidades que permiten verificar las reglas incluidas en el sistema experto que está siendo desarrollado, incluyendo diseño modular y particionamiento de la base de conocimientos del sistema, chequeo de restricciones estático y dinámico para funciones y algunos tipos de datos, y análisis semántico de reglas para prevenir posibles inconsistencias.
  • Documentación: En la página web oficial de CLIPS se encuentra una extensa documentación que incluye un Manual de Referencia y una Guía del Usuario.
  • Bajo Costo: CLIPS es un software de dominio público.

Funcionamiento de CLIPS

Como otros lenguajes para sistemas expertos, CLIPS estructura el conocimiento en hechos y reglas. Los hechos son información sobre el entorno que se usa para razonar. Mientras que las reglas son los elementos que permiten que el sistema evolucione, normalmente modificando hechos. Esa modificación puede ser directa sobre la base de hechos almacenada o como consecuencia de cambios en el entorno (por ejemplo, si una regla mueve un robot sus sensores proporcionarán hechos distintos en la siguiente lectura).

Ejemplo de CLIPS

A modo de ejemplo, supongamos un sistema en el que almacenamos hechos sobre personas y edades. Para ello necesitaríamos una plantilla adecuada:

 (deftemplate persona (slot nombre) (slot edad) ) 

Y después podríamos crear hechos sobre personas de la siguiente forma:

 (deffacts personas_empadronadas (persona (nombre "Manolo") (edad 54)) (persona (nombre "Ignacio") (edad 18)) (persona (nombre "Marisa") (edad 34)) ) 

En el fragmento de código de arriba se han definido 3 hechos: existe un objeto de la clase persona con nombre "Manolo" y edad 54, otro objeto de la clase persona con nombre "Ignacio" y edad 18 y por último otro de la clase persona con nombre "Marisa" y edad 34.

 (defrule censar (persona (nombre ?n) (edad ?e)) (test (> ?e 17)) => (assert (elector (nombre ?n))) ) 

En el fragmento de código de arriba se ha definido una regla:

  • Para todo objeto de la clase persona con nombre n y edad e, si e es mayor que 17, existe un objeto de la clase elector con nombre n.

Enlaces externos

  • Página oficial del proyecto
  • Web del CLIPS en sourceforge.net
  • (en inglés)
  • Sistemas Expertos y Modelos de Redes Probabilísticas, E. Castillo, J.M. Gutiérrez, and A.S. Hadi. Ed. Academia Española de Ingeniería, 1998 (descarga gratuita en español)
  • Fernando Martínez Santiago (Universidad de Jaén)
  • Fernando Martínez Santiago (Universidad de Jaén)
  •   Datos: Q165372

clips, herramienta, provee, entorno, desarrollo, para, producción, ejecución, sistemas, expertos, creado, partir, 1984, lyndon, johnson, space, center, nasa, fondos, cesaron, principios, años, 1990, hubo, mandato, nasa, para, comprar, software, comercial, acró. CLIPS es una herramienta que provee un entorno de desarrollo para la produccion y ejecucion de sistemas expertos Fue creado a partir de 1984 en el Lyndon B Johnson Space Center de la NASA Los fondos cesaron a principios de los anos 1990 y hubo un mandato de la NASA para comprar software comercial CLIPS es un acronimo de C Language Integrated Production System Sistema de Produccion Integrado en Lenguaje C En la actualidad entre los paradigmas de programacion que soporta CLIPS se encuentran la Programacion logica la Programacion imperativa y la Programacion Orientada a Objetos CLIPS probablemente es el sistema experto mas ampliamente usado debido a que es rapido eficiente y gratuito Aunque ahora es de dominio publico aun es actualizado y mantenido por su autor original Gary Riley Indice 1 Historia y motivacion 1 1 Primeras versiones 1 2 Madurez y expansion 2 Caracteristicas principales 3 Funcionamiento de CLIPS 4 Ejemplo de CLIPS 5 Enlaces externosHistoria y motivacion EditarDurante el ano 1984 en el Lyndon B Johnson Space Center la seccion de Inteligencia Artificial habia desarrollado alrededor de una docena de prototipos de sistemas expertos usando hardware y software de aquella epoca A pesar del demostrado potencial de los sistemas expertos la mayoria de aquellos prototipos no estaban siendo usados regularmente Segun la NASA esto se debio a que el lenguaje de programacion usado para el desarrollo de estas aplicaciones era LISP Se encontraron varias debilidades de LISP entre las que se destacan tres no estaba disponible para una amplia variedad de equipos de computo no era facilmente integrable con otras aplicaciones y su costo era muy elevado La seccion de Inteligencia Artificial noto que el uso de un lenguaje convencional como C eliminaria la mayoria de esos inconvenientes Al principio se busco que la nueva herramienta fuera desarrollada por terceros pero los costos aun eran demasiado altos y los tiempos de entrega no eran satisfactorios Por lo tanto fue necesario que la seccion de Inteligencia Artificial desarrollara su propio lenguaje para sistemas expertos basado en C Primeras versiones Editar El primer prototipo de CLIPS fue desarrollado durante la primavera boreal de 1985 y tomo poco mas de dos meses Era compatible con todos los desarrollos hechos por la seccion de Inteligencia Artificial y su sintaxis estaba basada en la sintaxis de ART otra herramienta para el desarrollo de sistemas expertos Sin embargo CLIPS fue desarrollado sin tener acceso o haber conocido previamente el codigo fuente de ART Inicialmente con el desarrollo de CLIPS se buscaba tener mayor conocimiento sobre la construccion de sistemas expertos y sentar las bases de un lenguaje para reemplazar las herramientas comerciales que estaban siendo usadas La version 1 0 de CLIPS demostro que eso era posible Despues de un desarrollo adicional se vio que el costo de CLIPS seria significativamente menor al de otras herramientas y que seria ideal para entrenamiento Otro ano de desarrollo y de uso interno sirvio para mejorar portabilidad desempeno funcionalidad y documentacion de soporte A mediados de 1986 CLIPS v3 0 estuvo disponible para grupos fuera de la NASA Madurez y expansion Editar Otras funcionalidades agregadas transformaron CLIPS ya no era una herramienta para entrenamiento sobre construccion de sistemas expertos sino que ahora servia tambien para el desarrollo y ejecucion de los mismos Las versiones CLIPS v4 0 y v4 1 1987 tenian significativas mejoras en cuanto a desempeno integracion con otros lenguajes y capacidad de ejecucion CLIPS v4 2 1988 fue una completa re escritura del codigo fuente con el fin de hacerlo mas modular Esta version tambien incluyo un manual detallado de la arquitectura de CLIPS y una aplicacion de ayuda para la verificacion y validacion de programas basados en reglas Nuevas funcionalidades vinieron con la CLIPS v4 3 1989 Originalmente CLIPS era un lenguaje de reglas basado en el Algoritmo Rete Programacion Logica CLIPS v5 0 1991 introdujo dos nuevos paradigmas de programacion Programacion Imperativa y Programacion Orientada a Objetos POO El lenguaje POO dentro de CLIPS es llamado COOL CLIPS Object Oriented Language o Lenguaje Orientado a Objetos de CLIPS CLIPS v5 1 1991 ya soportaba las recientemente desarrolladas o mejoradas interfaces X Window MS DOS y Macintosh CLIPS v6 0 1993 tenia nuevas funcionalidades relacionadas con el reconocimiento de patrones en objetos reglas y soporte a Ingenieria de Software basada en reglas CLIPS v6 1 1998 soportaba compiladores C aunque ya no soportaba los viejos compiladores C no ANSI Tambien se agregaron comandos para llevar control del tiempo de desarrollo y para funciones definidas por el usuario CLIPS v6 2 es soportada por diversos sistemas operativos y tiene mejoras en su interfaz de desarrollo para Windows 95 98 NT y MacOS Actualmente CLIPS es mantenido fuera de la NASA como software de dominio publico Caracteristicas principales EditarLas caracteristicas principales de CLIPS son Representacion del Conocimiento CLIPS permite manejar una amplia variedad de conocimiento soportando tres paradigmas de programacion el declarativo el imperativo y el orientado a objetos La programacion logica basada en reglas permite que el conocimiento sea representado como reglas heuristicas que especifican las acciones a ser ejecutadas dada una situacion La POO permite modelar sistemas complejos como componentes modulares La programacion imperativa permite ejecutar algoritmos de la misma manera que en C Java LISP y otros lenguajes Portabilidad CLIPS fue escrito en C con el fin de hacerlo mas portable y rapido y ha sido instalado en diversos sistemas operativos Windows 95 98 NT MacOS X Unix sin ser necesario modificar su codigo fuente CLIPS puede ser ejecutado en cualquier sistema con un compilador ANSI de C o un compilador de C El codigo fuente de CLIPS puede ser modificado en caso de que el usuario lo considere necesario con el fin de agregar o quitar funcionalidades Integrabilidad CLIPS puede ser integrado en codigo imperativo invocado como una sub rutina e integrado con lenguajes como C Java FORTRAN y otros CLIPS incorpora un completo lenguaje orientado a objetos COOL para la elaboracion de sistemas expertos Aunque esta escrito en C su interfaz mas proxima se parece a LISP Pueden escribirse extensiones a CLIPS sobre C y al contrario CLIPS puede ser llamado desde C CLIPS puede ser extendido por el usuario mediante el uso de protocolos definidos Desarrollo Interactivo La version estandar de CLIPS provee un ambiente de desarrollo interactivo y basado en texto este incluye herramientas para la depuracion ayuda en linea y un editor integrado Las interfaces de este ambiente tienen menus editores y ventanas que han sido desarrollados para MacOS Windows 95 98 NT X Window entre otros Verificacion Validacion CLIPS contiene funcionalidades que permiten verificar las reglas incluidas en el sistema experto que esta siendo desarrollado incluyendo diseno modular y particionamiento de la base de conocimientos del sistema chequeo de restricciones estatico y dinamico para funciones y algunos tipos de datos y analisis semantico de reglas para prevenir posibles inconsistencias Documentacion En la pagina web oficial de CLIPS se encuentra una extensa documentacion que incluye un Manual de Referencia y una Guia del Usuario Bajo Costo CLIPS es un software de dominio publico Funcionamiento de CLIPS EditarComo otros lenguajes para sistemas expertos CLIPS estructura el conocimiento en hechos y reglas Los hechos son informacion sobre el entorno que se usa para razonar Mientras que las reglas son los elementos que permiten que el sistema evolucione normalmente modificando hechos Esa modificacion puede ser directa sobre la base de hechos almacenada o como consecuencia de cambios en el entorno por ejemplo si una regla mueve un robot sus sensores proporcionaran hechos distintos en la siguiente lectura Ejemplo de CLIPS EditarA modo de ejemplo supongamos un sistema en el que almacenamos hechos sobre personas y edades Para ello necesitariamos una plantilla adecuada deftemplate persona slot nombre slot edad Y despues podriamos crear hechos sobre personas de la siguiente forma deffacts personas empadronadas persona nombre Manolo edad 54 persona nombre Ignacio edad 18 persona nombre Marisa edad 34 En el fragmento de codigo de arriba se han definido 3 hechos existe un objeto de la clase persona con nombre Manolo y edad 54 otro objeto de la clase persona con nombre Ignacio y edad 18 y por ultimo otro de la clase persona con nombre Marisa y edad 34 defrule censar persona nombre n edad e test gt e 17 gt assert elector nombre n En el fragmento de codigo de arriba se ha definido una regla Para todo objeto de la clase persona con nombre n y edad e si e es mayor que 17 existe un objeto de la clase elector con nombre n Enlaces externos EditarPagina oficial del proyecto Web del CLIPS en sourceforge net Clips Tutorials en ingles Sistemas Expertos y Modelos de Redes Probabilisticas E Castillo J M Gutierrez and A S Hadi Ed Academia Espanola de Ingenieria 1998 descarga gratuita en espanol Tutorial de CLIPS en castellano Parte I Fernando Martinez Santiago Universidad de Jaen Tutorial de CLIPS en castellano Parte II Fernando Martinez Santiago Universidad de Jaen Datos Q165372 Obtenido de https es wikipedia org w index php title CLIPS amp oldid 143191747, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos