Base de datos lógica, Sistema de Base de datos experto y Sistema de Base de datos de conocimientos
- Base de datos lógica: Aquella cuyo fundamento teórico está basado en lógica matemática.
- Sistema de Base de datos experto y Sistema de Base de datos de conocimientos: Incluyen funciones de razonamiento e inferencia y emplean técnicas de inteligencia artificial. Los datos están en la memoria principal y no necesitan almacenamiento secundario.
Notación Prolog / Datalog
Prolog se basa en proveer predicados con nombres únicos. Estos tienen un significado implícito y un determinado número de argumentos. Si los argumentos son constantes (números o letras minúsculas), el predicado indica que un hecho es verdadero. Si los atributos son variables (letras mayúsculas), es una consulta o regla/restricción.
Datalog es un lenguaje para base de datos deductivas que es sintácticamente un subconjunto de Prolog. Los programas se construyen a partir de objetos básicos llamados fórmulas atómicas.
El proyecto Logic Data Languaje (Lenguaje Lógico de Dato: LDL) de Microelectronics and Computer Corporation (MCC) se inició en 1984 con dos objetivos primarios:
Aplicaciones de LDL
El sistema LDL se ha utilizado en los siguientes dominios de aplicación:
La “base de conocimientos” puede servir para tomar decisiones referentes a la reutilización de subconjuntos del software. Los módulos pueden recombinarse para satisfacer tarea específicas, en tanto se satisfagan las reglas pertinentes. Se está experimentando con esto en el software bancario.
- Crear un sistema que extendiera el modelo relacional y a la vez aprovechara algunas de las características positivas de un SGBDR (Sistema de Gestión de Base de Datos Relacionales).
- Mejorar la funcionalidad de un SGBD de modo que operara como un SGBD deductivo y además permitiera la creación de aplicaciones de propósito general.
Aplicaciones de LDL
El sistema LDL se ha utilizado en los siguientes dominios de aplicación:
- Modelado de empresas: este dominio implica modelar la estructura, los procesos y las restricciones dentro de una empresa. Los datos relacionados con ella pueden resultar en modelo ER extendido que contiene cientos de entidades y vínculos y miles de atributos. Es posible desarrollar varias aplicaciones útiles para los diseñadores de nuevas aplicaciones (así como para los gerentes) a partir de esta “metabase de datos”, que contiene información tipo diccionario a cerca de toda la empresa.
- Prueba de hipótesis o dragado de datos: este dominio implica formular una hipótesis, traducirla a un conjunto de reglas LDL y una consulta, y luego ejecutar la consulta contra los datos para probar la hipótesis. El proceso se repite reformulando las reglas y la consulta. Esto se ha aplicado al análisis de datos de genoma en el campo de la microbiología. El dragado de datos consiste en identificar las secuencias de DNA a partir de autorradiografías digitalizadas de bajo nivel obtenidas de experimentos con bacterias E. coli.
- Reutilización de software: el grueso del software para una aplicación se desarrolla en código estándar por procedimientos, y una pequeña fracción se basa en reglas y se codifica en LDL. Las reglas dan origen a una base de conocimientos que contienen los siguientes elementos:
- Una definición de cada módulo C empleado en el programa.
- Un conjunto de reglas que define las formas en que los módulos pueden exportar / importar funciones, restricciones, etc.
La “base de conocimientos” puede servir para tomar decisiones referentes a la reutilización de subconjuntos del software. Los módulos pueden recombinarse para satisfacer tarea específicas, en tanto se satisfagan las reglas pertinentes. Se está experimentando con esto en el software bancario.
Forma clausal
La forma clausal es más sencilla que la estándar, aunque esta última es más natural. La propiedad importante de la forma clausal es que: un conjunto de wff en forma estándar es inconsistente si y sólo si el conjunto de cláusulas correspondiente es inconsistente. Cuando nos referimos al conjunto de cláusulas correspondiente nos referimos a aquellas convertidas a partir de la forma estándar. En realidad la forma clausal es un subconjunto restringido de la forma estándar pero que cuenta con algoritmos eficientes para razonar sobre ellas.
Definamos entonces que entendemos por cláusulas. Para ello primero debemos dar la definición de fórmula atómica y de literal:
- Fórmula Atómica:
siendo los ti términos y
un símbolo predicativo, es una fórmula atómica
- Literal: Sea F una fórmula atómica, entonces F y -F son literales. Es decir los literales son las formulas atómicas y su negación.
Pasaje a Forma Clausal
Toda sentencia en forma estándar puede ser convertida a forma clausal, dando por resultado un conjunto de cláusulas. La conversión preserva la consistencia lo cual es importante para luego operar sobre las cláusulas mediante resolución.
El pasaje a forma clausal se puede realizar aplicando cinco reglas:
- Regla 1: Eliminar implicaciones: para ello se pueden utilizar las siguientes equivalencias:
Siendo A, B fórmulas. El símbolo
representa la doble implicación (si y sólo si) es decir:
(A
B )^(B
A).
- Regla 2: Desplazar negaciones: utilizamos las siguientes equivalencias:
Siendo A, B fórmulas y x una variable.
- Regla 3: Desplazar Disyunciones: para desplazar las disyunciones al interior de las sentencias de tal forma que conecten literales (átomos o átomos negados), podemos aplicar las siguientes equivalencias:
Siendo A, B, C fórmulas y x una variable que no aparece en A.
Para tener la equivalencia completa es necesario considerar la propiedad conmutativa de la disyunción:
A v B = B v A
A v B = B v A
- Regla 4: Eliminación de cuantificadores existenciales.
Las cláusulas se consideran cuantificadas universalmente, por lo cual no es necesario tratar a los cuantificadores universales. Pero sí es necesario tratar a los cuantificadores existenciales. La eliminación de un cuantificador existencia introduce una sentencia que no es equivalente, que implica la sentencia original pero no es implicada por esta. Aunque mantiene la consistencia que es el punto que más nos interesa.
Si tenemos la sentencia
A donde x1…….. xn y v son variables. Puede ser reemplazada por la sentencia
B donde B es obtenida de A sustituyendo todas las apariciones de v en A por el término F(x1….xn) , siendo F una función.
- Regla 5: Expresar las disyunciones como cláusulas (en forma norma conjuntiva). Se trata de expresar disyunciones como ser:
Para mostrar la aplicación de las reglas anteriores daremos una afirmación en lenguaje natural, luego lo escribiremos en forma estándar y la convertiremos a forma clausal.
Cláusulas de Horn
Una Cláusula de Horn es una cláusula con a lo sumo un literal positivo
Tenemos tres tipos de cláusulas de Horn:
- Tipo I, un átomo simple (hecho)
- Tipo II, una implicación (llamada regla) cuyo antecedente consiste de una conjunción de literales positivos y el consecuente es sólo un literal positivo: L1^L2…^Ln-1
Ln donde las L son literales positivos. Muchas veces se nota: L1,L2,…,Ln-1
Ln .
- Tipo III. Un conjunto de literales negados, que puede notarse como una implicación sin consecuente L1, L2…Ln
La notación utilizando implicación es la preferida para escribir cláusulas de Horn y resulta equivalente a la notación utilizando la disyunción de literales. Una cláusula de Horn notada como disyunción finita de literales, siendo las L literales, se escribe así: -L1v-L2v….-Ln-1 vLn ;
lo cual pude notarse como conjunto: {-L1,-L2,…..-Ln-1, Ln} y es equivalente a:
L1,L2,…,Ln-1
Ln (las comas son conjunciones)
En general cualquier cláusula puede escribirse como implicación, dando lugar a lo que se conoce como forma normal conjuntiva. La equivalencia es directa, si tenemos una cláusula de la forma A1 v….vAn v-B1 v….v-Bn equivale a: B1^...^Bn
A1,v…v An ; que podemos notar (invirtiendo la flecha pero con el mismo significado) A1…An ← B1……Bn