Está en la página 1de 16

La Lgica como modelo de datos

Araceli Mercado

Notacin

Las constantes son tomos A(x) es una frmula atmica, x es la variable Existen smbolos como :-, & Ejem lo:

B :- A1 & A2 & ! & An" #i n $ %, B es cierta siem re suma(x, 0, x). suma (x, s(y), s(z)) :- suma (x, y, z).

&tro ejem lo:


Notacin

emp(nombre, depto, salario, dir)


nombre de to salario dir

'ro(eccin:

emp_seg(nombre, depto, dir)


nombre de to dir

emp_seg(n, d, a) :- emp(n, d, s, a).

(n, d, a) es un )ec)o en emp_seg si s

tal *ue (n, d, s, a) es un )ec)o en emp

Notacin

+onsiderar emp(n,d) ( dept(d,s) 'ara saber *ui,n su ervisa a -uan se ondra sim lemente: supervisa('Juan',x).
e!e(e,m) :- supervisa(e,m). e!e(e,m) :encabe.ado

supervisa(e,s) :- emp(e,d) & dept(d,s)

e!e (e,n) & supervisa(n,m)


submeta cuer o regla

Ejemplo
nombre -uan 'edro Luis Mario -es2s +arlos 3amn -os, de to / 0 / 1 1 0 1 /

em

de t

de to su ervisor 0 1 / 'edro Mario -uan

4n redicado cu(a relacin est, almacenada en la base de datos se llama base de datos extensional 5E678 4n redicado definido or una regla lgica se llama base de datos intensional 59678

Programa lgico

"ermano(x,y) :- padre(x,z) & padre(y,z) & x # y. primo(x,y) :- padre(x,xp) & padre (y,yp) & "ermano(xp,yp). primo(x,y) :- padre(x,xp) & padre (y,yp) & primo(xp,yp). pariente(x,y) :- "ermano(x,y). pariente(x,y) :- pariente(x,z) & padre(y,z). pariente(x,y) :- pariente(z,y) & padre(x,z).
#u oner *ue padre es E76

Grfica de dependencia y recursin

:rfica de de endencia:

Los nodos son los redicados ;a( un arco de p a $, si p es una submeta ( $ es la cabe.a 4n rograma lgico es recursivo si su grfica de de endencia tiene al menos un ciclo A los redicados en un ciclo se les llama predicados recursivos< a los dems, predicados no recursivos

3ecursin:

Grfica de dependencia y recursin

Los redicados E76 son a los *ue no llega ning2n arco, or lo *ue no ueden ser recursivos

Reglas seguras

=ariables limitadas en una regla:

+ual*uier variable *ue sea argumento de un redicado en el cuer o de una regla +ual*uier variable *ue a are.ca en una submeta x % a a % x, donde a es una constante #i x a arece en una submeta x % y y % x, donde y sea limitada

4na regla es segura si todas sus variables son limitadas"

Reglas seguras

>+mo son las reglas siguientes?


mayor&ue(x,y) :- x ' y. ama(x,y) :- amante(y). p(x,y) :- $(x,z) & ( % a & y % (. 5a constante8

Evaluacin de reglas no recursivas

#e numeran los nodos 5 redicados8 de la grfica de de endencia p),""",pnde la siguiente manera: si )a( un arco de pi a p , entonces i * #e calcula la relacin ara los redicados en orden, sabiendo *ue cuando se trabaja en pi, (a se calcularon todas las relaciones ara los redicados de los cuer os de pi

Evaluacin de reglas no recursivas

'asos ara calcular la relacin ara pi:

'ara cada regla r con pi en la cabe.a, calcular la relacin corres ondiente al cuer o de r: se toma la junta 5join8 natural de las relaciones ara las submetas de r #e calcula la relacin ara el ro io pi ro(ectando la relacin ara cada regla de pi en las com onentes de las variables en la cabe.a ( tomando la unin de todas las reglas con pi en la cabe.a

Evaluacin de reglas no recursivas


primo(x,y) :- padre(x,xp) & padre (y,yp) & "ermano(xp,yp).

#u oner *ue P ( H son las relaciones calculadas ara los redicados padre e "i o, res ectivamente" 'odemos ensar *ue )a( dos co ias de P, una con atributos +, +p ( otra con atributos ,,,p" Los atributos de H son +p,,p" Entonces la relacin R corres ondiente al cuer o de la regla es:

R5+, +p,,,,p8 $ P5+, +p8 P5,,,p8 H5+p,,p8

Evaluacin de reglas no recursivas

"ermano(x,y) :- padre(x,z) & padre(y,z) & x # y.

#e necesita juntar dos co ias de P ( luego seleccionar las *ue satisfgana la desigualdad" La relacin Q ara el cuer o de la regla es:

Q5+,,,-8 $ @+#,5P5+,-8 P5,,-88 5x,z8 P, 5y,z8 P, ( xAy

Es decir, todas las tu las 5x,y,z8 tales *ue:


Evaluacin de reglas no recursivas


p(+,,) :- $(a,+) & r(+,-,+) & s(,,-).

#u oner *ue tenemos las relaciones Q, R ( , corres ondientes a las submetas $, r ( s, res ectivamente" #ean:

!5+8 $ B15@C0$a5Q88 "5+,-8 $ B0,15@C0$C/5R88

Entonces la relacin corres ondiente al cuer o de la regla es:

!5+8 "5+,-8 #5,,-8

También podría gustarte