Articulo de referencia

CLIPS

CLIPS ( C Language Integrated Production System ) es una herramienta de software de dominio público para la creación de sistemas expertos . Su sintaxis y nombre se inspiraron en...

CLIPS ( C Language Integrated Production System ) es una herramienta de software de dominio público para la creación de sistemas expertos . Su sintaxis y nombre se inspiraron en OPS5 de Charles Forgy . Las primeras versiones de CLIPS se desarrollaron a partir de 1985 en el Centro Espacial Johnson de la NASA (como alternativa al sistema existente ART*Inference) hasta 1996, cuando el grupo de desarrollo dejó de centrarse en la tecnología de sistemas expertos. El nombre original del proyecto era NASA's AI Language (NAIL).

En 2005, CLIPS era probablemente la herramienta de sistema experto más utilizada. [ 1 ] CLIPS está escrito en C , se pueden escribir extensiones en C y se puede llamar a CLIPS desde C. Su sintaxis se asemeja a la del lenguaje de programación Lisp . [ 2 ]

CLIPS incorpora un lenguaje de programación orientado a objetos completo para escribir sistemas expertos. COOL combina los paradigmas de programación de los lenguajes de programación procedimental , orientada a objetos y lógica ( demostración automática de teoremas ). [ 3 ]

Hechos y reglas

CLIPS utiliza encadenamiento hacia adelante . [ 4 ] [ 2 ] Al igual que otros lenguajes de sistemas expertos, CLIPS trabaja con reglas y hechos. Varios hechos pueden hacer que una regla sea aplicable. Una regla aplicable se activa entonces. [ 4 ] Los hechos y las reglas se crean definiéndolos primero, como se muestra a continuación:

(plantilla defproblema_coche (nombre de la ranura) (estado de la ranura)
(hechossolución de problemas (problema_del_coche (nombre_llave_de_encendido) (estado_encendido)) (problema_del_coche (nombre_del_motor) (estado_no_arranca)) (problema_del_coche (nombre faros) (estado funciona)))
(regla defrule1 (problema_del_coche (nombre_llave_de_encendido) (estado_encendido)) (problema_del_coche (nombre_del_motor) (estado_no_arranca)) => (assert (car_problem (name starter) (status faulty))))

Una vez configurado esto, el comando (reset) hace que CLIPS lea los hechos y las reglas. En este caso, esto daría lugar a que se confirmen los tres hechos de " solución de problemas ". A continuación, se utiliza el comando (run). Dado que se han confirmado los dos hechos enumerados en la regla 1, se cumplen las condiciones para realizar la acción, por lo que se confirma el hecho adicional como resultado de la ejecución.

CLIPS> (reiniciar) CLIPS> (agenda) 0 regla1: f-1,f-2 Para un total de 1 activación. CLIPS> (datos) f-0 (hecho inicial) f-1 (problema_del_coche (nombre_llave_de_encendido) (estado activado)) f-2 (problema_del_coche (nombre_del_motor) (estado_no_arranca)) f-3 (problema_del_coche (nombre faros) (estado funciona)) Para un total de 4 datos. CLIPS> (ejecutar) CLIPS> (datos) f-0 (hecho inicial) f-1 (problema_del_coche (nombre_llave_de_encendido) (estado activado)) f-2 (problema_del_coche (nombre_del_motor) (estado_no_arranca)) f-3 (problema_del_coche (nombre faros) (estado funciona)) f-4 (problema_del_coche (nombre del motor de arranque) (estado defectuoso)) Para un total de 5 datos. CLIPS> (afirmar <hecho>+) (Afirmar (objeto (nombre "silla") (Material: madera) (altura 3 pies) (Color marrón) CLIPS(retractar <índice-de-hechos+) (retraer 0) para un color

En CLIPS, la función de prominencia permite al usuario asignar prioridad (o peso) a una regla.

Descendientes

Entre los descendientes del lenguaje CLIPS se incluyen Jess (parte basada en reglas de CLIPS reescrita en Java , que posteriormente evolucionó en una dirección diferente), [ 5 ] y FuzzyCLIPS (que añade el concepto de relevancia al lenguaje).

Véase también

Referencias

  1. Di Stefano, Antonella; Gangemi, Francesc; Santoro, Corrado (2005). ERESYE: inteligencia artificial en programas Erlang . Actas del taller ACM SIGPLAN de 2005 sobre Erlang. Tallin, Estonia: ACM. pp. 62–71 . doi : 10.1145/1088361.1088373 . ISBN  1-59593-066-3.
  2. 1 2 Giarratano, Joseph C; Riley, Gary D. (2005). Expert Systems: Principles and Programming . Boston: Thomson. ISBN 81-315-0167-1.
  3. Riley, Gary (30 de noviembre de 2017). Manual de referencia de CLIPS: Volumen 1 – Guía de programación básica (PDF) . Recuperado el 29 de abril de 2023 .
  4. 1 2 Sandeep, K; Rakesh, K (2011). "Sistema de apoyo a la toma de decisiones basado en CLIPS para redes de distribución de agua" . Ingeniería y ciencia del agua potable . 4 (1): 37– 50. doi : 10.5194/dwes-4-37-2011 .
  5. Goyal, R; Jayasudha, T; Pandey, P; Devi, R. D; Rebecca, A; Sarma, M. Manju; Lakshmi, B (2014). "Sistema basado en el conocimiento para la selección de productos de datos satelitales" . The International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences . 40 (8): 1233– 1236. Bibcode : 2014ISPAr.XL8.1233G . doi : 10.5194/isprsarchives-XL-8-1233-2014 ."Jess se inspiró originalmente en el intérprete de comandos del sistema experto CLIPS, pero ha evolucionado hasta convertirse en un entorno propio, completo y distintivo, influenciado por Java."
  • Sitio web oficial , descargas, información, noticias, historia
  • Herramienta del sistema experto CLIPS: candidata para el motor del sistema de diagnóstico.
  • Tutorial de CLIPS en Code Project
  • CLIPSEditor en GitHub , editor de código para CLIPS