KR20220122562A - 서브 그래프 매칭 방법 및 장치 - Google Patents

서브 그래프 매칭 방법 및 장치 Download PDF

Info

Publication number
KR20220122562A
KR20220122562A KR1020220026410A KR20220026410A KR20220122562A KR 20220122562 A KR20220122562 A KR 20220122562A KR 1020220026410 A KR1020220026410 A KR 1020220026410A KR 20220026410 A KR20220026410 A KR 20220026410A KR 20220122562 A KR20220122562 A KR 20220122562A
Authority
KR
South Korea
Prior art keywords
graph
edge
stream
matching
data
Prior art date
Application number
KR1020220026410A
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 경희대학교 산학협력단
Publication of KR20220122562A publication Critical patent/KR20220122562A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Superconductors And Manufacturing Methods Therefor (AREA)

Abstract

서브 그래프 매칭 방법 및 장치가 개시된다. 개시되는 일 실시예에 따른 서브 그래프 매칭 장치는, 복수 개의 그래프 데이터를 획득하고, 획득한 복수 개의 그래프 데이터를 결합하여 하나의 데이터 스트림을 생성하는 직렬화 모듈, 데이터 스트림을 그래프 스트림으로 변환하는 그래프 복원 모듈, 및 그래프 스트림에 대해 기 설정된 서브 그래프 쿼리에 매칭되는 그래프 패턴을 검색하는 매칭 모듈을 포함한다.

Description

서브 그래프 매칭 방법 및 장치{METHOD AND APPARATUS FOR MATCHING SUB GRAPH}
본 발명의 실시예는 서브 그래프 매칭 기술과 관련된다.
그래프는 데이터 관계를 표현하는 방식으로, 그래프 구조에서 각 객체 간의 관계가 간선(edge)으로 표현된다. 여기서, 서브 그래프 매칭(subgraph matching)은 대규모 그래프에서 쿼리 서브 그래프와 매칭되는 그래프 패턴을 찾는 그래프 마이닝(graph mining) 작업 중 하나이다.
최근, RDF(Resource Description Framework)와 같은 그래프 모델을 이용하여 시맨틱 웹에서 데이터를 표현하고 교환하고 있으며, RDF 그래프 데이터의 규모가 기하 급수적으로 증가하고 있다. 따라서, 대규모의 RDF 그래프 데이터를 위한 효율적인 저장 및 쿼리 메커니즘을 개발하는 것이 필수적이다.
이러한 개발 작업에는 정보 변경뿐만 아니라 그래프 마이닝 작업의 결과를 즉시 업데이트하는 것도 포함된다. 그러나, 원본 그래프 데이터에 변경 사항이 발생할 때마다 그래프 마이닝(예를 들어, 서브 그래프 매칭 등) 작업을 다시 수행하는 것은 비효율적이 된다.
공개특허공보 제10-2020-0002027호(2020.01.07)
본 발명의 실시예는 새로 변경된 데이터에 대해서만 서브 그래프 쿼리에 대해 결과를 검색하도록 하여 작업 효율을 높일 수 있는 서브 그래프 매칭 방법 및 장치를 제공하기 위한 것이다.
개시되는 일 실시예에 따른 서브 그래프 매칭 장치는, 복수 개의 그래프 데이터를 획득하고, 획득한 상기 복수 개의 그래프 데이터를 결합하여 하나의 데이터 스트림을 생성하는 직렬화 모듈; 상기 데이터 스트림을 그래프 스트림으로 변환하는 그래프 복원 모듈; 및 상기 그래프 스트림에 대해 기 설정된 서브 그래프 쿼리에 매칭되는 그래프 패턴을 검색하는 매칭 모듈을 포함한다.
상기 직렬화 모듈은, 상기 복수 개의 그래프 데이터 각각에서 간선(Edge) 정보들을 추출하고, 추출한 상기 간선 정보들을 일렬로 연결하여 하나의 데이터 스트림을 생성할 수 있다.
상기 직렬화 모듈은, 상기 하나의 데이터 스트림을 기 설정된 단위의 배치 사이즈(batch size)로 분할하고, 상기 그래프 복원 모듈은, 상기 분할된 각 데이터 스트림의 간선 정보에 기반하여 각 데이터 스트림에 대해 타임 스탬프마다 그래프 데이터를 복원하여 그래프 스트림으로 변환할 수 있다.
상기 매칭 모듈은, 상기 그래프 스트림에서 타임 스탬프의 변화에 따라 변경되는 간선 정보를 추적하여 스트림 그래프 테이블(Stream Graph Table)을 생성하고, 생성한 상기 스트림 그래프 테이블을 이용하여 상기 서브 그래프 쿼리에 매칭되는 그래프 패턴을 검색할 수 있다.
상기 스트림 그래프 테이블(Stream Graph Table)은, 에지 레이블(edge label), 추가 인덱스(added index), 추가 에지(added edges), 제거 인덱스(removed index), 및 제거 에지(removed edges)의 칼럼들을 포함하고, 상기 에지 레이블(edge label)은 그래프의 각 간선의 출발 및 도착 정점 레이블의 집합을 저장하는 칼럼이고, 상기 추가 인덱스(added index)는 그래프에서 추가된 간선의 인덱스를 저장하는 칼럼이며, 상기 추가 에지(added edges)는 각 에지 레이블과 관련된 간선의 집합을 저장하는 칼럼이고, 상기 제거 인덱스(removed index)는 그래프에서 제거된 간선의 인덱스를 저장하는 칼럼이고, 상기 제거 에지(removed edges)는 각 에지 레이블과 관련하여 제거된 간선의 집합을 저장하는 칼럼일 수 있다.
상기 매칭 모듈은, 상기 서브 그래프 쿼리에 대해 순차 간선(sequential edges) 정보를 생성하며, 상기 순차 간선 정보는 서브 그래프 쿼리에 포함된 각 간선들의 시퀀스에 대한 정보로서, 각 간선의 정보는 해당 간선의 출발 정점의 ID와 도착 정점의 ID로 구성될 수 있다.
상기 매칭 모듈은, 상기 스트림 그래프 테이블의 에지 레이블(edge label) 및 추가 에지(added edges) 칼럼에서 상기 서브 그래프 쿼리에 대한 순차 간선 정보와 매칭되는 항목을 검색할 수 있다.
상기 매칭 모듈은, 상기 검색의 결과에 따라 상기 그래프 스트림의 각 타임 스탬프마다 서브 그래프 매칭 결과 테이블을 생성하고, 상기 서브 그래프 매칭 결과 테이블은, 상기 서브 그래프 쿼리의 그래프 패턴과 매칭되는 그래프 패턴에서 각 정점의 ID를 순차적으로 배열한 것일 수 있다.
개시되는 일 실시예에 따른 서브 그래프 매칭 방법은, 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서, 복수 개의 그래프 데이터를 획득하는 단계; 획득한 상기 복수 개의 그래프 데이터를 결합하여 하나의 데이터 스트림을 생성하는 단계; 상기 데이터 스트림을 그래프 스트림으로 변환하는 단계; 및 상기 그래프 스트림에 대해 기 설정된 서브 그래프 쿼리에 매칭되는 그래프 패턴을 검색하는 단계를 포함할 수 있다.
상기 하나의 데이터 스트림을 생성하는 단계는, 상기 복수 개의 그래프 데이터 각각에서 간선(Edge) 정보들을 추출하는 단계; 및 추출한 상기 간선 정보들을 일렬로 연결하여 하나의 데이터 스트림을 생성하는 단계를 포함할 수 있다.
상기 서브 그래프 매칭 방법은, 상기 하나의 데이터 스트림을 기 설정된 단위의 배치 사이즈(batch size)로 분할하는 단계를 더 포함하고, 상기 그래프 스트림으로 변환하는 단계는, 상기 분할된 각 데이터 스트림의 간선 정보에 기반하여 각 데이터 스트림에 대해 타임 스탬프마다 그래프 데이터를 복원하여 그래프 스트림으로 변환할 수 있다.
상기 검색하는 단계는, 상기 그래프 스트림에서 타임 스탬프의 변화에 따라 변경되는 간선 정보를 추적하여 스트림 그래프 테이블(Stream Graph Table)을 생성하는 단계; 및 생성한 상기 스트림 그래프 테이블을 이용하여 상기 서브 그래프 쿼리에 매칭되는 그래프 패턴을 검색하는 단계를 포함할 수 있다.
상기 스트림 그래프 테이블(Stream Graph Table)은, 에지 레이블(edge label), 추가 인덱스(added index), 추가 에지(added edges), 제거 인덱스(removed index), 및 제거 에지(removed edges)의 칼럼들을 포함하고, 상기 에지 레이블(edge label)은 그래프의 각 간선의 출발 및 도착 정점 레이블의 집합을 저장하는 칼럼이고, 상기 추가 인덱스(added index)는 그래프에서 추가된 간선의 인덱스를 저장하는 칼럼이며, 상기 추가 에지(added edges)는 각 에지 레이블과 관련된 간선의 집합을 저장하는 칼럼이고, 상기 제거 인덱스(removed index)는 그래프에서 제거된 간선의 인덱스를 저장하는 칼럼이고, 상기 제거 에지(removed edges)는 각 에지 레이블과 관련하여 제거된 간선의 집합을 저장하는 칼럼일 수 있다.
상기 검색하는 단계는, 상기 서브 그래프 쿼리에 대해 순차 간선(sequential edges) 정보를 생성하는 단계를 더 포함하고, 상기 순차 간선 정보는 서브 그래프 쿼리에 포함된 각 간선들의 시퀀스에 대한 정보로서, 각 간선의 정보는 해당 간선의 출발 정점의 ID와 도착 정점의 ID로 구성될 수 있다.
상기 검색하는 단계는, 상기 스트림 그래프 테이블의 에지 레이블(edge label) 및 추가 에지(added edges) 칼럼에서 상기 서브 그래프 쿼리에 대한 순차 간선 정보와 매칭되는 항목을 검색할 수 있다.
상기 검색하는 단계는, 상기 검색의 결과에 따라 상기 그래프 스트림의 각 타임 스탬프마다 서브 그래프 매칭 결과 테이블을 생성하는 단계를 더 포함하고, 상기 서브 그래프 매칭 결과 테이블은, 상기 서브 그래프 쿼리의 그래프 패턴과 매칭되는 그래프 패턴에서 각 정점의 ID를 순차적으로 배열한 것일 수 있다.
개시되는 실시예에 의하면, 그래프 스트림에 대해 스트림 그래프 테이블을 생성하여 그래프가 업데이트될 때마다 추가 또는 삭제되는 간선에 대한 정보를 저장함으로써, 서브 그래프 쿼리에 대해 이전 서브 그래프 매칭 결과를 기반으로 새로 추가 또는 삭제된 간선에 대한 매칭 결과만을 탐색하면 되는 바, 서브 그래프 매칭 작업 효율을 향상시키면서 업무 로드를 줄일 수 있게 된다.
도 1은 개시되는 일 실시예에서 그래프 스트림을 나타낸 도면
도 2는 개시되는 일 실시예에서 서브 그래프 쿼리가 주어질 때 그래프 패턴 매칭 과정을 나타낸 도면
도 3은 본 발명의 일 실시예에 따른 서브 그래프 매칭 장치를 나타낸 블록도
도 4는 본 발명의 일 실시예에서 직렬화 모듈이 복수 개의 그래프 데이터를 결합하여 하나의 데이터 스트림을 생성하는 상태를 개략적으로 나타낸 도면
도 5는 본 발명의 일 실시예에 따른 스트림 그래프 테이블을 나타낸 도면
도 6은 본 발명의 일 실시예에서 서브 그래프 쿼리(query q)에 대한 순차 간선 정보를 나타낸 도면
도 7은 본 발명의 일 실시예에서 타임 스탬프 t=0에서 서브 그래프 쿼리와 매칭되는 간선 정보를 검색하는 과정을 나타낸 도면
도 8은 본 발명의 일 실시예에서 그래프 스트림이 타임 스탬프 t=0에서 타임 스탬프 t=1로 바뀔 때의 스트림 그래프 테이블을 나타낸 도면
도 9는 본 발명의 일 실시예에서 타임 스탬프 t=1에서 서브 그래프 쿼리와 매칭되는 간선 정보를 검색하는 과정을 나타낸 도면
도 10은 본 발명의 일 실시예에서 그래프 스트림이 타임 스탬프 t=1에서 타임 스탬프 t=2로 바뀔 때의 스트림 그래프 테이블을 나타낸 도면
도 11은 본 발명의 일 실시예에서 타임 스탬프 t=2에서 서브 그래프 쿼리와 매칭되는 간선 정보를 검색하는 과정을 나타낸 도면
도 12는 본 발명의 일 실시예에 따른 서브 그래프 매칭 방법을 나타낸 흐름도
도 13은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
또한, 제1, 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다.
그래프는 G = (V, E)로 나타내며, V는 정점(Vertex)의 집합(즉, V={v1, v2, ??, vn})을 나타내고, E는 간선(Edge)의 집합(즉, E=(e1, e2, ??, en})을 나타낸다. 각 정점에는 정점의 특징이나 정보가 포함될 수 있으며, 이와 유사하게 각 간선에는 간선의 정보와 정점 간의 관계와 같은 정보가 포함될 수 있다. 그리고, 그래프 스트림은 시간에 따라 정점의 삽입과 삭제, 간선의 삽입과 삭제가 계속적으로 발생하는 그래프 이벤트의 흐름이다.
도 1은 개시되는 일 실시예에서 그래프 스트림을 나타낸 도면이다. 도 1을 참조하면, 시간 t=0에서 t=1로 변할 때, 그래프에 정점(A2)이 추가되고 그에 따라 간선(A2, B1)이 추가되며, 시간 t=1에서 t=2로 변할 때, 그래프에 간선(C2, D1)이 삭제된 것을 볼 수 있다. 한편, 이러한 그래프 스트림은 서로 다른 기기(예를 들어, 클라우드 서버, SNS 서버 등)에서 각각 생성될 수 있다. 또한, 각 그래프 스트림은 여러 데이터베이스에 분산 저장될 수 있다.
도 2는 개시되는 일 실시예에서 서브 그래프 쿼리가 주어질 때 그래프 패턴 매칭 과정을 나타낸 도면이다.
도 2를 참조하면, 도 2의 (b)와 같이 서브 그래프 쿼리(Query)가 주어지는 경우, 그래프 스트림의 각 타임 스탬프(t=0, t=1, t=2)에서 서브 그래프 쿼리와 매칭되는 그래프 패턴의 탐색 결과를 나타내었다. 여기서, 매칭은 그래프 패턴이 정확히 일치하는 것뿐만 아니라 대략적으로 일치하는 것도 포함한다.
타임 스탬프 t=0인 경우, 서브 그래프 쿼리와 매칭되는 그래프 패턴의 수는 2개이다. 타임 스탬프 t=1인 경우, 그래프에 정점(A2)이 추가되고 간선(A2, B1)이 추가됨에 따라 서브 그래프 쿼리와 매칭되는 그래프 패턴의 수는 4개로 증가하였다. 타임 스탬프 t=2인 경우, 그래프에 간선(C2, D1)이 삭제됨에 따라 서브 그래프 쿼리와 매칭되는 그래프 패턴의 수는 다시 2개로 감소한 것을 볼 수 있다.
도 3은 본 발명의 일 실시예에 따른 서브 그래프 매칭 장치를 나타낸 블록도이다.
도 3을 참조하면, 서브 그래프 매칭 장치(100)는 직렬화 모듈(102), 그래프 복원 모듈(104), 및 매칭 모듈(106)을 포함할 수 있다. 예시적인 실시예에서, 서브 그래프 매칭 장치(100)는 다중 그래프 스트림 환경에서 서브 그래프 매칭을 수행하기 위한 것일 수 있으나, 이에 한정되는 것은 아니다.
직렬화 모듈(102)은 복수 개의 그래프 데이터를 획득할 수 있다. 여기서, 각 그래프 데이터는 G = (V, E)로 표현되는 그래프일 수 있다. V는 정점(Vertex)의 집합이고, E는 간선(Edge)의 집합이다.
예시적인 실시예에서, 직렬화 모듈(102)은 서로 다른 소스 기기(예를 들어, 데이터베이스 또는 클라우드 서버 등)로부터 복수 개의 그래프 데이터를 병렬적으로 수신할 수 있다. 그러나, 직렬화 모듈(102)이 복수 개의 그래프 데이터를 획득하는 방식이 이에 한정되는 것은 아니다.
직렬화 모듈(102)은 복수 개의 그래프 데이터를 결합하여 하나의 데이터 스트림을 생성할 수 있다. 이때, 직렬화 모듈(102)은 각 그래프 데이터에서 간선(Edge) 정보들을 추출하고, 추출한 간선 정보들을 일렬로 연결하여 하나의 데이터 스트림을 생성할 수 있다.
도 4는 본 발명의 일 실시예에서 직렬화 모듈(102)이 복수 개의 그래프 데이터를 결합하여 하나의 데이터 스트림을 생성하는 상태를 개략적으로 나타낸 도면이다. 도 4를 참조하면, 직렬화 모듈(102)은 서로 다른 3개의 소스 기기로부터 각각 제1 그래프 데이터(G1), 제2 그래프 데이터(G2), 및 제3 그래프 데이터(G3)를 획득할 수 있다.
직렬화 모듈(102)은 제1 그래프 데이터(G1)로부터 제1 간선 정보(e1-e2-e3)를 추출하고, 제2 그래프 데이터(G2)로부터 제2 간선 정보(e4-e5-e6)를 추출하며, 제3 그래프 데이터(G3)로부터 제3 간선 정보(e4-e5-e6)를 추출할 수 있다. 그리고, 직렬화 모듈(102)은 제1 간선 정보, 제2 간선 정보, 및 제3 간선 정보를 연결하여 하나의 데이터 스트림을 생성할 수 있다.
여기서, 각 간선 정보에는 그 특성 상 각 간선과 연관되는 정점의 정보들도 포함된다. 즉, 하나의 간선은 정점의 쌍으로 이루어지므로, 간선 정보에는 해당 간선과 연관되는 정점의 정보도 포함되게 된다.
개시되는 실시예에서는, 직렬화 모듈(102)을 통해 병렬적으로 수신되는 복수 개의 그래프 데이터를 결합하여 하나의 데이터 스트림을 생성하기 때문에, 병렬적으로 수신되는 그래프 데이터에 대한 동기화 문제가 발생하지 않게 된다.
직렬화 모듈(102)은 하나의 데이터 스트림을 기 설정된 단위의 배치 사이즈(batch size)로 분할 할 수 있다. 여기서, 배치 사이즈는 서브 그래프 매칭 장치(100)의 메모리 크기에 따라 결정될 수 있다.
그래프 복원 모듈(104)은 직렬화 모듈(102)에서 분할된 각 데이터 스트림(즉, 배치 사이즈에 대응하는 크기의 데이터 스트림)을 그래프 스트림으로 변환할 수 있다. 즉, 직렬화 모듈(102)에서 분할된 각 데이터 스트림은 간선 정보들만이 연결된 형태이므로, 이를 그래프 구조를 가지는 그래프 스트림으로 복원시킬 수 있다.
그래프 복원 모듈(104)은 분할된 각 데이터 스트림의 간선 정보에 기반하여 각 데이터 스트림을 그래프 스트림으로 변환할 수 있다. 즉, 간선 정보에는 그 특성 상 각 간선과 연관되는 정점의 정보들도 포함되므로, 간선 정보와 정점 정보들을 기반으로 해당 데이터 스트림을 그래프 스트림으로 변환할 수 있다.
그래프 복원 모듈(104)은 각 데이터 스트림에 대해 타임 스태프마다 그래프 데이터를 복원하여 그래프 스트림으로 변환할 수 있다. 변환된 그래프 스트림은 서브 그래프 매칭의 대상이 되는 그래프 스트림으로 업데이트 될 수 있다. 그래프 스트림은 타임 스탬프마다 그에 대응하는 그래프를 포함할 수 있다.
매칭 모듈(106)은 그래프 복원 모듈(104)에서 변환된 그래프 스트림에 대해 기 설정된 서브 그래프 쿼리에 매칭되는 그래프 패턴을 검색할 수 있다.
매칭 모듈(106)은 그래프 스트림에서 타임 스탬프의 변화에 따라 변경(예를 들어, 추가 또는 삭제 등)되는 간선 정보를 추적할 수 있다. 이때, 간선 정보를 추적하기 위해 스트림 그래프 테이블(Stream Graph Table)이 사용될 수 있다. 매칭 모듈(106)은 이전 검색 결과와 변경된 간선 정보를 이용하여 새로운 검색 결과를 출력할 수 있다.
여기서, 스트림 그래프 테이블은 그래프가 변경될 때마다 업데이트되는 그래프의 간선에 대한 정보를 저장하는 테이블일 수 있다. 스트림 그래프 테이블은 그래프에서 추가 또는 삭제되는 간선의 위치를 표시하기 위해 마련될 수 있다.
도 5는 본 발명의 일 실시예에 따른 스트림 그래프 테이블을 나타낸 도면이다. 여기서, 스트림 그래프 테이블은 도 1에 도시된 그래프 스트림에서 t=0인 경우의 그래프에 대한 테이블을 나타내었다.
도 5를 참조하면, 스트림 그래프 테이블은 에지 레이블(edge label), 추가 인덱스(added index), 추가 에지(added edges), 제거 인덱스(removed index), 및 제거 에지(removed edges)의 5개의 칼럼(columns)으로 구성될 수 있다.
에지 레이블edge label)은 그래프의 각 간선의 출발 및 도착 정점 레이블의 집합을 저장하는 칼럼일 수 있다. 즉, 에지 레이블은 각 간선의 출발 정점의 레이블과 도착 정점의 레이블로 이루어질 수 있다. 예를 들어, 에지 레이블이 AB인 경우, 해당 간선(에지)은 A라는 레이블을 갖는 정점을 출발 정점으로 하고 B라는 레이블을 갖는 정점을 도착 정점으로 하는 간선이 된다.
추가 인덱스(added index)는 그래프에서 추가된 간선의 인덱스를 저장하는 칼럼일 수 있다. 여기서, 추가 인덱스의 값이 -1이면 추가된 간선이 업데이트 되지 않았음(즉, 추가된 간선이 없음)을 의미할 수 있다.
추가 에지(added edges)는 각 에지 레이블과 관련된 간선의 집합을 저장하는 칼럼일 수 있다. 이때, 추가 에지는 각 에지 레이블과 관련된 간선의 출발 정점의 ID(해당 정점의 고유번호)와 도착 정점의 ID로 이루어질 수 있다. 예를 들어, 에지 레이블 AB의 경우, AB와 관련된 간선은 1개 이며, 해당 간선은 A라는 레이블을 갖는 정점의 ID인 1과 B라는 레이블을 갖는 정점의 ID인 2로서 (1, 2)로 표현되게 된다.
그리고, 에지 레이블이 BC인 경우, BC와 관련된 간선은 2개이며, 그 중 하나의 간선은 (2, 4)로 표현되는데 이는 B라는 레이블을 갖는 정점의 ID인 2와 C라는 레이블을 갖는 정점의 ID 4로 이루어진다. 그리고, 다른 하나의 간선은 (2, 5)로 표현되는데 이는 B라는 레이블을 갖는 정점의 ID인 2와 C라는 레이블을 갖는 정점의 ID 5로 이루어진다.
제거 인덱스(removed index)는 그래프에서 제거된 간선의 인덱스를 저장하는 칼럼일 수 있다. 여기서, 제거 인덱스의 값이 -1이면 제거된 간선이 업데이트 되지 않았음(즉, 제거된 간선이 없음)을 의미할 수 있다.
제거 에지(removed edges)는 각 에지 레이블과 관련하여 제거된 간선의 집합을 저장하는 칼럼일 수 있다. 제거 에지는 각 에지 레이블과 관련하여 제거된 간선의 출발 정점의 ID와 도착 정점의 ID로 이루어질 수 있다.
한편, 서브 그래프 쿼리가 주어지는 경우, 매칭 모듈(106)은 그래프 스트림에 대한 스트림 그래프 테이블에 기반하여 서브 그래프 쿼리와 매칭되는 간선 정보를 추출할 수 있다.
구체적으로, 서브 그래프 쿼리(query q)가 주어지는 경우, 매칭 모듈(106)은 서브 그래프 쿼리에 대해 순차 간선(sequential edges) 정보를 생성할 수 있다. 여기서, 순차 간선 정보는 서브 그래프 쿼리에 포함된 각 간선들의 시퀀스에 대한 정보로서, 각 간선은 해당 간선의 출발 정점의 ID와 도착 정점의 ID로 구성될 수 있다. 도 6은 본 발명의 일 실시예에서 서브 그래프 쿼리(query q)에 대한 순차 간선 정보를 나타낸 도면이다.
매칭 모듈(106)은 스트림 그래프 테이블의 에지 레이블(edge label) 및 추가 에지(added edges) 칼럼에서 서브 그래프 쿼리(query q)에 대한 순차 간선 정보와 일치하는 항목을 검색할 수 있다. 도 7은 본 발명의 일 실시예에서 타임 스탬프 t=0에서 서브 그래프 쿼리와 매칭되는 간선 정보를 검색하는 과정을 나타낸 도면이다.
도 7을 참조하면, 매칭 모듈(106)은 서브 그래프 쿼리(query q)에 대한 순차 간선 정보 중 간선 (1, 2)와 매칭되는 간선을 그와 대응되는 에지 레이블(edge label) AB의 추가 에지(added edges) 칼럼에서 검색할 수 있다. 그리고, 매칭 모듈(106)은 순차 간선 정보 중 간선 (2, 3)과 매칭되는 간선을 그와 대응되는 에지 레이블(edge label) BB의 추가 에지(added edges) 칼럼에서 검색할 수 있다.
이러한 방식으로 매칭 모듈(106)은 서브 그래프 쿼리(query q)에 대한 순차 간선 정보와 매칭되는 항목을 검색하여 타임 스탬프 t=0에서 서브 그래프 매칭 결과 테이블을 생성할 수 있다. 여기서, 서브 그래프 매칭 결과 테이블은 서브 그래프 쿼리의 그래프 패턴과 매칭되는 그래프 패턴(P1, P2)에서 각 정점의 ID를 순차적으로 배열한 것일 수 있다.
도 8은 본 발명의 일 실시예에서 그래프 스트림이 타임 스탬프 t=0에서 타임 스탬프 t=1로 바뀔 때의 스트림 그래프 테이블을 나타낸 도면이다. 도 8을 참조하면, 타임 스탬프 t=1에서는 에지 레이블(edge label) AB와 관련된 간선이 추가 되었는 바, 에지 레이블(edge label) AB의 추가 에지(added edges) 칼럼에서 해당 간선에 대한 정보 즉 (7,2)를 추가할 수 있다.
도 9는 본 발명의 일 실시예에서 타임 스탬프 t=1에서 서브 그래프 쿼리와 매칭되는 간선 정보를 검색하는 과정을 나타낸 도면이다. 도 9를 참조하면, 매칭 모듈(106)은 타임 스탬프 t=1에서 에지 레이블(edge label) AB의 추가 에지(added edges) 칼럼에 간선 (7,2)가 추가되었으므로, 타임 스탬프 t=0에서 서브 그래프 매칭 결과 테이블에 새로 추가된 간선 (7,2)에 대한 서브 그래프 매칭 결과 테이블를 합성하여 타임 스탬프 t=1에서 서브 그래프 매칭 결과 테이블을 생성할 수 있다. 여기서, 서브 그래프 쿼리와 매칭되는 그래프 패턴(P1, P2, P3, P4)이 4개로 증가한 것을 볼 수 있다.
도 10은 본 발명의 일 실시예에서 그래프 스트림이 타임 스탬프 t=1에서 타임 스탬프 t=2로 바뀔 때의 스트림 그래프 테이블을 나타낸 도면이고, 도 11은 본 발명의 일 실시예에서 타임 스탬프 t=2에서 서브 그래프 쿼리와 매칭되는 간선 정보를 검색하는 과정을 나타낸 도면이다.
도 10 및 도 11을 참조하면, 타임 스탬프 t=2에서 에지 레이블(edge label) CD와 관련된 간선이 제거 되었는 바, 에지 레이블(edge label) CD의 제거 에지(removed edges) 칼럼에 해당 간선에 대한 정보 즉, (5, 6)을 추가할 수 있다.
그리고, 매칭 모듈(106)은 타임 스탬프 t=1에서 서브 그래프 매칭 결과 테이블에 상기 삭제된 간선에 대한 정보 부분을 삭제하여 타임 스탬프 t=2에서 서브 그래프 매칭 결과 테이블을 생성할 수 있다. 여기서, 서브 그래프 쿼리와 매칭되는 그래프 패턴(P1, P3)이 2개로 다시 감소한 것을 볼 수 있다.
개시되는 실시예에 의하면, 그래프 스트림에 대해 스트림 그래프 테이블을 생성하여 그래프가 업데이트될 때마다 추가 또는 삭제되는 간선에 대한 정보를 저장함으로써, 서브 그래프 쿼리에 대해 이전 서브 그래프 매칭 결과를 기반으로 새로 추가 또는 삭제된 간선에 대한 매칭 결과만을 반환하면 되는 바, 서브 그래프 매칭 작업 효율을 향상시키면서 업무 로드를 줄일 수 있게 된다.
본 명세서에서 모듈이라 함은, 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적, 구조적 결합을 의미할 수 있다. 예컨대, 상기 "모듈"은 소정의 코드와 상기 소정의 코드가 수행되기 위한 하드웨어 리소스의 논리적인 단위를 의미할 수 있으며, 반드시 물리적으로 연결된 코드를 의미하거나, 한 종류의 하드웨어를 의미하는 것은 아니다.
도 12는 본 발명의 일 실시예에 따른 서브 그래프 매칭 방법을 나타낸 흐름도이다. 도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
도 12를 참조하면, 서브 그래프 매칭 장치(100)는 복수 개의 그래프 데이터를 병렬적으로 획득할 수 있다(S 101). 이때, 복수 개의 그래프 데이터는 서로 다른 소스 기기로부터 획득할 수 있다.
다음으로, 서브 그래프 매칭 장치(100)는 복수 개의 그래프 데이터를 결합하여 하나의 데이터 스트림을 생성할 수 있다(S 103). 서브 그래프 매칭 장치(100)는 각 그래프 데이터에서 간선(Edge) 정보들을 추출하고, 추출한 간선 정보들을 일렬로 연결하여 하나의 데이터 스트림을 생성할 수 있다.
다음으로, 서브 그래프 매칭 장치(100)는 하나의 데이터 스트림을 기 설정된 단위의 배치 사이즈(batch size)로 분할 할 수 있다(S 105).
다음으로, 서브 그래프 매칭 장치(100)는 분할된 각 데이터 스트림의 간선 정보에 기반하여 분할된 각 데이터 스트림을 그래프 스트림으로 변환할 수 있다(S 107).
다음으로, 서브 그래프 매칭 장치(100)는 그래프 스트림에서 타임 스탬프의 변화에 따라 변경되는 간선 정보를 추적하여 스트림 그래프 테이블을 생성할 수 있다(S 109). 서브 그래프 매칭 장치(100)는 그래프 스트림의 각 타임 스탬프마다 스트림 그래프 테이블을 업데이트할 수 있다.
다음으로, 서브 그래프 매칭 장치(100)는 기 설정된 서브 그래프 쿼리에 대해 순차 간선(sequential edges) 정보를 생성할 수 있다(S 111).
다음으로, 서브 그래프 매칭 장치(100)는 스트림 그래프 테이블의 에지 레이블(edge label) 및 추가 에지(added edges) 칼럼에서 서브 그래프 쿼리(query q)에 대한 순차 간선 정보와 매칭하는 항목을 검색하여 서브 그래프 매칭 결과 테이블을 생성할 수 있다(S 113).
도 13은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경(10)을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술된 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 서브 그래프 매칭 장치(100)일 수 있다.
컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.
이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100 : 서브 그래프 매칭 장치
102 : 직렬화 모듈
104 : 그래프 복원 모듈
106 : 매칭 모듈

Claims (17)

  1. 복수 개의 그래프 데이터를 획득하고, 획득한 상기 복수 개의 그래프 데이터를 결합하여 하나의 데이터 스트림을 생성하는 직렬화 모듈;
    상기 데이터 스트림을 그래프 스트림으로 변환하는 그래프 복원 모듈; 및
    상기 그래프 스트림에 대해 기 설정된 서브 그래프 쿼리에 매칭되는 그래프 패턴을 검색하는 매칭 모듈을 포함하는, 서브 그래프 매칭 장치.
  2. 청구항 1에 있어서,
    상기 직렬화 모듈은,
    상기 복수 개의 그래프 데이터 각각에서 간선(Edge) 정보들을 추출하고, 추출한 상기 간선 정보들을 일렬로 연결하여 하나의 데이터 스트림을 생성하는, 서브 그래프 매칭 장치.
  3. 청구항 2에 있어서,
    상기 직렬화 모듈은, 상기 하나의 데이터 스트림을 기 설정된 단위의 배치 사이즈(batch size)로 분할하고,
    상기 그래프 복원 모듈은, 상기 분할된 각 데이터 스트림의 간선 정보에 기반하여 각 데이터 스트림에 대해 타임 스탬프마다 그래프 데이터를 복원하여 그래프 스트림으로 변환하는, 서브 그래프 매칭 장치.
  4. 청구항 1에 있어서,
    상기 매칭 모듈은,
    상기 그래프 스트림에서 타임 스탬프의 변화에 따라 변경되는 간선 정보를 추적하여 스트림 그래프 테이블(Stream Graph Table)을 생성하고, 생성한 상기 스트림 그래프 테이블을 이용하여 상기 서브 그래프 쿼리에 매칭되는 그래프 패턴을 검색하는, 서브 그래프 매칭 장치.
  5. 청구항 4에 있어서,
    상기 스트림 그래프 테이블(Stream Graph Table)은,
    에지 레이블(edge label), 추가 인덱스(added index), 추가 에지(added edges), 제거 인덱스(removed index), 및 제거 에지(removed edges)의 칼럼들을 포함하고,
    상기 에지 레이블(edge label)은 그래프의 각 간선의 출발 및 도착 정점 레이블의 집합을 저장하는 칼럼이고, 상기 추가 인덱스(added index)는 그래프에서 추가된 간선의 인덱스를 저장하는 칼럼이며, 상기 추가 에지(added edges)는 각 에지 레이블과 관련된 간선의 집합을 저장하는 칼럼이고, 상기 제거 인덱스(removed index)는 그래프에서 제거된 간선의 인덱스를 저장하는 칼럼이고, 상기 제거 에지(removed edges)는 각 에지 레이블과 관련하여 제거된 간선의 집합을 저장하는 칼럼인, 서브 그래프 매칭 장치.
  6. 청구항 5에 있어서,
    상기 매칭 모듈은,
    상기 서브 그래프 쿼리에 대해 순차 간선(sequential edges) 정보를 생성하며,
    상기 순차 간선 정보는 서브 그래프 쿼리에 포함된 각 간선들의 시퀀스에 대한 정보로서, 각 간선의 정보는 해당 간선의 출발 정점의 ID와 도착 정점의 ID로 구성되는, 서브 그래프 매칭 장치.
  7. 청구항 6에 있어서,
    상기 매칭 모듈은,
    상기 스트림 그래프 테이블의 에지 레이블(edge label) 및 추가 에지(added edges) 칼럼에서 상기 서브 그래프 쿼리에 대한 순차 간선 정보와 매칭되는 항목을 검색하는, 서브 그래프 매칭 장치.
  8. 청구항 7에 있어서,
    상기 매칭 모듈은,
    상기 검색의 결과에 따라 상기 그래프 스트림의 각 타임 스탬프마다 서브 그래프 매칭 결과 테이블을 생성하고,
    상기 서브 그래프 매칭 결과 테이블은, 상기 서브 그래프 쿼리의 그래프 패턴과 매칭되는 그래프 패턴에서 각 정점의 ID를 순차적으로 배열한 것인, 서브 그래프 매칭 장치.
  9. 하나 이상의 프로세서들, 및
    상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서,
    복수 개의 그래프 데이터를 획득하는 단계;
    획득한 상기 복수 개의 그래프 데이터를 결합하여 하나의 데이터 스트림을 생성하는 단계;
    상기 데이터 스트림을 그래프 스트림으로 변환하는 단계; 및
    상기 그래프 스트림에 대해 기 설정된 서브 그래프 쿼리에 매칭되는 그래프 패턴을 검색하는 단계를 포함하는, 서브 그래프 매칭 방법.
  10. 청구항 9에 있어서,
    상기 하나의 데이터 스트림을 생성하는 단계는,
    상기 복수 개의 그래프 데이터 각각에서 간선(Edge) 정보들을 추출하는 단계; 및
    추출한 상기 간선 정보들을 일렬로 연결하여 하나의 데이터 스트림을 생성하는 단계를 포함하는, 서브 그래프 매칭 방법.
  11. 청구항 10에 있어서,
    상기 서브 그래프 매칭 방법은,
    상기 하나의 데이터 스트림을 기 설정된 단위의 배치 사이즈(batch size)로 분할하는 단계를 더 포함하고,
    상기 그래프 스트림으로 변환하는 단계는, 상기 분할된 각 데이터 스트림의 간선 정보에 기반하여 각 데이터 스트림에 대해 타임 스탬프마다 그래프 데이터를 복원하여 그래프 스트림으로 변환하는, 서브 그래프 매칭 방법.
  12. 청구항 9에 있어서,
    상기 검색하는 단계는,
    상기 그래프 스트림에서 타임 스탬프의 변화에 따라 변경되는 간선 정보를 추적하여 스트림 그래프 테이블(Stream Graph Table)을 생성하는 단계; 및
    생성한 상기 스트림 그래프 테이블을 이용하여 상기 서브 그래프 쿼리에 매칭되는 그래프 패턴을 검색하는 단계를 포함하는, 서브 그래프 매칭 방법.
  13. 청구항 12에 있어서,
    상기 스트림 그래프 테이블(Stream Graph Table)은,
    에지 레이블(edge label), 추가 인덱스(added index), 추가 에지(added edges), 제거 인덱스(removed index), 및 제거 에지(removed edges)의 칼럼들을 포함하고,
    상기 에지 레이블(edge label)은 그래프의 각 간선의 출발 및 도착 정점 레이블의 집합을 저장하는 칼럼이고, 상기 추가 인덱스(added index)는 그래프에서 추가된 간선의 인덱스를 저장하는 칼럼이며, 상기 추가 에지(added edges)는 각 에지 레이블과 관련된 간선의 집합을 저장하는 칼럼이고, 상기 제거 인덱스(removed index)는 그래프에서 제거된 간선의 인덱스를 저장하는 칼럼이고, 상기 제거 에지(removed edges)는 각 에지 레이블과 관련하여 제거된 간선의 집합을 저장하는 칼럼인, 서브 그래프 매칭 방법.
  14. 청구항 13에 있어서,
    상기 검색하는 단계는,
    상기 서브 그래프 쿼리에 대해 순차 간선(sequential edges) 정보를 생성하는 단계를 더 포함하고,
    상기 순차 간선 정보는 서브 그래프 쿼리에 포함된 각 간선들의 시퀀스에 대한 정보로서, 각 간선의 정보는 해당 간선의 출발 정점의 ID와 도착 정점의 ID로 구성되는, 서브 그래프 매칭 방법.
  15. 청구항 14에 있어서,
    상기 검색하는 단계는,
    상기 스트림 그래프 테이블의 에지 레이블(edge label) 및 추가 에지(added edges) 칼럼에서 상기 서브 그래프 쿼리에 대한 순차 간선 정보와 매칭되는 항목을 검색하는, 서브 그래프 매칭 방법.
  16. 청구항 15에 있어서,
    상기 검색하는 단계는,
    상기 검색의 결과에 따라 상기 그래프 스트림의 각 타임 스탬프마다 서브 그래프 매칭 결과 테이블을 생성하는 단계를 더 포함하고,
    상기 서브 그래프 매칭 결과 테이블은, 상기 서브 그래프 쿼리의 그래프 패턴과 매칭되는 그래프 패턴에서 각 정점의 ID를 순차적으로 배열한 것인, 서브 그래프 매칭 방법.
  17. 비일시적 컴퓨터 판독 가능한 저장 매체(non-transitory computer readable storage medium)에 저장된 컴퓨터 프로그램으로서,
    상기 컴퓨터 프로그램은 하나 이상의 명령어들을 포함하고, 상기 명령어들은 하나 이상의 프로세서들을 갖는 컴퓨팅 장치에 의해 실행될 때, 상기 컴퓨팅 장치로 하여금,
    복수 개의 그래프 데이터를 획득하는 단계;
    획득한 상기 복수 개의 그래프 데이터를 결합하여 하나의 데이터 스트림을 생성하는 단계;
    상기 데이터 스트림을 그래프 스트림으로 변환하는 단계; 및
    상기 그래프 스트림에 대해 기 설정된 서브 그래프 쿼리에 매칭되는 그래프 패턴을 검색하는 단계를 수행하도록 하는, 컴퓨터 프로그램.
