KR20220141493A - 링크드 데이터를 처리하는 장치 - Google Patents

링크드 데이터를 처리하는 장치 Download PDF

Info

Publication number
KR20220141493A
KR20220141493A KR1020210047675A KR20210047675A KR20220141493A KR 20220141493 A KR20220141493 A KR 20220141493A KR 1020210047675 A KR1020210047675 A KR 1020210047675A KR 20210047675 A KR20210047675 A KR 20210047675A KR 20220141493 A KR20220141493 A KR 20220141493A
Authority
KR
South Korea
Prior art keywords
symbol probability
key
probability table
linked data
value
Prior art date
Application number
KR1020210047675A
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 KR1020210047675A priority Critical patent/KR20220141493A/ko
Publication of KR20220141493A publication Critical patent/KR20220141493A/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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/325Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3346Query execution using probabilistic model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/36Creation of semantic tools, e.g. ontology or thesauri
    • 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/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques

Abstract

본원에서 개시되는 기술의 일 형태에 따르면, 통신 인터페이스; 및 (a) 상기 통신 인터페이스를 통하여 링크드 데이터의 저장 요청을 수신하는 처리와, (b) 상기 링크드 데이터의 주어, 술어 및 목적어를 기초로 상기 링크드 데이터의 제1 키 및 제1 값을 포함하는 제1 키-값 쌍을 생성하는 처리와, (c) 상기 제1 키를 복수의 심볼 확률 테이블 중에서 상기 제1 키에 대응하는 심볼 확률 테이블을 이용하여 산술 매핑하여, 제1 해시 값을 생성하는 처리와, (d) 상기 제1 해시 값을 복수의 정보 테이블 중에서 상기 제1 키에 대응하는 정보 테이블과 비교하여, 분산 네트워크 내의 복수의 장치 중에서 상기 제1 키-값 쌍을 저장할 장치의 식별 정보를 결정하는 처리(단 상기 복수의 정보 테이블 각각은 상기 복수의 장치의 식별 정보 및 상기 복수의 장치에 대응하는 해시 값 범위를 포함함)를 수행하는 연산 처리부를 포함하는 링크드 데이터를 처리하는 장치가 제공된다.

Description

