1. Contribución principal
1.1. Capacidad de especificar reglas recursivas y proporcionar un marco de referencia
2. Forma clausal
2.1. Todas las variables están cuantificadas universalmente
2.2. La fórmula se componer de varias cláusulas y cada cláusula de literales
3. Cláusulas de Horn
3.1. Las reglas se expresan como una forma restringida de cláusulas
3.2. Puede contener como máximo una literal positiva
3.3. Forma
3.3.1. not(P1) OR not(P2) OR ... OR not(Pn) OR Q
3.3.1.1. Se escribe en Datalog como -> Q:- P1, P2, ..., Pn
3.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.
4. Interpretación de reglas
4.1. Teoría de la demostración
4.1.1. Se considera los hechos y reglas como enunciados verdaderos, o axiomas
4.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
4.1.1.1.1. Con los axiomas deductivos se puede construir demostraciones que deriven hechos nuevos a partir de los existentes.
4.2. Teoría de modelos
4.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
5. Mecanismos de inferencia básicos para programas lógicos
5.1. Ascendente
5.1.1. El motor de inferencia parte de los hechos y aplica las reglas para generar nuevos hechos
5.1.1.1. Estos, se comparan con el predicado que es el objetivo de la consulta para ver si coinciden
5.2. Descendente
5.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
5.2.1.1. Indica que la inferencia retrocede desde el objetivo buscado para determinar hechos que los satisdarían
5.2.1.1.1. Amplitud
5.2.1.1.2. Profundidad
6. Seguridad
6.1. Un programa o regla es seguro si genera un conjunto finito de hechos
7. Evaluación de consultas no recursivas en consultas Datalog
7.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
7.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
7.1.1.1. Si el grafo de dependencia no tiene ciclos, el conjunto de reglas es no recursivo
7.1.1.2. Si hay por lo menos un ciclo, se dice que el conjunto de reglas es recursivo
8. Conceptos de procesamiento de consultas recursivas en Datalog
8.1. Enfoque de evaluación pura
8.1.1. Crear un esquema de evaluación de consultas que dé respuestas a la consulta
8.2. Enfoque de reescritura de la regla
8.2.1. Optimizar el esquema en una estrategia más eficiente
8.3. Se han propuesto estrategias para evaluar un conjunto de reglas
8.3.1. Estrategia simple
8.3.1.1. Ascendente de evaluación que calcula el modelo menor de un programa Datalog
8.3.2. Estrategia semisimple
8.3.2.1. Ascendente diseñada para eliminar redundancia en la evaluación de tuplas de las diferentes iteraciones
8.3.3. Empleo de conjuntos mágicos
8.3.3.1. Intenta resolver una consulta que no solicita toda la relación que corresponde a un predicado intensional
9. Negación estratificada
9.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
9.1.1. Se pierde una propiedad importante, el modelo mínimo
10. NAIL!
10.1. ¡No es una implementación de lógica más!
10.2. Estudiar la optimización de la lógica mediando el modelo de <todas las soluciones>, orientado a bases de datos
11. Capacidad de definir reglas
11.1. Deduce o infiere información adicional
12. Lenguaje declarativo
12.1. Lenguaje que define lo que un programa desea lograr
12.2. Motor de inferencia
12.2.1. Deduce hechos nuevos a partir de la base de datos interpretando dichas reglas
13. Datalog
13.1. Variante de Prolog
13.2. Para definir reglas declarativamente junto con un conjunto de relaciones existentes que se tratan como literales en el lenguaje
13.3. Proporciona predicado con nombres únicos
13.3.1. Un predicado tiene un significado implícito, sugerido por su nombre, y un número fijo de argumentos
13.4. Los programas se construyen a partir de objetos básicos llamados fórmulas atómicas.
13.4.1. Literales de la forma p{a1,a2,...,an]
13.4.1.1. p: nombre del predicado
13.4.1.2. a1,a2: argumentos constantes o variables
13.4.1.3. n: número de argumentos de un predicado. aridad o grado.
14. Hechos
14.1. Especifican de manera similar a como se especifican las relaciones
14.2. No es necesario incluir los nombres de los atributos
15. Reglas
15.1. Especifican relaciones virtuales que no están almacenadas realmente, pero que se pueden formar a partir de los hechos
15.2. cabeza:-cuerpo
15.2.1. un solo predicado (sí y sólo sí) premisas
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