Download Introducción a las bases de datos deductivas
Document related concepts
no text concepts found
Transcript
Introducción a las bases de datos deductivas (I) Rafael Caballero Roldán D t d E Doctorado: Extensiones t i d de P Programación ió Ló Lógica i Índice Sintaxis Semántica Modelo de un programa Datalog Objetivos Aprender A d lla importancia i t i de d dar d una semántica á ti – un significado significado-- claro a los programas, estén en el lenguaje en el que estén L vamos a ver a través Lo t é de d ejemplos j l basados b d en extensiones de la programación lógica Interés en sí mismos mismos:: bases de datos d d ti deductivas, answer sett programming i … campos de investigación activos activos.. Idea Definir un marco de programación lógica q en el que: Se permita recursividad sin limitaciones Se permita el uso de negación negación, aunque sea de forma limitada Fá il d Fácil de iimplementar l t como llenguaje j Semántica clara y que corresponda con la implementación ¿No vale Prolog? E ell lenguaje Es l j de d programación ió lógica ló i más á extendido.. Sin embargo extendido Tratamiento demasiado operacional de la recursión camino(X,Y) arco(X,Y) camino(X,Y) camino(X,Z), camino(Z,Y) D Dependencia d i del d l orden d d llas reglas, de l d l orden del d d de los átomos en las reglas reglas… … El tratamiento inconsistencias de la negación da lugar a Alternativas Datalog: D t l Simple, admite todo tipo de recursión Semántica clara Limitado a p programas g sin funciones y estratificados Answer Set Programming Extiende Datalog a programas no estratíficados Semántica más compleja Datalog Sistema de referencia: Datalog y , disponible p en Educational System, http://www.fdi.ucm.es/profesor/fernan/des/ Artículo de referencia: Towards a Theory of Declarative Knowledge Krzysztof y R. Apt, p Howard A. Blair, Adrian Walker Foundations of deductive databases and programming, pp pp.. 8989-148 logic Sintaxis Datalog Variables:: X,Y,Z,… Variables Constantes:: a,b,c,d,… Constantes Átomos: predicados con argumentos variables o Átomos: constantes: p(a p(a,X), X) q(Y q(Y,Z,U),r,… Z U) r Literales: átomos o átomos negados, Literales: representados por L1, L2, … Sintaxis (II) Cláusulas.. De la forma: Cláusulas A L1, …, Lm A un átomo, la cabeza de la cláusula cláusula,, L1, …, Lm literales, literales el cuerpo cuerpo.. Si no hay literales (m=0) se dice que la cláusula es un hecho. Programa:: conjunto finito de cláusulas Programa Sintaxis (III) Objetivos:: L1, …, Lm donde L1, …, Lm son literales Objetivos Sustitución θ = {{xx1 t1,…, xn tn} es una aplicación que reemplaza simultáneamente las variables x1, …, xn por los términos t1,…,tn cuando es aplicada tθ representa la aplicación de θ a t Se dice que tθ es una instancia de t El conjunto de instancias básicas o cerradas (sin variables) de cláusulas de un programa se denota por ground(P) g ( ) Ejemplo edge(a,b). edge(a,c). edge(a c) edge(b,a). edge(b,d). path(X,Y) ::-- path(X,Z), path(Z,Y). path(X,Y) ::-- edge(X,Y). Semántica L Lenguaje j de d un programa D Datalog t l P P: llenguaje j de primer orden formado por lo símbolos de P y sólo por éstos Base de Herbrand Up: Conjunto de todos los átomos sin variables (básicos) que se pueden formar con los símbolos del programa P I Importante: En E Datalog D l Up es finito, fi i en P Prolog l es infinito Interpretación I de un programa P: cualquier conjunto I Up Semántica (II) Una fórmula S es cierta en una interpretación I sii cada una de sus instancias básicas (cerradas) ( ) es cierta en I Un átomo básico A es cierto en I sii A I Una fórmula básica ¬S es cierta en I sii S no es cierta en I Una fórmula cerrada x.S es cierta en I sii existe algún término sin variables t tal t l que S{x S{ t} es cierta S{x i t en I Una fórmula cerrada x.S es cierta en I sii S es cierta en I (por (1)) Una fórmula cerrada S1 S2 es cierta en I sii S2 no es cierto en I o bien S1 es cierto en I Una fórmula S1,….,Sn es cierta en I sii cada Si es cierta en I Una fórmula S1 V … V Sn es cierta si algún g Si es cierta en I Modelos Una interpretación M es un modelo de programa g P si cada Herbrand de un p cláusula C P es cierta en M. Se escribe entonces M |= | P Ejercicio Ejercicio:: encuentra los modelos del programa q(a) p(X) p(X) Modelos (II) U modelo Un d l se di dice mínimo í i sii está tá iincluido l id en cualquier otro modelo Un modelo se dice minimal si no contiene ningún modelo Ejercicio: ¿todo modelo mínimo es minimal? ¿y Ejercicio: viceversa? Ejercicio: Di qué modelos del ejemplo de la Ejercicio: página anterior son mínimos o minimales Modelos (III) Un U modelo d l M se di dice con soporte t sii para cada A M existe una cláusula en ground(P) con cabeza A y cuerpo válido en M Ejercicio: Encuentra un modelo con soporte sopo te pa para ae el p programa: og a a p(a) p(x) p( ) q(x) q( ) q(x) q(x)