Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ISBCdporto
ISBCdporto
NDICE
JAVA - JESS
Qu es Jess ?
JESS (Java Expert System Shell). Diseado para integrar fcilmente Clips y Java. Originalmente (1995) era un clon de Clips, programado en Java. Hoy es mucho ms. (versin actual: 6.0) Acepta casi cualquier fichero que funciona con Clips. Objetivo: Aplicaciones Java + razonamiento de un sistema experto (reglas).
Caractersticas
Utiliza el algoritmo de Rete para procesar las reglas. Puede obtener mayor rapidez que CLIPS. Incluye encadenamiento hacia atrs (5.0) Permite manipulacin directa de objetos Java (incluso scripts de Java) Incluye lgica difusa en la 5.0 (FuzzyJess):
http://ai.iit.nrc.ca/IR_public/fuzzyJToolKit.html
Jess provee un interfaz de lnea de comandos a travs de la clase jess.Main c:\jdk> java jess.Main jess> ... Si se usa jess.Console se tiene un interfaz en modo grfico (consola).
Jess est diseado para integrarse en applets. Esta posibilidad slo incorpora lo esencial de Jess para minimizar el tamao de las pginas (no incorpora funciones opcionales). La clase jess.ConsoleApplet proporciona la posibilidad de incorporar un interfaz como el anterior en pginas web.
Java provee las mismas funciones y comparte el espacio de almacenamiento de dichos valores con Jess.
Rete rete_engine = new Rete(nd); rete_engine.fetch("RESULT");
Clases de Jess
Jess est programado en Java; sus clases se usan como cualquier otra. La clase jess.Rete es el motor de inferencia e implementa el algoritmo de rete. Existen clases para todo lo que se maneja con un lenguaje de reglas:
Hechos, reglas, plantillas, clases, instancias, tomos, strings, agendas, funciones, ....
Extender Jess
Se pueden aadir nuevas funciones a Jess programadas en Java (Userfunction) Tambin se puede aadir paquetes de funciones (Userpackage)
El orden de los argumentos es el que realiza el enlace entre la llamada y el mtodo, y la equivalencia de tipos es la contemplada en la clase jess.Value.
Jess en la WWW
El sitio oficial de Jess en Internet se encuentra en: http://herzberg.ca.sandia.gov/jess/ (ejfried@ca.sandia.gov) Se permite el uso libre en mbitos educativos, sin fines comerciales. En esa pgina se puede descargar Jess, aceptando los trminos de su licencia. Es la pgina con informacin relevante sobre Jess
Descripcin
Se trata de implementar una parte del ejercicio que se propone en el apndice F del libro de Deitel & Deitel Cmo programar en Java. El ejercicio propone una aproximacin incremental a la implementacin de un simulador de un edificio con ascensores. El ejercicio completo toca todos los aspectos interesantes de la programacin en Java (threads,excepciones,clases....).
Primera versin
La situacin inicial era una implementacin parcial del problema del ascensor. Objetivo: hacer funcionar un motor de inferencia conjuntamente con el ascensor. Se pretende que la poltica de movimientos del ascensor sea configurable mediante ficheros de reglas Clips.
Se ampla a mltiples ascensores. La aplicacin es ms genrica y fcilmente parametrizable. Se corrigen errores detectados.
El motor de inferencia
El programa contiene una clase llamada Controlador que se ocupa de decidir la direccin del ascensor y su parada. Se trata de sustituir el engorroso cdigo que contiene, por una base de conocimiento y un motor de inferencia en Jess.
Se intentar que el programa al arrancar lea unos ficheros Clips en el que aparecen las reglas que usar para estas decisiones. Para ello, se utilizarn las clases desarrolladas para facilitar la integracin Java - Jess (ISBC_Jess)
Objetivos
Aprender a enlazar el lenguaje Java con otro diferente (en este caso, Jess) Utilizar la interfaz grfica de forma ms sofisticada. Desarrollar la capacidad de anlisis de cdigo desarrollado anteriormente con el fin de optimizarlo y/o detectar errores. Manejo de Threads y excepciones en Java.
Posibles ampliaciones
Revisin de las reglas Clips con el objetivo de optimizarlas y dotarlas de mayor inteligencia (algoritmo del elevador). Intentar reducir el nmero de hechos que se asertan desde el cdigo Java, para simplificarlo. Permitir que la interfaz grfica no est limitada a un nmero mximo de elementos (pisos, ascensores) en la pantalla.
capacidad mxima
Generacin de pasajeros ms realista: en lugar de generarlos peridicamente y con destino aleatorio, establecer unas probabilidades de origen y destino.
Paquete ISBC_Jess
muy enrevesado.
Jess no provee de mtodos para realizar funcionalidades comunes. Se necesita un conocimiento algo profundo y detallado sobre Jess para utilizarlo.
Descripcin
Desarrollo del paquete ISBC_Jess como envoltura de Jess. Se sita en un nivel intermedio entre Java y Jess. Contiene clases que provee de funcionalidades de inters habituales.
Objetivos (1)
El conocimiento necesario para utilizarlo sea mnimo, ocultando los detalles de Jess. El nmero de clases sea reducido. Automatizar al mximo las funcionalidades tiles (apertura y parseado de ficheros, control de excepciones)
Objetivos (2)
Proveer una interfaz grfica genrica para interaccionar con el sistema experto. En resumen: que el usuario nicamente tenga que preocuparse de desarrollar las reglas.