KR1020220026410A 2021-02-26 2022-02-28 서브 그래프 매칭 방법 및 장치 KR20220122562A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210026713 2021-02-26
KR1020210026713 2021-02-26

Publications (1)

Publication Number Publication Date
KR20220122562A true KR20220122562A (ko) 2022-09-02

Family

ID=83280868

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220026410A KR20220122562A (ko) 2021-02-26 2022-02-28 서브 그래프 매칭 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20220122562A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200002027A (ko) 2017-04-27 2020-01-07 어드밴스드 마이크로 디바이시즈, 인코포레이티드 최적화된 딥 네트워크 처리를 위한 그래프 매칭

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200002027A (ko) 2017-04-27 2020-01-07 어드밴스드 마이크로 디바이시즈, 인코포레이티드 최적화된 딥 네트워크 처리를 위한 그래프 매칭

Similar Documents

Publication Publication Date Title
US11068439B2 (en) Unsupervised method for enriching RDF data sources from denormalized data
US7822710B1 (en) System and method for data collection
JP2022141957A (ja) メタデータのスナップショット方法及びそのスナップ装置
Dourish No SQL: The shifting materialities of database technology
US10089294B2 (en) Systems and methods for tracking and modifying actions in an action history
KR20200104789A (ko) 데이터 저장 및 조회 방법, 장치, 기기 및 매체
US11210327B2 (en) Syntactic profiling of alphanumeric strings
KR101535813B1 (ko) 복합 이벤트 처리를 위한 이벤트 구성 규칙의 동적 업데이트를 위한 시스템 및 방법
US9201692B2 (en) System and method for generating a plan to complete a task in computing environment
US20210216308A1 (en) Utilizing machine learning to identify and correct differences in application programming interface (api) specifications
CN111611266A (zh) 知识驱动的联合大数据查询和分析平台
CN111611448A (zh) 知识驱动的联合大数据查询和分析平台
CN110633281A (zh) 多类型数据源的处理方法及装置
US10706030B2 (en) Utilizing artificial intelligence to integrate data from multiple diverse sources into a data structure
US10984190B2 (en) Atom-based sensible synchronization for information indexing
JP2022141980A (ja) メタデータのスナップショット方法及びそのスナップ装置
US9330372B2 (en) Generating an improved development infrastructure
CN112970011A (zh) 记录查询优化中的谱系
KR20220122562A (ko) 서브 그래프 매칭 방법 및 장치
CN115495440A (zh) 异构数据库的数据迁移方法、装置、设备及存储介质
CN115048456A (zh) 用户标签的生成方法、装置、计算机设备及可读存储介质
US11966390B2 (en) Virtualization of configuration data
CN114676155A (zh) 代码提示信息的确定方法、数据集的确定方法及电子设备
Gašpar et al. Integrating Two Worlds: Relational and NoSQL
CN113590651A (zh) 一种基于hql的跨集群数据处理系统及方法