domingo, 9 de diciembre de 2012

JESS

La base del conocimiento en JESSThis is a featured page

Antes de explicar cómo expresar el conocimiento en JESS, se debe entender qué es un Sistema Experto, ya que JESS se puede comportar como tal.

Un Sistema Experto es un Sistema Basado en Conocimiento con información precisa de un dominio y con capacidad de aprendizaje sobre él y que llega a trabajar de forma similar a una persona especializada en ese dominio. Está formado por:
  • Base de conocimientos (BC): contiene conocimiento modelado extraído del diálogo con el experto.

  • Base de hechos (BH) (Memoria de trabajo): contiene los hechos sobre un problema que se ha descubierto durante el análisis y pueden ir aumentando a medida que se descubran nuevos hechos en los ciclos de inferencia.

  • Motor de inferencia: modela el proceso de razonamiento humano. Es el que decide qué reglas de inferencia ejecutar siguiendo los pasos de un algoritmo.

  • Módulos de justificación: Explica el razonamiento utilizado por el sistema para llegar a una determinada conclusión.

  • Interfaz de usuario: es la interacción entre el Sistema Experto y el usuario, y se realiza mediante el lenguaje natural.


Sistema Experto






EL MOTOR DE INFERENCIA
El Motor de Inferencia se basa en la información que hay en la Base del Conocimiento y en un algoritmo para responder preguntas. Hay dos estrategias que se han explicado anteriormente: el encadenamiento hacia delante (que usa JESS) y el encadenamiento hacia atrás.

Cada vez que haya una pregunta por resolver, se buscará la solución siguiendo el algoritmo elegido y muchas veces se podrá obtener nueva información en forma de hechos. A esto se le llama el Ciclo de Inferencia:
  1. Se buscan todas las posibles reglas aplicables, es decir, que son compatibles con la BH.
  2. Se selecciona una de las reglas según un orden de preferencia.
  3. Se aplica la regla seleccionada y se actualiza la BH.


El problema es que en el paso 1 se comparan todas las reglas con los elementos de la Memoria de Trabajo. La solución (que usa JESS) es usar el algoritmo RETE (Algoritmo de Redundancia Temporal) que genera el conjunto de reglas aplicables del paso 1 de forma incremental.
INSTALACIÓN
Hay que tener en cuenta que JESS es un software privado por lo que, a no ser que lo compres o consigas una licencia académica, tendrás que contentarte con una versión que caduca a los 30 días.

La distribución la puedes conseguir en la zona de descargas de la página principal de JESS:
http://www.jessrules.com/jess/download.shtml. Cuando hayas completado los campos y hayas aceptado puedes ver las versiones disponibles de JESS. Mi consejo es que elijas la última versión estable y la guardes. Una vez conseguida la versión descomprímela en c:\.

Luego, en Panel de Control – Sistema – Opciones Avanzadas - Variables de Entorno dentro de Variables del Sistema hay una variable llamada CLASSPATH (sino créala), haz doble clic en ella y añade al final la ruta de los .jar:
;c:\Jess70p2\lib\jess.jar;c:\ Jess70p2\lib\jsr94.jar

 

Ahora ya puedes ejecutar JESS y empezar a trabajar con él.


EJECUTAR JESS

En una ventana Windows vete a c:\Jess70p2 (podrías hacerlo también desde c:\, pero no te aseguro que funcione siempre) y teclea:
java jess.Main


Entonces te debe aparecer lo siguiente o algo similar, teniendo en cuenta que puedes tener una versión de prueba:
Jess, the Rule Engine for the Java Platform
Copyright (C) 2006 Sandia Corporation
Jess Version 7.0p1 12/21/2006

Jess>


Si no quieres usar la ventana de Windows puedes ejecutar el modo consola de JESS:
java jess.Console


Aparecerá una ventana nueva con una interfaz más amistosa y que funcionará igual que la ventana de Windows:

Funcionalidades básicas - JESS y su integración con JADE



SALIR DE JESS
Para salir de JESS, simplemente hay que teclear:
(exit)


CARGAR UN PROGRAMA
Todas las llamadas que hagamos a JESS van a ser entre paréntesis ().Para cargar un archivo JESS (con extensión .clp) hecho anteriormente:
(batch nombrePrograma.clp)


Y aparecerá TRUE escrito en la consola si está bien cargado. Por ejemplo, si cargamos el programa holaMundo.clp (enlace al archivo al final de la página):
Jess> (batch holaMundo.clp)
Hola, mundo!!!


El intérprete supone que el programa está en c:\Jess70p2, pero si está en otra carpeta más adentro se debe especificar, por ejemplo:
(batch ejemplo1/nombrePrograma.clp)


Otro modo sería ejecutar JESS y cargar el programa todo a la vez:
java jess.Main nombrePrograma.clp


De este modo, una vez terminado de ejecutarse el programa, saldría de JESS.

Nota:
Si quieres abrir un archivo .clp para ver su contenido, ábrelo con un editor de textos como el bloc de notas. Haciendo doble clic abre el portapapeles con lo último que hayas escrito, pero no muestra el código.

No hay comentarios:

Publicar un comentario