KR20170088466A - 그래프 데이터에 대한 부분 매칭 시스템 - Google Patents

그래프 데이터에 대한 부분 매칭 시스템 Download PDF

Info

Publication number
KR20170088466A
KR20170088466A KR1020160008121A KR20160008121A KR20170088466A KR 20170088466 A KR20170088466 A KR 20170088466A KR 1020160008121 A KR1020160008121 A KR 1020160008121A KR 20160008121 A KR20160008121 A KR 20160008121A KR 20170088466 A KR20170088466 A KR 20170088466A
Authority
KR
South Korea
Prior art keywords
query
graph
conditional statement
predicate
conditional
Prior art date
Application number
KR1020160008121A
Other languages
English (en)
Inventor
김홍기
양성권
안진현
이문환
Original Assignee
서울대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서울대학교산학협력단 filed Critical 서울대학교산학협력단
Priority to KR1020160008121A priority Critical patent/KR20170088466A/ko
Publication of KR20170088466A publication Critical patent/KR20170088466A/ko

Links

Images

Classifications

    • G06F17/30958
    • G06F17/30339
    • G06F17/30427

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

그래프 질의에 따라 그래프 데이터를 대상으로 검색하되, 상기 그래프 데이터에 대하여 부분 매칭(partial match)도 지원하여 부분 매칭 결과도 반환하는, 그래프 데이터의 트리플들을 주어(Subject)와, 서술어(Predicate)/목적어(Object)의 2개의 컬럼을 가진 레코드로 테이블에 저장하는 그래프 저장부; 주어를 찾는 그래프 질의를 수신하여, 상기 그래프 질의의 트리플들을 각각 매칭할 서술어/목적어의 조건문으로 변환하고, 변환된 서술어/목적어들로 질의 조건문을 생성하는 질의변환부; 및, 상기 질의 조건문을 만족하는 레코드를 상기 테이블에서 검색하고, 검색된 레코드의 주어를 검색결과로 반환하는 질의처리부를 포함하는 구성을 마련한다.
상기와 같은 그래프 데이터에 대한 부분 매칭 시스템에에 의하여, 그래프 질의에 대하여 부분적으로 일부 매칭되는 결과도 찾아줌으로써, 사용자 입장에서는 반환된 부분 그래프를 참고하여 더 나은 질의를 만들 수 있게 하고, 궁극적으로는 원하는 정보를 찾게 할 수 있다.

Description

그래프 데이터에 대한 부분 매칭 시스템 { A method of partial matching for graph data }
본 발명은 그래프 질의에 따라 그래프 데이터를 대상으로 검색하되, 상기 그래프 데이터에 대하여 부분 매칭(partial match)도 지원하여 부분 매칭 결과도 반환하는, 그래프 데이터에 대한 부분 매칭 시스템에 관한 것이다.
일반적으로, 그래프는 분자 구조, 단백질 상호 작용 네트워크 및 프로그램 의존성과 같은 복합 구조를 모델링하기 위해 널리 사용된다. 그래프의 중요성이 커짐에 따라서, 효율적인 그래프 데이터 관리에 대한 많은 연구가 진행되고 있다[특허문헌 1].
도 1은 데이터베이스 종류별 인기도 변화 추이이다. 그래프 저장소의 경우 2014년부터 인가가 급상승하여 최근에는 가장 인기가 있는 데이터베이스로 자리 잡았다. 본 자료는 데이터베이스 관련 가장 권위 있는 DB엔진닷컴(DB-Engines.com)의 조사 결과이다. 인기도는 시장에서의 구인 공고, 전문 토론 사이트에서의 언급, 구글 검색, SNS상에서의 언급 등으로 측정된다.
한편, 기존 그래프 저장소는 전체 매칭만 지원한다. 사용자가 그래프 질의를 정확히 만든다면 그래프 저장소는 그에 따른 검색 결과도 정확히 찾아 줄 것이다. 하지만, 그래프 질의를 만드는 것은 단순 키워드 나열에 불과한 키워드 질의보다 어렵기 때문에 일반 사용자가 정확한 그래프 질의를 만든다는 것은 현실적으로 어렵다. 정확히 만들어지지 않은 그래프 질의로는 사용자가 원하는 정보를 찾기가 어렵다. 사용자는 그래프 질의를 몇 번 만들어보다가 검색 결과가 계속 안 나올 경우 원하는 정보가 없다고 판단할 수도 있다.
또한, 오히려 지나치게 정확하고 구체적인 질의의 경우 정확히 일치하는 검색 결과가 없을 가능성이 높다. 대상 그래프 데이터에 일부 구체적인 정보가 빠져 있을 경우 질의와 일치하지 않을 수 있다. 이 경우 지나치게 구체적은 부분을 일반화해서 질의를 수정하면 검색 결과를 얻을 수 있다. 하지만, 검색 결과가 전혀 없을 경우 질의의 어느 부분을 수정해야 하는지 알 수 없다.
이와 같이 정확히 일치되는 정보가 없으면 아무 정보도 반환하지 못하는 전체 매칭의 경우, 사용자 입장에서는 더 나은 질의로 수정하는 데에 전혀 도움을 주지 못한다. 따라서 사용자로 하여금 더 정확한 질의로 수정할 수 있게끔 힌트를 주는 방법이 필요하다.
[특허문헌 1] 한국등록특허공보 제10-1556060호(2015.10.01. 공고) [특허문헌 2] 한국공개특허공보 제10-2010-0003084호(2010.01.07. 공개)
[비특허문헌 1] Carroll, Jeremy J., et al. "Jena: implementing the semantic web recommendations." Proceedings of the 13th international World Wide Web conference on Alternate track papers & posters. ACM, 2004.
본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위한 것으로, 그래프 질의에 따라 그래프 데이터를 대상으로 검색하되, 상기 그래프 데이터에 대하여 부분 매칭(partial match)도 지원하여 부분 매칭 결과도 반환하는, 그래프 데이터에 대한 부분 매칭 시스템을 제공하는 것이다.
또한, 본 발명의 목적은 그래프 데이터를 부분 매칭이 가능한 데이터로 변환하여 저장하고, 그래프 질의가 요청되면, 그래프 질의를 상기 부분 매칭이 가능한 데이터에서 검색할 수 있도록 변환하여 질의를 수행하는, 그래프 데이터에 대한 부분 매칭 시스템을 제공하는 것이다.
상기 목적을 달성하기 위해 본 발명은 그래프 데이터에 대한 부분 매칭 시스템에 관한 것으로서, 그래프 데이터의 트리플들을 주어(Subject)와, 서술어(Predicate)/목적어(Object)의 2개의 컬럼을 가진 레코드로 테이블에 저장하는 그래프 저장부; 주어를 찾는 그래프 질의를 수신하여, 상기 그래프 질의의 트리플들을 각각 매칭할 서술어/목적어의 조건문으로 변환하고, 변환된 서술어/목적어들로 질의 조건문을 생성하는 질의변환부; 및, 상기 질의 조건문을 만족하는 레코드를 상기 테이블에서 검색하고, 검색된 레코드의 주어를 검색결과로 반환하는 질의처리부를 포함하는 것을 특징으로 한다.
또, 본 발명은 그래프 데이터에 대한 부분 매칭 시스템에 있어서, 상기 그래프 저장부는 상기 테이블을 문서의 이름과 문서의 내용의 컬럼으로 구성하되, 상기 트리플 중 동일한 주어를 가지는 트리플들에 대하여, 해당 주어를 문서의 이름으로 설정하고, 각 트리플의 서술어 및 목적어를 하나의 문자열로 변환하여 상기 문서의 이름에 대응되는 문서의 내용으로 설정하여 저장하는 것을 특징으로 한다.
또, 본 발명은 그래프 데이터에 대한 부분 매칭 시스템에 있어서, 상기 질의변환부는 상기 그래프 질의의 트리플들 각각에 대하여, 서술어/목적어를 하나의 문자열로 생성하고, 각 문자열과 매칭되는 서술어/목적어 조건문을 만들고, 각 서술어/목적어 조건문을 모두 곱(AND) 연산으로 제1 질의 조건문을 생성하는 것을 특징으로 한다.
또, 본 발명은 그래프 데이터에 대한 부분 매칭 시스템에 있어서, 상기 질의변환부는 상기 제1 질의 조건문 내에 포함된 서술어/목적어 조건문을 완화하여 부분매칭이 가능한 질의 조건문을 생성하되, 상기 서술어/목적어 조건문을 서술어 또는 목적어 중 어느 하나만 만족하도록 하는 조건으로 변환하여 완화하는 것을 특징으로 한다.
또, 본 발명은 그래프 데이터에 대한 부분 매칭 시스템에 있어서, 상기 질의변환부는 상기 서술어/목적어 조건문을 목적어 하나만 만족하도록 하는 조건으로 변환하여 완화된 제2 질의 조건문을 생성하거나, 상기 서술어/목적어 조건문을 서술어 하나만 만족하도록 하는 조건으로 변환하여 완화된 제3 질의 조건문을 생성하는 것을 특징으로 한다.
또, 본 발명은 그래프 데이터에 대한 부분 매칭 시스템에 있어서, 상기 질의변환부는 상기 제1 질의 조건문 내에 포함된 서술어/목적어 조건문 중 일부만을 만족하도록 완화하여 부분매칭이 가능한 제4 질의 조건문을 생성하는 것을 특징으로 한다.
또, 본 발명은 그래프 데이터에 대한 부분 매칭 시스템에 있어서, 상기 질의처리부는 상기 제1 질의 조건문에 대하여 검색 결과가 없으면 상기 제2 질의 조건문으로 검색하고, 상기 제2 질의 조건문으로 검색한 결과가 없으면 상기 제3 질의 조건문으로 검색하고, 상기 제3 질의 조건문으로 검색한 결과가 없으면 상기 제4 질의 조건문으로 검색하는 것을 특징으로 한다.
상술한 바와 같이, 본 발명에 따른 그래프 데이터에 대한 부분 매칭 시스템에 의하면, 그래프 질의에 대하여 부분적으로 일부 매칭되는 결과도 찾아줌으로써, 사용자 입장에서는 반환된 부분 그래프를 참고하여 더 나은 질의를 만들 수 있게 하고, 궁극적으로는 원하는 정보를 찾게 할 수 있는 효과가 얻어진다.
기존의 그래프 저장소는 전체 매칭(exact match)만 지원하지만 본 발명에 따른 그래프 저장소는 부분 매칭(partial match)도 지원한다. 전체 매칭은 사용자로부터 주어진 질의에 정확히 일치하는 부분 그래프만 반환하는 방법이다.
질의에 제약사항이 많을 경우 매칭되는 부분 그래프가 없을 수가 있기 때문에 사용자 입장에서는 원하는 정보를 찾기 위한 아무런 단서도 주어지 않는다는 단점이 있다. 부분 매칭은 일부 일치하는 부분 그래프도 반환하는 방법이다. 사용자 입장에서는 반환된 부분 그래프를 참고하여 더 나은 질의를 만들 수 있기 때문에 궁극적으로는 원하는 정보를 찾을 수 있는 가능성이 더 높다. 본 발명은 특히 링크드 오픈 데이터에 기반한 지식검색 시스템에 활용할 수 있다.
도 1은 그래프 저장소에 대한 인기도 추이를 나타낸 표.
도 2는 본 발명을 실시하기 위한 전체 시스템의 구성을 도시한 도면.
도 3은 본 발명의 실시예에 따른 그래프 질의에 대한 예시도.
도 4는 본 발명의 일실시예에 따른 그래프 데이터에 대한 부분 매칭 시스템의 구성에 대한 블록도.
도 5는 본 발명의 일실시예에 따른 저장할 그래프 데이터에 대한 예시도.
도 6은 본 발명의 일실시예에 따른 도 5의 그래프 데이터를 변환한 데이터에 대한 예시도.
도 7은 본 발명의 일실시예에 따른 그래프 질의에 대한 예시도.
도 8은 본 발명의 일실시예에 따른 다양한 그래프 형태를 도시한 도면.
도 9는 본 발명의 일실시예에 따른 도 5의 실제 그래프 형태를 도시한 도면.
이하, 본 발명의 실시를 위한 구체적인 내용을 도면에 따라서 설명한다.
또한, 본 발명을 설명하는데 있어서 동일 부분은 동일 부호를 붙이고, 그 반복 설명은 생략한다.
먼저, 본 발명을 실시하기 위한 전체 시스템 구성의 일례를 도 2를 참조하여 설명한다.
도 2a 또는 도 2b에서 보는 바와 같이, 본 발명에 따른 그래프 데이터에 대한 부분 매칭 시스템은 네트워크 상의 서버 시스템 또는 컴퓨터 단말 상의 프로그램 시스템으로 실시될 수 있다.
도 1a와 같이, 본 발명의 실시를 위한 전체 시스템의 일례는 사용자 단말(10)과 부분 매칭 시스템 또는 서버(30)로 구성되고 서로 네트워크(20)로 연결된다. 또, 필요한 데이터를 저장하기 위한 데이터베이스(40)를 더 구비할 수 있다.
사용자 단말(10)은 정보 또는 그래픽 데이터를 저장 또는 검색하는 사용자가 이용하는 PC, 노트북, 넷북, 스마트폰, 태블릿PC, 모바일 등의 통상의 컴퓨팅 단말기이다. 사용자가 사용자 단말(10)을 이용하여 부분 매칭 시스템(30)에 접속하여, 그래픽 데이터를 저장하거나 데이터를 검색한다. 사용자 단말(10)은 그래픽 데이터를 저장시키는 관리자에 의해 사용되는 단말일 수 있고, 질의를 통해 데이터를 검색하고자 하는 사용자에 의해 사용되는 단말일 수 있다.
한편, 부분 매칭 시스템(30)은 시용자 단말(10)로부터 그래픽 데이터를 수신하여 저장하거나, 사용자 단말(10)의 검색 또는 질의 요청에 따라 해당 데이터를 검색하여 제공한다.
데이터베이스(40)는 부분 매칭 시스템 또는 서버(30)에서 필요한 데이터를 저장하는 통상의 저장매체로서, 그래픽 데이터 등을 저장한다. 이하에서, 데이터베이스(40) 또는 데이터 저장소(40)라 부르기로 한다.
도 1b와 같이, 본 발명의 실시를 위한 전체 시스템의 다른 예는 컴퓨터 단말(13)에 설치되는 프로그램 형태의 부분 매칭 시스템(30)으로 구성된다. 즉, 부분 매칭 시스템(30)의 각 기능들은 컴퓨터 프로그램으로 구현되어 컴퓨터 단말(13)에 설치되어, 그래픽 데이터를 저장하거나 데이터를 검색하는 작업을 수행한다. 부분 매칭 시스템(30)에서 필요한 데이터들은 컴퓨터 단말(13)의 하드디스크 등 저장공간에 저장되어 이용된다.
다음으로, 본 발명에 따른 그래프 데이터, 그래프 저장소, 및, 그래프 질의 언어에 대하여 설명한다.
먼저, 그래프 데이터에 대하여 설명한다.
그래프는 노드 집합과 간선 집합으로 구성되며 간선은 2개의 노드 쌍으로서 2개의 노드 사이의 연결 관계를 의미한다. 필요에 따라 간선은 추가적으로 레이블(label)을 가질 수 있으며 간선의 특징을 표현한다. 그래프 데이터의 대표적인 예로 RDF (Resource Description Framework) 트리플 데이터가 있다.
RDF 트리플은 주어(Subject), 서술어(Predicate) 그리고 목적어(Object) 등의 3가지 서술 단위로 어떠한 정보를 서술한 것을 가리킨다. 그래프 데이터의 관점에서 보면 주어(Subject)와 목적어(Object)가 노드에 대응되며 트리플 자체 (주어, 서술어, 목적어)가 레이블(label)을 포함한 간선에 해당된다. 즉, 서술어(Predicate)가 레이블(label)에 해당된다.
예를 들어, 튜링(Turing)이 1912년에 태어났다는 사실은 다음과 같이 표현할 수 있다.
<Turing> <bornOn> "1912"
주어(Subject)는 <Turing>, 서술어(Predicate)는 <bornOn> 그리고 목적어(Object)는 "1912"이다. 여기서 "<>" 기호로 묶인 것은 URI (Uniform resource identifier) 문자열을 가리키며, 따옴표로 묶인 것은 문자열, 숫자 등의 기본 데이터 타입을 가리킨다. URI는 특정 객체를 유일하게 식별하기 위한 문자열로써 문자를 나열하는 표준에 따라 기술한다.
주어(Subject)와 서술어(Predicate)에는 반드시 URI가 있어야 한다. 반면 목적어(Object)는 URI 또는 리터럴(literal)이 가능하다. 리터럴(literal)은 문자열, 숫자 등 표현된 그대로 해석돼야 하는 값을 가리킨다. 문자열이 가능하기 때문에 여러 개의 문장으로 구성된 긴 텍스트도 목적어(Object)에 나타날 수 있다.
다음으로, 그래프 저장소에 대하여 설명한다.
그래프 저장소는 그래프 데이터에 대한 삽입, 삭제, 수정, 검색 기능을 제공하는 장치이다. 구체적으로는, 새로운 그래프 데이 터를 저장소에 삽입, 저장소에 저장된 일부 그래프 데이터를 삭제, 그리고 저장소에 저장된 일부 그래프 데이터와 새로운 그래프 데이터가 주어지면 저장소에서 해당 그래프를 삭제하고 새로운 그래프 데이터로 대치하는 수정 기능을 제공한다. 또한, 사용자로부터 주어진 그래프 질의에 매칭되는 부분 그래프를 검색하여 사용자에게 반환하는 기능을 제공한다.
다음으로, 그래프 질의언어에 대하여 설명한다.
그래프 질의언어의 대표적인 예로 스파알(SPARL)이 있다. 스파알(SPARL)은 RDF 데이터에 대한 질의언어로서 특히 시간 질의는 도 3과 같이 표현할 수 있다.
도 3의 예제 질의는 출생일(birthDate)와 사망일(deathDate)이 모두 2000년 1월 1일과 2013년 12월 31일 사이인 사람의 출생지(birthPlace)를 찾는 질의이다. 즉, 2000년 1월 1일과 2013년 12월 31일 사이에 생존한 사람의 출생지를 찾는 질의이다.
SELECT 절(clause)에는 검색 결과에 어떤 정보들이 나타나야 하는지를 명시하고 WHERE 절에는 검색 조건들을 명시한다.
WHERE 절의 각 줄의 3가지 항목으로 구성된 것 (?p <http://dbpedia.org/ontology/birthDate> ?s .) 각각을 트리플 패턴이라고 부른다. ? 표시는 변수를 의미한다. 예를 들어, 첫 번째 트리플 패턴은 서술어(Predicate)가 출생일(birthDate)인 모든 트리플들에 해당한다.
주어(Subject)는 p 변수에 해당되고, 목적어(Object)는 s 변수에 해당한다. 따라서, 1번부터 3번까지의 트리플 패턴을 모두 고려하면 특정 사람(p)의 출생일(birthDate), 사망일(deathDate), 출생지(birthPlace) 각각을 s, e, o 변수에 지정한다. s와 e는 숫자 데이터가 대응될 것이고 o는 장소 데이터가 대응될 것이다. 따라서, 시간 범위 검색을 정의한 필터(FILTER)는 변수 s와 e에 대해서 정의됐다.
다음으로, 본 발명의 일실시예에 따른 그래프 데이터에 대한 부분 매칭 시스템을 도 4를 참조하여 설명한다.
도 4에서 보는 바와 같이, 본 발명에 따른 그래프 데이터에 대한 부분 매칭 시스템(30)은 그래프 데이터를 수신하여 부분매칭을 지원하는 형태로 저장하는 그래프 저장부(31), 그래프 질의를 수신하여 부분 매칭이 가능한 질의로 변환하는 질의변환부(33), 변환된 질의를 처리하는 질의처리부(34), 및, 그래프 데이터 또는 변환된 데이터를 저장하는 그래프 저장소(36)로 구성된다.
바람직하게는, 부분 매칭을 위한 검색 엔진으로서, 문서 검색 엔진인 SiREN을 이용하면 구현할 수 있다.
그래프 저장부(31)는 그래프 데이터를 수신하여, 부분 매칭을 지원하는 형태로 저장한다. 즉, 그래프 데이터를 부분 매칭이 가능한 형태로 변환하여 그래프 저장소(36)에 저장한다. 이하에서 변환된 그래프 데이터를 부분매칭가능 그래프 또는 부분매칭가능 그래프 데이터라 부르기로 한다.
부분 매칭이 가능하도록 그래프 데이터의 각 트리플을 서술어(Predicate)와 목적어(Object)를 하나의 문자열로 연결해서 저장한다. 즉, 주어(Subject)와, 서술어(Predicate)/목적어(Object) 등 2개의 칼럼을 가진 테이블에 저장한다. 이때 S 칼럼의 값은 문서의 이름에 해당하고 PO 칼럼의 값은 해당 문서의 내용에 해당한다. 하나의 문서는 한 개 이상의 PO 값을 내용으로 가진다. 즉, 하나의 S에 n 개의 PO 값들이 대응된다.
도 5의 예를 들어, 보다 구체적으로 설명한다. 도 5는 검색 대상 그래프의 예이다. 노드/간선 레이블/노드의 형태이다.
즉, 국립발레단, 국립무용단, 예술시설 등은 노드이고 간선의 레이블은 type, 소속 등이다. 국립발레단과 예술의전당 사이에 간선이 있고 간선의 레이블은 상주라는 의미이다.
그래프 저장부(31)는 도 5와 같은 그래프 데이터를 입력받아, 도 6과 같은 테이블 형태로 저장한다. 상기 테이블은 S와 PO 등 2개의 칼럼으로 구성된다. S는 주어(Subject)를 의미하며 PO는 서술어(Predicate)와 목적어(Object)의 약자이다. 서술어(Predicate)와 목적어(Object)를 구분자(_)를 기준으로 연결한다. 이 때 S가 같은 트리플들을 하나의 S에 묶어서 저장한다. 즉, S가 국립발레단인 4개의 트리플의 경우 S를 이름으로 하고 4개의 PO를 내용으로 가지는 하나의 문서로 저장한다. 따라서, 도 6에는 총 2개의 문서가 저장됐다.
또한, 질의 변환부(33)에서는 사용자에 의해 주어진 그래프 질의를 부분 매칭이 가능한 그래프 질의로 변환한다. 부분 매칭이 가능한 그래프 질의는 그래프 질의의 각 제약사항이 완화된 것을 가리킨다. 즉, 전체 매칭의 경우 모든 제약사항을 만족시켜야 하지만 부분 매칭이 가능한 그래프 질의는 일부 제약사항이 만족이 안 되도 매칭이 되도록 하는 질의이다.
일례로서, 도 7과 같은 그래프 질의가 있을 수 있다. 도 7의 그래프 질의에서, X는 변수이고 나머지는 상수 노드 또는 간선이다. ?X를 중심으로 전신 간선, 창립년도 간선, 상주 간선, type 간선에 의해 국립무용단, 1974, 예술의전당, 발레단 노드가 각각 연결된 그래프이다. 즉, 상기 그래프 질의는 소속이 국립무용단이고 창립년도가 1974년도 이며 예술의 전당에 상주하고 type이 발레단인 것을 검색하는 질의이다.
질의 변환부(33)는 상기 그래프 질의를 다음 [수학식 1]과 같은 질의로 변환한다. 즉, 앞서 그래프 저장소(36)에 저장된 변환 데이터의 테이블 형식으로 변환한다.
[수학식 1]
PO(전신_국립무용단) AND PO(창립년도_1974) AND PO(상주_예술의전당) AND PO(type_발레단)
즉, 수학식 1의 질의는 PO에 전신_국립무용단, 창립년도_1974, 상주_예술의전당, type_발레단을 모두 포함하는 S를 검색하라는 의미이다. 도 6의 테이블에 수학식 1의 검색을 적용하면, 그 검색 결과는 {국립발레단}이 될 것이다.
이해를 돕기 위해, 그래프 데이터를 테이블 대신 그림 형태로 도 9에 표현했다. 도 6의 그래프 데이터는 도 9의 패턴 1의 그래프와 동일하다.
만약 그래프 저장소(36)에 도 9의 패턴 2와 같은 그래프 데이터가 존재한다고 하자. 이 경우 [수학식 1]을 적용하면 검색 결과는 없다. 왜냐하면 전신_국립무용단이 존재하지 않기 때문이다. 이와 같이 결과가 없는 그래프 질의에 대해서는 본 발명에 따른 부분 매칭 방법을 사용하여 그래프 질의를 변환한다. 즉, 패턴 2, 패턴 3 또는 패턴 4와 같은 그래프 데이터만 있을 경우에도 검색 결과를 얻기 위한 형태로 그래프 질의를 변환한다. 이 때, 패턴 2, 패턴 3, 패턴 4에 대한 그래프 질의는 순차적으로 변환되며 검색 결과를 얻은 경우 변환을 중단한다.
상기 패턴들에 대한 일반적인 그래프 형태가 도 8에 나타나 있다. 그래프 질의와 검색 결과인 부분 그래프는 모두 그래프로 형태는 동일하다. 패턴 1(Pattern1)은 그래프 질의의 예이면서 전체 매칭되는 경우이다. 원은 노드이고 화살표는 노드 사이를 연결하는 간선이고 방향성이 있다. X는 변수 노드, R1, R2, R3, R4 등은 상수 노드 그리고 p1, p2, p3, p4 등은 상수 간선이다.
전체 매칭 방법의 경우, 상수 노드/간선이 정확히 일치하는 부분 그래프를 찾는다. 패턴 1(Pattern 1)과 같은 부분 그래프가 존재한다면 그래프 질의와 부분 그래프가 정확히 일치하기 때문에 전체 매핑 방법에 의해 찾을 수 있다. 하지만, 도 8의 패턴 2(Pattern2)는 찾지 못한다. 왜냐하면 패턴 2(Pattern2)에는 패턴 1(Pattern1)에 있는 p1 간선이 존재하지 않기 때문이다. 패턴 3(Pattern3)의 경우 R1 노드가 존재하지 않는다. 마찬가지로 패턴 4(Pattern4)의 경우 R1 노드와 p1 간선 모두 존재하지 않는다.
앞서의 예를 표현한 그래프가 도 9의 그래프이다. 각 그래프는 그래프 저장소(36)에 저장된 그래프를 표현한 것이다. 4개의 검색 대상 그래프가 존재하는 것이다. 점선으로 된 노드 또는 간선은 존재하지 않는 노드 또는 간선을 나타낸다. 이해를 돕기 위해 표현한 것이다.
질의 변환부(33)는 우선 패턴 2에 해당되는 부분 그래프를 찾기 위해 P 부분을 완화시킨다. [수학식 2]와 같은 그래프 질의로 변환한다. 굵은 글씨체가 추가된 부분이다.
[수학식 2]
(PO(전신_국립무용단) OR PO(*_국립무용단)) AND PO(창립년도_1974) AND PO(상주_예술의전당) AND PO(type_발레단)
PO(전신_국립무용단) 조건은 그대로 남아 있다. PO(*_국립무용단) 조건에서 *는 아무 문자열이나 관계없다라는 의미이다. 즉, _국립무용단으로 끝나는 문자열에 해당한다. 따라서, 소속_국립무용단도 매칭이 된다. 이 2개의 조건은 OR로 연결됐다. 둘 중의 하나만 만족하면 된다. 첫 번째 조건이 만족한다면 패턴 1(Pattern 1) 매칭이 되는 것이고 두 번째 조건이 만족하면 패턴 2(Pattern 2) 매칭이 되는 것이다.
만약 그래도 매칭되는 데이터가 없을 경우 다음 조건(PO(창립년도_1974))을 같은 방법으로 완화시킨다. 이러한 과정을 마지막 조건까지 수행한다.
패턴 2(Pattern 2)에 의한 결과가 없을 경우, 질의 변환부(33)는 패턴 3(Pattern 3)에 해당하는 부분 그래프를 찾기 위한 [수학식 3]과 같은 그래프질의로 변환한다. 굵은 글씨체가 변경된 부분이다.
[수학식 3]
(PO(전신_국립무용단) OR PO(전신_*)) AND PO(창립년도_1974) AND PO(상주_예술의전당) AND PO(type_발레단)
이 경우, 도 9의 패턴 3과 같은 부분 그래프에 매칭이 된다. 왜냐하면, 전신_대한발레단이라는 데이터가 존재하므로 PO(전신_*)조건을 만족한다.
만약 그래도 매칭되는 데이터가 없을 경우, 음 조건(PO(창립년도_1974))을 같은 방법으로 완화시킨다. 이러한 과정을 마지막 조건까지 수행한다.
패턴 3(Pattern 3)에 의한 결과가 없을 경우, 질의 변환부(33)는 패턴 4(Pattern 4)에 해당하는 부분 그래프를 찾기 위한 [수학식 4]와 같은 그래프 질의로 변환한다. 굵은 글씨체가 변경된 부분이다. 패턴 4(Pattern 4)를 위한 그래프 질의 경우 AND를 OR로 완화한다.
[수학식 4]
PO(전신_국립무용단) OR PO(창립년도_1974) AND PO(상주_예술의전당) AND PO(type_발레단)
즉, PO(전신_국립무용단) 조건을 만족을 안 해도 나머지 조건에 맞는다면 매칭이 된다.
이 경우, 도 9의 패턴 4와 같은 부분 그래프에 매칭이 된다. 왜냐하면, 전신_국립무용단이라는 데이터가 존재하지 않지만 나머지 조건은 존재하기 때문이다.
만약 그래도 매칭되는 것이 없을 경우, 두 번째 AND를 OR로 변환하여 매칭해 본다. 이를 마지막 AND까지 시도한다.
다음으로, 질의 처리부(34)는 상기 변환된 그래프 질의를 그래프 저장소(36)에 요청을 하고 그 결과를 취합하여 사용자에게 돌려준다.
상기 수학식 2를 그래프 저장소(36)에 질의하면, 검색 결과는 {GS1, GS2, GS3}가 될 것이다.
이때, 그래프 저장소(36)는 자체 검색 엔진을 구비하여, 질의 처리부(34)의 요청에 따라 검색 결과를 회신한다. 또는 다른 실시예로서, 질의 처리부(34)가 검색 엔진을 구비하여, 그래프 저장소(36)에 저장된 데이터를 대상으로 검색하여 결과를 가져온다.
한편, 질의변환부(33) 및 질의처리부(34)는 우선 전체 매칭 방법(패턴 1(Pattern 1)에 해당)을 수행하고 결과가 있을 경우 그대로 반환하고 종료한다. 하지만 결과가 없을 경우 패턴 2(Pattern 2)를 검색하여 결과가 있을 경우 반환하고 종료한다. 마찬가지로 패턴 3(Pattern 3)와 패턴 4(Pattern 4)에 대해 같은 과정을 수행한다.
본 발명의 효과에 대하여 보다 구체적으로 설명한다.
본 발명에서 제안하는 부분 매칭 방법을 지원하는 그래프 저장소를 이용할 경우, 전체 매칭 방법만 지원하는 그래프 저장소에 비해 사용자가 원하는 정보를 찾을 가능성이 더 높다. 사용자가 작성한 그래프 질의가 지나치게 구체적을 경우 전체 매칭 방법을 사용하면 검색 결과가 없을 수 있다.
반면 부분 매칭 방법의 경우 일부 관련된 검색 결과를 반환한다. 이 결과가 사용자가 궁극적으로 원하는 정보가 아니라 하더라도 이 결과를 참고하여 그래프 질의를 수정할 수 있다. 하지만 검색 결과가 아예 없을 경우 그래프 질의를 수정하기 위한 아무런 정보가 없으므로 더 나은 질의로 수정하는 데에 어려움이 있다. 따라서 부분 매칭 방법을 사용하면 원하는 정보를 좀 더 효율적으로 찾을 수 있게 된다.
따라서 본 발명은 컴퓨터 공학 등과 같은 특정 분야에 특화된 방법론이 아닌 대량의 RDF 트리플 데이터에서 정보를 검색하는 기능을 필요로 하는 모든 발명에 활용될 수 있다. 특히, 웹 검색 엔진, 지식베이스, 데이터베이스 등에 접목이 되면 긍정적인 효과를 발휘할 것으로 기대한다.
이상, 본 발명자에 의해서 이루어진 발명을 상기 실시 예에 따라 구체적으로 설명하였지만, 본 발명은 상기 실시 예에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.
10 : 사용자 단말 20 : 네트워크
30 : 부분 매칭 시스템, 서버 40 : 데이터베이스
31 : 그래프 저장부 33 : 질의변환부
34 : 질의처리부 36 : 그래프 저장소

Claims (7)

  1. 그래프 데이터에 대한 부분 매칭 시스템에 있어서,
    그래프 데이터의 트리플들을 주어(Subject)와, 서술어(Predicate)/목적어(Object)의 2개의 컬럼을 가진 레코드로 테이블에 저장하는 그래프 저장부;
    주어를 찾는 그래프 질의를 수신하여, 상기 그래프 질의의 트리플들을 각각 매칭할 서술어/목적어의 조건문으로 변환하고, 변환된 서술어/목적어들로 질의 조건문을 생성하는 질의변환부; 및,
    상기 질의 조건문을 만족하는 레코드를 상기 테이블에서 검색하고, 검색된 레코드의 주어를 검색결과로 반환하는 질의처리부를 포함하는 것을 특징으로 하는 그래프 데이터에 대한 부분 매칭 시스템.
  2. 제1항에 있어서,
    상기 그래프 저장부는 상기 테이블을 문서의 이름과 문서의 내용의 컬럼으로 구성하되, 상기 트리플 중 동일한 주어를 가지는 트리플들에 대하여, 해당 주어를 문서의 이름으로 설정하고, 각 트리플의 서술어 및 목적어를 하나의 문자열로 변환하여 상기 문서의 이름에 대응되는 문서의 내용으로 설정하여 저장하는 것을 특징으로 하는 그래프 데이터에 대한 부분 매칭 시스템.
  3. 제2항에 있어서,
    상기 질의변환부는 상기 그래프 질의의 트리플들 각각에 대하여, 서술어/목적어를 하나의 문자열로 생성하고, 각 문자열과 매칭되는 서술어/목적어 조건문을 만들고, 각 서술어/목적어 조건문을 모두 곱(AND) 연산으로 제1 질의 조건문을 생성하는 것을 특징으로 하는 그래프 데이터에 대한 부분 매칭 시스템.
  4. 제3항에 있어서,
    상기 질의변환부는 상기 제1 질의 조건문 내에 포함된 서술어/목적어 조건문을 완화하여 부분매칭이 가능한 질의 조건문을 생성하되, 상기 서술어/목적어 조건문을 서술어 또는 목적어 중 어느 하나만 만족하도록 하는 조건으로 변환하여 완화하는 것을 특징으로 하는 그래프 데이터에 대한 부분 매칭 시스템.
  5. 제4항에 있어서,
    상기 질의변환부는 상기 서술어/목적어 조건문을 목적어 하나만 만족하도록 하는 조건으로 변환하여 완화된 제2 질의 조건문을 생성하거나, 상기 서술어/목적어 조건문을 서술어 하나만 만족하도록 하는 조건으로 변환하여 완화된 제3 질의 조건문을 생성하는 것을 특징으로 하는 그래프 데이터에 대한 부분 매칭 시스템.
  6. 제5항에 있어서,
    상기 질의변환부는 상기 제1 질의 조건문 내에 포함된 서술어/목적어 조건문 중 일부만을 만족하도록 완화하여 부분매칭이 가능한 제4 질의 조건문을 생성하는 것을 특징으로 하는 그래프 데이터에 대한 부분 매칭 시스템.
  7. 제6항에 있어서,
    상기 질의처리부는 상기 제1 질의 조건문에 대하여 검색 결과가 없으면 상기 제2 질의 조건문으로 검색하고, 상기 제2 질의 조건문으로 검색한 결과가 없으면 상기 제3 질의 조건문으로 검색하고, 상기 제3 질의 조건문으로 검색한 결과가 없으면 상기 제4 질의 조건문으로 검색하는 것을 특징으로 하는 그래프 데이터에 대한 부분 매칭 시스템.
KR1020160008121A 2016-01-22 2016-01-22 그래프 데이터에 대한 부분 매칭 시스템 KR20170088466A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160008121A KR20170088466A (ko) 2016-01-22 2016-01-22 그래프 데이터에 대한 부분 매칭 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160008121A KR20170088466A (ko) 2016-01-22 2016-01-22 그래프 데이터에 대한 부분 매칭 시스템

Publications (1)

Publication Number Publication Date
KR20170088466A true KR20170088466A (ko) 2017-08-02

Family

ID=59651748

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160008121A KR20170088466A (ko) 2016-01-22 2016-01-22 그래프 데이터에 대한 부분 매칭 시스템

Country Status (1)

Country Link
KR (1) KR20170088466A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109857756A (zh) * 2019-01-14 2019-06-07 中国联合网络通信集团有限公司 数据库报表的生成方法、装置、设备及可读存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109857756A (zh) * 2019-01-14 2019-06-07 中国联合网络通信集团有限公司 数据库报表的生成方法、装置、设备及可读存储介质
CN109857756B (zh) * 2019-01-14 2021-08-17 中国联合网络通信集团有限公司 数据库报表的生成方法、装置、设备及可读存储介质

Similar Documents

Publication Publication Date Title
Bizer et al. Linked data-the story so far
Malyshev et al. Getting the most out of Wikidata: Semantic technology usage in Wikipedia’s knowledge graph
US9147007B2 (en) Query expression conversion apparatus, query expression conversion method, and computer program product
Cannam et al. Linked data and you: Bringing music research software into the semantic web
Bikakis et al. The XML and semantic web worlds: technologies, interoperability and integration: a survey of the state of the art
JP4947245B2 (ja) 情報検索装置、情報検索方法、コンピュータ・プログラムおよびデータ構造
US8219581B2 (en) Method and system for analyzing ordered data using pattern matching in a relational database
US9275144B2 (en) System and method for metadata search
Dodds et al. Linked data patterns
Milosavljević et al. Retrieval of bibliographic records using Apache Lucene
Kaushik et al. Updates for structure indexes
JP2018067279A (ja) データプロパティ認識のための装置、プログラム、及び方法
Sima et al. Semantic integration and enrichment of heterogeneous biological databases
Peinl Semantic web: State of the art and adoption in corporations
Zaniolo et al. User-friendly temporal queries on historical knowledge bases
Sima et al. Bio-SODA UX: enabling natural language question answering over knowledge graphs with user disambiguation
Xin et al. Publishing bibliographic data on the Semantic Web using BibBase
Tallerås From many records to one graph: heterogeneity conflicts in the linked data restructuring cycle.
Thang et al. XML schema automatic matching solution
JP3671765B2 (ja) 異種情報源問い合わせ変換方法及び装置及び異種情報源問い合わせ変換プログラムを格納した記憶媒体
Behkamal et al. Publishing Persian linked data; challenges and lessons learned
KR20170088466A (ko) 그래프 데이터에 대한 부분 매칭 시스템
Kettouch et al. Using semantic similarity for schema matching of semi-structured and linked data
Hauswirth et al. Linked data management
Bing et al. Using aligned ontology model to convert cultural heritage resources into semantic web

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application