1 / 19

Datalog System

Datalog System. Sintaxis general Variables: A, A33, Arco_2, etc. Variable blanca: _ Constantes: juan, 1, 234, pEDRO . Etc. Listas: [t1, t2, …, t n ] t i son los elementos [H | T] donde H es la cabeza de la lista y T el resto de esta. Datalog System. Sintaxis general

kenley
Download Presentation

Datalog System

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DatalogSystem Sintaxis general Variables:A, A33, Arco_2, etc. Variable blanca: _ Constantes: juan, 1, 234, pEDRO. Etc. Listas: [t1, t2, …, tn] ti son los elementos [H | T] donde H es la cabeza de la lista y T el resto de esta

  2. DatalogSystem Sintaxis general P :- Q. Regla P. Hechos o datos de entrada :-Q. Restricciones fuertes :~Q. Restricciones débiles

  3. DatalogSystem Ejemplos de Hechos peso(manzana,100,gramos). hombre(lupe) v mujer(lupe). papa(juan, luis). papa(juan, toño). papa(luis,pedro). papa(miguel, oscar). papa(pedro,ana). papa(oscar, jair). papa(luis,vero). papa(fer, angel).

  4. DatalogSystem Ejemplos de Hechos sobre rangos Equivale a definir que el universo tienen 100 números, es decir, universo(1), universo(2), …, universo(100). Es equivalente a dias_semana(1), …, dias_semana(7). universo(1..100). dias_semana(1..7).

  5. DatalogSystem Ejemplos de Reglas abuelo(X,Y):-papa(X,Z), papa(Z,Y). tio(X,Y):-papa(Z,Y),hermano(Z,X). sobrino(X,Y):- cuñado(X,Y):- primo(X,Y):- hermano(X,Y):- concuño(X,Y):- suegro(X,Y):- yerno(X,Y):- nieto(X,Y):-

  6. Representación Conocimiento ¿Cómo determinar los nodos? C ¿Cómo representar el conocimiento? ¿Qué conocimiento existe ? {nodo(a), nodo(b), nodo(c), nodo(d)} D A B nodo(X):-eje(X,_). nodo(Y):-eje(_,Y). eje(a,b). eje(b,c). eje(b,d). Vértices = {A, B, C, D} Ejes = {(A,B), (B,C), (B,D)}

  7. Representación Conocimiento Como determinar los ejes faltantes que hagan un grafo denso ejesr(X,Y):- nodo(X), nodo(Y), not eje(X,Y). {ejer(a,a), ejer(a,c), ejer(a,d), ejer(b,a), ejer(b,b), ejer(c,a), ejer(c,b), ejer(c,c), ejer(c,d), ejer(d,a), ejer(d,b), ejer(d,c), ejer(d,d)}

  8. % Declara cuando T divide un numero N. % divisor(T,N) :- #int(T), #int(N), #int(M), N=T*M. % Declare divisores comunes % cd(T,N1,N2) :- divisor(T,N1), divisor(T,N2). % Halla los divisores comunes non-maximales de T % larger_cd(T,N1,N2) :- cd(T,N1,N2), cd(T1,N1,N2), T < T1. % Aplica doble negacion: toma divisor non non-maximal % gcd(T,N1,N2) :- cd(T,N1,N2), notlarger_cd(T,N1,N2). Máximo Común Divisor

  9. gcd(X,X,X) :- #int(X), X>0. gcd(T,X,Y) :- X<Y, gcd(T,X,Y1), Y = Y1+X. gcd(T,X,Y) :- X>Y, gcd(T,X1,Y), X = X1+Y. Máximo Común Divisor Algoritmo de Euclides

  10. Sean dos funciones f, g : N → N , definidas de la siguiente manera: f ( n ) = f ( n – 1 ) + g( n ) si n > 1 f ( 1 ) = 1 g ( n ) = g ( n – 1 ) + 2 si n > 1 g ( 1 ) = 1 Funciones 1a) Diseñe dos funciones recursivas para evaluar f y g para cualquier entero dado n >0. 1b) Diseñe función recursiva que evalúe la siguiente función: Z ( n ) = f ( 1 ) + f ( 2 ) + f ( 3 ) + ... + f ( n ) para cualquierentero dado n>0

  11. Solución g(1,1). g(N,X):-#prec(Ant,N),g(Ant,X1),+(2,X1,X). f(1,1). f(N,X):-#prec(Ant,N),f(Ant,X1),g(N,Y),+(X1,Y,X). Answer sets { g(0,3), g(1,1), f(0,4), f(1,1) }

  12. Diseñar dos funciones recursivas que calculen si un número es par o impar. Relaciones

  13. DLVdbExamples http://www.dlvsystem.com/dlvdb-examples/ Updates http://centria.di.fct.unl.pt/~jja/updates/implementations/page10/page16/page16.html

  14. http://asptut.gibbi.com/

  15. http://centria.di.fct.unl.pt/~jja/updates/page1/page1.html

  16. Cena de Gala 1.- Imagine que deseamos planear una cena de lujo para los que se graduarán en la FCC. 2.- Con la finalidad de que los graduados se sientan felices en su evento y puedan familiarizarse con las ontologías. 3.- Los organizadores deciden preguntarles sus preferencias acerca de los vinos, en aras de poder reutilizar una clase que describa una ontología de vino famosa.

  17. Cena de Gala 4.- Los organizadores detectan que solo una clase de vino no alcanzara el objetivo de satisfacer todas las preferencias de los asistentes. 5.- Así, ellos buscan encontrar la selección de botellas más económicas tal que los graduados puedan tener el vino de su preferencia en la cena. Los organizadores rápidamente se dan cuenta de que varias cajas de vino son necesarias para llevar a cabo su plan.

  18. Querys SELECT e.name, e.salary, d.location FROM emp e, dept d WHERE e.dept = d.dept_id AND e.salary > 31000; emp("Jones", 30000, 35, "Accounting"). emp("Miller", 38000, 29, "Marketing"). emp("Koch", 2000000, 24, "IT"). emp("Nguyen", 35000, 42, "Marketing"). emp("Gruber", 32000, 39, "IT"). dept("IT", "Atlanta"). dept("Marketing", "New York"). dept("Accounting", "Los Angeles"). • q1(Ename, Esalary, Dlocation) :- emp(Ename, Esalary, _, D1), • dept(D2, Dlocation), D1=D2, Esalary> 31000. • q1(Ename, Esalary, Dlocation) :- emp(Ename, Esalary, _, D), • dept(D, Dlocation), Esalary > 31000.

More Related