correspondencia de grafos rdf claudio gutiérrez julio Águila

23
Correspondencia de Correspondencia de grafos RDF grafos RDF Claudio Gutiérrez Julio Águila

Upload: beatriz-bueno

Post on 22-Jan-2016

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Correspondencia de grafos RDF Claudio Gutiérrez Julio Águila

Correspondencia de grafos RDFCorrespondencia de grafos RDF

Claudio Gutiérrez

Julio Águila

Page 2: Correspondencia de grafos RDF Claudio Gutiérrez Julio Águila

¿Cómo determinar si dos archivos RDF representan lo mismo?

Problema: pueden representar el mismo modelo pero este puede estar declarado en orden distinto.

Utilidad: determinar equivalencia entre modelos representados (mismo significado)

IntroducciónIntroducción

Page 3: Correspondencia de grafos RDF Claudio Gutiérrez Julio Águila

EjemploEjemplo

<rdf:RDFxmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns#”xmlns:t=“http://example.org/brothers#”xmlns:base=“http://example.org/brothers” ><rdf:Description t:name=“John”>

<t:child t:name=“Robert”/><t:child t:name=“Jeremy”/><t:child t:name=“Terry”/>

</rdf:Description ></rdf:RDF >

Page 4: Correspondencia de grafos RDF Claudio Gutiérrez Julio Águila

<rdf:RDFxmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns#”xmlns:t=“http://example.org/brothers#”xmlns:base=“http://example.org/brothers” ><rdf:Description t:name=“John”>

<t:child t:name=“Robert”/>

<t:child t:name=“Jeremy”/><t:child t:name=“Terry”/>

</rdf:Description ></rdf:RDF >

EjemploEjemplo

Page 5: Correspondencia de grafos RDF Claudio Gutiérrez Julio Águila

EjemploEjemplo_:a3 <http://example.org/brothers#name> “Robert”

_:a1 <http://example.org/brothers#name> “John”

_:a1 <http://example.org/brothers#child> _:a9

_:a1 <http://example.org/brothers#child> _:a3

_:a9 <http://example.org/brothers#name> “Terry”

_:a6 <http://example.org/brothers#name> “Jeremy”

_:a1 <http://example.org/brothers#child> _:a6

_:a3 <http://example.org/brothers#name> “Jeremy”

_:a6 <http://example.org/brothers#name> “Terry”

_:a1 <http://example.org/brothers#name> “John”

_:a1 <http://example.org/brothers#child> _:a9

_:a1 <http://example.org/brothers#child> _:a3

_:a9 <http://example.org/brothers#name> “Robert”

_:a1 <http://example.org/brothers#child> _:a6

John

Robert JeremyTerry

Page 6: Correspondencia de grafos RDF Claudio Gutiérrez Julio Águila

EjemploEjemplo

_:a1 <#name> “John”_:a1 <#child> _:a9

_:a9 <#name> “Terry”

_:a1 <#child> _:a3

_:a3 <#name> “Robert”

_:a1 <#child> _:a6

_:a6 <#name> “Jeremy”

_:a1 <#child> _:a9

_:a9 <#name> “Robert”

_:a1 <#child> _:a3

_:a3 <#name> “Jeremy”

_:a1 <#child> _:a6

_:a6 <#name> “Terry”

_:a1 <#name> “John”

Page 7: Correspondencia de grafos RDF Claudio Gutiérrez Julio Águila

EjemploEjemplo

_:a1

_:a3

_:a6

_:a9

“Terry”

“Robert”

“Jeremy”

“John”

<#name>

<#child><#name>

<#child>

<#name>

<#child>

<#name>

_:a1 <#name> “John”_:a1 <#child> _:a9

_:a9 <#name> “Terry”

_:a1 <#child> _:a3

_:a3 <#name> “Robert”

_:a1 <#child> _:a6

_:a6 <#name> “Jeremy”

Page 8: Correspondencia de grafos RDF Claudio Gutiérrez Julio Águila

