Si se realiza un análisis detallado de la característica que le imprimen las reglas generales estudiadas a la elaboración de las conclusiones, evidentemente se puede pensar que ellas imponen una estructura muy rígida, que no permite variaciones de este esquema y que en determinados momentos pudieran convertirse en limitantes a la hora de representar situaciones concretas.

Entre estas limitantes, se encuentran:

  • El hecho de que hasta el final de la elaboración se desconocen los resultados.
  • La evaluación de las reglas sigue un orden secuencial.
  • La necesidad de evaluar todas las reglas para poder finalizar el proceso.

Formas de representación del conocimiento propuestas para modificar el proceso de elaboración de conclusiones

Para darle solución a los puntos anteriores, se propone la definición de diversas formas de representación que permitan la introducción de variaciones externas a los esquemas de control programados en la máquina de inferencia. Estas reglas pueden ser programadas por el IC, como parte del propio conocimiento de elaboración de conclusiones. Así, se puede expresar en qué momento y bajo qué condiciones, se necesita un cambio al esquema interno y cuál debe ser el procedimiento. Todo esto se ha estructurado a través de las llamadas Reglas de Apoyo.

Se llama Regla de Apoyo a una expresión que permite realizar una operación y con ella modifica el esquema de evaluación programado en la máquina de inferencia, la cual tiene la siguiente estructura:

ANT => OperacionA [ParametrosA]
OperacionN [ParametrosN] donde:

ANT es el antecedente de la regla y representa una proposición simple o compuesta

OperacionA y OperaciónN son operaciones que pueden ejecutarse sobre los diferentes tipos de conocimiento,

ParametrosA y ParametrosN representan un conjunto de parámetros asociados al tipo de operación y que constituyen las condiciones en que deben ejecutarse las operaciones.

Este nuevo tipo de representación pudiera ser considerado como un conjunto de instrucciones que se pueden mezclar libremente con las reglas de conclusión, y por tanto, pasan a formar parte del conjunto de reglas asociadas a una división. Por esta razón, el ambiente de edición de una regla de apoyo es el mismo de las reglas de conclusión

La diferencia fundamental entre las reglas de conclusión y las reglas de apoyo, está dada porque las primeras representan las condiciones y formas bajo las cuales se considerará un determinado texto como conclusión del problema, mientras que las segundas, introducen variaciones al esquema general de trabajo establecido internamente por la máquina de inferencia.

Se proponen seis reglas de apoyo que se describen en las próximas sesiones. Todas ellas tienen la estructura de la definición general de regla de apoyo, por ello, sólo se comentarán las características de los sucedentes de cada regla puesto los mismos son diferentes. El antecedente es el mismo en todas los tipos de reglas y su explicación coincide con la dada en la definición anterior.

Visualización de los resultados en el momento que lo requiera la aplicación

Para visualizar los resultados cuando la aplicación así lo requiera y no tener que esperar a que termine todo el proceso de elaboración de conclusiones en la división, se introduce una regla denominada Regla de Visualización de los Resultados que permite modificar la lógica de elaboración de conclusiones programado en la máquina de inferencia de la Base de Control.

Esta regla permite programar en qué momento del proceso de elaboración de las conclusiones, se desea visualizar los resultados obtenidos hasta ese momento.

Sintaxis de la regla de visualización

Se llama Regla de Visualización de los Resultados al tipo de conocimiento que ordena a la máquina de inferencia visualizar los resultados que se han almacenado hasta el momento y cuya expresión tiene la siguiente forma:

ANT => VA [Num1A Num2A]
VN [Num1N Num2N]; donde:

El tipo de sucedente VA o VN expresa las condiciones y formas en que se pueden mostrar los resultados según el cumplimiento o no del antecedente respectivamente. Los parámetros que acompañan la definición responden a los siguientes requerimientos:

Num1A y Num1N = {0, 1, 2} y están referidos a la afirmación y la negación del antecedente respectivamente. Estos se activan únicamente en caso de existir conclusiones almacenadas en el buffer.

