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)