41 Paso B: Obtención de una transacción. Sea ? un conjunto de hipótesis generadas por el procedimiento abductivo, T? es una transacción asociada a ? si dado un estado D, para cada átomo abducido básico L ? ? (resp. L* ? ? ), D’ |= L (resp. D’ |= ¬L) donde D’ es el estado de base de datos obtenido al aplicar T? a D. Método de Kakas y Mancarella
42 Ejemplo 6: BDI: 1. p(x) ? q(x) ? ¬ r(x) Actualización: U = insertar(p(1)) 2. p(x) ? t(x) 3. r(x) ? s(x) Marco abductivo: BDI* = {p(x) ? q(x) ? r*(x), Ab = {q, s, t, p*, q*, r*, s*, t*} p(x) ? t(x), r(x) ? s(x)} RI* = { ? p(x) ? p*(x), p(x) ? p*(x), ? q(x) ? q*(x), q(x) ? q*(x), ? r(x) ? r*(x), r(x) ? r*(x), ? s(x) ? s*(x), s(x) ? s*(x), ? t(x) ? t*(x), t(x) ? t*(x) }
43 ? T?1 = { insertar(t(1)) } ? T?2= {insertar(q(1)), borrar(s(1))} BDE: s(1)
44 Ejemplo 6: BDI: 1. p(x) ? q(x) ? ¬ r(x) Actualización: U = borrar(p(1)) 2. p(x) ? t(x) 3. r(x) ? s(x) Marco abductivo: BDI* = {p(x) ? q(x) ? r*(x), Ab = {q, s, t, p*, q*, r*, s*, t*} p(x) ? t(x), r(x) ? s(x)}
RI* = { ? p(x) ? p*(x), p(x) ? p*(x), ? q(x) ? q*(x), q(x) ? q*(x), ? r(x) ? r*(x), r(x) ? r*(x), ? s(x) ? s*(x), s(x) ? s*(x), ? t(x) ? t*(x), t(x) ? t*(x) }
45 BDE: q(1) t(1) ? T?3= {borrar(q(1)), borrar(t(1))} ? T?4= {insertar(s(1)), borrar(t(1))}
46 Corrección y completitud. Corrección: Sea D una base de datos localmente estratificada, U un requisito insertar(L) (resp. borrar(L)). Si hay una derivación abductiva desde (?L {}) (resp. (?L* {})) hasta ([] ?) entonces para cualquier base de datos extensional se cumple que |=MD’ L (resp. |=MD’ ¬L) donde D’ es el estado de base de datos obtenido al aplicar a D una transacción asociada a D y MD’ es el modelo estable de D’.
Completitud: Sea D = BDI ? BDE un estado de base de datos cuya parte intensional cumple las propiedades de ser acíclica y de no tener variables existencialmente cuantificadas, U un requisito insertar(L) (resp. borrar(L)). Si existe una parte extensional BDE’ tal que |=MD’L (resp. |=MD’¬L) donde D’ = BDI ? BDE’ y MD’ es el modelo estable de D’ entonces hay una derivación abductiva desde (? L {}) (resp. (? L* {})) hasta ([] ?) tal que L’ ? BDE’ (resp. L’ ? BDE’) para cada átomo abducible básico L’ ? ? (resp. L’* ? ?). Método de Kakas y Mancarella
47 Resumen: Los requisitos de actualización sólo pueden ser inserciones o borrados de tuplas base sobre predicados derivados no admitiendo requisitos más generales. Obtiene las soluciones (conjunto ?) en tiempo de ejecución pero sin acceder al conjunto de hechos. Debido a la regla de selección segura que utiliza el método, no se pueden elegir en las derivaciones las reglas deductivas con variables existencialmente cuantificadas por lo que no se aporta solución al problema de falta de valores. Debido al problema anterior, el método no puede tratar con reglas recursivas. En el caso de predicados derivados definidos recursivamente sólo se consideraría las reglas que definen el caso base encontrándose soluciones sólo en el caso de requisitos de inserción. En [KM90] se comenta que el método puede extenderse fácilmente para comprobar las restricciones de integridad durante el paso de obtención de las hipótesis El problema de la información asumida es controlado por el método en la regla A3 de la derivación abductiva y en la regla C4 de la derivación de consistencia ya que en ellas la abducción de un literal se realiza tras comprobar que su complementario no pertenece ya al conjunto de hipótesis.
48 Método de Guessoum y Lloyd Semántica asumida. semántica declarativa: la compleción. semántica operacional: procedimiento SLDNF Base de Datos. bases de datos localmente consistentes en llamada el conjunto de predicados básicos y el conjunto de predicados derivados pueden no ser disjuntos. las restricciones de integridad se representan por fórmulas cerradas bien formadas. [GL90] Guessoum, A.; Lloyd, J. W. Updating knowledge bases. New Generation Computing, Vol. 8, 1990, págs. 71-89. [GL91] Guessoum, A.; Lloyd, J. W. Updating knowledge bases II. New Generation Computing, Vol. 10, 1991, págs. 73-100.
49 Requisito de actualización. insertar(A) (resp. borrar(A)) (A es un átomo).
Transacción generada. inserción y borrado de hechos y reglas deductivas
En el caso de la inserción de reglas deductivas, éstas sólo pueden ser de la forma A ?, donde A es un átomo que no es base (esto significa que se admite la inserción de reglas deductivas dependientes del dominio). Así pues la transacción obtenida es un conjunto de operaciones de la forma insertar(C) donde C es un átomo que, si es base es un hecho y si no lo es representa una regla deductiva sin cuerpo, o de la forma borrar(C) donde C es una sentencia de base de datos (hecho o regla deductiva). Método de Guessoum y Lloyd
50 Descripción del método. El método de actualización se basa en los procedimientos: Borrado Inserción que utilizan a su vez los procedimientos básicos: Borrado-Básico Inserción-Básica que se llaman recursivamente entre sí.
En estos procedimientos, que se presentan a continuación, se utiliza el concepto de árbol SLDNF trivial que es aquél que sólo consta del nodo raíz. Método de Guessoum y Lloyd
51 ALGORITMO Borrado ENTRADA D: Estado de base de datos; U = borrar(A) : Requisito de actualización de borrado; RI: Conjunto de restricciones de integridad; SALIDA: ? : Conjunto de transacciones; INICIO SI comp(D) |= A ENTONCES Borrado_Básico (D, A, t0); t := {T : T ? t0, comp(T(D)) |¹ A y T(D) satisface RI} FIN_SI FIN.
52 ALGORITMO Borrado_Básico ENTRADA D: Estado de base de datos; A: átomo; SALIDA: t0: Conjunto de transacciones; INICIO t := árbol SLDNF finito que no sea trivial para D È { ? A}; t0 := {[T1, ¼ , Tn] : existe un Ti (no necesariamente distinto) para cada rama que no sea fallada de t, tal que Ti = borrar(Ci) donde Ci es una sentencia de D utilizada como cláusula de entrada en una rama no fallada de t o Ti ? ti tal que ØB tiene éxito en una rama no fallada de t y ti es la salida de la llamada al procedimiento de Inserción_Básica con argumentos de entrada D y B} FIN.
53 ALGORITMO Inserción ENTRADA D: Estado de base de datos; U = insertar(A) : Requisito de actualización de inserción; RI: Conjunto de restricciones de integridad; SALIDA t : Conjunto de transacciones; INICIO SI comp(D) |¹ A ENTONCES} Inserción_Básica(D, A, t0); t := {T|T? t0, comp(T(D)) |= A y T(D) satisface RI} FIN.
54 ALGORITMO Inserción_Básica ENTRADA D: Estado de base de datos; A: átomo; SALIDA t0: Conjunto de transacciones; INICIO t := un árbol SLDNF finito para D È { ? A}; t0 := {[T1, ¼ , Tn] : ? L1, ¼ , Ln es un objetivo en t tal que Li es base si es negativo y, o Ti = insertar(Ai) si Li = Ai (donde Ai es un átomo) o Ti ? ti si Li = ØBi (donde Bi es un átomo) y ti es la salida de la llamada al procedimiento Borrado_Básico con argumentos de entrada D y Bi} FIN.
55 Ejemplo 7: BDI: 1. p(x) ? q(x) ? ¬ r(x) Actualización: U = insertar(p(1)) 2. p(x) ? t(x) 3. r(x) ? s(x) s(1) El procedimiento Inserción llama al procedimiento Inserción_Básica tras comprobar que p(1) no es consecuencia lógica de comp(D) ; supóngase que este procedimiento construye el árbol SLDNF que se muestra a continuación.
56
? p(1) ? T1 = {insertar(p(1))} ? t(1) ? T2 = {insertar(t(1))} ? q(1) ? ?r(1) ? T3 = {insertar(q(1)), borrar(r(x) ? s(x))} ? q(1) ? ? r(1) ? T4 = {insertar(q(1)), borrar(s(1))}
En las transacciones T3 y T4 la segunda operación se obtiene de la salida del procedimiento Borrado_Básico con el átomo de entrada r(1) que estudia el siguiente árbol SLDNF. Inserción_Básica
57
T1’ = { borrar (r(x) ? s(x)) } T2’ = { borrar (s(1)) }
Borrado-Básico
58 Ejemplo 8: BDI: 1. p(x) ? q(x) ? ¬ r(x) Actualización: U = borrar(p(1)) 2. p(x) ? t(x) 3. r(x) ? s(x) q(1) t(1) El procedimiento Borrado llama al procedimiento Borrado_básico tras comprobar que comp(D) |= p(1); supóngase que este procedimiento construye el árbol SLDNF que se muestra a continuación.
59 T1 = {borrar(p(x) ? q(x) ? ¬r(x)), borrar(p(x) ? t(x)) } T5 = { insertar(r(1)), borrar(p(x) ? t(x)) } T2 = {borrar(p(x) ? q(x) ? ¬ r(x)), borrar(t(1)) } T6 = { insertar(r(1)), borrar(t(1)) } T3 = {borrar(q(1)), borrar(p(x) ? t(x)) } T7 = { insertar(s(1)), borrar(p(x) ? t(x)) } T4 = {borrar(q(1)), borrar(t(1)) } T8 = { insertar(s(1)), borrar(t(1)) } Borrado_Básico
60 T1’ = { insertar (r(1)) } T2’ = { insertar (s(1)) } Inserción_Básica
Página anterior | Volver al principio del trabajo | Página siguiente |