Verificación y Análisis de Base de Reglas Activas

Lorena Chavarría Báez

            
Texto completo de la Tesis    



Resumen

Los sistemas basados en reglas activas (sistemas activos) ejecutan acciones de manera automática ante la ocurrencia de ciertos eventos, los cuales pueden ser generados dentro o fuera del sistema. La parte medular de tales sistemas la constituye la base de reglas activas, la cual representa el conocimiento que se tiene acerca de un dominio particular. Una regla activa tiene la forma: ON evento IF condición THEN acción, la cual indica la tarea que se debe llevar a cabo cuando ha ocurrido un evento y ciertas condiciones se han cumplido. Este tipo de reglas también se denominan reglas ECA (Evento - Condición - Acción).
Desarrollar sistemas activos no es una tarea sencilla debido a factores como los siguientes: primero, no es fácil decidir las partes del sistema que pueden implementarse mediante reglas activas; segundo, se tiene que analizar el costo que se debe pagar por la introducción de las reglas en la aplicación; tercero, la falta de herramientas de verificación y análisis que ayuden a identificar errores en la base de reglas y examinar si esta realiza adecuadamente las tareas para las que fue diseñada. En la literatura se ha reportado un vasto trabajo relacionado con la verificación de errores en sistemas basados en reglas de producción, las cuales son un caso particular de las reglas activas ya que sólo contienen la parte de la condición y la acción, no así para sistemas activos. Asimismo, se han desarrollado métodos de análisis para las propiedades de terminación y confluencia, algunos de los cuales no determinan con exactitud su cumplimiento. La propiedad de terminación garantiza que el proceso de ejecución de una base de reglas se realiza en un número finito de pasos. La propiedad de confluencia determina si el orden de ejecución de reglas disparadas simultáneamente en un mismo estado del sistema influye en el resultado final que se obtenga.
En este trabajo de tesis se aborda la verificación de errores y el análisis de las propiedades de terminación y confluencia de reglas activas. Las principales aportaciones obtenidas se describen a continuación:

    1. Definiciones de errores de redundancia, inconsistencia, incompletitud y circularidad en el contexto de reglas activas. Hasta el momento, no se han reportado en la literatura relacionada con reglas activas definiciones para los errores mencionados, los conceptos originales sólo consideran reglas de producción. Dado que las reglas activas están formadas por un evento, una condición y una acción, es importante contar con definiciones de errores que consideren todas estas partes ya que el evento hace que estos puedan aparecer en formas más complicadas. Tomando en cuenta esta situación, se analizaron los tipos de errores que aparecen en bases de reglas de producción y, posteriormente, se redefinieron para adaptarlos al contexto de reglas activas. Como resultado se propusieron definiciones para los errores de redundancia, inconsistencia, incompletitud y circularidad que consideran todos las partes componentes de las reglas activas.

    2. Definiciones de errores potenciales. En algunas ocasiones, los errores ocurren sólo hasta que se satisfacen ciertas condiciones. En ese momento, pueden llegar a causar un mal funcionamiento de la base de reglas y, por lo tanto, deben prevenirse. Este tipo de errores los denominamos errores potenciales. Entre ellos están las reglas en conflicto potencial, las cuales pueden generar inconsistencia sólo cuando el resultado de la evaluación de sus condiciones es verdadero. Al conocer los errores potenciales que existen en la base de reglas se pueden tomar medidas para manejarlos cuando sucedan o, incluso, rediseñar el conjunto de reglas para eliminarlos.

    3. Método de verificación de errores basado en la CCPN. A partir del conjunto de definiciones se desarrolló un método de detección de errores basado en una extensión de las redes de Petri llamada Red de Petri Coloreada Condicional (CCPN, por sus siglas en inglés Conditional Colored Petri Net). El modelo de CCPN representa con claridad cada elemento de la regla así como su interacción. El método consta de dos etapas: primero, usando la CCPN se identificaron patrones que caracterizan a las reglas que pueden contener errores y se aprovechó la matriz de conexión de la CCPN para detectarlos automáticamente. Segundo, se extrajeron las reglas identificadas por los patrones y se analizó su interacción para determinar con exactitud la ocurrencia de algún tipo de error.

    4. Método de análisis de las propiedades de confluencia y terminación basado en la CCPN. El método de análisis de las propiedades de confluencia y terminación desarrollado está basado en la CCPN y consta de dos partes. En la primera de ellas, usando la CCPN, se identificaron los patrones que caracterizan reglas que pueden no terminar y reglas que pueden no ser confluentes. En la segunda parte, se desarrollaron algoritmos para analizar la interacción de las reglas identificadas a través de los patrones y así concluir acerca del cumplimiento de las propiedades. La ventaja que tienen estos enfoques de verificación de errores y análisis de propiedades de terminación y confluencia es que no necesitan examinar todas las reglas para formular conclusiones. El identificar patrones en la CCPN permite centrarse sólo en aquellas reglas que puedan ser incorrectas.

    5. Desarollo de la herramienta ECAPNVerifier. ECAPNVerifier es un sistema que permite verificar una base de reglas de forma automática. Esta herramienta se integró a ECAPNSim, el cual es un sistema que genera la CCPN de una base de reglas así como su correspondiente matriz de conexión.


          Abstract

Active rule-based systems (active systems) respond automatically to events that are taking place inside or outside the system itself. The most important element of active systems is the rule base which represents knowledge about a particular area. An active rule of the rule base is written as follows: ON event IF condition THEN action. It specifies the task which has to be performed when an important event happens and some conditions are met. This kind of rules are also called ECA (Event - Condition - Action) rules. Developing a rule base is commonly perceived as a difficult task for a variety of reasons, first, it is not obvious which parts of an application should be supported using active mechanisms, second, what performance penalty is likely to result from the use of rules, and third, the verification and analysis tools which detect errors and determine if the rule base properly fulfills its goal may be minimal. Many works on error verification using production rules, which are a special case of active rules since they only have condition and action parts, have been reported in specialized literature. However, to the best of our knowledge, there is no enough work about error verification usign active rules. Also, many works about confluence and termination properties analysis have been published. But, some of them cannot draw conclusion accurately. Confluence property guarantees that the final result of rules triggered at the same time will be the same independently of their execution order. Termination property guarantees that rule processing will be done in a finite number of steps. This thesis tackles error verification and confluence and termination analysis properties in active rule base. In the following we describe our main contributions:

    1. Definitions for redundancy, inconsistency, incompleteness and circularity errors using active rules. Up to date, there isn't any report in literature about active rules related with definitions of mentioned errors, original conceptions only take into account production rules. Since active rules consist of an event, a condition and an action, it is important to have error definitions which consider all these parts because of event makes errors to appear in more complicated ways. Considering this situation, errors which appear in production rule base were analized and, later, they were redefined to adapt them to active rule context. As result we obtained definitions for redundancy, inconsistency, incompleteness and circularity errors which take into account all the rule's parts.

    2. Definitions of potential errors. Potential errors are those which can cause a bad performance of the rule base at a specific moment and, therefore, they have to be prevented. Among potential errors are potential conflicting rules which can cause inconsistency only when their conditions may be true at the same time. If potential errors are discovered it is possible to formulate ways to deal with them when they happen, or even the rule base can be designed again to take away potential errors.

    3. CCPN-based method to verify errors in an active rule base. From above definitions we developed an error verification method, which is based on a Petri net extension called Conditional Colored Petri Net (CCPN). CCPN model represents each rule element as well as their interaction. Our method consists of two parts: first, using CCPN we identified patterns which characterize rules with errors and took advantage of its incidence matrix representation to automatically detect them. Second, we extract the rules represented identified by patterns and we analyzed their interaction to draw conclusion about errors.

    4. CCPN-based method to analyze confluence and termination properties. We developed a method for analyzing above properties which is based on CCPN. Our method is performed in two stages: first, we identify those CCPN structures which depict nonconfluence and non-termination problems. Second, we analyzed rule interaction of rules represented by above structures and we conclude about confluence and termination.  The great advantage of our verification and analysis method is that we can draw conclusion about errors and fulfillment of confluence and termination properties with no need to test all the rules pairs in the rule base. Using CCPN we can focus our test on the rules which may be wrong.

    5. ECAPNVerifier development. ECAPNVerifier is a software system which verifies an active rule base automatically. It was integrated into a more robust tool called ECAPNSim which can generate a CCPN and its corresponding incidence matrix form an active rule base.