viernes, 24 de septiembre de 2010

Sistemas Expertos: Arquitectura básica







Por lo ya visto, sabemos que un Sistema Experto (SE) es una aplicación capaz de solucionar un conjunto de problemas que exigen un gran conocimiento sobre un determinado tema. Un sistema experto es un conjunto de programas que, sobre una base de conocimientos, posee información de uno o más expertos en un área específica.

De forma general, veamos la Arquitectura de un Sistema Experto, y luego estudiaremos como esto se implementa en Drools :

  1. Base de conocimientos (BC): Contiene conocimiento modelado extraído del diálogo con un experto. Es una parte muy importante de definir, y muy costosa. Tambien se lo llama knowledgebase en inglés; KB, kb or Δ y es un tipo especial de base de datos para la gestión del conocimiento. Provee los medios para la recolección, organización y recuperación de conocimiento. Es donde modelaremos "lo que sabemos" del problema a resolver.
  2. Base de hechos (Memoria de trabajo): contiene los hechos sobre un problema que se ha descubierto durante el análisis. Es donde trabajaremos.
  3. Motor de inferencia: Modela el proceso de razonamiento humano. Recordemos que una inferencia es una evaluación que realiza la mente entre expresiones bien formadas de un lenguaje, para obtener un resultado.
  4. Módulos de justificación: Es como se explica el razonamiento utilizado por el sistema para llegar a una determinada conclusión. Parte importante!
  5. Interfaz de usuario: es la interacción entre el SE y el usuario, y se realiza mediante el lenguaje natural. Muchas veces esto es simplemente un resultado, un reporte o un mensaje en una pantalla. Iterativamente, se puede ir mejorando.
Ahora bien, sobre el ultimo punto, ¿como interactua el usuario con un Sistema Experto?
El usuario de un SE puede estar operando en cualquiera de los siguientes modos:

Verificador. El usuario intenta comprobar la validez del desempeño del sistema.

Tutor. El usuario da información adicional al sistema o modifica el conocimiento que ya está presente en el sistema.

Alumno. El usuario busca rápidamente desarrollar pericia personal relacionada con el área específica mediante la recuperación de conocimientos organizados y condensados del sistema.

Cliente. El usuario aplica la pericia del sistema a tareas específicas reales.

El reconocimiento de las caracterizaciones anteriores contrasta con la percepción de un simple papel (el cliente) de los sistemas tradicionales de software.

En una próxima entrada volveremos un poco sobre la arquitectura recién presentada, estudiaremos la implementacion en diversos productos y herramientas.
Nombraremos los principales, con sus ventajas y desventajas.

Hasta la próxima entrega!


No hay comentarios.: