BASES DE DATOS DEDUCTIVAS

29
BASES DE DATOS BASES DE DATOS DEDUCTIVAS DEDUCTIVAS Autor: Mikel Alonso Autor: Mikel Alonso Hornes Hornes

description

BASES DE DATOS DEDUCTIVAS. Autor: Mikel Alonso Hornes. Bases De Datos Deductivas. INDICE 1.¿Que es una base de datos deductiva? 2.Lenguajes declarativos 3.Prolog/Datalog 4.Algunas BDD en el mundo real 5.Conclusiones. Bases De Datos Deductivas. 1.¿Que es una base de datos deductiva? - PowerPoint PPT Presentation

Transcript of BASES DE DATOS DEDUCTIVAS

Page 1: BASES DE DATOS DEDUCTIVAS

BASES DE DATOS BASES DE DATOS DEDUCTIVASDEDUCTIVAS

Autor: Mikel Alonso HornesAutor: Mikel Alonso Hornes

Page 2: BASES DE DATOS DEDUCTIVAS

INDICEINDICE

1.¿Que es una base de datos deductiva?1.¿Que es una base de datos deductiva?

2.Lenguajes declarativos2.Lenguajes declarativos

3.Prolog/Datalog3.Prolog/Datalog

4.Algunas BDD en el mundo real4.Algunas BDD en el mundo real

5.Conclusiones5.Conclusiones

Bases De Datos Deductivas

Page 3: BASES DE DATOS DEDUCTIVAS

1.¿Que es una base de datos deductiva?1.¿Que es una base de datos deductiva?

Una base de datos deductiva es un sistema que incluye mecanismos para definir reglas (deductivas) que pueden inferir o deducir información adicional de los hecho almacenados en la base de datos.

Las reglas se especifican en un lenguaje declarativo; y estas son analizadas por un motor de inferencia (el mecanismo que realiza la deducción).

Bases De Datos Deductivas

Page 4: BASES DE DATOS DEDUCTIVAS

Estas reglas deductivas se deben inferir acordes a las características de los datos que integran la propia base de datos.

Las BDD consisten en aplicar la programación lógica a las bases de datos.

Las BDD están estrechamente relacionadas con el modelo de datos relacional y en particular buscan cubrir algunos defectos que plantea el algebra relacional:

-como la ausencia de la recursion.-como el desconocimiento de inconsistencia de datos.

Bases De Datos Deductivas

Page 5: BASES DE DATOS DEDUCTIVAS

2.Lenguajes declarativos2.Lenguajes declarativos

Es un lenguaje basado en la especificación de reglas o Es un lenguaje basado en la especificación de reglas o premisas, con las que se pretende buscar representaciones premisas, con las que se pretende buscar representaciones del conocimiento humano.del conocimiento humano.

A raíz de estas reglas y una serie de hechos (iniciales o A raíz de estas reglas y una serie de hechos (iniciales o adquiridos a lo largo del tiempo) adquiridos a lo largo del tiempo) Una Una máquina de inferenciamáquina de inferencia (o mecanismo de deducción) deduce nuevos hechos.(o mecanismo de deducción) deduce nuevos hechos.

O sea la función de una O sea la función de una Maquina De InferenciaMaquina De Inferencia es es encontrar soluciones a partir de la interpretación de una encontrar soluciones a partir de la interpretación de una serie de reglas (determinadas por un lenguaje serie de reglas (determinadas por un lenguaje declarativo )y un conjunto de hechos.declarativo )y un conjunto de hechos.

Bases De Datos Deductivas

Page 6: BASES DE DATOS DEDUCTIVAS

llegados a este punto podemos decir que:llegados a este punto podemos decir que:

A) las bases de datos deductivas A) las bases de datos deductivas usan:usan: Un lenguaje declarativo para especificar reglas.Un lenguaje declarativo para especificar reglas. Un motor de inferencia que puede deducir hechos nuevos a Un motor de inferencia que puede deducir hechos nuevos a

partir de la base de datos.partir de la base de datos.

B) Utilizan dos tipos de especificaciones:B) Utilizan dos tipos de especificaciones: HechosHechos Reglas. Especifican relaciones virtuales que no están Reglas. Especifican relaciones virtuales que no están

almacenadas.almacenadas.

Bases De Datos Deductivas

Page 7: BASES DE DATOS DEDUCTIVAS

Para compender las diferentes componentes que integran Para compender las diferentes componentes que integran la BDD usaremos como ejemplo uno de los lenguajes la BDD usaremos como ejemplo uno de los lenguajes declarativos mas usados declarativos mas usados PROLOGPROLOG..

Las Bases de Datos Deductivas basados en lógica han Las Bases de Datos Deductivas basados en lógica han utilizado utilizado PROLOGPROLOG como punto de partida como punto de partida

para especificar las reglas y hechos usamos las cláusulas para especificar las reglas y hechos usamos las cláusulas de que ofrece de que ofrece PROLOGPROLOG; y el interprete de ; y el interprete de PROLOGPROLOG hace de hace de maquina de inferencia.maquina de inferencia.

Bases De Datos Deductivas

Page 8: BASES DE DATOS DEDUCTIVAS

3.Prolog/Datalog3.Prolog/Datalog

PROLOGPROLOG, proveniente del francés , proveniente del francés Programation et LogiqueProgramation et Logique, , es un lenguaje de declarativo bastante popular en el medio es un lenguaje de declarativo bastante popular en el medio de investigación en Inteligencia artificial.de investigación en Inteligencia artificial.

Se trata de un lenguaje ideado a principios de los años 70 Se trata de un lenguaje ideado a principios de los años 70 en la universidad de Aix-Marseille por los profesores Alain en la universidad de Aix-Marseille por los profesores Alain Colmerauer y Phillipe Roussel.Colmerauer y Phillipe Roussel.

En principio se ideo como un lenguaje interpretado, aunque En principio se ideo como un lenguaje interpretado, aunque con el trascurso de los años se desarrollaron compiladores. con el trascurso de los años se desarrollaron compiladores.

Bases De Datos Deductivas

Page 9: BASES DE DATOS DEDUCTIVAS

Hechos: Hechos: Son un conjunto de premisas que intentan inferir Son un conjunto de premisas que intentan inferir una cierta información de una representación del mundo una cierta información de una representación del mundo real.real.

ej: Juan, Jorge y Manolo son fumadores.ej: Juan, Jorge y Manolo son fumadores.

los loros son mas habladores que las palomas.los loros son mas habladores que las palomas.

Desde un punto de vista de Desde un punto de vista de PROLOGPROLOG, para representar , para representar hechos tenemos primero que definir los atributos.hechos tenemos primero que definir los atributos.

Estos pueden ser variables o constantes.Estos pueden ser variables o constantes.

De tal manera que representaríamos:De tal manera que representaríamos:

Bases De Datos Deductivas

Page 10: BASES DE DATOS DEDUCTIVAS

RelacionesRelaciones unarias:unarias: Juan y Jorge fuman => fumadores (Juan, Jorge)Juan y Jorge fuman => fumadores (Juan, Jorge)

Las relaciones binarias o predicados relacionan unos Las relaciones binarias o predicados relacionan unos elementos con otros:elementos con otros:

pablo es padre de Juan=> padre (Pablo, Juan)pablo es padre de Juan=> padre (Pablo, Juan)

Gracias a estas estructuras de predicados tendríamos Gracias a estas estructuras de predicados tendríamos elementos relacionados. elementos relacionados.

Con la especificación de atributos y predicados tendremosCon la especificación de atributos y predicados tendremosUn árbol relacional entre elementos donde podremos ver Un árbol relacional entre elementos donde podremos ver relaciones directas pero también indirectas.relaciones directas pero también indirectas.

Bases De Datos Deductivas

Page 11: BASES DE DATOS DEDUCTIVAS

Bases De Datos Deductivas

a1 a2 a3 a4

b1 b2 b3 b4

c1 c2 c3 c4 c5

d1 d2 d3 d4

Relaciones y predicados: Ejemplo

Relaciones unarias:

fumador = {b3, b4, d2}; enfermo = {b3, b4, c3, c4, c5, d2, d3, d4};

barbudo = {a3, b3, b4, c1, c2, c4, d1, d2}

Relación binaria:

padre_de = {(a1,b1), (a1,b2), (a2,b1), (a2,b2), (a3,b3), (a3,b4), (a4,b3), (a4,b4), b1,c1), (b1,c2), (b2,c3), (b3,c3), (b4,c4), (b4,c5), (c1,d1), (c2,d1),(c2,d2), (c4,d2), (c4,d3), (c5,d4)}

Page 12: BASES DE DATOS DEDUCTIVAS

Reglas:Reglas: Las reglas consiste en el conjunto de restricciones o Las reglas consiste en el conjunto de restricciones o cualidades que exigimos a nuestra representación. Stas cualidades que exigimos a nuestra representación. Stas reglas se representan mediante composiciones logicas.reglas se representan mediante composiciones logicas.

ej: X esta enfermo implica ser fumador .ej: X esta enfermo implica ser fumador .X esta enfermo implica que X es padre de Y e Y esta X esta enfermo implica que X es padre de Y e Y esta enfermo enfermo

En En PROLOGPROLOG la simbolizacion logica se representa tal que: la simbolizacion logica se representa tal que:

a,b => a and ba,b => a and bnot(a) => not anot(a) => not a

a;b => a or ba;b => a or b a:-b => a->ba:-b => a->b

Bases De Datos Deductivas

Page 13: BASES DE DATOS DEDUCTIVAS

Ademas Ademas PROLOGPROLOG incorpora terminos para realizar incorpora terminos para realizar comparaciones:comparaciones:

= , < , > , <= , >= , /= , == , /=== , < , > , <= , >= , /= , == , /==

Predicados aritméticos:Predicados aritméticos:

+ , - , * , / , rem , + , - , * , / , rem , X is <Exp. Aritm>X is <Exp. Aritm>

Ademas tambien puede trabajar con otras tipos de datos Ademas tambien puede trabajar con otras tipos de datos como:como:

string , listas , terminos complejosstring , listas , terminos complejos

Bases De Datos Deductivas

Page 14: BASES DE DATOS DEDUCTIVAS

De tal manera que las consultas antes realizadas quedarian De tal manera que las consultas antes realizadas quedarian de la forma:de la forma:

enfermo(X):- fumador(X).enfermo(X):- fumador(X).

enfermo(X):- padre_de(X,Y), enfermo(Y).enfermo(X):- padre_de(X,Y), enfermo(Y).

cura(medicamento, enfermedad) :-cura(medicamento, enfermedad) :-

síntomas(sintoma, enfermedad),síntomas(sintoma, enfermedad),

alivia(medicamento, sintoma).alivia(medicamento, sintoma).

Bases De Datos Deductivas

Page 15: BASES DE DATOS DEDUCTIVAS

reglas recursivas: reglas recursivas: Una de las capacidades que tiene este Una de las capacidades que tiene este lenguaje frente al relacional normal es la recursion.lenguaje frente al relacional normal es la recursion.

Esta se expresa en la definición de las reglas.Esta se expresa en la definición de las reglas.

Una regla seria recursiva si se llama a si misma.Una regla seria recursiva si se llama a si misma.

ej:ej:

ascendente(X,Y) :- progenitor(X,Y).ascendente(X,Y) :- progenitor(X,Y).

ascendente(X,Y) :- progenitor(X,Z), ascendente(Z,Y).ascendente(X,Y) :- progenitor(X,Z), ascendente(Z,Y).

Bases De Datos Deductivas

Page 16: BASES DE DATOS DEDUCTIVAS

Ahora que tenemos los hecho iniciales y Ahora que tenemos los hecho iniciales y las reglas (según la definición de estas) las reglas (según la definición de estas) podremos tener unos hechos derivados:podremos tener unos hechos derivados:

1 superior(X,Y):-supervisar(X,Y).1 superior(X,Y):-supervisar(X,Y). (regla 1) (regla 1)2 superior(X,Y):-supervisar(X,Z),superior(Z,Y). (regla 2)2 superior(X,Y):-supervisar(X,Z),superior(Z,Y). (regla 2)

   3 supervisar(jazmín,ahmed). (axioma base,dado)3 supervisar(jazmín,ahmed). (axioma base,dado)4 supervisar(jaime,jazmín).4 supervisar(jaime,jazmín). (axioma (axioma

base,dado)base,dado)

5 superior(jazmín,ahmed).5 superior(jazmín,ahmed). (aplicar 1 a 3) (aplicar 1 a 3)6 super6 superiior(jaime,ahmed):or(jaime,ahmed):--

supervisar(jaime,jazmín),superior(jazmín,ahmed).supervisar(jaime,jazmín),superior(jazmín,ahmed). (aplicar 2 a 4 y 5) (aplicar 2 a 4 y 5)

Bases De Datos Deductivas

Page 17: BASES DE DATOS DEDUCTIVAS

Maquina de inferenciaMaquina de inferencia: Dentro de las maquinas de : Dentro de las maquinas de inferencia podemos distinguir dos mecanismos de inferencia podemos distinguir dos mecanismos de inferencia:inferencia:

• Encadenamiento hacia atrás (backward chaining). Inicia Encadenamiento hacia atrás (backward chaining). Inicia con la conclusión que se desea demostrar y procura con la conclusión que se desea demostrar y procura establecer la certeza de los hechos que conducen a ella.establecer la certeza de los hechos que conducen a ella.

