200 likes | 382 Views
Updating Large RDF Document Using Change Detection. Taewhi Lee SNU OOPSLA Lab. October, 2005. Outline. Introduction Motivation Related Work Problem Definition Issues to Resolve Our Approach Experiments Conclusion References. Introduction.
E N D
UpdatingLarge RDF DocumentUsing Change Detection Taewhi Lee SNU OOPSLA Lab. October, 2005
Outline • Introduction • Motivation • Related Work • Problem Definition • Issues to Resolve • Our Approach • Experiments • Conclusion • References
Introduction • 대용량의 RDF 문서를 RDB에 Persistent하게 저장하고 질의, 추론하는 데 대한 연구가 활발히이루어지고 있다 • Jena, Sesame 등 Explicit triples RDF Document Parsing Inference Triples table (explicit triples + inferred triples)
Introduction (Cont’d) • RDF 문서는 시간이 흐름에 따라 계속 변화계속적인 유지가 필요 • 새 버전의 RDF 문서 전체를 다시 RDB에 저장 +저장 후 RDF Semantics에 따라 추론하는 것은 큰 부담(RDF 문서의 업데이트 빈도가 높을수록 부담 증대)
Motivation • Example (GO_2005-10-14 & GO_2005-10-15) • Gene Ontology TermDB RDF-XML file : 22MB • UNIX diff result between two GO TermDB file : 111KB • UniProt RDF의 경우… • 기존의 RDF 문서와 새로운 RDF 문서의 차이점을 텍스트 비교만을 통해 찾아내어 변경된 부분만을 업데이트하여 이 문제를 개선해 보고자 함(일반적으로 Δ데이터의 크기가 훨씬 작으므로)
Related Work • UNIX diff, http://www.gnu.org/software/diffutils/diffutils.html • 두 문서의 차이를 line-by-line으로 검색 • Michael Klein, et. al. Ontology Versioning and Change Detection on the Web. EKAW 2002. • Change를 conceptual change와 explication change로 나누고 RDF 그래프를 비교하여 어떤 변화가 일어난 것인지를 알아냄 • Jeremy J. Carroll. Matching RDF Graphs. ISWC 2002. • Blank node를 fan-in과 fan-out에 따라 분류하여 RDF 그래프를 비교할 공간을 줄임
Related Work (Cont’d) • Jeremy J. Carroll. Signing RDF Graphs. ISWC 2003. • Canonicalization algorithm • 임의의 blank node ID 사용 • Blank node ID를 (거의) 무시한 채 정렬 • Blank node ID를 rename • 각 blank node의 signature를 주변 triples와 정렬 결과에 근거하여 계산하기 때문에, blank node 근처의 트리플을 추가 혹은 삭제할 경우 signature가 바뀌어 잠재적으로 많은 blank node의 re-labeling 발생 가능 • 문서의 아주 일부가 변경되었을 때에도 대량의 diff 발생 가능
Related Work (Cont’d) • Tim Berners-Lee and Dan Connolly. Delta: An Ontology for the Distribution of Differences Between RDF Graphs. LNCS 2004. • RDF 그래프의 차이를 알아내고, 패치 데이터를 배포하기 위한 delta라는 온톨로지를 설명 • Named node로부터의 path를 이용하여 간접적으로 blank node를 labeling하는 방법 언급 • 실제 데이터의 경우 named node와 unnamed node가 혼합되어 있고, unnamed node가 named node로부터 멀리 떨어져 있지 않기 때문 • 이러한 관련 연구들은 모두 RDF를 그래프로써 보고 비교 • 차별성 - 우리의 접근 방법은 텍스트 비교를 위주로 함
Problem Definition • Input • 이전 버전의 RDF 문서 파일과 이를 저장한 RDB • 새 버전의 RDF 문서 파일 • Output • 새 버전의 RDF 문서를 저장한 RDB (Δ데이터를 이용한 업데이트를 통해) • Assumptions • 대용량의 RDF 문서 • RDF 문서 내의 기존 element들의 순서는 그대로일 것이다. • 한 triple 그래프를 표현하는 방법은 여러 가지가 있지만, 같은 방법으로 표시될 것이다. • 실제 데이터의 예를 통해 타당성 제시
Problem Definition (Cont’d) • Overall Scenario RDB [RDF v1] RDF v1 TripleDiff RDF v2 Δ Data RDB [RDF v2]
Issues to Resolve • 변경된 부분을 triple 단위로 알아내기 • Triple에 blank node가 있는 경우 해결책 제시 • 실험은 어떤 방법으로 할 것인가
IS_A GO:0004888 ? Issue I • 변경된 부분을 triple 단위로 알아내기 • UNIX diff 의 경우 line-by-line으로만 알 수 있으므로 • Context에 맞는 diff 결과를 생성해야 함 4054d4053 < <go:is_a rdf:resource="http://www.geneontology.org/go#GO:0004888" /> [ Triple 전체를 알 수 없는 경우 발생 ]
Issue I (Cont’d) <go:term rdf:about="http://www.geneontology.org/go#GO:0000271" n_associations="0"> ... <go:dbxref rdf:parseType="Resource"> <go:database_symbol>SP_KW</go:database_symbol> <go:reference>Capsular polysaccharide biosynthesis</go:reference> </go:dbxref> <go:dbxref rdf:parseType="Resource"> <go:database_symbol>SP_KW</go:database_symbol> <go:reference>Exopolysaccharide synthesis</go:reference> </go:dbxref> ... <go:term rdf:about="http://www.geneontology.org/go#GO:0000271" n_associations="0"> ... <go:dbxref rdf:parseType="Resource"> <go:database_symbol>SP_KW</go:database_symbol> <go:reference>Exopolysaccharide synthesis</go:reference> </go:dbxref> ...
Issue I (Cont’d) go:database_symbol SP_KW _:1 go:reference Capsular polysaccharide biosynthesis go:database_symbol SP_KW _:2 go:reference Exopolysaccharide synthesis [ Context에 맞지 않는 diff 결과 발생 ]
Issue II • Triple에 blank node가 있는 경우 해결책 제시 • Distinct한 구조를 갖지 않는 blank node들이 있을 경우 이에 대한 삭제나 변경할 대상 triple의 결정이 어려움 <go:term rdf:about="http://www.geneontology.org/go#GO:0000271" n_associations="0"> ... 3793 <go:dbxref rdf:parseType="Resource"> 3794 <go:database_symbol>SP_KW</go:database_symbol> 3795 <go:reference>Capsular polysaccharide biosynthesis</go:reference> 3796 </go:dbxref> 3797 <go:dbxref rdf:parseType="Resource"> 3798 <go:database_symbol>SP_KW</go:database_symbol> 3799 <go:reference>Exopolysaccharide synthesis</go:reference> 3800 </go:dbxref> ...
Issue II (Cont’d) 3795,3798d4110 < <go:reference>Capsular polysaccharide biosynthesis</go:reference> < </go:dbxref> < <go:dbxref rdf:parseType="Resource"> < <go:database_symbol>SP_KW</go:database_symbol> go:database_symbol SP_KW _:1 go:database_symbol _:2 Delete go:database_symbol go:database_symbol SP_KW … _ _:n [ 어떤 triple을 삭제해야 하는지 알 수 없는 경우 발생 ]
References • Tim Berners-Lee and Dan Connolly. Delta: An Ontology for the Distribution of Differences Between RDF Graphs. LNCS 2004. • Michael Klein, et. al. Ontology Versioning and Change Detection on the Web. EKAW 2002. • Jeremy J. Carroll. Matching RDF Graphs. ISWC 2002. • Jeremy J. Carroll. Signing RDF Graphs. ISWC 2003. • UNIX diff, http://www.gnu.org/software/diffutils/diffutils.html
Appendix 1: UNIX diff Example • UNIX diff results between GO_2005-10-14 and GO_2005-10-15 4054d4053 < <go:is_a rdf:resource="http://www.geneontology.org/go#GO:0004888" /> 12638a12638 > <go:synonym>G-alpha protein subunit binding</go:synonym> 289639a289640,291175 > <go:term rdf:about="http://www.geneontology.org/go#GO:0031680" n_associations="0"> > <go:accession>GO:0031680</go:accession> > <go:name>G-protein beta/gamma-subunit complex</go:name> > <go:synonym>G-beta/G-gamma complex</go:synonym> > <go:definition>The heterodimer formed by the beta and gamma subunits of ……</go:definition> > <go:comment>See also the cellular component term 'heterotrimeric G-protein complex ; GO\:0005834'.</go:comment> > <go:is_a rdf:resource="http://www.geneontology.org/go#GO:0043234" /> > </go:term> …
Appendix 1: UNIX diff Example (cont’d) • UNIX diff results between GO_2005-10-14 and GO_2005-10-15 301345c302881 < <go:is_a rdf:resource="http://www.geneontology.org/go#GO:0005102" /> --- > <go:is_a rdf:resource="http://www.geneontology.org/go#GO:0001664" /> 304465c306001 < <go:definition>Any process that stops, prevents or reduces the rate of … </go:definition> --- > <go:definition>Any process that activates or increases the rate of the … </go:definition> …