Consultas de Conectividad -...
Transcript of Consultas de Conectividad -...
![Page 1: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/1.jpg)
![Page 2: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/2.jpg)
DCC PUC-Chile
Juan L. Reutter
Consultas de Conectividad en Bases de Datos de grafos
![Page 3: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/3.jpg)
Bases de Datos de Grafos
Pedro Ana
Pía
Marco
is_friend
works_withis_friend
married_to
DCC
works_for
works_for
![Page 4: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/4.jpg)
Graph Databases • Redes Sociales
• Bases de Datos Biológicas
• Modelos Geográficos
• …
Ana
Pía
Marco
is_friend
works_withis_friend
married_to
DCC
works_for
works_for
Pedro
![Page 5: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/5.jpg)
Graph Databases
objeto object
objeto
objeto
relación
relaciónrelación
relaciónobjeto
relación
relación
objeto
![Page 6: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/6.jpg)
Graph Databases• Nodos Representan Objetos
• Aristas son relaciones
Modelo Básico:
objeto object
objeto
objeto
relación
relaciónrelación
relaciónobjeto
relación
relación
objeto
![Page 7: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/7.jpg)
Consultas clásicas: Pattern Matching
![Page 8: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/8.jpg)
Base de Datos de grafo
Consultas clásicas: Pattern Matching
![Page 9: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/9.jpg)
a
ac
c
c
dd
b
Base de Datos de grafo
Patrón pequeño de interés
• Encontrarlo en un grafo
Consultas clásicas: Pattern Matching
![Page 10: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/10.jpg)
a
ac
c
c
dd
b
Base de Datos de grafo
Patrón pequeño de interés
• Encontrarlo en un grafo
a
ac
c
c
dd
b
a
ac
c
cdd
b
a
a
cc
c
d
d
b
Consultas clásicas: Pattern Matching
![Page 11: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/11.jpg)
El problema de pattern matching corresponde al clásico problema de Isomorfismo de subgrafos
• Este problema es NP-completo !• Aproximaciones y heurísticas para resolverlo !• Campo activo en computación
El problema es que muchas aplicaciones necesitan más que pattern matching
![Page 12: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/12.jpg)
Consultas de conectividad:
• LinkedIn: ¿Puedo contactar a un abogado experto en recursos naturales?
!• Criminología: ¿Quienes son todas las personas con
contactos directos o indirectos con un sospechoso? !• Logs de Wikipedia: última versión del artículo donde no
participó cierto usario
![Page 13: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/13.jpg)
El estudio de estas consultas es un campo de investigación activo en Ciencia de la Computación
![Page 14: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/14.jpg)
DCC PUC-Chile
Juan L. Reutter
Consultas de Conectividad en Bases de Datos de grafos
![Page 15: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/15.jpg)
Esta charla
• Regular Path Queries (RPQs) !• Extensiones: Conjunciones y proyecciones (CRPQs) !• Patrones de grafos, aplicaciones
![Page 16: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/16.jpg)
Esta charla
• Regular Path Queries (RPQs) !• Extensiones: Conjunciones y proyecciones (CRPQs) !• Patrones de grafos, aplicaciones
![Page 17: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/17.jpg)
Un poco de notación…
![Page 18: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/18.jpg)
Pedro Ana
Pía
Marco
is_friend
works_withis_friend
married_to
DCC
works_for
works_for
• Camino entre Pedro y Marco (pasa por Ana)
![Page 19: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/19.jpg)
Pedro Ana
Pía
Marco
is_friend
works_withis_friend
married_to
DCC
works_for
works_for
• Camino entre Pedro y Marco (pasa por Ana) !• La etiqueta del camino es
is_friend . works_with
![Page 20: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/20.jpg)
Pedro Ana
Pía
Marco
is_friend
works_withis_friend
married_to
DCC
works_for
works_for
• Infinitos camino entre Pedro y Pedro (ciclo)
![Page 21: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/21.jpg)
Pedro Ana
Pía
Marco
is_friend
works_withis_friend
married_to
DCC
works_for
works_for
• Infinitos camino entre Pedro y Pedro (ciclo) !• Algunos de estos caminos: !
is_friend . works_with . is_friend is_friend . works_with . is_friend . is_friend . works_with . is_friend
![Page 22: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/22.jpg)
Pedro Ana
Pía
Marco
is_friend
works_withis_friend
married_to
DCC
works_for
works_for
• Las Regular Path Queries (RPQs) extraen información de caminos dados por lenguajes regulares
!
![Page 23: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/23.jpg)
Pedro Ana
Pía
Marco
is_friend
works_withis_friend
married_to
DCC
works_for
works_for
• Las Regular Path Queries (RPQs) extraen información de caminos dados por lenguajes regulares
!• Entre Pedro y Pedro los caminos están dados por
(is_friend . works_with . is_friend)*
![Page 24: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/24.jpg)
Expresiones Regulares6HD Ȉ XQ FRQMXQWR GH HWLTXHWDV GH DULVWDV�'HILQLPRV HO FRQMXQWR GH ([SUHVLRQHV 5HJXODUHV VREUH Ȉ�
� İ HV XQD (5
� 7RGD HWLTXHWD D HQ Ȉ HV XQD (5
� 6L U� \ U� VRQ (5V� HQWRQFHV�
± U� � U� HV XQD (5± U� + U� HV XQD (5± U�� HV XQD (5
![Page 25: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/25.jpg)
Expresiones Regulares: Semántica
Las expresiones regulares definen conjuntos de secuencias de etiquetas (palabras)
� D GHILQH HO FRQMXQWR {D}
� D � E GHILQH HO FRQMXQWR {DE}
![Page 26: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/26.jpg)
Expresiones Regulares: Semántica
Las expresiones regulares definen conjuntos de secuencias de etiquetas (palabras)
� U� + U� GHILQH OD XQLRQ GH ODV VHFXHQFLDV GH U� \ U�
� D + D�E HV {D, DE}
� (D + E)�(F + G) HV {DF, DG, EF, EG}
![Page 27: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/27.jpg)
Expresiones Regulares: Semántica
Las expresiones regulares definen conjuntos de secuencias de etiquetas (palabras)
� U� GHILQH�İ � U � U.U � U.U.U � . . .
� D� GHILQH {İ, D, DD, DDD, DDDD . . . }
� (D + E)� VRQ WRGDV ODV SDODEUDV TXH SXHGR IRUPDU FRQ D \ E
![Page 28: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/28.jpg)
RPQs
Seleccionan pares de nodos que estén conectados por un camino conforme a la expresión regular
)RUPDOPHQWH� XQD 534 VREUH Ȉ HV XQ SDU
(x,r,y)
'RQGH U HV XQD H[SUHVLyQ UHJXODU VREUH Ȉ
![Page 29: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/29.jpg)
RPQs: Semántica
La RPQ (x,r,y) selecciona en un grafo todos los pares de nodos (x,y) tales que existe un camino etiquetado
por r en el grafo
![Page 30: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/30.jpg)
(x, is_friend . works_with, y) selecciona:
Pedro Ana
Pía
Marco
is_friend
works_withis_friend
married_to
DCC
works_for
works_for
![Page 31: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/31.jpg)
(x, is_friend . works_with, y) selecciona:
(Pedro, Marco)
Pedro Ana
Pía
Marco
is_friend
works_withis_friend
married_to
DCC
works_for
works_for
![Page 32: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/32.jpg)
(x, is_friend . (works_with + married_to), y) selecciona:
Pedro Ana
Pía
Marco
is_friend
works_withis_friend
married_to
DCC
works_for
works_for
![Page 33: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/33.jpg)
(x, is_friend . (works_with + married_to), y) selecciona:
(Pedro, Marco) (Marco,Pia)
Pedro Ana
Pía
Marco
is_friend
works_withis_friend
married_to
DCC
works_for
works_for
![Page 34: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/34.jpg)
(x, is_friend*, y) selecciona:
Juan Ana
Pía
Marco
is_friend
is_friendis_friend
married_to
DCC
works_for
works_for
![Page 35: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/35.jpg)
(x, is_friend*, y) selecciona:
(Pedro, Pedro) (Pedro, Ana) (Pedro, Marco) (Ana, Ana) (Ana, Pedro) (Ana, Marco) (Marco, Marco) (Marco, Pedro) (Marco, Ana)
Juan Ana
Pía
Marco
is_friend
is_friendis_friend
married_to
DCC
works_for
works_for
![Page 36: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/36.jpg)
(x, is_friend*.works_for, y) selecciona:
Pedro Ana
Pía
Marco
is_friend
is_friendis_friend
married_to
DCC
works_for
works_for
![Page 37: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/37.jpg)
(x, is_friend*.works_for, y) selecciona:
(Pedro, DCC) (Ana,DCC) (Marco,DCC)
Pedro Ana
Pía
Marco
is_friend
is_friendis_friend
married_to
DCC
works_for
works_for
![Page 38: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/38.jpg)
Las RPQs son hoy implementadas en muchos sistemas de Bases de Datos de grafos
![Page 39: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/39.jpg)
Las RPQs son hoy implementadas en muchos sistemas de Bases de Datos de grafos
El estudio de las RPQs está fuertemente relacionado con teoría de automatas
![Page 40: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/40.jpg)
Problema: Computar la respuesta a las RPQs
'DGR XQ JUDIR * \ XQD 534 U�DPERV FRQ HWLTXHWDV HQ Ȉ�
&yPR FDOFXOR ORV SDUHV GH QRGRV VHOHFFLRQDGRV SRU U"
![Page 41: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/41.jpg)
¡No podemos hacer fuerza bruta!
• Algoritmo: chequear todos los caminos entre los nodos, ver si alguno está representado por la expresión.
!
![Page 42: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/42.jpg)
¡No podemos hacer fuerza bruta!
Si hay ciclos tengo infinitos caminos, no puedo chequear 1 a 1.
• Algoritmo: chequear todos los caminos entre los nodos, ver si alguno está representado por la expresión.
!
![Page 43: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/43.jpg)
Teoría de autómatas al rescate
![Page 44: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/44.jpg)
Teoría de autómatas al rescate
Idea: Podemos representar también las RPQs como grafos
![Page 45: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/45.jpg)
(x, is_friend . works_with, y)
xis_friend
yworks_with
![Page 46: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/46.jpg)
(x, is_friend . (works_with + married_to), y)
xis_friend
y
works_with
married_to
![Page 47: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/47.jpg)
(x, is_friend*, y)
x,y
is_friend
![Page 48: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/48.jpg)
(x, is_friend*.works_for, y)
yworks_for
x
is_friend
![Page 49: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/49.jpg)
Teoría de autómatas al rescate
Formalmente: !Para cada RPQ (x,r,y) construimos grafo con nodos x e y tal que: !
![Page 50: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/50.jpg)
Teoría de autómatas al rescate
Formalmente: !Para cada RPQ (x,r,y) construimos grafo con nodos x e y tal que: !Los caminos entre x e y en el grafo corresponden a las secuencias representadas por r
![Page 51: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/51.jpg)
Teoría de autómatas al rescate
Formalmente: !Para cada RPQ (x,r,y) construimos grafo con nodos x e y tal que: !Los caminos entre x e y en el grafo corresponden a las secuencias representadas por r
• En computación estos objetos se llaman autómatas
![Page 52: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/52.jpg)
Teoría de autómatas al rescate
Algoritmo para evaluar una RPQ (x,r,y) sobre un grafo G:
1. Construyo grafo R con nodos x e y !!!
![Page 53: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/53.jpg)
Teoría de autómatas al rescate
Algoritmo para evaluar una RPQ (x,r,y) sobre un grafo G:
1. Construyo grafo R con nodos x e y !2. Tomo el producto cruz de G con R. !
![Page 54: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/54.jpg)
Teoría de autómatas al rescate
Algoritmo para evaluar una RPQ (x,r,y) sobre un grafo G:
1. Construyo grafo R con nodos x e y !2. Tomo el producto cruz de G con R. !3. Veo si en G x R puedo alcanzar un nodo (u,y) desde un
nodo (u,x), para u y v nodos de G
![Page 55: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/55.jpg)
Teoría de autómatas al rescate
Algoritmo para evaluar una RPQ (x,r,y) sobre un grafo G:
1. Construyo grafo R con nodos x e y !2. Tomo el producto cruz de G con R. !3. Veo si en G x R puedo alcanzar un nodo (u,y) desde un
nodo (u,x), para u y v nodos de G
Para el paso 3 usamos algoritmo de Dijkstra u otro similar
![Page 56: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/56.jpg)
1. Construyo grafo R con nodos x e y !2. Tomo el producto cruz de G con R. !3. Veo si en G x R puedo alcanzar un nodo (u,y) desde un
nodo (u,x), para u y v nodos de G
Computar las respuestas a RPQs toma tiempo lineal con respecto al grafo
![Page 57: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/57.jpg)
Esta charla
• Consultas de caminos regulares !• Extensiones: Conjunciones y proyecciones (CRPQs) !• Patrones de grafos, aplicaciones
![Page 58: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/58.jpg)
(x, is_friend*.works_for, y) AND (x,married_to z)
Pedro Ana
Pía
Marco
is_friend
is_friendis_friend
married_to
DCC
works_for
works_for
![Page 59: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/59.jpg)
(x, is_friend*.works_for, y) AND (x,married_to z)
Pedro Ana
Pía
Marco
is_friend
is_friendis_friend
married_to
DCC
works_for
works_for
x y zPedro DCC Pía
![Page 60: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/60.jpg)
(x, is_friend*, y) AND (x,works_for,z) AND (y,works_for,z)
Pedro Ana
Pía
Marco
is_friend
is_friendis_friend
married_to
DCC
works_for
works_for
![Page 61: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/61.jpg)
(x, is_friend*, y) AND (x,works_for,z) AND (y,works_for,z)
Pedro Ana
Pía
Marco
is_friend
is_friendis_friend
married_to
DCC
works_for
works_for
x y zAna Marco DCC
Marco Ana DCC
![Page 62: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/62.jpg)
{ z | (x, is_friend*.works_for, y) AND (x,married_to z)}
Pedro Ana
Pía
Marco
is_friend
is_friendis_friend
married_to
DCC
works_for
works_for
zPía
![Page 63: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/63.jpg)
{x,y | (x, is_friend*, y) AND (x,works_for,z) AND (y,works_for,z)}
Pedro Ana
Pía
Marco
is_friend
is_friendis_friend
married_to
DCC
works_for
works_for
x yAna Marco
Marco Ana
![Page 64: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/64.jpg)
{x,y | (x, is_friend*, y) AND (x,works_for,DCC) AND (y,works_for,DCC)}
Pedro Ana
Pía
Marco
is_friend
is_friendis_friend
married_to
DCC
works_for
works_for
x yAna Marco
Marco Ana
![Page 65: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/65.jpg)
CRPQs son un buen lenguaje para grafos
• Contienen a las RPQs !• Contienen a los patrones !• Pueden ser expresadas como patrones más complejos
![Page 66: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/66.jpg)
CRPQs como patrones más complejos
(x, is_friend*.works_for, y) AND (x,married_to z)
x y
z
is_friend*.works_for
married_to
![Page 67: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/67.jpg)
CRPQs como patrones más complejos
(x, is_friend*, y) AND (x,works_for,z) AND (y,works_for,z)
x y
z
is_friend*
works_forworks_for
![Page 68: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/68.jpg)
CRPQs como patrones más complejos
x y
DCC
is_friend*
works_forworks_for
{x,y | (x, is_friend*, y) AND (x,works_for,DCC) AND (y,works_for,DCC)}
![Page 69: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/69.jpg)
CRPQs son un buen lenguaje para grafos
¿Cómo puedo encontrar las respuestas a CRPQs?
• Contienen a las RPQs !• Contienen a los patrones !• Pueden ser expresadas como patrones más complejos
![Page 70: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/70.jpg)
Decidir si un conjunto de nodos es una respuesta a una CRPQ sobre un grafo es NP-completo
![Page 71: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/71.jpg)
Decidir si un conjunto de nodos es una respuesta a una CRPQ sobre un grafo es NP-completo
Idea del algoritmo: • combinar pattern matching con evaluación de RPQs
![Page 72: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/72.jpg)
CRPQs son un buen lenguaje para grafos
Decidir si un conjunto de nodos es una respuesta a una CRPQ sobre un grafo es NP-completo
• Podemos agregar caminos a los patrones, sin costo de computación adicional
![Page 73: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/73.jpg)
CRPQs son un buen lenguaje para grafos
!problema puede ser resuelto en tiempo polinomial
Si consideramos la CRPQ como fija:
![Page 74: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/74.jpg)
CRPQs son un buen lenguaje para grafos
• Grafo es generalmente muy grande y consulta pequeña. • Intuición: problema es robusto al tamaño del grafo
!problema puede ser resuelto en tiempo polinomial
Si consideramos la CRPQ como fija:
![Page 75: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/75.jpg)
Esta charla
• Consultas de caminos regulares !• Extensiones: Conjunciones y proyecciones (CRPQs) !• Patrones de grafos, aplicaciones
![Page 76: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/76.jpg)
Tenemos buenos lenguajes de consulta para bases de datos de grafos
¿Qué cosas podemos hacer con esto ? (además de extraer información)
![Page 77: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/77.jpg)
Tenemos buenos lenguajes de consulta para bases de datos de grafos
¿Qué cosas podemos hacer con esto ? (además de extraer información)
Usar estos lenguajes para representar múltiples bases de datos de grafos
![Page 78: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/78.jpg)
Linked Data
![Page 79: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/79.jpg)
• Miles de bases de grafos conectadas entre sí
• Todas guardan información de forma differente
![Page 80: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/80.jpg)
Necesitamos una forma de resumir e integrar grafos
![Page 81: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/81.jpg)
Idea: Resumamos un grafo usando un patrón complejo
![Page 82: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/82.jpg)
• Extraemos del grafo solo la información que es relevante !
• Como si fuera una vista del grafo !• Luego dediquémonos a consultar estos patrones
Idea: Resumamos un grafo usando un patrón complejo
![Page 83: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/83.jpg)
Base de datos de Grafo
En vez de acceder al grafo, resumámoslo como un patrón
![Page 84: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/84.jpg)
Base de datos de Grafo Consulta
En vez de acceder al grafo, resumámoslo como un patrón
![Page 85: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/85.jpg)
Base de datos de Grafo Consulta
En vez de acceder al grafo, resumámoslo como un patrón
![Page 86: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/86.jpg)
Base de datos de Grafo
Patrón
Consulta
object object
X
X
rel*(a+b)
Y
relationY
En vez de acceder al grafo, resumámoslo como un patrón
![Page 87: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/87.jpg)
• Variables en los nodos para representar objetos con las mismas propiedades
Características importantes:
Estudiamos patrones basados en CRPQs
![Page 88: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/88.jpg)
P A
B
Q A
B
reacción 1
reacción 2
reacción 1
reacción 2
Variables en los nodos para representar objetos con las mismas propiedades
![Page 89: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/89.jpg)
X A
B
P A
B
Q A
B
reacción 1
reacción 2reacción 1
reacción 2reacción 1
reacción 2
Variables en los nodos para representar objetos con las mismas propiedades
![Page 90: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/90.jpg)
• Variables en los nodos para representar objetos con las mismas propiedades !
• Expresiones Regulares para representar caminos
Características importantes:
Estudiamos patrones basados en CRPQs
![Page 91: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/91.jpg)
John Annis_friend
Marcois_friend Lisa
is_friend
Expresiones regulares para representar caminos
![Page 92: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/92.jpg)
John Lisais_friend*
John Annis_friend
Marcois_friend Lisa
is_friend
Expresiones regulares para representar caminos
![Page 93: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/93.jpg)
• Variables en los nodos para representar objetos con las mismas propiedades !
• Expresiones Regulares para representar caminos !• Variables en las aristas para representar relaciones con
las mismas propiedades
Características importantes:
Estudiamos patrones basados en CRPQs
![Page 94: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/94.jpg)
P Areacción
B
Q
Variables en las aristas para representar relaciones con las mismas propiedades
reacción
![Page 95: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/95.jpg)
Q AX
B
X
P Areacción
B
Q
Variables en las aristas para representar relaciones con las mismas propiedades
reacción
![Page 96: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/96.jpg)
• Variables en los nodos para representar objetos con las mismas propiedades !
• Expresiones Regulares para representar caminos !• Variables en las aristas para representar relaciones con
las mismas propiedades
Características importantes:
Estudiamos patrones basados en CRPQs
![Page 97: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/97.jpg)
• Variables en los nodos para representar objetos con las mismas propiedades !
• Expresiones Regulares para representar caminos !• Variables en las aristas para representar relaciones con
las mismas propiedades
Características importantes:
Estudiamos patrones basados en CRPQs
Semantica: Patrones representan varios grafos al mismo tiempo
![Page 98: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/98.jpg)
BD Grafo Consulta
obj obj
X
X
rel*(a+b)
Yrel Y
Saber consultar patrones de grafos me permite:
![Page 99: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/99.jpg)
BD Grafo Consulta
obj obj
X
X
rel*(a+b)
Yrel Y
• Extraer información de grafos resumidos
• Lidiar con información incompleta en grafos
• Transformar or integrar varios grafos
Saber consultar patrones de grafos me permite:
![Page 100: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/100.jpg)
Por dónde partir?Definir la semántica de patrones, y como consultarlos:
![Page 101: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/101.jpg)
Por dónde partir?
• Cada patrón representa un conjunto de BD de grafos !• Las consultas solo pueden extraer la información común a
todos esos grafos
Definir la semántica de patrones, y como consultarlos:
![Page 102: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/102.jpg)
John Lisais_friend*
• Cada patrón representa un conjunto de BD de grafos !• Las consultas solo pueden extraer la información común a
todos esos grafos
Definir la semántica de patrones, y como consultarlos:
![Page 103: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/103.jpg)
John Annis_friend
Marcois_friend Lisa
is_friend
John Lisais_friend*
• Cada patrón representa un conjunto de BD de grafos !• Las consultas solo pueden extraer la información común a
todos esos grafos
Definir la semántica de patrones, y como consultarlos:
![Page 104: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/104.jpg)
John Annis_friend
Lisais_friend
John Lisais_friend*
• Cada patrón representa un conjunto de BD de grafos !• Las consultas solo pueden extraer la información común a
todos esos grafos
Definir la semántica de patrones, y como consultarlos:
![Page 105: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/105.jpg)
La información común es que Juan está conectado a Lisa, via un camino de is_friend
John Lisais_friend*
• Cada patrón representa un conjunto de BD de grafos !• Las consultas solo pueden extraer la información común a
todos esos grafos
Definir la semántica de patrones, y como consultarlos:
![Page 106: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/106.jpg)
Patrones v/s CRPQs?• Cada CRPQ es un patrón • Cada patrón es una CRPQ (con variables en las aristas)
x y
DCC
is_friend*
works_forworks_for
Consulta
Representación de varios grafos
![Page 107: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/107.jpg)
Patrones v/s CRPQs?
x y
DCC
is_friend*
works_forworks_for
Representa todos los grafos en los que esta consulta es no vacía (modelos de esta consulta)
Consulta
![Page 108: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/108.jpg)
Incluso podemos consultar patrones… usando patrones!
BD Grafo
obj obj
X
X
rel*(a+b)
Yrel Y
x y
DCC
is_friend*
works_forworks_for
y
![Page 109: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/109.jpg)
Incluso podemos consultar patrones… usando patrones!
BD Grafo
obj obj
X
X
rel*(a+b)
Yrel Y
x y
DCC
is_friend*
works_forworks_for
y
¿Cómo resolver este probema?
![Page 110: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/110.jpg)
Sean Q y G patrones. Las respuestas de evaluar Q sobre G: !Intersección de Q sobre cada grafo representado por G
Conclusiones en cuanto a complejidad
![Page 111: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/111.jpg)
• Problema difícil (EXPSPACE) !• Si asumimos que Q está fijo, el problema es NP-completo
Conclusiones en cuanto a complejidad
Sean Q y G patrones. Las respuestas de evaluar Q sobre G: !Intersección de Q sobre cada grafo representado por G
![Page 112: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/112.jpg)
Balance entre expresividad de los patrones y complejidad de consultarlos
Conclusiones en cuanto a complejidad
![Page 113: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/113.jpg)
• Consultar de vuelve más difícil mientras los patrones son más expresivos
!• Si queremos especificar caminos en los patrones,
consultar es muy costoso
Balance entre expresividad de los patrones y complejidad de consultarlos
Conclusiones en cuanto a complejidad
![Page 114: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/114.jpg)
Igual lo podemos hacer
• Teoría de autómatas nos da heurísticas !• Identificamos islas de eficiencia !
Balance entre expresividad de los patrones y complejidad de consultarlos
Conclusiones en cuanto a complejidad
![Page 115: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/115.jpg)
Igual lo podemos hacer
• Teoría de autómatas nos da heurísticas !• Identificamos islas de eficiencia !• Conexiones con Constraint Satisfaction Problem para
implementaciones prácticas
Balance entre expresividad de los patrones y complejidad de consultarlos
Conclusiones en cuanto a complejidad
![Page 116: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/116.jpg)
Maquinaria Técnica
Autómatas incompletos
• Automatas finitos con sus transiciones definidas parcialmente !!!
![Page 117: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/117.jpg)
Maquinaria Técnica
Autómatas incompletos
• Automatas finitos con sus transiciones definidas parcialmente !• Problemas de bases de datos de grafos se transforman en
problemas estándar para estos autómatas !• Aplicaciones más allá de bases de datos (análisis y verificación de programas) !
![Page 118: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/118.jpg)
Resumiendo…
![Page 119: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/119.jpg)
• Aplicaciones demandan lenguajes que extraigan caminos de
las bases de datos de grafos
• RPQs, CRPQs,…
Resumiendo…
![Page 120: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/120.jpg)
Sabemos como consultar
patrones de grafos complejos
!
BD Grafo Consulta
rel*(a+b)
YY
Resumiendo…
![Page 121: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/121.jpg)
Sabemos como consultar
patrones de grafos complejos
!
BD Grafo Consulta
rel*(a+b)
YY
• Identificamos la complejidad de este problema
• Semántica de patrones para representar bases de datos
• Modelo Teórico con aplicaciones en otras áreas
Resumiendo…
![Page 122: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/122.jpg)
Hacia adonde apuntamos
![Page 123: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/123.jpg)
Sabemos como consultar patrones, pero como construirlos?
• Dado un grafo, crear el patrón (pequeño) mas representativo
Hacia adonde apuntamos
![Page 124: Consultas de Conectividad - jreutter.sitios.ing.uc.cljreutter.sitios.ing.uc.cl/talks/IngMatpdf.pdf · Graph Databases • Nodos Representan Objetos • Aristas son relaciones Modelo](https://reader036.fdocuments.us/reader036/viewer/2022081410/60964fe0e906bb3b43739af7/html5/thumbnails/124.jpg)
Ayudando a los humanos a entender las BD de grafos
• DBpedia: las páginas se almacenan de la misma forma • tal vez podemos representar esto como un patrón (quizá con características adicionales)
Hacia adonde apuntamos
Sabemos como consultar patrones, pero como construirlos?
• Dado un grafo, crear el patrón (pequeño) mas representativo