• Encadenamiento hacia delante (forward chaining). Encadenamiento hacia delante (forward chaining). Realiza comparaciones entre las reglas y los hechos Realiza comparaciones entre las reglas y los hechos disponibles de manera que se establezcan nuevos disponibles de manera que se establezcan nuevos hechos hasta llegar al objetivo deseado.hechos hasta llegar al objetivo deseado.

Bases De Datos Deductivas

Page 18: BASES DE DATOS DEDUCTIVAS

Bases De Datos Deductivas

Hacia adelanteHacia adelante Hacia atras

Page 19: BASES DE DATOS DEDUCTIVAS

Ej: eEj: encadenamiento hacia atras ncadenamiento hacia atras

1) rapta(X, Y) :- rufián(X), desea(X, Y).1) rapta(X, Y) :- rufián(X), desea(X, Y).  2) desea(X,Y) :- noble(X), princesa(Y), guapa(Y).2) desea(X,Y) :- noble(X), princesa(Y), guapa(Y).

3) desea (X,Y) :- plebeyo(X), princesa(Y).3) desea (X,Y) :- plebeyo(X), princesa(Y).  

4) rufián(bertoldo).4) rufián(bertoldo).5) rufián(bartolo).5) rufián(bartolo).6) noble(romeo).6) noble(romeo).

7) noble(bertoldo)7) noble(bertoldo)8) plebeyo(bartolo).8) plebeyo(bartolo).

9) princesa(gertrudis).9) princesa(gertrudis).10) princesa(julieta).10) princesa(julieta).11) guapa(julieta).11) guapa(julieta).

Bases De Datos Deductivas

Page 20: BASES DE DATOS DEDUCTIVAS

Bases De Datos Deductivas

Consulta: ?-rapta(bartolo,Y)Consulta: ?-rapta(bartolo,Y)

Page 21: BASES DE DATOS DEDUCTIVAS

Ej: Ej: encadenamiento hacia delanteencadenamiento hacia delante

1) rapta(X, Y) :- rufián(X), desea(X, Y).1) rapta(X, Y) :- rufián(X), desea(X, Y).  2) desea(X,Y) :- noble(X), princesa(Y), guapa(Y).2) desea(X,Y) :- noble(X), princesa(Y), guapa(Y).

3) desea(X,Y) :- plebeyo(X), princesa(Y).3) desea(X,Y) :- plebeyo(X), princesa(Y).4)adinerado(X):-noble(X).4)adinerado(X):-noble(X).

5)adinerado(X):-rufian(X),plebeyo(X).5)adinerado(X):-rufian(X),plebeyo(X).  

6) rufián(bertoldo).6) rufián(bertoldo).7) rufián(bartolo).7) rufián(bartolo).8) noble(romeo).8) noble(romeo).

9) noble(bertoldo)9) noble(bertoldo)10) plebeyo(bartolo).10) plebeyo(bartolo).

11) princesa(gertrudis).11) princesa(gertrudis).12) princesa(julieta).12) princesa(julieta).13) guapa(julieta).13) guapa(julieta).

Bases De Datos Deductivas

Page 22: BASES DE DATOS DEDUCTIVAS

Lo primero que haría es buscar las posibles soluciones que Lo primero que haría es buscar las posibles soluciones que podrían dar; una vez las tiene solo tendría que coger las podrían dar; una vez las tiene solo tendría que coger las apropiadas cuando le efectuamos una consulta.apropiadas cuando le efectuamos una consulta.

1)adinerado(romeo)1)adinerado(romeo)2)adinerado(bertoldo)2)adinerado(bertoldo)

3)adinerado(bartolo)3)adinerado(bartolo)

Probar: ?- adinerado(X),noble(X).Probar: ?- adinerado(X),noble(X).

En este caso las tres posibles soluciones seria apropiadasEn este caso las tres posibles soluciones seria apropiadas

Bases De Datos Deductivas

Page 23: BASES DE DATOS DEDUCTIVAS

Por ultimo cabe destacar que tendremos que tener cuidado Por ultimo cabe destacar que tendremos que tener cuidado con la recursion ( ver las relaciones entre los elementos) ya con la recursion ( ver las relaciones entre los elementos) ya que podríamos meternos en procesos que nunca terminan.que podríamos meternos en procesos que nunca terminan.

PROLOGPROLOG usa encadenamiento hacia atrás en su maquina de usa encadenamiento hacia atrás en su maquina de inferenciainferencia

Bases De Datos Deductivas

Page 24: BASES DE DATOS DEDUCTIVAS

Consultas: Consultas: por ultimo vamos a ver como se realizan las por ultimo vamos a ver como se realizan las consultas y los problemas que podriamos tener al hacerlas. consultas y los problemas que podriamos tener al hacerlas.