Num2A y Num2N = {-1, 0, 1, 2, 3,..., Nt} y están referidos a la afirmación y la negación del antecedente respectivamente. Se activan sólo en caso de no existir conclusiones almacenadas en el buffer.

Semántica de la regla de visualización

La regla de visualización de los resultados se implementa en la máquina de inferencia de la siguiente forma:

“Si se satisface la condición del antecedente entonces se activa el sucedente para la afirmación y en caso contrario, el sucedente para la negación. En ambos casos, se procede a ejecutar las acciones expresadas en el sucedente como sigue: si en el momento de la evaluación de la regla, ya se ha obtenido alguna conclusión se ejecutan las acciones definidas con el parámetro Num1A o Num1N según el caso y si por el contrario, en ese momento no existen conclusiones, entonces se activan las acciones definidas con el parámetro Num2A o Num2N de acuerdo al cumplimiento del antecedente”.

Para las acciones asociadas con los parámetros Num1A y Num1N (caso donde ya existen conclusiones) se procede como se describe a continuación:

  • -1 Se inicializará el texto de conclusiones y continuará la consulta normalmente.
  • 0 No se ejecutará acción alguna.
  • 1 Se mostrarán los resultados obtenidos hasta el momento y después continuará la consulta normalmente.
  • 2 Se mostrarán los resultados obtenidos hasta el momento y después se inicializará el texto de conclusiones como si no se hubiera obtenido nada hasta ese momento, continuando la consulta normalmente.

Para los parámetros Num2A y Num2N (caso donde no existen conclusiones) las acciones seguidas son:

  • -1 Se mostrará un texto fijo, que representa un aviso indicando que no se han obtenido conclusiones todavía.
  • 0 No se ejecuta acción alguna.
  • i = {1,2,..., Nt} Se mostrará el texto de la conclusión pura número i, donde Nt representa la cantidad total de textos de este tipo en la BC.

Interrupción del proceso de ejecución

Para poder manejar interrupciones en el proceso de elaboración de las conclusiones antes de que éste finalice, se introduce la z¿Regla de Interrupción, que también introduce variaciones externas al esquema de control por medio de la programación de la BC.

Sintaxis de la regla de interrupción

Se llama Regla de Interrupción a la expresión que manda a la máquina de inferencia a interrumpir la realización de las acciones que se están ejecutando en correspondencia con los valores de los parámetros de la expresión que la representa:

ANT => IA [Num1A Num2A Num3A]
IN [Num1N Num2N Num3N]; donde:

Num1A y Num1N = {-1, 0, 1, 2,..., Ndr} definen el tipo de interrupción que se ejecutará,

Num2A y Num2N = {0, 1, 2} representan la acción a realizar para el cumplimiento o no del antecedente respectivamente. Estos se activan únicamente, en caso de existir conclusiones almacenadas en el buffer.

Num3A, Num3N = {-2,-1, 0, 1, 2,..., Nt} indican la acción a realizar para el cumplimiento o no del antecedente respectivamente. Se activan sólo en el caso de no existir conclusiones en el buffer.

Semántica de la regla de interrupción

La regla de interrupción actúa como sigue:

Si se satisface la condición del antecedente, entonces se activa la componente positiva del sucedente y en caso contrario, la componente negativa. En ambos casos, se procede a ejecutar las acciones expresadas en el sucedente como sigue: el alcance de la interrupción será indicado por el parámetro Num1A o Num1N según se cumpla o no el antecedente. Por otra parte, si en el momento de la evaluación de la regla ya se ha obtenido alguna conclusión, se ejecutarán las acciones definidas por el parámetro Num2A o Num2N y si no existen conclusiones aún, se activan las acciones dadas por el parámetro Num3A o Num3N”.

El alcance de la interrupción definida por la regla viene dado por Num1A y Num1N, tomando uno de los valores siguientes:

  • -1 para indicar una interrupción completa de la consulta actual.
  • 0 para comunicar que la interrupción solamente afectará la división actual, es decir, el proceso continuará en la próxima división que esté programada.
  • i = {1, 2,..., Ndr} Además de la división actual, la acción también afectará las i siguientes (Ndr es la cantidad de divisiones después de la actual). El proceso evaluativo por tanto, saltará estas divisiones continuando por la siguiente tantas divisiones como se defina en los parámetros Num1A o Num1N.
  • Los parámetros Num2A y Num2N como se definió, indican cómo proceder si en el momento de la evaluación de la regla ya fueron obtenidos resultados. Y para ello existen las siguientes variantes:

    • 0 no se activa la cancelación del proceso, dada la existencia de conclusiones.
    • 1 se muestran los resultados obtenidos y se procede según Num1A o Num1N.
    • 2 no se muestran los resultados que se habían obtenido y se procede a la interrupción según Num1A o Num1N.

    Por último, los parámetros Num3A y Num3N se activan si en el momento de la evaluación de la regla, todavía no se han obtenido conclusiones, utilizando las categorías siguientes:

    • -2 se procederá en correspondencia con Num1A o Num1N sin otra acción adicional que no sea la propia interrupción.
    • -1 se mostrará un texto fijo, donde se explica que no se obtuvo conclusiones y la acción que será ejecutada.
    • 0 no se activa la interrupción dada la ausencia de conclusiones todavía.
    • i = {1,2,...,Nt} se mostrará el texto de conclusión pura número i, donde Nt representa la cantidad de este tipo de texto en la BC. Posteriormente se ejecuta el tipo de interrupción definida por los parámetros Num1A o Num1N.

    Variación en la secuencia de la evaluación de las reglas asociadas

    La otra posibilidad que tiene que ver con la variación del flujo evaluativo de las reglas asociadas a una división, viene dada por la definición de cambios en el orden de su análisis, esto es, se introducen modificaciones en la secuencia del procesamiento de las reglas asociadas, lo cual se materializa también utilizando un tipo de regla específico que permite introducir saltos en el proceso evaluativo de las reglas y que se designa como Regla de Saltos en la Evaluación.

    Sintaxis de la regla de saltos

    Se llama Regla de Saltos en la Evaluación a la expresión que obliga a la máquina de inferencia a cambiar la secuencia de evaluación de las reglas asociadas a la división y la cual tiene la forma:

    ANT => SA TSaltoA [NumA]
    SN TSaltoN [NumN]; donde:

    Los sucedentes SA y SN representan las acciones a tomar para el cumplimiento o no del antecedente respectivamente, las cuales se especifican según los valores que tomen sus parámetros como se explica a continuación:

    TSaltoA y TSaltoN = {I, F, D, C} indican el tipo de salto

    NumA y NumN representan un valor numérico relacionado solamente con los casos D y C del conjunto anterior.

    Semántica de la regla de saltos

    La regla se implementa en el lenguaje como se expresa a continuación:

    “Si se satisfacen las condiciones establecidas en el antecedente entonces, la próxima regla a evaluar será aquella que resulte de ejecutar el salto TSaltoA que ha sido definido en la componente positiva del sucedente; mientras que si el antecedente no se cumple, se saltará hacia la regla que resulte de ejecutar la componente negativa del mismo (TSaltoN)”;

    En correspondencia con el siguiente convenio para TSaltoA y TSaltoN:

    • I el proceso evaluativo continuará en la primera regla (ir al inicio).
    • F el proceso evaluativo continuará en la última regla.
    • D pasa directamente a la evaluación de la regla número NumA o NumN según el caso y que el proceso continúe a partir de ésta.
    • C salta una cantidad de reglas igual al valor absoluto de NumA o NumN, teniendo en cuenta que valores positivos indica que el salto es hacia adelante y que el proceso evaluativo continúa en la regla siguiente a la que apuntó el salto ejecutado, mientras que valores negativos indica que el salto es hacia atrás y en este caso, el proceso evaluativo continúa en la regla que apunta el salto ejecutado.