링크드 데이터를 처리하는 장치{APPARATUS OF PROCESSING LINKED DATA}
본 개시(開示)는 링크드 데이터를 처리하는 장치에 관한 것이다.
링크드 데이터(linked data)는, 시맨틱 쿼리(semantic query)를 통하여 보다 유용하게 사용될 수 있도록 다른 데이터와 상호링크(interlink)된 것인 구조화된 데이터(structured data)를 지칭한다. 예컨대, 데이터를 명명(name) 및 식별하기 위해서 URI(Uniform Resource Identifier)와 같은 네트워크 식별자가 사용되고, 데이터의 룩업(look up), 해석(interpret) 및 역참조(dereference)를 허용하기 위해서 HTTP(hypertext transfer protocol)와 같은 규격이 사용되고, 데이터에 대한 정보를 제공하기 위해서 (예컨대, 쿼리를 제공하기 위해서) RDF(Resource Description Framework) 또는 SPARQL(Simple Protocol and RDF Query Language)과 같은 규격이 사용된다.
링크드 데이터는 예컨대 주어(Subject), 술어(Predicate) 및 목적어(Object) 형식으로 구성될 수 있다.
링크드 데이터를 분산 네트워크(distributed network)에 저장하기 위해서, 분산 해시 테이블(distributed hash table, 이하 "DHT"라고도 지칭됨)이 사용될 수 있다. DHT는 해시 테이블과 유사한 룩업 서비스를 제공하는 분산 시스템을 지칭한다. 해시 테이블에 따르면, 키(key)에 랜덤 해싱(randomizing hash)을 적용하여 고유의 인덱스가 생성되고, 인덱스를 이용하여 값(value)이 저장 및 검색된다. DHT에 따르면, 키-값 쌍(key-value pair)은 중앙 시스템이 아닌 분산 네트워크 내의 노드들에 분산 저장되며, 분산 네트워크 내의 각 노드는 효율적으로 주어진 키와 관련된 값을 저장 및 검색할 수 있다. DHT에 따르면, 부하가 집중되지 않고 분산된다. 따라서, DHT에 따르면 극단적으로 큰 규모의 노드들을 관리하는 것이 가능하다.
예컨대 한국공개특허공보 제10-2019-0004309호(특허문헌 1)는 한국등록특허 제10-1964254호(특허문헌 2)에는, 블록체인(blockchain) 및 DHT를 이용하는 시스템이 개시된다.
그러나 랜덤 해싱을 사용하는 경우, 데이터의 시맨틱(semantic)이 파괴되므로, 완전 일치 검색만이 가능하고, 범위 쿼리(range query), 프레픽스 쿼리(prefix query) 및 개략 쿼리(inexact query)와 같은 복잡한 쿼리가 불가능하다. 복잡한 쿼리를 제공하기 위해서, 랜덤 해싱 대신에 나이브 매핑(Naive mapping)이 사용될 수 있다. 나이브 매핑에 따르면, 미리 데이터의 각 심볼(symbol)들의 해싱 범위가 지정되므로 데이터의 시맨틱이 파괴되지 않으므로 시맨틱이 보존될 수 있고, 복잡한 쿼리가 가능하다. 그러나 나이브 매핑에 따르면, 데이터의 시맨틱의 불균형 분포가 반영되기 때문에, 부하 분산(load balancing)의 문제점이 발생할 수 있다. 즉 분산 네트워크 내의 특정 노드에 과부하가 발생할 수 있다.
일반적으로, 부하 분산의 문제점을 개선하기 위해서, 심볼 각각의 발생 확률에 대한 통계를 미리 산출하여 생성되는 것인 심볼 확률 테이블(symbol probability table, 이하 "SPT"라고도 지칭됨)을 기준으로 매핑을 수행하는 산술 매핑(arithmetic mapping)이 사용될 수 있다. 산술 매핑은 심복 각각에 대한 통계를 미리 산출하여 SPT를 생성하고, 생성된 SPT를 이용하여 키를 분산시킨다. 예컨대 한국등록특허 제10-1089294호에는, 산술 매핑을 이용하여 데이터를 매핑하는 장치 및 방법이 개시된다. 산술 매핑을 이용하는 경우 별도의 부하 분산을 수행하지 않고서도 부하가 분산 네트워크의 각 노드에 분산된다.
그러나 산술 매핑을 링크드 데이터에 적용하는 경우, 부하 분산의 문제가 발생할 수 있다. 예컨대 링크드 데이터가 주어, 술어 및 목적어 형식으로 구성된 경우, SPARQL과 같은 복잡한 쿼리 기능을 사용하려면, 주어, 술어 및 목적어 별로 키-값 해싱(key-value hashing)을 수행해야 한다. 그러나 링크드 데이터의 주어, 술어 및 목적어의 특징이 서로 다르기 때문에, 산술 매핑을 적용하면 부하 분산의 문제가 발생할 수 있다.
1. 한국공개특허공보 제10-2019-0004309호 2. 한국등록특허 제10-1964254호 3. 한국등록특허 제10-1089294호
본원에서 설명되는 기술의 목적은 링크드 데이터의 주어, 술어 및 목적어 별로 서로 다른 SPT를 사용하는 것에 의해서, 극단적으로 큰 규모의 데이터 및 노드를 관리할 수 있고 복잡한 쿼리가 가능하며 부하 분산이 가능한 것인 링크드 데이터를 처리하는 장치를 제공하는 데 있다.
상기 기술적 과제를 달성하기 위하여, 본원에서 설명되는 기술의 일 형태에 따르면, 통신 인터페이스; 및 (a) 상기 통신 인터페이스를 통하여 링크드 데이터의 저장 요청을 수신하는 처리와, (b) 상기 링크드 데이터의 주어, 술어 및 목적어를 기초로 상기 링크드 데이터의 제1 키 및 제1 값을 포함하는 제1 키-값 쌍을 생성하는 처리와, (c) 상기 제1 키를 복수의 심볼 확률 테이블 중에서 상기 제1 키에 대응하는 심볼 확률 테이블을 이용하여 산술 매핑하여, 제1 해시 값을 생성하는 처리와, (d) 상기 제1 해시 값을 복수의 정보 테이블 중에서 상기 제1 키에 대응하는 정보 테이블과 비교하여, 분산 네트워크 내의 복수의 장치 중에서 상기 제1 키-값 쌍을 저장할 장치의 식별 정보를 결정하는 처리(단 상기 복수의 정보 테이블 각각은 상기 복수의 장치의 식별 정보 및 상기 복수의 장치에 대응하는 해시 값 범위를 포함함)를 수행하는 연산 처리부를 포함하는 링크드 데이터를 처리하는 장치가 제공된다.
본원에서 설명되는 기술에 따르면, 링크드 데이터의 주어, 술어 및 목적어 별로 서로 다른 SPT를 사용하는 것에 의해서, 극단적으로 큰 규모의 데이터 및 노드를 관리할 수 있고 복잡한 쿼리가 가능하며 부하 분산이 가능한 것인 링크드 데이터를 처리하는 장치를 제공할 수 있다.
도 1은 본원에서 설명되는 기술의 실시예에 따른 링크드 데이터를 처리하는 장치의 예시적인 구성을 나타내는 도면.
도 2는 본원에서 설명되는 기술의 실시예에 따른 링크드 데이터를 처리하는 장치의 사용 환경을 예시적으로 나타내는 도면.
도 3은 본원에서 설명되는 기술의 실시예에 따른 연산 처리부가 수행하는 처리를 예시적으로 나타내는 도면.
도 4는 본원에서 설명되는 기술의 실시예에 따른 링크드 데이터 및 키-값 쌍의 예시적인 구성을 나타내는 도면.
도 5는 본원에서 설명되는 기술의 실시예에 따른 제1 심볼 확률 테이블의 예시적인 구성을 나타내는 도면.
도 6은 본원에서 설명되는 기술의 실시예에 따른 제1 네임스페이스 프레픽스 심볼 확률 테이블의 예시적인 구성을 나타내는 도면.
도 7은 본원에서 설명되는 기술의 실시예에 따른 제2 심볼 확률 테이블의 예시적인 구성을 나타내는 도면.
도 8은 본원에서 설명되는 기술의 실시예에 따른 제3 심볼 확률 테이블의 예시적인 구성을 나타내는 도면.
도 9는 본원에서 설명되는 기술의 실시예에 따른 키-값 쌍의 해시 값과 제1 정보 테이블의 예시적인 구성을 나타내는 도면.
도 10은 본원에서 설명되는 기술의 실시예에 따른 키-값 쌍의 해시 값과 제2 정보 테이블의 예시적인 구성을 나타내는 도면.
도 11은 본원에서 설명되는 기술의 실시예에 따른 키-값 쌍의 해시 값과 제3정보 테이블의 예시적인 구성을 나타내는 도면.
도 12는 본원에서 설명되는 기술의 실시예에 따른 연산 처리부가 수행하는 다른 처리를 예시적으로 나타내는 도면.
도 13은 본원에서 설명되는 기술의 실시예에 따른 연산 처리부가 수행하는 또 다른 처리를 예시적으로 나타내는 도면.
도 14는 본원에서 설명되는 기술의 실시예에 따른 연산 처리부가 수행하는 또 다른 처리에 있어서, 검색 요청 및 제2 해시 값을 예시적으로 나타내는 도면.
이하, 본원에서 설명되는 기술에 따른 링크드 데이터를 처리하는 장치의 실시예를 첨부한 도면을 참조로 보다 구체적으로 설명한다. 한편 본원에서 설명되는 기술의 실시예를 설명하기 위한 도면들에서, 설명의 편의를 위해서 실제 구성 중 일부만을 도시하거나 일부를 생략하여 도시하거나 변형하여 도시하거나 또는 축척이 다르게 도시될 수 있다. 또한 설명의 편의를 위해서, 실제 수치 범위 또는 실제 값과는 다른 예시적인 수치 범위 또는 예시적인 값을 이용하여, 본원에서 설명되는 기술의 실시예는 설명될 수도 있다.
<실시예>
도 1은 본원에서 설명되는 기술의 실시예에 따른 링크드 데이터를 처리하는 장치의 예시적인 구성을 나타내는 도면이다.
도 1을 참조하면, 링크드 데이터를 처리하는 장치(100)는 통신 인터페이스(110)와, 연산 처리부(130)를 포함한다. 링크드 데이터를 처리하는 장치(100)는 저장부(150)를 더 포함할 수도 있다. 이하 설명의 편의를 위해서, 링크드 데이터를 처리하는 장치(100)는 장치(100)라고 간단하게 지칭될 수 있다.
본원에서 설명되는 기술에 따른 장치(100)는 예컨대 개인용 컴퓨터 및 전용 컴퓨터와 같은 컴퓨팅 장치를 이용하여 구현될 수 있다.
통신 인터페이스(110)는 데이터를 송수신하는 인터페이스를 제공한다. 예컨대 통신 인터페이스(110)는 유무선 통신이 가능한 통신 칩과 같은 반도체 소자에 의해서 구현될 수 있다.
연산 처리부(130)는 예컨대 CPU(central processing unit)와 같은 반도체 소자에 의해서 구현될 수 있다. 연산 처리부(130)는 하나 이상의 프로세서(미도시)를 포함할 수도 있다. 하나 이상의 프로세서 각각은 연산 처리부(130)에 의해서 수행되는 후술하는 처리 중 적어도 일부를 각각 수행하도록 구성될 수 있다.
저장부(150)는 예컨대 반도체 메모리와 같은 반도체 소자에 의해서 구현될 수 있다. 또한 저장부(150)는 연산 처리부(130) 내에 배치되는 메모리에 의해서 구현될 수도 있다.
도 2는 본원에서 설명되는 기술의 실시예에 따른 링크드 데이터를 처리하는 장치의 사용 환경을 예시적으로 나타내는 도면이다
도 2를 참조하면, 노드(100-1) 내지 노드(100-n, n은 2이상의 자연수)는 분산 네트워크(200) 내에 배치된다. 노드(100-1) 내지 노드(100-n) 각각은 장치(100)로서 작용할 수 있다. 링크드 데이터는 분산 네트워크(200) 내에 저장된다. 보다 구체적으로, 링크드 데이터의 하나 이상의 키-값 쌍은 분산 네트워크(200) 내의 노드(100-1) 내지 노드(100-n) 중 적어도 하나에 배치될 수 있다.
대안적으로, 장치(100)는 분산 네트워크(200) 외부에 배치될 수도 있다.
도 3은 본원에서 설명되는 기술의 실시예에 따른 연산 처리부가 수행하는 처리를 예시적으로 나타내는 도면이다.
도 3을 참조하면, 연산 처리부(130)는 우선 통신 인터페이스(110)를 통하여 링크드 데이터의 저장 요청을 수신한다(처리 P110). 장치(100)는 예컨대 분산 네트워크(200) 외부의 장치(미도시)로부터 통신 인터페이스(110)를 통하여 전송되는 링크드 데이터의 저장 요청을 수신할 수 있다. 대안적으로, 예컨대, 노드(100-1)가 장치(100)로서 작용하는 경우, 장치(100)는 예컨대 분산 네트워크(200) 내부의 노드(100-2)로부터 통신 인터페이스(110)를 통하여 전송되는 링크드 데이터의 저장 요청을 수신할 수도 있다.
도 3을 참조하면, 연산 처리부(130)는 링크드 데이터의 주어, 술어 및 목적어를 기초로 링크드 데이터의 제1 키 및 제1 값을 포함하는 제1 키-값 쌍을 생성한다(처리 P120).
전술하듯이, 링크드 데이터는 주어, 술어 및 목적어 형식으로 구성될 수 있다.
도 4는 본원에서 설명되는 기술의 실시예에 따른 링크드 데이터 및 키-값 쌍의 예시적인 구성을 나타내는 도면이다.
도 4를 참조하면, 링크드 데이터는 주어(예컨대 "dbr:Seoul")와, 술어(예컨대 "dbo:populationTotal" 및 "rdf:type")와, 목적어(예컨대, "9733509", "dbo:Place" 및 "dbo:City")를 포함할 수 있다.
링크드 데이터의 주어, 술어 및 목적어를 기초로 조합하면, 주어를 키로 하는 복수의 키-값 쌍(310)과, 술어를 키로 하는 복수의 키-값 쌍(320)과, 목적어를 키로 하는 복수의 키-값 쌍(330)이 생성될 수 있다.
예컨대, 도 4에 도시되듯이, 주어 "dbr:Seoul"를 키로 하며 술어 "dbo:populationTotal" 및 목적어 "9733509"를 값으로 하는 키-값 쌍이 생성될 수 있다. 또한 예컨대 술어 "dbo:populationTotal"를 키로 하며 주어 "dbr:Seoul" 및 목적어 "9733509"를 값으로 하는 키-값 쌍이 생성될 수 있다.
제1 키-값 쌍은 제1 키 및 제1 값을 포함하며, 링크드 데이터의 주어, 술어 및 목적어를 기초로 조합된 복수의 키-값 쌍(310, 320 및 330) 중 어느 하나를 지칭한다.
예컨대 제1 키-값 쌍이 주어 "dbr:Seoul"를 키로 하며 술어 "dbo:populationTotal" 및 목적어 "9733509"를 값으로 하는 키-값 쌍인 경우, 제1 키는 "dbr:Seoul"이고 제1 값은 "dbo:populationTotal" 및 "9733509"이다. 예컨대 제1 키-값 쌍이 술어 "dbo:populationTotal"를 키로 하며 주어 "dbr:Seoul" 및 목적어 "9733509"를 값으로 하는 키-값 쌍인 경우, 제1 키는 "dbo:populationTotal"이고 제1 값은 "dbr:Seoul" 및 "9733509"이다.
한편 도 4에서는 링크드 데이터의 주어, 술어 및 목적어 중 어느 하나가 키로서 지정되고 키를 제외한 부분이 값으로 지정되는 키-값 쌍이 예시되었지만, 본 실시예는 이에 한정되지 않는다. 예컨대, 본 실시예는 링크드 데이터의 주어 및 술어가 키로 지정되고 목적어가 값으로 지정되는 키-값 쌍에 대해서도 적용될 수 있다. 즉 처리 P120은 링크드 데이터의 주어, 술어 및 목적어 중 적어도 하나를 제1 키로 지정하고 제1 키를 제외한 부분을 제1 값으로 지정하는 것에 의해서 제1 키-값 쌍을 생성하는 처리를 포함할 수 있다.
다시 도 3을 참조하면, 연산 처리부(130)는 제1 키를 복수의 심볼 확률 테이블 중에서 제1 키에 대응하는 심볼 확률 테이블을 이용하여 산술 매핑하여, 제1 해시 값을 생성한다(처리 P130).
복수의 심볼 확률 테이블은 주어 심볼 확률 테이블(제1 심볼 확률 테이블이라고도 지칭됨), 술어 심볼 확률 테이블(제2 심볼 확률 테이블이라고도 지칭됨) 및 목적어 심볼 확률 테이블(제3 심볼 확률 테이블이라고도 지칭됨)을 포함할 수 있다.
제1 심볼 확률 테이블은 주어의 심볼 각각의 발생 확률에 대한 통계를 미리 산출하여 생성되며, 제2 심볼 확률 테이블은 술어의 심볼 각각의 발생 확률에 대한 통계를 미리 산출하여 생성되며, 제3 심볼 확률 테이블은 목적어의 심볼 각각의 발생 확률에 대한 통계를 미리 산출하여 생성된다.
도 5는 본원에서 설명되는 기술의 실시예에 따른 제1 심볼 확률 테이블의 예시적인 구성을 나타내는 도면이다.
예컨대, 제1 심볼 확률 테이블은 제1 네임스페이스 프레픽스(prefix) 심볼 확률 테이블(410) 및 제1 스트링 심볼 확률 테이블(420)을 포함할 수 있다.
도 5를 참조하면, 예컨대 주어가 "http://dbpedia.org/resource/Seoul"인 경우, 주어는 제1 네임스페이스 프레픽스, 즉 "http://dbpedia.org/resource/" 및 스트링, 즉 "Seoul"로 구분될 수 있다.
제1 네임스페이스 프레픽스 심볼 확률 테이블(410)은 제1 네임스페이스 프레픽스의 심볼 확률 및 그에 따른 범위를 포함한다.
제1 스트링 심볼 확률 테이블(420)은 주어의 스트링의 심볼 확률 및 그에 따른 범위를 포함한다.
도 5를 참조하면, 예컨대 심볼 중 하나인 제1 네임스페이스 프레픽스가 "http://dbpedia.org/resource/"인 확률은 0.32로 예시되며, 그에 따른 범위는 0.12 내지 0.54로 예시된다. 마찬가지로, 스트링에서 심볼이 "A"인 확률은 0.23으로 예시되며 그에 따른 범위는 0.00 내지 0.23으로 예시된다.
따라서 제1 키가 주어인 경우, 제1 네임스페이스 프레픽스 심볼 확률 테이블(410) 및 제1 스트링 심볼 확률 테이블(420)을 이용하여 제1 해시 값을 생성할 수 있다.
도 6은 본원에서 설명되는 기술의 실시예에 따른 제1 네임스페이스 프레픽스 심볼 확률 테이블의 예시적인 구성을 나타내는 도면이다.
도 5에서는 제1 네임스페이스 프레픽스 심볼 확률 테이블(410)이 제1 네임스페이스 프레픽스의 심볼 확률 및 그에 따른 범위를 포함하는 예를 설명하였지만, 제1 네임스페이스 프레픽스를 제1 도메인 프레픽스 및 제1 디렉토리 프레픽스로 구분하여 생각할 수 있다.
도 6을 참조하면, 제1 네임스페이스 프레픽스 심볼 확률 테이블(410)은 제1 도메인 프레픽스 심볼 확률 테이블(413) 및 제1 디렉토리 프레픽스 심볼 확률 테이블(416)을 포함한다.
즉 제1 네임스페이스 프레픽스인 "http://dbpedia.org/resource/"는 제1 도메인 프레픽스 "http://dbpedia.org" 및 제1 디렉토리 프레픽스 "/resource/"로 더 구분될 수 있다.
따라서 제1 키가 주어인 경우, 처리 P130은 제1 키를 제1 심볼 확률 테이블을 기초로 매핑하여 제1 해시 값을 생성하는 처리를 포함할 수 있다. 보다 구체적으로는, 처리 P130은 제1 키를 예컨대 제1 도메인 프레픽스 심볼 확률 테이블(413), 제1 디렉토리 프레픽스 심볼 확률 테이블(416) 및 제1 스트링 심볼 확률 테이블(420)을 기초로 매핑하여 제1 해시 값을 생성하는 처리를 포함할 수 있다.
도 7은 본원에서 설명되는 기술의 실시예에 따른 제2 심볼 확률 테이블의 예시적인 구성을 나타내는 도면이다.
예컨대, 제2 심볼 확률 테이블은 제2 네임스페이스 프레픽스 심볼 확률 테이블(430) 및 제2 스트링 심볼 확률 테이블(440)을 포함할 수 있다.
도 7을 참조하면, 예컨대 술어가 "http://dbpedia.org/property/populationTotal"인 경우, 술어는 제2 네임스페이스 프레픽스, 즉 "http://dbpedia.org/property/" 및 스트링, 즉 "populationTotal"로 구분될 수 있다.
제2 네임스페이스 프레픽스 심볼 확률 테이블(430)은 제2 네임스페이스 프레픽스의 심볼 확률 및 그에 따른 범위를 포함한다.
제2 스트링 심볼 확률 테이블(440)은 술어의 스트링의 심볼 확률 및 그에 따른 범위를 포함한다.
도 7을 참조하면, 예컨대 심볼 중 하나인 제2 네임스페이스 프레픽스가 "http://dbpedia.org/property/"인 확률은 0.01로 예시되며, 그에 따른 범위는 0.26 내지 0.27로 예시된다. 마찬가지로, 스트링에서 심볼이 "A"인 확률은 0.23으로 예시되며 그에 따른 범위는 0.00 내지 0.23으로 예시된다.
따라서 제1 키가 술어인 경우, 처리 P130은 제1 키를 제2 심볼 확률 테이블을 기초로 매핑하여 제1 해시 값을 생성하는 처리를 포함할 수 있다. 보다 구체적으로는, 처리 P130은 제1 키를 예컨대 제2 네임스페이스 프레픽스 심볼 확률 테이블(430) 및 제2 스트링 심볼 확률 테이블(440)을 기초로 매핑하여 제1 해시 값을 생성하는 처리를 포함할 수 있다.
제2 네임스페이스 프레픽스 심볼 확률 테이블(430) 역시 제2 도메인 프레픽스 심볼 확률 테이블(미도시) 및 제2 디렉토리 프레픽스 심볼 확률 테이블(미도시)을 포함할 수 있다. 그러나 이에 대한 설명은 전술한 도 6을 참조로 한 제1 도메인 프레픽스 심볼 확률 테이블(413) 및 제1 디렉토리 프레픽스 심볼 확률 테이블(416)과 실질적으로 유사하므로 생략한다.
도 8은 본원에서 설명되는 기술의 실시예에 따른 제3 심볼 확률 테이블의 예시적인 구성을 나타내는 도면이다.
예컨대, 제3 심볼 확률 테이블은 제3 스트링 심볼 확률 테이블(450), 시간 심볼 확률 테이블(460), 숫자 심볼 확률 테이블(470) 및 날자 심볼 확률 테이블(480) 중 적어도 하나를 포함할 수 있다. 즉 목적어는 주어 및 술어와 달리 다양한 스트링 및 시간, 숫자 및 날자와 같은 심볼을 포함할 수 있으므로, 제3 심볼 확률 테이블은 제3 스트링 심볼 확률 테이블(450), 시간 심볼 확률 테이블(460), 숫자 심볼 확률 테이블(470) 및 날자 심볼 확률 테이블(480) 중 적어도 하나를 포함할 수 있다.
따라서 제1 키가 목적어인 경우, 처리 P130은 제1 키를 제3 스트링 심볼 확률 테이블(450), 시간 심볼 확률 테이블(460), 숫자 심볼 확률 테이블(470) 및 날자 심볼 확률 테이블(480) 중 적어도 하나를 기초로 매핑하여 제1 해시 값을 생성하는 처리를 포함할 수 있다.
한편 도 5 내지 도 8을 참조로 설명한 제1 네임스페이스 프레픽스 심볼 확률 테이블(410)과 제2 네임스페이스 프레픽스 심볼 확률 테이블(430)은 서로 다를 수 있고, 제1 스트링 심볼 확률 테이블(420), 제2 스트링 심볼 확률 테이블(440) 및 제3 스트링 심볼 확률 테이블(450)은 서로 다를 수 있다.
즉 주어, 술어 및 목적어에서 각각의 네임스페이스 또는 스트링이 사용되는 확률이 다르므로, 제1 네임스페이스 프레픽스 심볼 확률 테이블(410)과 제2 네임스페이스 프레픽스 심볼 확률 테이블(430)은 서로 다를 수 있고, 제1 스트링 심볼 확률 테이블(420), 제2 스트링 심볼 확률 테이블(440) 및 제3 스트링 심볼 확률 테이블(450)은 서로 다를 수 있다.
다시 도 3을 참조하면, 제1 해시 값을 복수의 정보 테이블 중에서 상기 제1 키에 대응하는 정보 테이블과 비교하여, 분산 네트워크(200) 내의 복수의 장치 중에서 상기 제1 키-값 쌍을 저장할 장치의 식별 정보를 결정한다(처리 P140).
도 9 내지 도 11은 본원에서 설명되는 기술의 실시예에 따른 키-값 쌍의 해시 값과 제1 정보 테이블, 제2 정보 테이블 및 제3 정보 테이블의 예시적인 구성을 나타내는 도면이다.
복수의 정보 테이블은 예컨대 제1 정보 테이블(610), 제2 정보 테이블(620) 및 제3 정보 테이블(630)을 포함한다.
복수의 정보 테이블 각각은 예컨대 노드(100-1) 내지 노드(100-n)의 식별 정보 및 노드(100-1) 내지 노드(100-n)에 대응하는 해시 값 범위를 포함한다.
제1 정보 테이블(610)은 주어에 대응하며 제1 심볼 확률 테이블에 의해서 생성되는 해시 값의 분포를 기초로 생성된다.
제2 정보 테이블(620)은 술어에 대응하며 제2 심볼 확률 테이블에 의해서 생성되는 해시 값의 분포를 기초로 생성된다.
제3 정보 테이블(630)은 목적어에 대응하며 제3 심볼 확률 테이블에 의해서 생성되는 해시 값의 분포를 기초로 생성된다.
처리 P140은 제1 키가 주어이면 제1 해시 값을 제1 정보 테이블(610)과 비교하는 처리와, 제1 키가 술어이면 제1 해시 값을 제2 정보 테이블(620)과 비교하는 처리와, 제1 키가 목적어이면 제1 해시 값을 제3 정보 테이블(630)과 비교하는 처리하는 처리를 포함할 수 있다.
도 4에 도시된 주어를 키로 하는 복수의 키-값 쌍(310)과, 술어를 키로 하는 복수의 키-값 쌍(320)과, 목적어를 키로 하는 복수의 키-값 쌍(330) 각각의 해시 값을 기초로 처리 P140을 보다 상세하게 설명한다.
도 9를 참조하면, 주어를 키로 하는 복수의 키-값 쌍(310)을 제1 심볼 확률 테이블[예컨대 제1 도메인 프레픽스 심볼 확률 테이블(413), 제1 디렉토리 프레픽스 심볼 확률 테이블(416) 및 제1 스트링 심볼 확률 테이블(420)]을 기초로 매핑하는 것에 의해서 생성된 복수의 해시 값(510)이 도시된다.
도 9를 참조하면, 주어가 모두 동일한 경우이므로, 제1 키가 주어이면 제1 해시 값은 "1424EF22"이다. 따라서, 제1 해시 값을 제1 정보 테이블(610)과 비교하여, 분산 네트워크(200) 내의 복수의 장치 중에서 제1 키-값 쌍을 저장할 장치의 식별 정보를 결정한다.
예컨대, 도 9를 참조하면, 제1 정보 테이블(610)은 해시 값이 00000000 내지 20000000의 범위이면 노드 식별 정보가 "1", 보다 구체적으로 주소 "143.22.33.13"인 노드에 제1 키-값 쌍을 저장하는 것을 나타낸다. 즉, 제1 키-값 쌍을 저장할 장치의 식별 정보는 예컨대 주소 "143.22.33.13"로 결정될 수 있다.
도 10을 참조하면, 술어를 키로 하는 복수의 키-값 쌍(320)을 제2 심볼 확률 테이블[예컨대 제2 네임스페이스 프레픽스 심볼 확률 테이블(430) 및 제2 스트링 심볼 확률 테이블(440)]을 기초로 매핑하는 것에 의해서 생성된 복수의 해시 값(520)이 도시된다.
도 10의 복수의 해시 값(520)은 술어가 예컨대 "dbo:populationTotal"인 경우 "143ABE33" 이고 "rdf:type"인 경우 "435363DD"이다. 따라서, 제1 키가 술어이면 제1 해시 값은 "143ABE33" 또는 "435363DD"이다.
예컨대, 도 10을 참조하면, 제2 정보 테이블(620)은 해시 값이 00000000 내지 15000000의 범위이면 노드 식별 정보가 "1", 보다 구체적으로 주소 "143.22.33.13"인 노드에 제1 키-값 쌍을 저장하는 것을 나타내고, 해시 값이 15000001 내지 60000000의 범위이면 노드 식별 정보가 "2", 보다 구체적으로 주소 "72.46.134.1"인 노드에 제1 키-값 쌍을 저장하는 것을 나타낸다.
도 10을 참조하면, 예컨대 제1 해시 값이 "143ABE33"이면 제1 키-값 쌍을 저장할 장치의 식별 정보는 예컨대 주소 "143.22.33.13"로 결정될 수 있고, 제1 해시 값이 "435363DD"이면 제1 키-값 쌍을 저장할 장치의 식별 정보는 예컨대 주소 "72.46.134.1"로 결정될 수 있다.
도 11을 참조하면, 목적어를 키로 하는 복수의 키-값 쌍(330)을 제3 심볼 확률 테이블[예컨대 제3 스트링 심볼 확률 테이블(450), 시간 심볼 확률 테이블(460), 숫자 심볼 확률 테이블(470) 및 날자 심볼 확률 테이블(480) 중 적어도 하나]을 기초로 매핑하는 것에 의해서 생성된 복수의 해시 값(530)이 도시된다.
예컨대, 도 11의 복수의 해시 값(530)은 목적어가 "9733509"인 경우 "83583AA4", "dbo:Place"인 경우 "143A64C5", "dbo:City"인 경우 "143A12B5"이다.
따라서, 제1 키가 목적어이면 제1 해시 값은 "83583AA4", "143A64C5" 및 "143A12B5" 중 어느 하나이다.
예컨대, 도 11을 참조하면, 제3 정보 테이블(630)은 해시 값이 00000000 내지 25000000의 범위이면 노드 식별 정보가 "1", 보다 구체적으로 주소 "143.22.33.13"인 노드에 제1 키-값 쌍을 저장하는 것을 나타내고, 해시 값이 81000001 내지 FFFFFFFFF의 범위이면 노드 식별 정보가 "4", 보다 구체적으로 주소 "64.442.434.2 "인 노드에 제1 키-값 쌍을 저장하는 것을 나타낸다.
도 11을 참조하면, 예컨대 제1 해시 값이 "143A64C5" 또는 "143A12B5" 이면 제1 키-값 쌍을 저장할 장치의 식별 정보는 예컨대 주소 "143.22.33.13"로 결정될 수 있고, 제1 해시 값이 "83583AA4"이면 제1 키-값 쌍을 저장할 장치의 식별 정보는 예컨대 주소 "64.442.434.2 "로 결정될 수 있다.
도 12는 본원에서 설명되는 기술의 실시예에 따른 연산 처리부가 수행하는 다른 처리를 예시적으로 나타내는 도면이다.
도 12를 참조하면, 연산 처리부(130)는 처리 P130에서 획득된 식별 정보가 미리 지정된 값이면 제1 키-값 쌍을 저장부(150)에 저장한다(처리 P150). 예컨대, 장치(100)의 식별 정보(보다 구체적으로 주소)가 "143.22.33.13"이고, 처리 P130에서 획득된 식별 정보가 "143.22.33.13"로 동일한 경우, 제1 키-값 쌍은 처리 P150을 통하여 저장부(150)에 저장된다.
도 12를 참조하면, 연산 처리부(130)는 제1 키-값 쌍을 통신 인터페이스(110)를 통하여 처리 P130에서 획득된 식별 정보에 의해서 식별되는 제1 키-값 쌍을 저장할 장치로 전송한다(처리 P160). 예컨대, 장치(100)의 식별 정보(보다 구체적으로 주소)가 "143.22.33.13"이고, 처리 P130에서 획득된 식별 정보가 "83583AA4"이면, 제1 키-값 쌍은 처리 P160을 통하여 주소가 "83583AA4"인 노드로 전송된다.
도 12를 참조하면, 연산 처리부(130)는 복수의 심볼 확률 테이블을 획득할 수 있다(처리 P170). 예컨대 연산 처리부(130)는 분산 네트워크(200) 내부의 장치 또는 외부의 장치로부터 통신 인터페이스(110)를 통하여 제1 심볼 확률 테이블, 제2 심볼 확률 테이블 및 제3 심볼 확률 테이블을 수신할 수 있다.
도 12를 참조하면, 연산 처리부(130)는 데이터를 크롤링(crawling)하여 빅 데이터를 생성하고(처리 P180), 빅 데이터를 기초로 제1 심볼 확률 테이블, 제2 심볼 확률 테이블 및 제3 심볼 확률 테이블을 생성할 수 있다(처리 P190). 예컨대 연산 처리부(130)는 빅 데이터를 기초로 보다 링크드 데이터에 적합하게 제1 심볼 확률 테이블, 제2 심볼 확률 테이블 및 제3 심볼 확률 테이블을 생성할 수 있다. 처리 P190을 통하여 생성된 제1 심볼 확률 테이블, 제2 심볼 확률 테이블 및 제3 심볼 확률 테이블은, 장치(100)가 분산 네트워크(200) 외부에 배치된 경우 분산 네트워크(200) 내의 노드(100-1) 내지 노드(100-n)에 전송될 수 있고, 장치(100)가 분산 네트워크(200) 내부에 배치된 경우 분산 네트워크(200) 내의 노드(100-1) 내지 노드(100-n) 중에서 장치(100)를 제외한 노드들에 전송될 수 있다.
도 12를 참조하면, 연산 처리부(130)는 복수의 정보 테이블을 획득할 수 있다(처리 P200). 예컨대 연산 처리부(130)는 분산 네트워크(200) 내부의 장치 또는 외부의 장치로부터 통신 인터페이스(110)를 통하여 제1 정보 테이블(610), 제2 정보 테이블(620) 및 제3 정보 테이블(630)을 수신할 수 있다.
도 12를 참조하면, 연산 처리부(130)는 빅 데이터, 제1 심볼 확률 테이블, 2 심볼 확률 테이블 및 제3 심볼 확률 테이블을 기초로 제1 정보 테이블(610), 제2 정보 테이블(620) 및 제3 정보 테이블(630)을 생성할 수 있다(처리 P210). 예컨대 연산 처리부(130)는 빅 데이터를 기초로 보다 링크드 데이터에 적합하게 제1 정보 테이블(610), 제2 정보 테이블(620) 및 제3 정보 테이블(630)을 생성할 수 있다.
처리 P210을 통하여 생성된 제1 정보 테이블(610), 제2 정보 테이블(620) 및 제3 정보 테이블(630)은, 장치(100)가 분산 네트워크(200) 외부에 배치된 경우 분산 네트워크(200) 내의 노드(100-1) 내지 노드(100-n)에 전송될 수 있고, 장치(100)가 분산 네트워크(200) 내부에 배치된 경우 분산 네트워크(200) 내의 노드(100-1) 내지 노드(100-n) 중에서 장치(100)를 제외한 노드들에 전송될 수 있다.
도 13은 본원에서 설명되는 기술의 실시예에 따른 연산 처리부가 수행하는 또 다른 처리를 예시적으로 나타내는 도면이다. 도 14는 본원에서 설명되는 기술의 실시예에 따른 연산 처리부가 수행하는 또 다른 처리에 있어서, 검색 요청 및 제2 해시 값을 예시적으로 나타내는 도면이다.
도 13을 참조하면, 연산 처리부(130)는 우선 통신 인터페이스(110)를 통하여 제2 키를 포함하는 검색 요청을 수신한다(처리 P310).
도 14를 참조하면 예컨대 검색 요청(550)은 주어 "dbr:Seoul"을 제2 키로 하는 검색 요청과 술어 "dbo:populationTotal"를 제2 키로 하는 검색 요청을 포함할 수 있다. 연산 처리부(130)는 예컨대 분산 네트워크(200) 외부의 장치(미도시) 또는 분산 네트워크(200) 내부의 노드(100-1) 내지 노드(100-n) 중에서 장치(100)를 제외한 노드로부터 통신 인터페이스(110)를 통하여 전송되는 검색 요청을 수신할 수 있다.
도 13을 참조하면, 연산 처리부(130)는 제2 키를 복수의 심볼 확률 테이블 중에서 제2 키에 대응하는 심볼 확률 테이블을 이용하여 산술 매핑하여, 제2 해시 값을 생성한다(처리 P320).
예컨대, 제2 키가 주어 "dbr:Seoul"인 경우, 제2 키인 "dbr:Seoul"를 제2 키에 대응하는 심볼 확률 테이블, 즉 전술한 제1 심볼 확률 테이블을 기초로 산술 매핑하여, 제2 해시 값(560)을 생성한다.
예컨대, 제2 키가 술어 "dbo:populationTotal"인 경우, 제2 키인 "dbo:populationTotal"를 제2 키에 대응하는 심볼 확률 테이블, 즉 전술한 제2 심볼 확률 테이블을 기초로 산술 매핑하여, 제2 해시 값(570)을 생성한다.
도 13을 참조하면, 연산 처리부(130)는 처리 P320을 통하여 생성된 제2 해시 값을 복수의 정보 테이블 중에서 제2 키에 대응하는 정보 테이블과 비교하여, 분산 네트워크(200) 내의 복수의 장치 중에서 검색 요청에 대응하는 결과값이 저장된 장치의 식별 정보를 결정한다(처리 P330).
제2 키가 주어 "dbr:Seoul"인 경우, 제2 해시 값 "1424EF22"(560)이 처리 P320을 통하여 생성된다. 이를 제2 키에 대응하는 정보 테이블, 즉 제2 키가 주어 "dbr:Seoul"인 경우에는 제1 정보 테이블(610)과 비교한다. 도 14를 참조하면, 제1 정보 테이블(610)은 해시 값이 00000000 내지 20000000의 범위이면 노드 식별 정보가 "1", 보다 구체적으로 주소 "143.22.33.13"인 노드에 검색 요청에 대응하는 결과값이 저장되는 것을 나타낸다. 즉, 검색 요청에 대응하는 결과값이 저장된 장치의 식별 정보는 예컨대 주소 "143.22.33.13"로 결정될 수 있다.
제2 키가 술어 "dbo:populationTotal"인 경우인 경우, 제2 해시 값 "143ABE33"(570)이 처리 P320을 통하여 생성된다. 이를 제2 키에 대응하는 정보 테이블, 즉 제2 키가 술어 "dbo:populationTotal"인 경우인 경우에는 제2 정보 테이블(620)과 비교한다. 도 14를 참조하면, 제2 정보 테이블(620)은 해시 값이 00000000 내지 15000000의 범위이면 노드 식별 정보가 "1", 보다 구체적으로 주소 "143.22.33.13"인 노드에 검색 요청에 대응하는 결과값이 저장되는 것을 나타낸다. 즉, 검색 요청에 대응하는 결과값이 저장된 장치의 식별 정보는 예컨대 주소 "143.22.33.13"로 결정될 수 있다.
도 13을 참조하면, 연산 처리부(130)는 처리 P330에서 획득된 식별 정보가 미리 지정된 값이면 검색 요청에 대응하는 결과값을 저장부(130)로부터 판독하고, 판독된 결과값을 검색 요청을 송신한 장치로 통신 인터페이스(110)를 통하여 전송할 수 있다(처리 P340). 예컨대, 장치(100)의 식별 정보(보다 구체적으로 주소)가 "143.22.33.13"이고, 처리 P330에서 획득된 식별 정보가 "143.22.33.13"로 동일한 경우, 검색 요청에 대응하는 결과값은 저장부(130)에 저장된 것을 나타낸다. 따라서, 연산 처리부(130)는 검색 요청에 대응하는 결과값을 저장부(130)로부터 판독하고, 판독된 결과값을 검색 요청을 송신한 장치로 통신 인터페이스(110)를 통하여 전송한다.
도 13을 참조하면, 연산 처리부(130)는 검색 요청을 통신 인터페이스(110)를 통하여 처리 P330에서 획득된 상기 식별 정보에 의해서 식별되는 것인 검색 요청에 대응하는 결과값이 저장된 장치로 전송할 수 있다(처리 P350). 예컨대, 장치(100)의 식별 정보(보다 구체적으로 주소)가 "143.22.33.13"이고, 처리 P330에서 획득된 식별 정보가 "72.46.134.1"인 경우, 검색 요청에 대응하는 결과값은 식별 정보(보다 구체적으로 주소)가 "72.46.134.1"인 노드에 저장된 것을 나타낸다. 따라서, 연산 처리부(130)는 검색 요청을 통신 인터페이스(110)를 통하여 식별 정보(보다 구체적으로 주소)가 "72.46.134.1"인 노드로 전송할 수 있다.
<다른 실시예>
비록 본원에서 설명되는 기술의 실시예가 구체적으로 설명되었지만 이는 단지 본원에서 설명되는 기술을 예시적으로 설명한 것에 불과한 것으로, 본원에서 설명되는 기술이 속하는 기술 분야에서 통상의 지식을 가지는 자라면 본원에서 설명되는 기술의 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 변형이 가능할 것이다.
예컨대, 본원에서 설명되는 기술은 링크드 데이터를 처리하는 방법에 적용될 수도 있다.
본원에서 설명되는 기술에 따른 링크드 데이터를 처리하는 방법은, (a) 통신 인터페이스를 통하여 링크드 데이터의 저장 요청을 수신하는 단계와, (b) 상기 링크드 데이터의 주어, 술어 및 목적어를 기초로 상기 링크드 데이터의 제1 키 및 제1 값을 포함하는 제1 키-값 쌍을 생성하는 단계와, (c) 상기 제1 키를 복수의 심볼 확률 테이블 중에서 상기 제1 키에 대응하는 심볼 확률 테이블을 이용하여 산술 매핑하여, 제1 해시 값을 생성하는 단계와, (d) 상기 제1 해시 값을 복수의 정보 테이블 중에서 상기 제1 키에 대응하는 정보 테이블과 비교하여, 분산 네트워크 내의 복수의 장치 중에서 상기 제1 키-값 쌍을 저장할 장치의 식별 정보를 결정하는 단계를 포함할 수 있다.
본원에서 설명되는 기술에 따른 링크드 데이터를 처리하는 장치의 다른 특징들 역시 본원에서 설명되는 기술에 따른 링크드 데이터를 처리하는 방법에서도 마찬가지로 적용될 수 있다.
따라서 본 명세서에 설명된 실시예들은 본원에서 설명되는 기술을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본원에서 설명되는 기술의 사상과 범위가 한정되는 것은 아니다. 본원에서 설명되는 기술의 권리 범위는 아래의 청구범위에 의해 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술은 본원에서 설명되는 기술의 권리 범위에 포함되는 것으로 해석되어야 할 것이다.
본원에서 설명되는 기술에 따르면, 링크드 데이터의 주어, 술어 및 목적어 별로 서로 다른 SPT를 사용하는 것에 의해서, 극단적으로 큰 규모의 데이터 및 노드를 관리할 수 있고 복잡한 쿼리가 가능하며 부하 분산이 가능한 것인 링크드 데이터를 처리하는 장치를 제공할 수 있다.
100: 링크드 데이터를 처리하는 장치
110: 통신 인터페이스 130: 연산 처리부
150: 저장부 200: 분산 네트워크
310 내지 330: 키-값 쌍
410: 제1 네임스페이스 프레픽스 심볼 확률 테이블
420: 제1 스트링 심볼 확률 테이블
430: 제2 네임스페이스 프레픽스 심볼 확률 테이블
440: 제2 스트링 심볼 확률 테이블
450: 제3 스트링 심볼 확률 테이블
610: 제1 정보 테이블 620: 제2 정보 테이블
630: 제3 정보 테이블

Claims (16)

  1. 통신 인터페이스;
    (a) 상기 통신 인터페이스를 통하여 링크드 데이터의 저장 요청을 수신하는 처리와, (b) 상기 링크드 데이터의 주어, 술어 및 목적어를 기초로 상기 링크드 데이터의 제1 키 및 제1 값을 포함하는 제1 키-값 쌍을 생성하는 처리와, (c) 상기 제1 키를 복수의 심볼 확률 테이블 중에서 상기 제1 키에 대응하는 심볼 확률 테이블을 이용하여 산술 매핑하여, 제1 해시 값을 생성하는 처리와, (d) 상기 제1 해시 값을 복수의 정보 테이블 중에서 상기 제1 키에 대응하는 정보 테이블과 비교하여, 분산 네트워크 내의 복수의 장치 중에서 상기 제1 키-값 쌍을 저장할 장치의 식별 정보를 결정하는 처리(단 상기 복수의 정보 테이블 각각은 상기 복수의 장치의 식별 정보 및 상기 복수의 장치에 대응하는 해시 값 범위를 포함함)를 수행하는 연산 처리부
    를 포함하는 링크드 데이터를 처리하는 장치.
  2. 제1항에 있어서,
    상기 처리 (b)는, (b-1) 상기 링크드 데이터의 상기 주어, 상기 술어 및 상기 목적어 중 적어도 하나를 상기 제1 키로 지정하고 상기 제1 키를 제외한 부분을 상기 제1 값으로 지정하는 것에 의해서 상기 제1 키-값 쌍을 생성하는 처리를 포함하는 것인 링크드 데이터를 처리하는 장치.
  3. 제1항에 있어서,
    상기 복수의 심볼 확률 테이블은 상기 주어에 대응하는 제1 심볼 확률 테이블, 상기 술어에 대응하는 제2 심볼 확률 테이블 및 상기 목적어에 대응하는 제3 심볼 확률 테이블을 포함하는 것이고,
    상기 복수의 정보 테이블은,
    상기 주어에 대응하며 상기 제1 심볼 확률 테이블에 의해서 생성되는 해시 값의 분포를 기초로 생성되는 제1 정보 테이블;
    상기 술어에 대응하며 상기 제2 심볼 확률 테이블에 의해서 생성되는 해시 값의 분포를 기초로 생성되는 제2 정보 테이블; 및
    상기 목적어에 대응하며 상기 제3 심볼 확률 테이블에 의해서 생성되는 해시 값의 분포를 기초로 생성되는 제3 정보 테이블
    을 포함하는 것인 링크드 데이터를 처리하는 장치.
  4. 제3항에 있어서,
    상기 제1 심볼 확률 테이블은 제1 네임스페이스 프레픽스(prefix) 심볼 확률 테이블 및 제1 스트링 심볼 확률 테이블을 포함하고,
    상기 제2 심볼 확률 테이블은 제2 네임스페이스 프레픽스 심볼 확률 테이블 및 제2 스트링 심볼 확률 테이블을 포함하고,
    상기 제3 심볼 확률 테이블은 제3 스트링 심볼 확률 테이블, 시간 심볼 확률 테이블, 숫자 심볼 확률 테이블 및 날자 심볼 확률 테이블 중 적어도 하나를 포함하는 것인 링크드 데이터를 처리하는 장치.
  5. 제4항에 있어서,
    상기 제1 네임스페이스 프레픽스 심볼 확률 테이블은 제1 도메인 프레픽스 심볼 확률 테이블 및 제1 디렉토리 프레픽스 심볼 확률 테이블을 포함하는 것인 링크드 데이터를 처리하는 장치.
  6. 제4항에 있어서,
    상기 제1 네임스페이스 프레픽스 심볼 확률 테이블과 상기 제2 네임스페이스 프레픽스 심볼 확률 테이블은 서로 다른 것이고,
    상기 제1 스트링 심볼 확률 테이블, 상기 제2 스트링 심볼 확률 테이블, 상기 제3 스트링 심볼 확률 테이블은 서로 다른 것인 링크드 데이터를 처리하는 장치.
  7. 제3항에 있어서,
    상기 처리 (c)는, (c-1) 상기 제1 키가 상기 주어이면 상기 제1 키를 상기 제1 심볼 확률 테이블을 기초로 매핑하여 상기 제1 해시 값을 생성하는 처리와, (c-2) 상기 제1 키가 상기 술어이면 상기 제1 키를 상기 제2 심볼 확률 테이블을 기초로 매핑하여 상기 제1 해시 값을 생성하는 처리와, (c-3) 상기 제1 키가 상기 목적어이면 상기 제1 키를 상기 제3 심볼 확률 테이블을 기초로 매핑하여 상기 제1 해시 값을 생성하는 처리를 포함하고,
    상기 처리 (d)는, (d-1) 상기 제1 키가 상기 주어이면 상기 제1 해시 값을 상기 제1 정보 테이블과 비교하는 처리와, (d-2) 상기 제1 키가 상기 술어이면 상기 제1 해시 값을 상기 제2 정보 테이블과 비교하는 처리와, (d-3) 상기 제1 키가 상기 목적어이면 상기 제1 해시 값을 상기 제3 정보 테이블과 비교하는 처리하는 처리를 포함하는 것인 링크드 데이터를 처리하는 장치.
  8. 제1항에 있어서,
    저장부(storage)를 더 포함하고,
    상기 연산 처리부는, (e) 상기 처리 (d)에서 획득된 상기 식별 정보가 미리 지정된 값이면 상기 제1 키-값 쌍을 상기 저장부에 저장하는 처리
    를 더 수행하는 것인 링크드 데이터를 처리하는 장치.
  9. 제1항에 있어서,
    상기 연산 처리부는, (f) 상기 제1 키-값 쌍을 상기 통신 인터페이스를 통하여 상기 처리 (d)에서 획득된 상기 식별 정보에 의해서 식별되는 상기 제1 키-값 쌍을 저장할 상기 장치로 전송하는 처리
    를 더 수행하는 것인 링크드 데이터를 처리하는 장치.
  10. 제1항에 있어서,
    상기 연산 처리부는, (g) 상기 복수의 심볼 확률 테이블을 획득하는 처리
    를 더 수행하는 것인 링크드 데이터를 처리하는 장치.
  11. 제3항에 있어서,
    상기 연산 처리부는, (h) 데이터를 크롤링(crawling)하여 빅 데이터를 생성하는 처리와, (i) 상기 빅 데이터를 기초로 상기 제1 심볼 확률 테이블, 상기 제2 심볼 확률 테이블 및 상기 제3 심볼 확률 테이블을 생성하는 처리
    를 더 수행하는 것인 링크드 데이터를 처리하는 장치.
  12. 제1항에 있어서,
    상기 연산 처리부는, (j) 상기 복수의 정보 테이블을 획득하는 처리
    를 더 수행하는 것인 링크드 데이터를 처리하는 장치.
  13. 제11항에 있어서,
    상기 연산 처리부는, (k) 상기 빅 데이터, 상기 제1 심볼 확률 테이블, 상기 제2 심볼 확률 테이블 및 상기 제3 심볼 확률 테이블을 기초로 상기 제1 정보 테이블, 상기 제2 정보 테이블 및 상기 제3 정보 테이블을 생성하는 처리
    를 더 수행하는 것인 링크드 데이터를 처리하는 장치.
  14. 제1항에 있어서,
    상기 연산 처리부는,
    (l) 상기 통신 인터페이스를 통하여 제2 키를 포함하는 검색 요청을 수신하는 처리와, (m) 상기 제2 키를 상기 복수의 심볼 확률 테이블 중에서 상기 제2 키에 대응하는 심볼 확률 테이블을 이용하여 산술 매핑하여, 제2 해시 값을 생성하는 처리와, (n) 상기 제2 해시 값을 상기 복수의 정보 테이블 중에서 상기 제2 키에 대응하는 정보 테이블과 비교하여, 상기 분산 네트워크 내의 상기 복수의 장치 중에서 상기 검색 요청에 대응하는 결과값이 저장된 장치의 식별 정보를 결정하는 처리
    를 더 수행하는 것인 링크드 데이터를 처리하는 장치.
  15. 제14항에 있어서,
    상기 결과값을 저장하는 저장부를 더 포함하고,
    상기 연산 처리부는, (o) 상기 처리 (n)에서 획득된 상기 식별 정보가 미리 지정된 값이면 상기 결과값을 상기 저장부로부터 판독하고, 상기 결과값을 상기 검색 요청을 송신한 장치로 상기 통신 인터페이스를 통하여 전송하는 처리
    를 더 수행하는 것인 링크드 데이터를 처리하는 장치.
  16. 제14항에 있어서,
    상기 연산 처리부는, (p) 상기 검색 요청을 상기 통신 인터페이스를 통하여 상기 처리 (n)에서 획득된 상기 식별 정보에 의해서 식별되는 것인 상기 검색 요청에 대응하는 상기 결과값이 저장된 상기 장치로 전송하는 처리
    를 더 수행하는 것인 링크드 데이터를 처리하는 장치.