EjemploEjemplo

_:a1

_:a3

_:a6

_:a9

“Terry”

“Jeremy”

“John”

<#name>

<#child><#name>

<#child>

<#name>

<#child>

<#name>

_:a1 <#child> _:a9

_:a9 <#name> “Robert”

_:a1 <#child> _:a3

_:a3 <#name> “Jeremy”

_:a1 <#child> _:a6

_:a6 <#name> “Terry”

_:a1 <#name> “John”

“Robert”

Page 9: Correspondencia de grafos RDF Claudio Gutiérrez Julio Águila

EjemploEjemplo

_:a1

_:a3

_:a6

_:a9

“Terry”

“Robert”

“Jeremy”

“John”

<#name>

<#child>

<#name>

<#child><#name>

<#child>

<#name>

_:a1

_:a3

_:a6

_:a9

“Terry”

“Jeremy”

“John”

<#name>

<#child><#name>

<#child>

<#name>

<#child>

<#name>“Robert”

Page 10: Correspondencia de grafos RDF Claudio Gutiérrez Julio Águila

Algoritmo de fuerza brutaAlgoritmo de fuerza bruta

IF |V1| = |V2| SET n = |V1|

SINO no son isomorficos

REPEAT

GEN MAPPING DE V1 2 V2

IF CHECK EDGES

es isomorfico

BREAK

n! combinaciones

O(n )2

Page 11: Correspondencia de grafos RDF Claudio Gutiérrez Julio Águila

Algoritmo con clasificación de nodosAlgoritmo con clasificación de nodosIF |V1| = |V2| SET n = |V1|

SINO no son isomorficos

CLASIFIQUE G1 & G2 SEGÚN INVARIANTE

FOREACH CLASS C

IF |V1,c| = |V2,c| ASOCIE C con una clase en G2

SINO no son isomorficos

REPEAT

GEN MAPPING DE V1 2 V2

IF CHECK EDGES

es isomorfico

BREAK

grado de los nodos

otros

Page 12: Correspondencia de grafos RDF Claudio Gutiérrez Julio Águila

Clasificación de nodos por adyacenciaClasificación de nodos por adyacencia

A B

C D

E

F

2

3 4

2

2

3A B

C D

E

F

2

3 4

2

2

3

{ [A,E,F],[B,C],[D] }INVARIANTE=GRADO

3 2 1

Page 13: Correspondencia de grafos RDF Claudio Gutiérrez Julio Águila

Clasificación de nodo iterativaClasificación de nodo iterativaIF |V1| = |V2| SET n = |V1| SINO no son isomorficosCLASIFICAR nodos de V1 & V2 en una sola claseREPEAT

REPEAT // reclasificación

FOREACH NODO RECLASIFIQUEAdyacencia con otras clases y con nodos dela misma

IF CADA CLASE TIENE 1 ELEMENTO

RETURN es isomorfico;

IF NOT ASOCIAR POR CARD. DE CLASEBiyección por cardinalidad

RETURN no es isomorfico;

IF (NEW.CLASIFICACION = OLD.CLASIFICACION | |

BREAK;EXISTE CLASE CON CARDINALIDAD <= COTA)

Cardinalidad máxima parafuerza bruta

USANDO LA CLASE CON CARD. MENORFUERZA BRUTA SOBRE CminIF CHECK NODES

G1 = G1 – Cmin; G2 = G2 - Cmin

Page 14: Correspondencia de grafos RDF Claudio Gutiérrez Julio Águila

Clasificación de nodo iterativaClasificación de nodo iterativa

A B

C D

E

F

2

3 4

2

2

3 1.- {A,B,C,D,E,F}

2.- { [A,E,F],[B,C],[D] }

3.- { [A],[E,F],[B,C],[D] }

A=(0,0,2,0)B=(1,1,0,1)C=(1,1,0,1)D=(0,2,2,0)E=(0,0,1,1)F=(0,0,1,1)

SELECT

Page 15: Correspondencia de grafos RDF Claudio Gutiérrez Julio Águila

Clasificación de nodo iterativaClasificación de nodo iterativa

A B

C D

E

F

2

3 4

2

2

3

A

D2

3

4

2

2

3E1

E2

E3

E4

E5

E6

E7E8

E1

E4

E5 E6

E7E3

E8

E2B

C E

F

Page 16: Correspondencia de grafos RDF Claudio Gutiérrez Julio Águila

Isomorfismo de Grafos a Través de Subgrafos de Mayor Longitud

•Si dos Grafos son Isomorficos, entonces los subgrafos de mayor longitud también lo son. (Transitividad e Inducción).

•El tiempo en calcular el subgrafo de mayor longitud es menor que el tiempo total involucrado en determinar si dos grafos son isomorficos.

•El objetivo es determinar los subgrafos de los grafos A y B, si los subgrafos(A) y subgrafo(B) son iguales entonces existe una gran probabilidad de que A y B sean iguales.

Page 17: Correspondencia de grafos RDF Claudio Gutiérrez Julio Águila

AlgoritmoAlgoritmo

• El objetivo es utilizar una heurística con información en los arcos de los grafos.

•Para ello debe existir un prepocesamiento de los grafos.

•El prepocesamiento supone una asignación numérica de los vértices y de los arcos.

•No debería de existir problemas de colisiones.

Page 18: Correspondencia de grafos RDF Claudio Gutiérrez Julio Águila

AlgoritmoAlgoritmo

DESCOMPOSITION(B)

 1. let B={G1,G2} and D(B)=0

2.        Smax,G1= 3.        Smax,G2= 4.        Smax,G1=descompose(G1, Smax,G1, v1,G1)

5. Smax,G2=descompose(G2, Smax,G2,v1,G2)

Page 19: Correspondencia de grafos RDF Claudio Gutiérrez Julio Águila

DESCOMPOSE(G, Smax,v)

1.        S'max=0

2.        suc=sucesores(G,v)3.        DephtMarkVertice(G,v)4.        CicleMarkVertice(G,v)1.        for all suc of v6. (a) If(!IsDepthVerticeMark (G,vi))

7. (b ) If(!IsCicleVerticeMark (G,vi))

8. (b.1) S'max= DESCOMPOSE(G, Smax, vsuc)

9.        (c) if Smax< S'max

10.     (c.1) Smax=S'max

11.     (d) else continue12.     CicleDesmarkVertice(G,vi)

13.     return(Smax)

AlgoritmoAlgoritmo

Page 20: Correspondencia de grafos RDF Claudio Gutiérrez Julio Águila

MATCHING_SUBGRAPHS(S’, S)

1.        if(S’.lp== S.lp && S’.tcs== S.tcs.&& S’.tcg==S.tcg && S’.E== S.E)

2.        (a) for all V S1

3.        (a.a) if ((S’.et1(v)== S.et1(v) S’.et2(v)== S.et2(v)) &&S’.a(v)== S.a(v) && S’.e(v)== S.e(v))4.        (a.b) continue5.        (a.c) else return false6.        return true 7.        else return false

AlgoritmoAlgoritmo

Page 21: Correspondencia de grafos RDF Claudio Gutiérrez Julio Águila

EjemploEjemplo

Page 22: Correspondencia de grafos RDF Claudio Gutiérrez Julio Águila

Tarea por realizarTarea por realizar

•Modificar la estructura a lista enlazada

•Realizar las pruebas

Page 23: Correspondencia de grafos RDF Claudio Gutiérrez Julio Águila

ConclusionesConclusiones

•Es posible usar algoritmos clásicos de isomorfismos de grafos para comparar grafos RDFcon nodos blancos.

• Dado que el uso standard de RDF no presenta casos patológicos donde los algoritmos anteriores no funcionen, en promedio el desempeño es satisfactorio.