TutorialBreveJessConJava

Páginas: 13 (3045 palabras) Publicado: 24 de mayo de 2015
JESS

1. Introducción

Jess es un shell para construir sistemas expertos escrito en Java. Jess da soporte para desarrollar sistemas expertos basados en reglas que estén totalmente integrados con aplicaciones escritas en el lenguaje Java.

Jess es una biblioteca escrita en Java que sirve como un intérprete para el lenguaje Jess que es muy similar al lenguaje CLIPS que ya conocemos.

La páginaoficial del sistema Jess es: http://herzberg.ca.sandia.gov/jess/
Desde allí se puede descargar la biblioteca y documentación que se puede usar para completar esta breve descripción de las características principales de Jess y cómo intercambiar información con programas Java.

Para usar jess necesitamos al menos la versión compilada de la biblioteca que se encuentra en el archivo jess.jar. Ademásse incluye y se recomienda consultar la documentación (/docs/index.html) o manual.pdf y los ejemplos (/examples).

En el laboratorio usaremos la versión 6.2 que es para la que tenemos licencia. Actualmente está disponible la versión 7 por lo que la actualizaremos cuando tengamos la nueva licencia. No hay cambios que nos afecten entre las dos versiones.

2. Interfaz de línea de órdenes
Para teneruna interfaz de línea de órdenes parecida (pero mucho más simple) a la que manejábamos en CLIPS hay que ejecutar la clase jess.Main o jess.Console (lo ejecuta en una ventana aparte).
La clase jess.Main proporciona una interfaz de línea de comandos a Jess, pero además es el núcleo de las interfaces gráficas (jess.Console y jess.ConsoleApplet).
Ejemplos:
java jess.Main examples/fullmab.clp
javajess.Console

ó con la distribución binaria:
java –cp jess.jar jess.Main examples/fullmab.clp
ó en una ventana aparte:
java –cp jess.jar jess.Console examples/fullmab.clp

También se puede invocar el intérprete y después cargar los ficheros con batch:
java –cp jess.jar jess.Console
(batch “Jess60/examples/fullmab.clp”)

El archivo de ejemplo fullmab.clp incluye código CLIPS que termina con lasinstrucciones:
(reset)
(run)

La clase jess.Main lleva a cabo varias acciones:
Lee un archivo de código Jess (opcional, sólo si se pasa como argumento en la llamada. Para ello usa la clase parser jess.Jesp.
Lee y ejecuta la entrada del usuario de forma cíclica.

3. Formas de uso de Jess

Jess puede ser utilizado de varias formas incluyendo aplicaciones de línea de comandos, aplicaciones coninterfaz gráfica, servlets y applets.
Se pueden desarrollar distintos tipos de aplicaciones que dependen de dónde quiera escribir el código. Es decir, decidir una arquitectura en la que se escribe principalmente código Java o código Jess.

Una forma de utilizar Jess en la que el control estará principalmente en el código Java consiste en manejar objetos de la clase RETE de la biblioteca.
Cada objetorete representa un motor de razonamiento independiente, de forma que un mismo programa puede incluir varios motores independientes (cada uno con su memoria de trabajo, base de reglas, ..).
Para utilizar Jess de forma incrustada en una aplicación Java simplemente será necesario crear uno (o más) objetos rete y manipularlo a través de los métodos adecuados.

El siguiente ejemplo muestra una formasencilla de utilizar Jess mediante un objeto RETE
Ejemplo 1 (este código está en el CV)
import jess.*;
import java.io.*;


public class Jesster
{ // The inference engine
private static Rete m_rete;
// Fichero que almacena el fuente del programa clips que vamos a cargar
private static String programaFuente;
// Constructor
public Jesster()
{ m_rete = newRete();
programaFuente = "wordgame.clp";
cargaPrograma(programaFuente);
System.out.println("Cargando programa " + programaFuente + " ");
}
public static void main(String[] args)
{ int choice;
int i;
Jesster jesso;
jesso = new Jesster();
jesso.reset();
jesso.run();...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS