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:
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 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:
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:
Para los parámetros Num2A y Num2N (caso donde no existen conclusiones) las acciones seguidas son:
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:
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.
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:
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:
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:
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.
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:
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.
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: