correspondencia de grafos rdf claudio gutiérrez julio Águila
TRANSCRIPT
![Page 1: Correspondencia de grafos RDF Claudio Gutiérrez Julio Águila](https://reader035.vdocuments.pub/reader035/viewer/2022081513/5665b42e1a28abb57c8fd4cf/html5/thumbnails/1.jpg)
Correspondencia de grafos RDFCorrespondencia de grafos RDF
Claudio Gutiérrez
Julio Águila
![Page 2: Correspondencia de grafos RDF Claudio Gutiérrez Julio Águila](https://reader035.vdocuments.pub/reader035/viewer/2022081513/5665b42e1a28abb57c8fd4cf/html5/thumbnails/2.jpg)
¿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](https://reader035.vdocuments.pub/reader035/viewer/2022081513/5665b42e1a28abb57c8fd4cf/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081513/5665b42e1a28abb57c8fd4cf/html5/thumbnails/4.jpg)
<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](https://reader035.vdocuments.pub/reader035/viewer/2022081513/5665b42e1a28abb57c8fd4cf/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081513/5665b42e1a28abb57c8fd4cf/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081513/5665b42e1a28abb57c8fd4cf/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081513/5665b42e1a28abb57c8fd4cf/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081513/5665b42e1a28abb57c8fd4cf/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081513/5665b42e1a28abb57c8fd4cf/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081513/5665b42e1a28abb57c8fd4cf/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081513/5665b42e1a28abb57c8fd4cf/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081513/5665b42e1a28abb57c8fd4cf/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081513/5665b42e1a28abb57c8fd4cf/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081513/5665b42e1a28abb57c8fd4cf/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081513/5665b42e1a28abb57c8fd4cf/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081513/5665b42e1a28abb57c8fd4cf/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081513/5665b42e1a28abb57c8fd4cf/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081513/5665b42e1a28abb57c8fd4cf/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081513/5665b42e1a28abb57c8fd4cf/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081513/5665b42e1a28abb57c8fd4cf/html5/thumbnails/21.jpg)
EjemploEjemplo
![Page 22: Correspondencia de grafos RDF Claudio Gutiérrez Julio Águila](https://reader035.vdocuments.pub/reader035/viewer/2022081513/5665b42e1a28abb57c8fd4cf/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022081513/5665b42e1a28abb57c8fd4cf/html5/thumbnails/23.jpg)
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.