
1. Capacidad de definir reglas
1.1. Deduce o infiere información adicional
2. Lenguaje declarativo
2.1. Lenguaje que define lo que un programa desea lograr
2.2. Motor de inferencia
2.2.1. Deduce hechos nuevos a partir de la base de datos interpretando dichas reglas
3. Datalog
3.1. Variante de Prolog
3.2. Para definir reglas declarativamente junto con un conjunto de relaciones existentes que se tratan como literales en el lenguaje
3.3. Proporciona predicado con nombres únicos
3.3.1. Un predicado tiene un significado implícito, sugerido por su nombre, y un número fijo de argumentos
3.4. Los programas se construyen a partir de objetos básicos llamados fórmulas atómicas.
3.4.1. Literales de la forma p{a1,a2,...,an]
3.4.1.1. p: nombre del predicado
3.4.1.2. a1,a2: argumentos constantes o variables
3.4.1.3. n: número de argumentos de un predicado. aridad o grado.
4. Hechos
4.1. Especifican de manera similar a como se especifican las relaciones
4.2. No es necesario incluir los nombres de los atributos
5. Reglas
5.1. Especifican relaciones virtuales que no están almacenadas realmente, pero que se pueden formar a partir de los hechos
5.2. cabeza:-cuerpo
5.2.1. un solo predicado (sí y sólo sí) premisas
6. Contribución principal
6.1. Capacidad de especificar reglas recursivas y proporcionar un marco de referencia
7. Forma clausal
7.1. Todas las variables están cuantificadas universalmente
7.2. La fórmula se componer de varias cláusulas y cada cláusula de literales
8. Cláusulas de Horn
8.1. Las reglas se expresan como una forma restringida de cláusulas
8.2. Puede contener como máximo una literal positiva
8.3. Forma
8.3.1. not(P1) OR not(P2) OR ... OR not(Pn) OR Q
8.3.1.1. Se escribe en Datalog como -> Q:- P1, P2, ..., Pn
8.3.1.1.1. Si todos los predicados son verdaderos para un determinado en lace con sus argumentos variables , Q también será verdadero y por lo tanto, podrá ser inferido.
9. Interpretación de reglas
9.1. Teoría de la demostración
9.1.1. Se considera los hechos y reglas como enunciados verdaderos, o axiomas
9.1.1.1. Los axioma base no contienen variables Los hechos son axiomas base que se dan por ciertos. Axiomas deductivos, sirven para deducir hechos nuevos
9.1.1.1.1. Con los axiomas deductivos se puede construir demostraciones que deriven hechos nuevos a partir de los existentes.
9.2. Teoría de modelos
9.2.1. Dado un dominio finito o infinito de valores constantes, se asigna a un predicado todas las combinaciones posibles de valores como argumentos. Después se determina si el predicado es verdadero o falso
10. Mecanismos de inferencia básicos para programas lógicos
10.1. Ascendente
10.1.1. El motor de inferencia parte de los hechos y aplica las reglas para generar nuevos hechos
10.1.1.1. Estos, se comparan con el predicado que es el objetivo de la consulta para ver si coinciden
10.2. Descendente
10.2.1. Éste parte del predicado que es el objetivo de la consulta e intenta encontrar coincidencias con las variables que conduzcan a hechos válidos de la base de datos
10.2.1.1. Indica que la inferencia retrocede desde el objetivo buscado para determinar hechos que los satisdarían
10.2.1.1.1. Amplitud
10.2.1.1.2. Profundidad
11. Seguridad
11.1. Un programa o regla es seguro si genera un conjunto finito de hechos
12. Evaluación de consultas no recursivas en consultas Datalog
12.1. Cuando en una consulta intervienen predicado definidos por reglas, el mecanismo de inferencia debe calcular el resultado según las definiciones de las reglas
12.1.1. Resulta útil seguir la pista a la dependencia entre los predicados de una base de datos deductiva en un grafo de dependencia de predicados
12.1.1.1. Si el grafo de dependencia no tiene ciclos, el conjunto de reglas es no recursivo
12.1.1.2. Si hay por lo menos un ciclo, se dice que el conjunto de reglas es recursivo
13. Conceptos de procesamiento de consultas recursivas en Datalog
13.1. Enfoque de evaluación pura
13.1.1. Crear un esquema de evaluación de consultas que dé respuestas a la consulta
13.2. Enfoque de reescritura de la regla
13.2.1. Optimizar el esquema en una estrategia más eficiente
13.3. Se han propuesto estrategias para evaluar un conjunto de reglas
13.3.1. Estrategia simple
13.3.1.1. Ascendente de evaluación que calcula el modelo menor de un programa Datalog
13.3.2. Estrategia semisimple
13.3.2.1. Ascendente diseñada para eliminar redundancia en la evaluación de tuplas de las diferentes iteraciones
13.3.3. Empleo de conjuntos mágicos
13.3.3.1. Intenta resolver una consulta que no solicita toda la relación que corresponde a un predicado intensional
14. Negación estratificada
14.1. Un lenguaje de consulta de la base de datos deductiva puede ampliarse permitiendo literales negados en los cuerpos de las reglas de los programas
14.1.1. Se pierde una propiedad importante, el modelo mínimo
15. NAIL!
15.1. ¡No es una implementación de lógica más!
15.2. Estudiar la optimización de la lógica mediando el modelo de <todas las soluciones>, orientado a bases de datos
16. Sistema CORAL
16.1. Provee un lenguaje declarativo basado en las cláusulas de Horn con una arquitectura abierta
16.2. Maneja varias anotaciones que sirven para elegir una semántica deseada o proporcionar sugerencias de optimización al sistema CORAL
16.3. Maneja una clase de programas con negación y agrupación que es estrictamente más grande que la clase de programas estrateficados
17. Orientadas a objetos
17.1. Visión
17.1.1. Ampliación del lenguaje
17.1.2. Integración del lenguaje
17.1.3. Reeconstrucción del lenguaje
17.2. Validity
17.2.1. Combina la capacidad deductiva con la habilidad de manipular objetos complejos
17.2.1.1. Proporciona los siguientes aspectos
17.2.1.1.1. Un modelo y lenguaje de datos, DEL
17.2.1.1.2. Un mecanismo que opera junto con el modelo cliente-servidor
17.2.1.1.3. Un conjunto de herramientas para la edición, validación y cosulta de esquemas y reglas
17.2.2. Aportaciones
17.2.2.1. Tiene como objetivo alcanzar la segmentación del desarrollo de la aplicación
17.2.3. Es una herramienta adecuada ala hora de aplicar los principios de ingeniería de software