KR1020210047675A 2021-04-13 2021-04-13 링크드 데이터를 처리하는 장치 KR20220141493A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210047675A KR20220141493A (ko) 2021-04-13 2021-04-13 링크드 데이터를 처리하는 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210047675A KR20220141493A (ko) 2021-04-13 2021-04-13 링크드 데이터를 처리하는 장치

Publications (1)

Publication Number Publication Date
KR20220141493A true KR20220141493A (ko) 2022-10-20

Family

ID=83804999

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210047675A KR20220141493A (ko) 2021-04-13 2021-04-13 링크드 데이터를 처리하는 장치

Country Status (1)

Country Link
KR (1) KR20220141493A (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101089294B1 (ko) 2010-02-09 2011-12-05 한국과학기술원 구조적 p2p 네트워크를 위한 데이터 매핑 방법 및 장치
KR20190004309A (ko) 2016-04-29 2019-01-11 엔체인 홀딩스 리미티드 블록체인 iot장치를 위한 동작 시스템
KR101964254B1 (ko) 2017-01-03 2019-04-01 아주대학교산학협력단 블록체인과 dht를 이용한 p2p 거래 방법 및 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101089294B1 (ko) 2010-02-09 2011-12-05 한국과학기술원 구조적 p2p 네트워크를 위한 데이터 매핑 방법 및 장치
KR20190004309A (ko) 2016-04-29 2019-01-11 엔체인 홀딩스 리미티드 블록체인 iot장치를 위한 동작 시스템
KR101964254B1 (ko) 2017-01-03 2019-04-01 아주대학교산학협력단 블록체인과 dht를 이용한 p2p 거래 방법 및 장치

Similar Documents

Publication Publication Date Title
US8037076B2 (en) Federated indexing from hashed primary key slices
Harris et al. 4store: The design and implementation of a clustered RDF store
Cai et al. RDFPeers: a scalable distributed RDF repository based on a structured peer-to-peer network
US8768931B2 (en) Representing and manipulating RDF data in a relational database management system
US8769673B2 (en) Identifying potentially offending content using associations
Das et al. A Tale of Two Graphs: Property Graphs as RDF in Oracle.
US20160063021A1 (en) Metadata Index Search in a File System
US20100287173A1 (en) Searching Documents for Successive Hashed Keywords
US11061936B2 (en) Property grouping for change detection in distributed storage systems
US20200341963A1 (en) Dynamic hash function composition for change detection in distributed storage systems
US11762775B2 (en) Systems and methods for implementing overlapping data caching for object application program interfaces
US8032550B2 (en) Federated document search by keywords
AU2007275507C1 (en) Semantic aware processing of XML documents
JP2019109782A (ja) クエリ生成プログラム、クエリ生成方法およびクエリ生成装置
US11055274B2 (en) Granular change detection in distributed storage systems
KR20220141493A (ko) 링크드 데이터를 처리하는 장치
US7720881B2 (en) Role based groups
US7725500B2 (en) Role based groups
US20210089507A1 (en) Systems and methods for providing an adaptive attention-based bloom filter for tree-based information repositories
US7725564B2 (en) Nested exception roles
Sumalatha et al. Hash mapping strategy for improving retrieval effectiveness in semantic cache system
US7725563B2 (en) Nested AND roles
US7774433B2 (en) Nested XOR roles
US20220188339A1 (en) Network environment synchronization apparatus and method
JP2011170509A (ja) 機密度学習装置、機密度学習システム、機密度学習方法および機密度学習プログラム

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right