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

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

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
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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(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

(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

(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

(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

(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

(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

(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

(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

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

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

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

¡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

¡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

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

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

(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

(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

(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

(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

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

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

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

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

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

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

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

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

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

(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

(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

(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

(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

{ 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

{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

{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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

• 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

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

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

• 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

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

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

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

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

• 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

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

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

• 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

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

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

• 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

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

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

• 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

• 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

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

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

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

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

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

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

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

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

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

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

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

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

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

• 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

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

• 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

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

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

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

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

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

• 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

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

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

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

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

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