Las consultas se simbolizan con un signo ? Al final y nos las Las consultas se simbolizan con un signo ? Al final y nos las podemos encontrar de dos tipos:podemos encontrar de dos tipos:

1- consultamos un predicado donde ponemos todos los 1- consultamos un predicado donde ponemos todos los

datos son constantes ,con lo que el sistema nos datos son constantes ,con lo que el sistema nos

devolverá una respuesta booleanadevolverá una respuesta booleana

Superior(jaime,pedro)?Superior(jaime,pedro)? ; ;

resp=>true o false.resp=>true o false.

Bases De Datos Deductivas

Page 25: BASES DE DATOS DEDUCTIVAS

2. Consultamos un predicado donde alguna a todas las 2. Consultamos un predicado donde alguna a todas las

datos del predicado son variables, en las que la repuesta datos del predicado son variables, en las que la repuesta

será una lista de los hechos que lo cumplirían.será una lista de los hechos que lo cumplirían.

Superior(jaime,Y)?Superior(jaime,Y)? ;;

resp=> Superior(jaime,pedro);resp=> Superior(jaime,pedro);

resp=> Superior(jaime,antonio);resp=> Superior(jaime,antonio);

resp=> Superior(jaime,maria);resp=> Superior(jaime,maria);

Un punto importante de las Un punto importante de las

Bases De Datos Deductivas

Page 26: BASES DE DATOS DEDUCTIVAS

4.Algunas BDD en el mundo real4.Algunas BDD en el mundo real

Hoy en día nos podemos encontrar con diferentes Hoy en día nos podemos encontrar con diferentes proyectos de BDD, entre las que se pueden incluir:proyectos de BDD, entre las que se pueden incluir:

El proyecto Aditi [Rama93] :comenzó en 1988 en la El proyecto Aditi [Rama93] :comenzó en 1988 en la universidad de Melbourne y ha dado como resultado una universidad de Melbourne y ha dado como resultado una segunda versión (Aditi 2) que se inició en 1994 y la versión segunda versión (Aditi 2) que se inició en 1994 y la versión alfa está disponible desde abril de 2001.alfa está disponible desde abril de 2001.Incorpora:Incorpora:

acceso concurrenteacceso concurrentegestión de transaccionesgestión de transaccionesparalelismo a varios nivelesparalelismo a varios niveles

resolución de predicados descendente.resolución de predicados descendente.

Bases De Datos Deductivas

Page 27: BASES DE DATOS DEDUCTIVAS

El proyecto VALIDITY [FGLV95] [LMV95], que se inició en El proyecto VALIDITY [FGLV95] [LMV95], que se inició en Bull Corporation de la mano de Jean-Marie Nicolas y Laurent Bull Corporation de la mano de Jean-Marie Nicolas y Laurent Vieille para desarrollar un sistema de bases de datos Vieille para desarrollar un sistema de bases de datos deductivas que integrase características de orientación a deductivas que integrase características de orientación a objetosobjetos

El proyecto Logic Data Languaje (Lenguaje Lógico de dato: El proyecto Logic Data Languaje (Lenguaje Lógico de dato: LDL) de Microelectronics and Computer Corporation (MCC) LDL) de Microelectronics and Computer Corporation (MCC) se inicio en 1984se inicio en 1984

Otras referencias que nos podemos encontrar son Coral y Otras referencias que nos podemos encontrar son Coral y XSBXSB

Bases De Datos Deductivas

Page 28: BASES DE DATOS DEDUCTIVAS

5.Conclusiones5.Conclusiones

1. las bases de datos deductivas son bases de datos a las 1. las bases de datos deductivas son bases de datos a las que aplicamos la programación lógica.(aunque esta en que aplicamos la programación lógica.(aunque esta en una etapa experimental).una etapa experimental).

2. se crearon para intentar suplir las deficiencias de el 2. se crearon para intentar suplir las deficiencias de el algrebra relacional.algrebra relacional.

3. al utilizar la logica podemos otorgar a los datos una 3. al utilizar la logica podemos otorgar a los datos una propiedades que nos permiten (al poder inferirse propiedades que nos permiten (al poder inferirse

informacion) realizar consultas mas precisas y realizar informacion) realizar consultas mas precisas y realizar labores de mantenimiento en bases de datos muy labores de mantenimiento en bases de datos muy

grandes. grandes.

Bases De Datos Deductivas

Page 29: BASES DE DATOS DEDUCTIVAS

4. al estar basado en el modelo relacional podemos 4. al estar basado en el modelo relacional podemos

transformar cualquier base de datos a una BDDtransformar cualquier base de datos a una BDD

Bases De Datos Deductivas