KR20210034547A - 다중 소스 타입 상호운용성 및/또는 정보 검색 최적화 - Google Patents

다중 소스 타입 상호운용성 및/또는 정보 검색 최적화 Download PDF

Info

Publication number
KR20210034547A
KR20210034547A KR1020207035793A KR20207035793A KR20210034547A KR 20210034547 A KR20210034547 A KR 20210034547A KR 1020207035793 A KR1020207035793 A KR 1020207035793A KR 20207035793 A KR20207035793 A KR 20207035793A KR 20210034547 A KR20210034547 A KR 20210034547A
Authority
KR
South Korea
Prior art keywords
data
graph
query
queries
neural network
Prior art date
Application number
KR1020207035793A
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
Priority claimed from US16/007,850 external-priority patent/US10223417B1/en
Priority claimed from US16/007,639 external-priority patent/US10303688B1/en
Priority claimed from US16/007,911 external-priority patent/US10599719B2/en
Application filed by 스타독 유니온 filed Critical 스타독 유니온
Publication of KR20210034547A publication Critical patent/KR20210034547A/ko

Links

Images

Classifications

    • 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/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • 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/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • 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/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/256Integrating or interfacing systems involving database management systems in federated or virtual databases
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Abstract

특정 실시예들에서, 데이터 검색 프로세스에서의 질의 관련 자원 사용이 감소될 수 있다. 일부 실시예들에서, 데이터 요청과 관련된 그래프 질의가 획득될 수 있다. 그래프 질의는 그래프 데이터 모델 및 그래프 질의의 패턴들에 기초하여 질의 세트로 변환될 수 있다. 발생 시, 질의 세트는 질의들 및 질의들을 링크하는 질의 연산자들을 포함할 수 있으며, 질의 연산자들은 제1 및 제2 질의들을 링크하는 제1 질의 연산자를 포함한다. 제1 또는 제2 질의들의 실행 전에, 충족가능성 문제(예를 들어, 그러한 질의들로부터 도출되는 결과들을 조합하는 것과 관련됨)가 예측될 수 있다. 예측에 기초하여, 제1 질의 연산자는 질의 세트를 업데이트하기 위해 질의 세트로부터 제거될 수 있으며, 질의 세트는 이때 그래프 질의를 충족시키기 위해 실행될 수 있다. 다른 실시예들에서, 데이터 검색 지연들은 데이터 서브그래프들의 예측 기반 발생을 통해 감소될 수 있다.

Description

다중 소스 타입 상호운용성 및/또는 정보 검색 최적화
관련 출원들에 대한 상호참조
본 출원은 2018년 6월 13일에 출원된 이하의 출원들, 즉 (1) 발명의 명칭이 "System and Method for Reducing Data Retrieval Delays via Prediction-Based Generation of Data Subgraphs"인 미국 특허 출원 제16/007,639호; (2) 발명의 명칭이 "System and Method for Providing Prediction-Model-Based Generation of a Graph Data Model"인 미국 특허 출원 제16/007,911호; 및 (3) 발명의 명칭이 "System and Method for Reducing Query-Related Resource Usage in a Data Retrieval Process"인 미국 특허 출원 제16/007,850호의 혜택을 주장하며, 그 각각은 본원에 전체적으로 참조로 이로써 포함된다.
발명의 분야
본 발명은 다중 소스 타입 상호운용성 및/또는 정보 검색 최적화를 용이하게 하는 것에 관한 것이다.
조직이 성장함에 따라, 조직 내에 존재하는 데이터 사일로(silo)들의 수는 일반적으로 증가하여, 조직의 나머지에 "연결되지 않는" 고정 데이터의 많은 저장소들을 생성한다. 그러한 데이터 사일로들은 종종 데이터 포맷 또는 데이터 소스 기술들이 이전 또는 현재 표준과 매칭하지 못하기 때문에 존재한다. 대기업들은 예를 들어, 종종 서로 호환되지 않거나 새로운 데이터 시스템들과 호환되지 않는 승계(inherited) 및 레거시(legacy) 데이터 시스템들을 갖는다. 데이터 이주 시스템들이 데이터를 상이한 데이터 저장 타입들, 포맷들, 또는 IT 시스템들로부터 현재 표준과 매칭하는 하나의 데이터 시스템으로 전송하기 위해 사용될 수 있지만, 그러한 대규모 데이터 이주 프로세스들은 전형적으로 실질적인 오버헤드(예를 들어, 계산 자원들, 시간 등)을 필요로 하고 다른 조직 활동들에 상당한 방해들을 야기한다. 이러한 및 다른 단점들이 존재한다.
본 발명의 양태들은 상이한 데이터 소스 타입들의 다수의 데이터 소스에 다중 소스 타입 질의를 용이하게 하는 데이터 변환 모델들의 사용, 데이터 변환 모델들을 발생시키는 예측 모델들의 사용, 그러한 데이터에 대한 요청들을 예상하여 일시적 데이터 스토리지 내에 변환된 데이터를 저장하는 예측 모델들의 사용, 데이터 검색 프로세스에서 질의 관련 자원 사용을 감소시키기 위해 데이터 요청으로부터 도출되는 질의 세트들의 최적화 등과 같은, 다중 소스 타입 상호운용성 또는 정보 검색 최적화를 용이하게 하기 위한 방법들, 장치들, 또는 시스템들에 관한 것이다.
일부 실시예들에서, 데이터 검색 프로세스에서의 질의 관련 자원 사용이 감소될 수 있다. 일 예로서, 데이터 요청과 관련된 그래프 질의가 획득될 수 있다. 그래프 질의는 그래프 데이터 모델 및 그래프 질의의 패턴들에 기초하여 질의 세트로 변환될 수 있다. 발생 시, 질의 세트는 질의들 및 질의들을 링크하는 질의 연산자들을 포함할 수 있으며, 질의 연산자들은 질의들 중 제1 및 제2 질의들을 링크하는 제1 질의 연산자 또는 다른 질의 연산자들을 포함한다. 제1 및 제2 질의들의 실행 전에, 충족가능성 문제가 예측될 수 있으며, 충족가능성 문제는 제1 및 제2 질의들로부터 도출되는 결과들을 조합하는 것과 관련된다. 예측에 기초하여, 제1 질의 연산자는 질의 세트를 업데이트하기 위해 질의 세트로부터 제거될 수 있다. 업데이트된 질의 세트는 그래프 질의를 충족시키기 위해 실행될 수 있다.
본 발명의 다양한 다른 양태들, 특징들, 및 장점들은 본 발명의 상세한 설명 및 이에 첨부된 도면들을 통해 분명할 것이다. 또한 상술한 개괄적인 설명 및 이하의 상세한 설명 둘 다는 예시적이고 본 발명의 범위를 제한하지 않는다는 점이 이해되어야 한다. 명세서 및 청구항들에 사용되는 바와 같이, "하나의(a, an)", 및 "상기(the)"의 단수 형태들은 맥락이 달리 분명히 지시하지 않는 한 복수 지시물을 포함한다. 게다가, 명세서 및 청구항들에 사용되는 바와 같이, 용어 "또는"은 맥락이 달리 분명히 지시하지 않는 한 "및/또는"을 의미한다.
도 1은 하나 이상의 실시예에 따른, 다중 소스 타입 상호운용성 및 정보 검색 최적화를 용이하게 하기 위한 시스템을 예시한다.
도 2는 하나 이상의 실시예에 따른, 시스템의 하나 이상의 컴포넌트를 포함하는 엔터프라이즈 환경을 예시한다.
도 3은 하나 이상의 실시예에 따른, 시스템의 하나 이상의 컴포넌트의 예시적 아키텍처를 예시한다.
도 4는 하나 이상의 실시예에 따른, 그래프 데이터베이스 내의 그래프의 일 예를 예시한다.
도 5는 하나 이상의 실시예에 따른, 그래프 데이터베이스와 호환되지 않는 데이터 표현들, 비호환 데이터 표현들을 그래프 데이터베이스와 호환되는 그래프 데이터 표현들로 변환하기 위한 템플릿, 및 비호환 데이터 표현들로부터 도출되는 그래프 데이터 표현들을 예시한다.
도 6은 하나 이상의 실시예에 따른, 훈련된 예측 모델로부터 템플릿들에 기초하여 발생되는 그래프 데이터 표현들의 2개의 상이한 세트의 예들을 예시한다.
도 7은 하나 이상의 실시예에 따른, 그래프 데이터 모델의 일 예를 예시한다.
도 8은 하나 이상의 실시예에 따른, 예측 모델 추론의 일 예를 예시한다.
도 9는 하나 이상의 실시예에 따른, 예측 모델에 의한 유사성 예측들의 일 예를 예시한다.
도 10은 하나 이상의 실시예에 따른, 그래프의 노드들 사이의 유사성을 결정하는 코드의 일 예를 예시한다.
도 11은 하나 이상의 실시예에 따른, 새로운 노드들 또는 에지들의 발생 및 규칙들 및 온톨로지 매치들(ontology matches)의 학습의 예들을 예시한다.
도 12는 하나 이상의 실시예에 따른, 그래프 데이터 모델의 예측 모델 기반 발생을 제공하기 위한 방법을 예시한다.
도 13은 하나 이상의 실시예에 따른, 데이터 서브그래프들의 예측 기반 발생을 통해 데이터 검색 지연들을 감소시키기 위한 방법을 예시한다.
도 14는 하나 이상의 실시예에 따른, 데이터 검색 프로세스에서 질의 관련 자원 사용을 감소시키기 위한 방법의 흐름도를 예시한다.
이하의 기재에서, 설명의 목적들을 위해, 다수의 특정 상세들은 본 발명의 실시예들의 철저한 이해를 제공하기 위해 제시된다. 그러나, 본 발명의 실시예들이 이러한 특정 상세들을 갖지 않거나 등가 배열을 가지고 실시될 수 있다는 점이 본 기술분야의 통상의 기술자들에 의해 이해될 것이다. 다른 사례들에서, 널리 공지된 구조들 및 디바이스들은 본 발명의 실시예들을 불필요하게 모호하게 하는 것을 회피하기 위해 블록도 형태로 도시된다.
도 1은 하나 이상의 실시예에 따른, 다중 소스 타입 상호운용성 및 정보 검색 최적화를 용이하게 하기 위한 시스템(100)을 도시한다. 도 1에 도시된 바와 같이, 시스템(100)은 서버(들)(102), 클라이언트 디바이스들(104a 내지 104n), 데이터 소스(들)(132), 또는 다른 컴포넌트들을 포함할 수 있다. 서버(102)는 데이터 관리 서브시스템(112), 모델 관리 서브시스템(114), 요청 서브시스템(116), 최적화 서브시스템(118), 프리젠테이션 서브시스템(120), 전자 스토리지(122), 또는 다른 컴포넌트들을 포함할 수 있다. 각각의 클라이언트 디바이스(104)는 임의의 타입의 이동 단말, 고정 단말, 또는 다른 디바이스를 포함할 수 있다. 예로서, 클라이언트 디바이스(104)는 데스크톱 컴퓨터, 노트북 컴퓨터, 태블릿 컴퓨터, 스마트폰, 웨어러블 디바이스, 또는 다른 클라이언트 디바이스를 포함할 수 있다. 사용자들은 예를 들어, 서로, 하나 이상의 서버(102), 또는 시스템(100)의 다른 컴포넌트들과 상호작용하기 위해 하나 이상의 클라이언트 디바이스(104)를 이용할 수 있다. 데이터 소스들(132)은 그래프 데이터 소스들(134), 비구조화된(예를 들어, 타이프라이터 문서들), 반구조화된(예를 들어, XML 문서들, 이메일들 등), 또는 구조화된(예를 들어, 관계 데이터베이스 관리 시스템(relational database management system)(RDBMS) 정보, 경량 디렉토리 액세스 프로토콜(lightweight directory access protocol)(LDAP) 정보 등) 데이터 소스들(136), 및 다른 데이터 소스들(138)을 포함할 수 있다. 데이터 소스들은 다양한 데이터베이스들 또는 다른 데이터 소스들을 포함할 수 있다. 일부 실시예들에서, 단일 데이터베이스는 하나 이상의 데이터 소스(132)를 포함할 수 있다. 하나 이상의 동작이 서버(102)의 특정 컴포넌트들에 의해 수행되는 것으로 본원에 설명되지만, 그러한 동작들은 일부 실시예들에서, 서버(102)의 다른 컴포넌트들 또는 시스템(100)의 다른 컴포넌트들에 의해 수행될 수 있다는 점이 주목되어야 한다. 일 예로서, 하나 이상의 동작이 서버(102)의 컴포넌트들에 의해 수행되는 것으로 본원에 설명되지만, 그러한 동작들은 일부 실시예들에서, 클라이언트 디바이스(104)의 컴포넌트들에 의해 수행될 수 있다.
일부 실시예들에서, 도 2에 대해, 엔터프라이즈 환경(200)은 시스템(100)의 하나 이상의 컴포넌트에 대한 환경일 수 있다. 엔터프라이즈 환경(200)은 애플리케이션들 및 분석 부분(202), 엔터프라이즈 "데이터 레이크" 부분(204), 가상 부분(206), 또는 다른 부분들을 포함할 수 있다. 서버(102)는 다양한 타입들의 정보 예컨대 리포트들(208), 애널리틱스(analytics)(210), 기계 학습 또는 데이터 마이닝 정보(212), 비구조화된 정보(214)(예를 들어, 타이프라이터 문서들), 반구조화된 정보(216)(예를 들어, XML 문서들, 이메일들 등), 구조화된 정보(218)(예를 들어, RDBMS 정보, LDAP 정보 등), 또는 다른 정보를 수신하도록 구성될 수 있다. 서버(102)는 예를 들어, 다양한 애플리케이션들 또는 분석 동작들을 실행하는 하나 이상의 클라이언트 디바이스(104)로부터, 또는 다른 소스들로부터 그러한 정보를 수신할 수 있다.
일부 실시예들에서, 도 3에 대해, 아키텍처(300)는 시스템(100)의 하나 이상의 컴포넌트에 대한 아키텍처일 수 있다. 도 3에 도시된 바와 같이, 서버(102)는 메타데이터 추출기(302), 텍스트 추출기(304), 그래프 추출기(306)(예를 들어, 자원 기술 프레임워크(resource description framework)(RDF) 추출기), 기계 학습 컴포넌트(308), 지리공간 인덱스(310), 그래프 인덱스(312), 텍스트 인덱스(314), 관계 매핑 컴포넌트(316), 질의 엔진(318), 또는 다른 컴포넌트들을 포함할 수 있다. 일부 실시예들에서, 이러한 컴포넌트들 중 하나 이상은 도 1에 도시된 본원에 설명된 서버 컴포넌트들 중 하나 이상이거나, 하나 이상 내에 포함되거나, 하나 이상과 연관된 동작들을 수행할 수 있다. 예를 들어, 메타데이터 추출기(302), 텍스트 추출기(304), 그래프 추출기(306), 또는 다른 컴포넌트들은 도 1에 도시된 데이터 관리 서브시스템(112)이거나, 이 서브시스템 내에 포함될 수 있다. 기계 학습 컴포넌트(308)는 도 1에 도시된 모델 관리 서브시스템(114)이거나, 이 서브시스템 내에 포함될 수 있다. 지리공간 인덱스(310), 그래프 인덱스(312), 텍스트 인덱스(314), 관계 매핑 컴포넌트(316), 질의 엔진(318), 또는 다른 컴포넌트들은 도 1에 도시된 모델 관리 서브시스템(114), 요청 서브시스템(116), 또는 최적화 서브시스템(118), 또는 다른 서브시스템들이거나, 이들 내에 포함될 수 있다. 일부 실시예들에서, 서버(102)는 문서 저장 시스템(320)과 연관된다.
일부 실시예들에서, 도 3에 대해, 서버(102)는 그래프 데이터, 비구조화된 데이터, 관계 데이터베이스 관리 시스템으로부터의 정보, 또는 다른 소스들(134)로부터의 데이터를 수신할 수 있다. 본원에 설명된 바와 같이, 서버(102)의 컴포넌트들(예를 들어, 질의 엔진(318))은 관련 결과들을 획득하기 위해 하나 이상의 질의를 수행할 수 있다. 시스템에 의해 발생되는 템플릿들, 또는 다른 정보(예를 들어, 지리공간 인덱스(310), 그래프 인덱스(312), 텍스트 인덱스(314), 관계 매핑 컴포넌트(316)로부터의 정보)에 기초하여, 서버(102)는 본원의 다른 곳에 설명된 바와 같이, 질의들로부터 획득되는 데이터 표현들을 하나 이상의 데이터 변환 모델을 통해 그래프 형태(또는 다른 형태)로 변환할 수 있다.
일부 실시예들에서, 시스템(100)은 데이터 변환 모델 또는 다른 데이터 모델의 발생을 통해 상이한 데이터 소스 기술들 또는 표준들 중에서 다중 소스 타입 상호운용성을 용이하게 할 수 있으며, 이는 하나의 데이터 소스의 데이터 표현들을 다른 데이터 소스와 호환되는 데이터 표현들로 변환하도록 구성된다(또는 그 역도 또한 마찬가지임). 일부 실시예들에서, 시스템(100)은 (예를 들어, 상이한 데이터 소스 타입들의) 비호환 질의 결과들을 타겟 데이터 소스와 호환되는 결과들의 세트로 변환하기 위해 데이터 변환 모델들을 사용함으로써 상이한 데이터 소스 타입들의 다수의 데이터 소스에 다중 소스 타입 질의를 용이하게 하기 위해 그러한 데이터 변환 모델들을 이용할 수 있다. 이러한 방식으로, 예를 들어, 시스템(100)은 회사 또는 다른 엔티티가 새로운 또는 상이한 데이터 소스 기술들 또는 표준들에 유리한 그것의 레거시 또는 현재 데이터베이스들을 점검하기 위한 요구를 제거할 수 있다. 하나의 사용 경우에, 시스템(100)은 상이한 데이터 소스 타입들의 하나 이상의 데이터 소스로부터 하나 이상의 그러한 데이터 변환 모델을 통해 데이터 표현들의 온 더 플라이(on-the-fly) 변환들을 제공할 수 있다.
일부 실시예들에서, 시스템(100)은 제1 데이터 소스 타입(예를 들어, 관계 모델 타입 또는 다른 데이터 소스 타입)의 데이터 표현들을 제2 데이터 소스 타입(예를 들어, 그래픽 모델 타입 또는 다른 데이터 소스 타입)의 데이터 표현들로 변환하기 위한 하나 이상의 템플릿을 획득하고, 획득된 템플릿들에 기초하여 데이터 변환 모델을 생성하거나 수정할 수 있다. 일 예로서, 템플릿들은 제1 데이터 소스 타입에 대응하는 데이터 특성들(예를 들어, 특정 SQL 데이터 소스 또는 다른 데이터 소스에 특정한 행 또는 열 속성들 및 값들)을 제2 데이터 소스에 대응하는 데이터 특성들(예를 들어, 그래프 데이터 소스 또는 다른 데이터 소스에 특정한 그래프 속성들 및 값들)로 변환하기 위한 명령어들을 포함할 수 있다. 추가 예로서, 시스템(100)은 제1 데이터 소스 타입의 데이터 표현을 비그래프 데이터 표현을 제2 데이터 소스 타입의 데이터 표현으로 변환하기 위해 사용될 수 있는 템플릿들 중 적어도 하나에 매칭시키기 위한 패턴들(예를 들어, 정규 표현들 또는 다른 패턴들) 또는 규칙들(템플릿들과 연관됨)을 결정하기 위해 템플릿들을 처리할 수 있다. 그 다음, 시스템(100)은 패턴들, 규칙들, 또는 다른 모델링 정보를 데이터 변환 모델의 일부로서 통합하도록(예를 들어, 데이터 변환 모델이 그러한 템플릿들, 그것의 패턴들 또는 규칙들 등을 포함하거나 표시하도록) 데이터 변환 모델을 발생시킬 수 있다. 일부 실시예들에서, 시스템(100)은 본원의 다른 곳에 설명된 바와 같이, 데이터 표현들(특정 그래프 데이터베이스와 호환되지 않음)을 그래프 데이터베이스와 호환되는 그래프 데이터 표현들로 변환하거나 하나 이상의 다른 데이터 변환 모델을 발생시키도록 구성되는 하나 이상의 그래프 데이터 모델을 발생시키기 위해 하나 이상의 예측 모델(예를 들어, 신경 네트워크들 또는 다른 기계 학습 모델들)을 이용할 수 있다.
일부 실시예들에서, 시스템(100)은 요청에 충분한 응답을 제공하기 위한 지연의 감소를 용이하게 하거나 일시적 데이터 저장 또는 다른 컴퓨터 자원 사용의 효율을 개선할 수 있다. 시스템(100)은 예를 들어, 요청들의 예측 및 그래프 형태로 예측된 요청들과 관련된 질의 결과들의 일시적 저장을 통해, 예측된 요청들과 관련된 질의 결과들의 서브세트들의 선택적 획득 또는 일시적 저장을 통해, 질의 세트 최적화, 또는 다른 기술들을 통해 지연의 감소를 용이하게 하거나 효율을 개선할 수 있다. 일 예로서, 질의 결과들에 대한 요청이 예측될 수 있고, 결과들의 서브세트가 요청 예측에 응답하여 획득될 수 있고, 결과들의 서브세트가 서버 캐시, 웹 캐시, 메모리 캐시, 또는 다른 일시적 데이터 스토리지(예를 들어, 전자 스토리지(122))에 저장될 수 있다. 결과들의 서브세트는 (예를 들어, 결과들이 적절한 그래프 형태가 아니면) 하나 이상의 서브그래프로 변환될 수 있고, 서브그래프들은 일시적 데이터 스토리지에 저장될 수 있다. 예측된 요청(또는 예측된 요청과 매칭하는 장래의 요청)이 발생할 때, 서브그래프들 중 하나 이상은 (예를 들어, 상당히 더 큰 지연을 갖는 다른 데이터 스토리지를 통해 결과들의 서브세트를 획득하고, 가능하게는 서브세트를 비그래프 형태로부터 그래프 형태로 변환해야 하는 대신에) 일시적 데이터 스토리지로부터 획득되고 발생된 예측 요청에 응답하기 위해 사용될 수 있다. 이러한 방식으로, 예를 들어, (특정 요청들이 발생하기 전에) 변환된 형태로 결과들의 일시적 저장은 요청들에 충분히 응답하기 위해 레이턴시 또는 다른 지연들을 상당히 감소시킬 수 있다.
일부 실시예들에서, 시스템(100)은 그래프 질의(또는 데이터 요청과 관련된 다른 질의)가 변환되는 질의 세트와 같은, 데이터 요청으로부터 도출되는 질의 세트를 최적화함으로써 데이터 검색 프로세스에서 질의 관련 자원 사용을 감소시킬 수 있다. 일부 실시예들에서, 그러한 질의 세트 최적화들은 질의 세트로부터 다수의 질의를 링크하는 질의 연산자의 제거, 단일 질의 내로 질의 세트의 다수의 질의의 병합, 질의 세트로부터 하나 이상의 질의의 제거, 또는 다른 최적화들을 포함할 수 있다. 그러한 최적화들은 하나 이상의 충족가능성 문제(예를 들어, 특정 질의들로부터 도출되는 결과들을 조합하는 것과 관련됨), 비호환성 문제들, 또는 다른 문제들의 예측에 기초하여 수행되어 그러한 문제들 또는 그러한 문제들의 부정적 영향들을 회피하거나 완화할 수 있다. 일부 실시예들에서, 데이터 요청과 관련된 그래프 질의를 획득하는 것에 응답하여, 시스템(100)은 그래프 질의를 다수의 질의 및 질의들을 링크하는 질의 연산자들(예를 들어, 유니언들, 조인들, 또는 다른 질의 연산자들)을 갖는 질의 세트로 변환할 수 있다. 충족가능성 문제(질의들 중 2개로부터 도출되는 결과들을 조합하는 것과 관련됨)의 예측에 기초하여, 시스템(100)은 질의 세트를 업데이트하기 위해 질의 세트로부터 2개의 질의를 링크하는 질의 연산자를 제거하거나 질의 세트에 다른 최적화들을 수행할 수 있다. 그와 같이, 시스템(100)이 그래프 질의(및, 따라서, 데이터 요청)를 충족시키기 위해 업데이트된 질의 세트를 실행할 때, 시스템(100)은 충족가능성 문제 또는 충족가능성 문제의 부정적 영향들, 예컨대 (i) 질의 세트의 하나 이상의 부분을 실행하기 위해 사용되고 그러한 질의 세트 실행으로부터 도출되는 비호환 결과들을 조합하려고 시도하는 자원들의 낭비, (ii) 그러한 실행 및 시도들에서 기인하는 지연, 또는 (iii) 다른 부정적 영향들을 회피하거나 완화할 수 있다.
일부 실시예들에서, 시스템(100)은 예측 모델 기반의 (i) 데이터 모델들(예를 들어, 데이터 변환 모델들, 그래프 데이터 모델들 등)의 발생, (ii) 장래의 요청들 또는 다른 정보와 관련된 결과들의 획득 또는 저장, (iii) 질의들의 발생 또는 수행, (iv) 질의 세트 최적화, 또는 (v) 다른 동작들을 용이하게 할 수 있다. 예측 모델들 신경 네트워크들, 다른 기계 학습 모델들, 또는 다른 예측 모델들을 포함할 수 있다. 일 예로서, 신경 네트워크들은 큰 집합의 신경 유닛들(또는 인공 뉴런들)에 기초할 수 있다. 신경 네트워크들은 생물학적 뇌가 (예를 들어, 축색 돌기들에 의해 연결되는 생물학적 뉴런들의 큰 클러스터들을 통해) 작용하는 방식을 대략 모방할 수 있다. 신경 네트워크의 각각의 신경 유닛은 신경 네트워크와 많은 다른 신경 유닛들과 연결될 수 있다. 그러한 연결들은 연결된 신경 유닛들의 활성화 상태에 그들의 효과를 강제하거나 금지할 수 있다. 일부 실시예들에서, 각각의 개별 신경 유닛은 모든 그것의 입력들의 값들을 함께 조합하는 가산 기능을 가질 수 있다. 일부 실시예들에서, 각각의 연결(또는 신경 유닛 자체)은 신호가 다른 신경 유닛들에 전파하도록 허용되기 전에 임계치를 능가해야 하도록 임계 기능을 가질 수 있다. 이러한 신경 네트워크 시스템들은 명시적으로 프로그래밍되기보다, 자체 학습 및 훈련될 수 있고, 종래의 컴퓨터 프로그램들과 비교하여, 문제 해결의 특정에서 상당히 더 양호하게 수행될 수 있다. 일부 실시예들에서, 신경 네트워크들은 다수의 계층을 포함할 수 있다(예를 들어, 신호 경로는 전면 계층들로부터 후면 계층들로 횡단함). 일부 실시예들에서, 역전파 기술들은 신경 네트워크들에 의해 이용될 수 있으며, 전방향 자극은 "전면" 신경 유닛들에 대한 가중치들을 리셋하기 위해 사용된다. 일부 실시예들에서, 신경 네트워크들에 대한 자극 및 금지는 더 혼돈되고 복잡한 방식으로 상호작용하는 연결들과 함께, 더 자유롭게 유동적일 수 있다.
일부 실시예들에서, 시스템(100)은 (i) 데이터 모델들과 관련된 모델링 정보(예를 들어, 템플릿들, 그것의 패턴들 또는 규칙들, 또는 데이터 변환 모델들, 그래프 데이터 모델들 등과 관련된 다른 정보), (ii) 그래프의 노드들 또는 에지들과 관련된 그래프 정보 또는 다른 데이터 소스들의 데이터 포인트들 또는 관계들과 관련된 다른 정보, (iii) 질의 정보(예를 들어, 그래프 질의들, SQL 또는 다른 비그래프 질의들, 그래프 질의들 또는 비그래프 질의들로부터 도출되는 질의 세트들 등), (iv) 최적화 또는 문제 정보(예를 들어, 질의 세트 최적화 논리 또는 다른 최적화들을 표시하는 정보, 특정 질의들의 결과들을 조합하는 것과 관련된 잠재적 문제들을 표시하는 정보 등), 또는 다른 훈련 정보(예를 들어, 비구조화된 문서들, 반구조화된 문서들, 구조화된 문서들, 또는 다른 정보)를 획득할 수 있다. 시스템(100)은 하나 이상의 예측 모델이 (i) 하나 이상의 데이터 모델, 그래프들 또는 다른 데이터 구조들, 질의 세트들, 또는 다른 정보 또는 (ii) 예측된 패턴들, 규칙들, 템플릿들, 최적화 논리, 충족가능성 문제들, 그래프 노드 또는 에지 속성들/값들 또는 다른 속성들/값들 등과 같은 이와 관련된 하나 이상의 예측을 발생시키기 위해 훈련 정보에 기초하여 훈련되게 할 수 있다. 일 예로서, 예측 모델들을 훈련하기 위해 사용되는 정보 아이템들(예를 들어, 패턴들, 규칙들, 템플릿들, 그래프들, 질의 세트들, 또는 다른 훈련 정보 아이템들)의 수는 500 이상의 정보 아이템, 1000 이상의 정보 아이템, 10000 이상의 정보 아이템, 100000 이상의 정보 아이템, 1000000 이상의 정보 아이템, 또는 다른 수의 정보 아이템들일 수 있다.
데이터 모델 및 데이터 발생
일부 실시예들에서, 모델 관리 서브시스템(114)은 (i) 하나 이상의 데이터 모델(예를 들어, 데이터 변환 모델들, 그래프 데이터 모델들 등) 또는 이와 관련된 정보를 발생시키거나, (ii) 그러한 데이터 모델들에 대한 패턴들, 규칙들, 템플릿들, 또는 다른 모델링 정보를 예측하거나, (iii) 다른 옵션들을 수행하도록 구성될 수 있다. 일부 실시예들에서, 모델 관리 서브시스템(114)은 제1 데이터 소스 타입(예를 들어, 관계 모델 타입 또는 다른 데이터 소스 타입)의 데이터 표현들을 제2 데이터 소스 타입(예를 들어, 그래픽 모델 타입 또는 다른 데이터 소스 타입)의 데이터 표현들로 변환하기 위한 하나 이상의 템플릿을 획득하고, 획득된 템플릿들에 기초하여 데이터 변환 모델을 생성하거나 수정할 수 있다. 일 예로서, 템플릿들은 제1 데이터 소스 타입에 대응하는 데이터 특성들(예를 들어, 특정 SQL 데이터 소스 또는 다른 데이터 소스에 특정한 행 또는 열 속성들 및 값들)을 제2 데이터 소스에 대응하는 데이터 특성들(예를 들어, 그래프 데이터 소스 또는 다른 데이터 소스에 특정한 그래프 속성들 및 값들)로 변환하기 위한 명령어들을 포함할 수 있다. 추가 예로서, 모델 관리 서브시스템은 제1 데이터 소스 타입의 데이터 표현을 제2 데이터 소스 타입의 데이터 표현으로 변환하기 위해 사용될 수 있는 템플릿들 중 적어도 하나에 제1 데이터 소스 타입의 데이터 표현을 매칭하기 위한 패턴들(예를 들어, 정규 표현들 또는 다른 패턴들) 또는 규칙들(템플릿들과 연관됨)을 결정하기 위해 템플릿들을 처리할 수 있다. 그 다음, 모델 관리 서브시스템(114)은 패턴들, 규칙들, 또는 다른 모델링 정보를 데이터 변환 모델의 일부로서 통합하기 위해 데이터 변환 모델을 발생시킬 수 있다.
일 예로서, 도 4에 대해, 비그래프 데이터 표현들(예를 들어, 테이블 필드들, 테이블의 행들 또는 열들 등)은 그래프(400) 내의 것들(예를 들어, 그래프(400)의 노드들 또는 에지들)과 같은 그래프 데이터 표현들로 변환될 수 있으며, 그래프는 모션 픽처들과 관련된 그래프 데이터 표현들을 포함한다. 도 4에 도시된 바와 같이, 그래프(400)는 다양한 노드들(402) 및 노드들(402)을 연결하는 에지들(404)을 포함한다. 이러한 예에서, 2개의 상이한 모션 픽처(TT1583420 및 TT016222)에 대응하는 2개의 상이한 모션 픽처 노드(402)는 모션 픽처들에 대한 라벨 노드들(402)(예를 들어, 영화 이름 1 및 영화 이름 2), 감독 노드들(NM000158 및 NM000709), 제작 회사 노드(C09940938), 및 출시 날짜 노드(2000-12-22)에 연결된다. 이러한 연결들은 개별 노드들(402) 사이의 다양한 에지들(404)로 예시된다. 감독 노드들(NM000158 및 NM000709), 및 제작 회사 노드(C09940938)는 또한 에지들(404)에 의해 대응하는 라벨 노드들(402)(예를 들어, 사람 1, 사람 2, 및 회사 이름)에 연결된다.
추가 예로서, 도 5에 대해, (예를 들어, SQL 또는 다른 관계 데이터베이스로부터의) 테이블(500) 내의 비그래프 데이터 표현들은 템플릿(502)(또는 템플릿들 502)을 사용하여 그래프(504)의 그래프 데이터 표현들로 변환될 수 있다. 도 5에 표시된 바와 같이, 템플릿(502)은 (예를 들어, 테이블(500)의) 행들 또는 열들을 (예를 들어, 결과적인 그래프(504)의) 그래프 노드들 또는 에지들로 변환하기 위한 명령어들을 포함할 수 있다(또는 일부 실시예들에서, 그 역도 또한 마찬가지임). 이러한 예에서, 테이블(500)은 영화 3 및 영화 4라는 2개의 영화에 대한 정보, 예컨대 식별 코드들(506), 제목들(507), 출시 연도들(508), 박스 오피스 국가 이름들(510), 국가 코드들(512), 및 총 수입들(514)을 포함한다. 템플릿(502)(그래픽 형태로 도 5에 도시됨)은 영화 제목, 식별 코드, 출시 연도, 박스 오피스, 박스 오피스 국가, 박스 오피스 국가 라벨, 박스 오피스 국가 코드, 및 그러한 국가에서의 총 수입들에 대한 "플레이스홀더" 노드들(516)을 포함한다. 노드들(516)은 대응하는 에지들(518)에 의해 링크되며, 이 에지들은 그러한 노드들(516) 사이의 관계들을 표시한다. 템플릿(502)(예를 들어, 노드들(516))의 명령어들에 기초하여, 영화 3에 대한 테이블(500)의 비그래프 데이터 표현들은 노드들(520)을 예시하는 그래프(504)의 그래프 데이터 표현들(예를 들어, 노드들(520))로 변환된다.
도 1로 돌아가면, 데이터 관리 서브시스템(112)은 (i) 하나 이상의 그래프 또는 다른 데이터 구조들(예를 들어, SQL 데이터 구조들, 다른 비그래프 데이터 구조들 등)을 발생시키거나, (ii) 그러한 데이터 구조들의 노드들, 에지들, 또는 다른 부분들에 대한 정보를 예측하거나, (iii) 다른 옵션들을 수행하도록 구성될 수 있다. 일부 실시예들에서, 데이터 관리 서브시스템(112)은 비그래프 데이터 표현들(예를 들어, SQL 테이블들 또는 다른 데이터 소스들에 저장됨)로부터 그래프를 생성하거나 수정하기 위해 하나 이상의 그래프 데이터 모델을 이용할 수 있다. 일 예로서, 데이터 관리 서브시스템(112)은 새로운 그래프를 생성하거나 그래프 데이터베이스에서 기존 그래프를 보충/수정하기 위해 비그래프 데이터 표현들을 그래프 표현들(예를 들어, 특정 그래프 데이터베이스와 호환됨)로 변환하도록 그래프 데이터 모델을 사용할 수 있다.
일부 실시예들에서, 하나 이상의 그래프에 대해, 요청 서브시스템(116)은 (예를 들어, 2개의 그래프 노드 사이의 모든 경로들을 결정하고, 2개의 그래프 노드 사이의 최단 경로 또는 2개의 그래프 노드 사이의 미리 결정된 수의 가장 최단 경로들을 결정하는 등 하기 위해) 그래프의 노드들 사이의 하나 이상의 경로를 발견하기 위한 하나 이상의 경로 질의를 발생시킬 수 있다. 일부 실시예들에서, 요청 서브시스템(116)은 그러한 경로 질의들이 반환할 경로들에 대한 제한적 파라미터들을 포함하기 위해 경로 질의들을 발생시킬 수 있다. 일 예로서, 하나의 그러한 경로 질의는 결과들을 지정된 화폐량보다 더 큰 트랜잭션들과 연관된 경로들에 제한할 수 있다(예를 들어, 최단 경로 내의 모든 노드들 또는 에지들은 $10K 또는 다른 지정된 화폐량보다 더 큰 트랜잭션들과 연관되어야 함). 다른 예로서, 경로 질의는 결과들을 수명 주기(예를 들어, 제품 수명 주기, 동물 수명 주기, 문서 수명 주기 등)와 연관된 경로들에 제한할 수 있다. 또 다른 예로서, 경로 질의는 결과들을 영화 노드로부터 제작 회사 및 그것의 모회사를 표현하는 노드들로의 경로들에 제한할 수 있다(예를 들어, 영화 히치콕은 21세기 폭스에 의해 소유되는 폭스 스튜디오에 의해 소유된 폭스 서치라이트 영화사에 의해 제작됨). 일부 실시예들에서, 요청 서브시스템(116)은 그러한 경로 질의들에 의해 반환되는 그러한 경로들에 기초하여 데이터 요청에 응답하기 위해 질의 계획을 결정할 수 있다. 일 예로서, 그러한 경로 정보에 기초하여, 요청 서브시스템(116)은 데이터 요청(예를 들어, 사용자 디바이스로부터 획득되거나 본원에 설명된 바와 같이 예측됨)을 취급하기 위해 하나 이상의 질의를 결정하고, 어느 그래프들 또는 그래프 데이터베이스들이 데이터 요청을 취급하기 위한 타겟 소스들일지를 결정하고, 그러한 타겟 소스들과 연관된 비용들을 결정하는 등할 수 있다. 그 다음, 요청 서브시스템(116)은 그러한 결정들에 기초하여(예를 들어, 질의 계획 내에 타겟 소스들을 통합하고, 비용 정보에 기초하여 질의들 또는 타겟 소스들을 우선순위화하는 등 함으로써) 데이터 요청에 대한 질의 계획을 생성하거나 선택할 수 있다.
일부 실시예들에서, 예측 모델들(예를 들어, 신경 네트워크들, 다른 기계 학습 모델들, 또는 다른 예측 모델들)은 그래프 데이터 모델들 또는 다른 데이터 모델들의 발생, 그래프들 또는 다른 데이터 구조들의 발생, 그러한 데이터 모델들 또는 데이터 구조들에 대한 정보의 예측, 질의 계획들의 결정, 또는 다른 동작들을 용이하게 하기 위해 이용될 수 있다. 예측 모델들을 훈련하기 위해 사용되는 훈련 데이터는 (i) 예측 모델에 제공되는 입력들(예를 들어, 다른 예측 모델들에 제공되고 이 모델들에 의해 처리되는 입력들 또는 다른 입력들), (ii) 그러한 입력들의 예측 모델의 처리로부터 도출되는 참조 출력들(예를 들어, 사용자 확인 또는 사용자 제공 출력들, 그러한 입력들의 하나 이상의 예측 모델의 처리를 통해 확인되는 출력들, 예측 모델들의 각각의 세트들에 의한 그러한 입력들의 처리에 의해 여러 번 확인되는 출력들, 또는 다른 참조 출력들), (iii) 그러한 입력들의 예측 모델의 처리로부터 도출되지 않는 출력들의 참조 표시들(예를 들어, 그러한 출력들이 부정확한 사용자 표시들 또는 다른 참조 표시들), 또는 (iv) 다른 훈련 데이터를 포함할 수 있다.
일부 실시예들에서, 모델 관리 서브시스템(114)은 그래프 데이터 모델 세트(하나 이상의 그래프 데이터 모델을 포함함)와 관련된 모델링 정보, 그래프 데이터 표현들(예를 들어, 특정 그래프 데이터베이스와 호환됨)로 변환하기 위한 그래프 데이터 모델들 각각에 대한 데이터 표현들의 집합, 또는 다른 정보를 획득할 수 있다. 모델 관리 서브시스템(114)은 예측 모델을 훈련하기 위해 예측 모델에 모델링 정보, 데이터 표현들의 집합들, 또는 다른 정보를 제공할 수 있다.
일 예로서, 모델링 정보는 (i) 데이터 표현들(예를 들어, 주어진 그래프 데이터베이스와 호환되지 않는 비그래프 데이터 표현들 또는 다른 데이터 표현들)을 그래프 데이터베이스와 호환되는 그래프 데이터 표현들로 변환하기 위한 템플릿들, (2) 비호환 데이터 표현을 호환 그래프 데이터 표현으로 변환하기 위해 사용될 수 있는 템플릿들 중 적어도 하나에 비호환 데이터 표현을 매칭시키기 위한 패턴들 또는 규칙들(템플릿들과 연관됨), 또는 (3) 다른 모델링 정보를 포함할 수 있다. 그래프 데이터 모델 세트의 각각의 그래프 데이터 모델 및 비호환 데이터 표현들(그래프 데이터 모델이 변환하도록 구성됨)에 대해, 모델 관리 서브시스템(114)은 예측 모델이 그래프 데이터 모델의 템플릿들 중 하나 이상의 부가 템플릿을 예측하도록 예측 모델에 그래프 데이터 모델의 템플릿들 중 하나 이상의 템플릿 및 비호환 데이터 표현들을 제공할 수 있다. 하나의 사용 경우에, 예를 들어, 그러한 부가 템플릿들이 그래프 데이터 모델의 일부로서 이미 존재한 경우에도, 예측 모델은 부가 템플릿들을 예측 모델의 훈련의 일부로서 예측하게 될 수 있다. 따라서, 하나의 사용 경우에, 예측 모델은 부가 템플릿들에 대한 의존 없이(예를 들어, 부가 템플릿들의 적어도 일부에 대한 의존 없이, 부가 템플릿들 중 어느 것에 대한 의존 없이 등) 부가 템플릿들을 예측할 수 있다.
추가 예로서, 그래프 데이터 모델 세트의 각각의 그래프 데이터 모델에 대해, 모델 관리 서브시스템(114)은 예측 모델을 훈련하기 위해 부가 템플릿들의 예측 모델의 예측을 위한 참조 피드백으로서 그래프 데이터 모델의 템플릿들 중 부가 템플릿들을 예측 모델에 제공할 수 있다. 예측 모델은 부가 템플릿들(예를 들어, 예측 모델에 대한 입력으로 제공되는 다른 템플릿들에 기초하여 예측 모델에 의해 발생되는 템플릿들)의 그것의 예측을 평가하기 위해 "참조 템플릿들"로서 부가 템플릿들을 사용할 수 있다. 그것의 예측의 평가에 기초하여, 예측 모델은 (예를 들어, 그것의 예측이 정확했는지 또는 그것의 예측이 얼마나 정확했는지에 따라 예측 모델의 파라미터들 또는 예측 모델의 다른 부분들의 가중치들을 조정함으로써) 예측 모델의 하나 이상의 부분을 업데이트할 수 있다. 하나의 사용 경우에, 예측 모델이 신경 네트워크인 경우, 신경 네트워크는 부가 템플릿들의 그것의 예측의 신경 네트워크의 평가에 기초하여 신경 네트워크의 하나 이상의 계층을 업데이트할 수 있다. 일 예로서, 신경 네트워크는 그것의 예측의 정확도(예를 들어, 부가 템플릿들 중 하나 이상의 그것의 예측이 정확했는지 또는 얼마나 정확했는지)에 기초하여 하나 이상의 계층(예를 들어, 신경 네트워크의 입력 및 출력 계층들 사이의 숨겨지 계층들 또는 신경 네트워크의 다른 계층들)에서 신경 유닛들의 가중치들을 리셋하거나 수정하기 위해 순반향 또는 역전파 기술들을 사용할 수 있다.
일부 실시예들에서, 예측 모델이 훈련될(또는 그러한 훈련에 기초하여 업데이트될) 시에, 모델 관리 서브시스템(114)은 그래프 데이터 모델을 발생시키기 위해 예측 모델을 사용할 수 있다. 일 예로서, 모델 관리 서브시스템(114)은 예측 모델이 그래프 데이터 모델 또는 그래프 데이터 모델을 발생시키기 위해 사용가능한 정보(예를 들어, 그래프 데이터 모델을 발생시키기 위한 템플릿들, 패턴들, 규칙들, 또는 다른 정보)를 발생시키게 할 수 있다. 추가 예로서, 비그래프 데이터 표현들을 그래프 데이터 표현들로 변환하는 것에 대해, 모델 관리 서브시스템(114)은 예측 모델에 대한 입력으로서 비그래프 데이터베이스로부터의 비그래프 데이터 표현들의 집합을 제공할 수 있다. 그러한 입력에 응답하여, 예측 모델은 그래프 데이터 모델에 대한 하나 이상의 템플릿, 패턴들, 규칙들, 또는 다른 정보를 출력할 수 있다. 모델 관리 서브시스템(114)은 그래프 데이터 모델이 (비그래프 데이터베이스로부터의) 비그래프 데이터 표현들을 그래프 데이터베이스와 호환되는 그래프 데이터 표현들로 변환하기 위해 구성되도록 그래프 데이터 모델을 발생시키기 위해 템플릿들, 그것의 패턴들 또는 규칙들, 또는 다른 정보를 사용할 수 있다.
일부 실시예들에서, 데이터 관리 서브시스템(112)은 데이터 구조를 생성하는 것, 데이터 구조의 하나 이상의 부분을 수정하는 것, 또는 노드들, 에지들, 또는 다른 데이터 표현들에 대한 예측된 정보에 기초하여 데이터 구조를 보충하는 것과 같이, 그래프 또는 다른 데이터 구조를 발생시키기 위해 노드들, 에지들, 또는 다른 데이터 표현들에 대한 정보를 예측하도록 하나 이상의 예측 모델을 이용할 수 있다. 일부 실시예들에서, 데이터 관리 서브시스템(112)은 그래프의 노드들 또는 에지들과 관련된 그래프 정보 또는 다른 데이터 소스들의 데이터 포인트들 또는 관계들과 관련된 다른 정보를 획득하고, 부가 또는 대체 노드들, 에지들, 또는 다른 데이터 표현들에 대한 정보를 예측하기 위해(예를 들어, 새로운 그래프 또는 다른 데이터 구조를 생성하고, 기존 그래프 또는 다른 데이터 구조를 수정하고, 기존 그래프 또는 다른 데이터 구조를 보충하는 등을 하기 위해) 예측 모델을 훈련하도록 예측 모델에 그래프 정보 또는 다른 그러한 정보를 제공할 수 있다.
일부 실시예들에서, 데이터 관리 서브시스템(112)은 하나 이상의 데이터 표현 세트를 획득하고 예측 모델을 훈련하기 위해 예측 모델에 데이터 표현 세트들을 제공할 수 있다. 일 예로서, 데이터 표현 세트는 노드들, 에지들, 또는 다른 데이터 표현들을 포함할 수 있고, 데이터 표현 세트들의 각각의 데이터 표현 세트에 대해, 데이터 관리 서브시스템(112)은 예측 모델이 데이터 표현 세트의 하나 이상의 부가 노드 또는 에지들을 예측하게 하기 위해 예측 모델에 대한 입력으로서 데이터 표현 세트의 하나 이상의 노드 또는 에지를 제공할 수 있다. 본원에 사용된 바와 같이, 노드들 또는 에지들을 제공하는 것은 노드들 또는 에지들에 의해 표현되는 데이터를 제공하는 것을 지칭할 수 있다. 하나의 사용 경우에, 예를 들어, 그러한 부가 노드들 또는 에지들이 데이터 표현 세트의 일부로서(예를 들어, 기존 그래프의 일부로서) 이미 존재한 경우에도, 예측 모델은 부가 노드들 또는 에지들을 예측 모델의 훈련의 일부로서 예측하게 될 수 있다. 따라서, 하나의 사용 경우에, 예측 모델은 부가 노드들 또는 에지들에 대한 의존 없이(예를 들어, 부가 노드들 또는 에지들의 적어도 일부에 대한 의존 없이, 부가 노드들 또는 에지들 중 어느 것에 대한 의존 없이 등) 부가 노드들 또는 에지들을 예측할 수 있다.
추가 예로서, 데이터 표현 세트들의 각각의 데이터 표현 세트에 대해, 데이터 관리 서브시스템(112)은 예측 모델을 훈련하기 위해 부가 노드들 또는 에지들의 예측 모델의 예측을 위한 참조 피드백으로서 데이터 표현 세트의 부가 노드들 또는 에지들을 예측 모델에 제공할 수 있다. 예측 모델은 부가 노드들 또는 에지들(예를 들어, 예측 모델에 대한 입력으로서 제공되는 다른 노드들 또는 에지들에 기초하여 예측 모델에 의해 발생되는 노드들 또는 에지들)의 그것의 예측을 평가하기 위해 부가 노드들 또는 에지들을 "참조 노드들 또는 에지들"로서 사용할 수 있다. 그것의 예측의 평가에 기초하여, 예측 모델은 (예를 들어, 그것의 예측이 정확했는지 또는 그것의 예측이 얼마나 정확했는지에 따라 예측 모델의 파라미터들 또는 예측 모델의 다른 부분들의 가중치들을 조정함으로써) 예측 모델의 하나 이상의 부분을 업데이트할 수 있다. 하나의 사용 경우에, 예측 모델이 신경 네트워크인 경우, 신경 네트워크는 부가 노드들 또는 에지들의 그것의 예측의 신경 네트워크의 평가에 기초하여 신경 네트워크의 하나 이상의 계층을 업데이트할 수 있다.
일부 실시예들에서, 예측 모델이 훈련될(또는 그러한 훈련에 기초하여 업데이트될) 시에, 데이터 관리 서브시스템(112)은 새로운 또는 기존 데이터 구조에 대한 데이터 표현들을 생성하거나 수정하기 위해 예측 모델을 사용할 수 있다. 일 예로서, 데이터 관리 서브시스템(112)은 새로운 또는 기존 그래프에 대한 새로운 노드들 또는 에지들을 생성하거나, 기존 그래프의 하나 이상의 노드 또는 에지를 수정하거나, 다른 동작들을 수행하기 위해 예측 모델을 사용할 수 있다. 일부 실시예들에서, 데이터 관리 서브시스템(112)은 (예를 들어, 예측 모델이 그래프를 횡단하게 하고 순회 동안 입력으로서 노드들 및 에지들을 처리하게 함으로써, 하나 이상의 에이전트가 순회 동안 그래프 노드들을 추출하기 위해 그래프를 크롤링(crawl)하게 하고 예측 모델에 대한 입력으로서 추출된 노드들 또는 에지들을 제공함으로써 등) 그래프의 노드들 또는 에지들을 처리하기 위해 그래프의 순회를 수행할 수 있다. 순회에서 기인하는 그러한 입력을 획득하는 것에 응답하여, 예측 모델은 그래프에 대한 새로운 노드들 또는 에지들을 (예를 들어, 그래프에 대한 부가 노드들 또는 에지들, 그래프에서 기존 노드들 또는 에지들을 대체하는 대체 노드들 또는 에지들 등으로서) 발생시킬 수 있다.
일부 실시예들에서, 데이터 표현(예를 들어, 노드, 에지, 또는 다른 데이터 표현)의 예측 모델의 발생에 응답하여, 데이터 관리 서브시스템(112)은 (i) 데이터 표현의 발생 후의 그리고 (ii) 데이터 표현이 추가되는지의 여부를 표시하는 사용자 입력 없이 그래프 또는 다른 데이터 구조에 데이터 표현을 자동적으로 추가할 수 있다. 일 예로서, 데이터 관리 서브시스템(112) 데이터 구조에 대한 새로운 데이터 표현으로서 데이터 표현을 추가하거나, 데이터 구조의 기존 데이터 표현에 대한 대체 데이터 표현으로서 데이터 표현을 추가하거나, 그렇지 않으면 데이터 표현에 기초하여 데이터 구조를 수정할 수 있다.
다른 한편, 일부 실시예들에서, 그래프 또는 다른 데이터 구조에 새로운 데이터 표현의 추가(또는 새로운 데이터 표현을 추가하지 않는 결정)는 그러한 후속 사용자 입력에 기초할 수 있다. 일 예로서, 예측 모델은 노드 또는 에지를 발생시킬 수 있고, 데이터 관리 서브시스템(112)은 예측 모델로부터 노드 또는 에지를 획득하고 노드 또는 에지에 관해 사용자에게 통지를 제공할 수 있다. 하나의 사용 경우에, 통지는 노드 또는 에지를 리뷰하기 위한 프롬프트, 그래프에 대한 새로운 또는 대체 노드 또는 에지로서 노드 또는 에지의 사용을 확인하거나 거부하기 위한 프롬프트, 또는 다른 통지를 수반할 수 있다. 노드 또는 에지를 (예를 들어, 새로운 노드 또는 에지, 대체 노드 또는 에지 등으로서) 추가하기 위한 사용자 확인에 응답하여, 데이터 관리 서브시스템(112)은 새로운 또는 에지를 그래프에 추가할 수 있다. 대안적으로, 노드 또는 에지를 추가하는 것에 대한 사용자 거절에 응답하여, 데이터 관리 서브시스템(112)은 새로운 노드 또는 에지를 그래프에 추가하지 않는 것을 결정할 수 있다.
일부 실시예들에서, 데이터 관리 서브시스템(112)은 노드 또는 에지의 예측 모델의 발생에 관한 참조 피드백으로서 사용자 확인 또는 사용자 거절의 표시를 제공할 수 있다. 예측 모델은 노드 또는 에지의 그것의 예측을 평가하기 위해 참조 피드백을 사용할 수 있다. 그것의 예측의 평가에 기초하여, 예측 모델은 (예를 들어, 그것의 예측이 정확했는지 또는 그것의 예측이 얼마나 정확했는지에 따라 예측 모델의 파라미터들 또는 예측 모델의 다른 부분들의 가중치들을 조정함으로써) 예측 모델의 하나 이상의 부분을 업데이트할 수 있다. 하나의 사용 경우에, 예측 모델이 신경 네트워크인 경우, 신경 네트워크는 부가 노드들 또는 에지들의 그것의 예측의 신경 네트워크의 평가에 기초하여 신경 네트워크의 하나 이상의 계층을 업데이트할 수 있다.
도 5로부터의 영화 3 및 영화 4에 대한 정보를 계속하면, 도 6은 하나 이상의 실시예에 따른, 훈련된 예측 모델로부터의 템플릿들에 기초하여 발생되는 2개의 상이한 그래프 데이터 표현(600 및 602)의 예들을 도시한다. 그래프 데이터 표현들(600 및 602)은 예측 모델의 부가 훈련 때문에 발생되는 도 5로부터의 그래프 데이터 표현(504)에 대한 업데이트들로 거의 생각될 수 있다. 그래프 데이터 표현들(600 및 602)은 예측 모델에 의해 발생되는 템플릿들에 기초하여 데이터 관리 서브시스템(112)(도 1)에 의해 발생될 수 있다. 예를 들어, 그래프 데이터 표현(600)은 도 5로부터의 그래프 데이터 표현(504)에 도시되는 영화 3과 관련된 노드들(520) 및 에지들(518)을 포함한다. 그래프 데이터 표현(600)은 또한 영화 3에 대한 부가 박스 오피스(예를 들어, 오스트레일리아 박스 오피스)와 관련된 노드들(604) 및 에지들(606)을 포함한다. 노드들(604) 및 에지들(606)과 연관된 정보는 도 5로부터의 데이터 표현(500) 내에 포함되었지만, 그래프 데이터 표현(504) 내에 포함되지 않았다. 그러나, 예측 모델의 훈련은 예측 모델이 부가 템플릿들을 발생시키게 할 수 있고, 이러한 부가 템플릿들은 그래프 데이터 표현(600)과 같은 부가 그래프 데이터 표현들을 발생시키기 위해 사용될 수 있다.
그래프 데이터 표현(602)은 추가 예를 제공한다. 그래프 데이터 표현(602)은 영화 3과 관련된 노드들(520 및 604), 및 에지들(518 및 606)을 포함한다. 그래프 데이터 표현(602)은 또한 영화 4와 관련된 노드들(608) 및 에지들(610)을 포함한다. 여기서 다시, 노드들(608), 및 에지들(610)과 연관된 정보는 도 5로부터의 데이터 표현(500) 내에 포함되었지만, 그래프 데이터 표현들(504 또는 600) 내에 포함되지 않았다. 그러나, 예측 모델의 훈련은 예측 모델이 부가 템플릿들을 발생시키게 할 수 있고, 이러한 부가 템플릿들은 그래프 데이터 표현(602)과 같은 부가 그래프 데이터 표현들을 발생시키기 위해 사용될 수 있다.
하나의 사용 경우에, 도 7에 대해, 데이터 모델(700)은 영화(702)와 연관된다. 데이터 모델(700)은 문서 노드(704), 장소 노드(706), 사람 노드(708), 및 조직 노드(710)를 포함한다. 문서 노드(704)는 (예를 들어, 데이터 모델(700)에 도시되지 않은 다른 에지들 및 노드들을 통해) 정보, 예컨대 영화 리뷰들, 영화 대본, 영화 개요, 또는 다른 정보를 포함하거나 이들과 연관될 수 있다. 장소 노드(706)는 정보 예컨대 촬영 위치, 영화에 묘사된 위치, 또는 다른 정보를 포함하거나 이들과 연관될 수 있다. 사람 노드(708)는 영화 내의 배우들, 대본의 작가, 영화의 감독, 또는 다른 정보를 포함하거나 이들과 연관될 수 있다. 조직 노드(710)는 영화에 책임이 있는 제작 회사, 또는 다른 정보를 포함하거나 이와 연관될 수 있다. 그래프 데이터 모델(700)은 논리 추론을 수행하기 위해 사용된다.
다른 사용 경우에, 도 8에 대해, 예측 모델은 추론을 통해 데이터 관계들을 형성하기 위해 사용될 수 있다. 단계(802)에서, 2개의 상이한 배우(배우 1, 배우 2) 및 감독(감독 1)에 대한 노드들(806, 808, 및 810), 2개의 상이한 영화(영화 5, 영화 6)에 대한 노드들(812 및 814), 및 대응하는 에지들(816)이 식별될 수 있다. 단계(804)에서, 예측 모델은 역으로, 영화가 배우를 포함하면, 그 배우가 영화의 배우인 것을 추론(820)할 수 있다. 다른 방식으로 표현하면, 에지(816)가 영화를 배우에 연결하면, 배우를 영화에 연결하는 역 에지(820)가 있어야 한다. 유사한 추론(820)은 감독에 대해 적용된다. 게다가, 예측 모델은 배우 또는 감독이 영화를 착수한 것을 추론(822)(및 이를 표시하는 대응하는 에지들을 설정(establish))할 수 있다. 예측 모델이 누가 영화를 착수했는지를 인식하므로, 예측 모델은 동일한 영화를 착수한 2명의 사람이 협력자들이어야 하는 것을 추론(824)(및 이를 표시하는 대응하는 에지들을 설정)할 수 있다. 최종적으로, 단계(804)는 예측 모델이 협력자들 사이의 관계들을 설정했으므로, 배우들 및 감독들이 하나 이상의 협력자를 통해 서로 연결되는 것을 예측 모델이 어떻게 추론(826)(및 이를 표시하는 대응하는 에지들을 설정)할 수 있는지를 예시한다.
다른 사용 경우에, 도 9에 대해, 데이터 모델 기반 추론 및/또는 예측 모델에 의한 감독된 학습은 영화들이 (본원에 사용된 예들에서) 서로 유사한지를 예측 모델이 예측하는 것을 허용할 수 있다. 예를 들어, 도 9의 제1 뷰(900)는 영화 6과 둘 다 유사한, 영화 5 및 영화 7을 예시한다. 일부 실시예들에서, 도 9의 제2 뷰(902)에 도시된 바와 같이, 예측 모델은 감독된 학습을 사용하여 훈련될 수 있다. 상기 설명된 바와 같이, 예측 모델로부터의 주어진 노드 또는 에지는 주어진 노드 또는 에지를 추가하는 것에 대한 사용자 확인에 기초하여 그래프에 추가될 수 있다. 사용자 확인의 표시는 주어진 노드 또는 에지의 예측 모델의 발생에 관한 참조 피드백으로서 모델 관리 서브시스템(114)(도 1)에 의해 예측 모델에 제공될 수 있다. 일부 실시예들에서, 주어진 노드 또는 에지를 추가하는 것에 대한 사용자 거절이 획득될 수 있다. 사용자 거절에 응답하여, 주어진 노드 또는 에지는 그래프에 추가되지 않을 수 있다. 사용자 거절의 표시는 주어진 노드 또는 에지의 예측 모델의 발생에 관한 참조 피드백으로서 예측 모델에 제공될 수 있다. 뷰(902)에 도시된 바와 같이, 배우 1, 감독 2, 및 키워드에 대한 노드들(904, 906, 및 908)은 대응하는 에지들(912, 914, 및 916)에 의해 영화 5에 대한 노드(910)에 연결된다. 일부 실시예들에서, 예측 모델은 사용자에 의해 확인되거나 거부될 수 있는 영화 5에 대한 레이팅 노드(918)(에지(920)를 통해 연결됨) 및 영화 5에 대한 분류 노드(922)(에지(924)를 통해 연결됨)를 제안하도록 구성될 수 있다.
일부 실시예들에서, 노드들 사이의 유사성 값 또는 다른 유사성 측정치들이 결정될 수 있다. 일 예로서, 도 10에 대해, 프로그래밍 코드는 그래프의 노드들 사이의 유사성 값을 결정하도록 구성될 수 있다. 이러한 예에서, 노드들은 도 9에 도시된 영화들 5, 6, 및 7에 대응한다. 도 10에 도시된 바와 같이, 예측은 영화 6이 영화 5에 대해 0.323291의 유사성 값을 갖고, 영화 7이 영화 5에 대해 0.290015의 유사성 값을 갖고, 영화 8이 영화 5에 대해 0.159687의 유사성 값을 갖는 것을 예측하기 위해 사용될 수 있다.
일부 실시예들에서, 모델 관리 서브시스템(114)은 예측 모델이 새로운 노드들 또는 에지들을 구성하게 하거나, 규칙들을 학습하게 하거나, 온톨로지 매치들을 학습하게 할 수 있다. 영화 테마를 계속적으로 하면, 도 11은 하나 이상의 실시예에 따른, 각각 새로운 노드들 또는 에지들을 발생시키고, 규칙들을 학습하고, 온톨로지 매치들을 학습하는 예들(1100, 1102, 및 1104)을 도시한다. 예(1100)에 도시된 바와 같이, 예측 모델은 노드들 예컨대 필름 및 그것의 대응하는 제목, 필름이 제작된 연도, 필름의 감독, 필름의 제작자, 및 필름에 주연인 하나 이상의 배우를 발생시킬 수 있다. 일부 실시예들에서, 예측 모델은 예측 모델에 제공되는 텍스트 또는 다른 정보에 기초하여 이러한 노드들을 발생시킬 수 있다. (일부 실시예들에서, 도 3에 도시된 바와 같이, 텍스트는 서버(102)의 모델 관리 서브시스템(114) 또는 다른 서브시스템들에 의해 수행되는 메타데이터 추출, 텍스트 추출, 그래프 추출, 또는 다른 추출 프로세스들을 거칠 수 있었다.) 예(1102)에 도시된 바와 같이, 예측 모델은 규칙들을 학습할 수 있다. 예측 모델은 그래프들의 노드들 및 에지들, 노드들을 통한 경로들, 또는 다른 정보에 기초하여 규칙들을 학습할 수 있다. 이러한 예에서, 예측 모델은 필름이 폭력과 연관되면, 필름은 범죄 장르 필름일 수 있는 것을 학습할 수 있다. 최종적으로, 예(1104)에 도시된 바와 같이, 예측 모델은 온톨로지 매치들을 학습할 수 있다. 온톨로지 매치들은 동일한 또는 유사한 개념들을 지칭하는 상이한 워드들을 포함할 수 있다. 이러한 예에 도시된 바와 같이, 예측 모델은 그러한 "Actor" 및 "Movie Star"가 동일한 개념에 대응하는 것을 학습할 수 있다. 온톨로지 매칭은 용어들: 구문, 의미 및 구조 사이의 매핑들을 발견하기 위해 3개의 상이한 종류의 유사성 메트릭들을 사용한다. 구문 유사성은 편집 거리, 퍼지 스트링 매칭 또는 트리그램 코사인 유사성과 같은 기술들을 사용하여 라벨들 내의 캐릭터들에 기초하여 2개의 용어의 유사성을 평가한다. 이것은 용어들 "생일(birthday)" 및 "생년월일(birthdate)" 사이의 유사성을 검출할 것이다. 의미 유사성은 수동으로 큐레이트된 어휘 데이터베이스(예를 들어, WordNet) 또는 개별적으로 훈련된 워드 임베딩 모델을 이용함으로써 라벨들의 의미를 고려한다. 워드 임베딩들은 유사한 방식들로 훈련 데이터세트 내에 사용되는 워드들이 유사한 표현들을 갖도록 워드들의 사용에 기초하여 워드들을 벡터 표현에 매핑한다. 이것은 "Actor" 및 "Movie Star"와 같이 구문적으로 구별되는 라벨들의 유사성을 검출할 것이다. 최종적으로, 구조 유사성은 용어들이 그들의 스키마들 내에 어떻게 정의되는지를 검사한다. 예를 들어, 하나의 스키마는 "Actor"와 "Film" 개념들 사이의 관계 "starredIn"를 정의할 수 있는 반면, 다른 스키마는 "MovieStar"와 "Movie" 사이의 관계 "workedOn"를 정의한다. 개념들 사이의 매핑들("Actor"-"MovieStar" 및 "Film"-"Move" 매핑들)이 설정되면, 이때 "starredIn" 및 "workedOn"의 유사성은 동일한 소스 및 타겟 타입들을 갖는 관계들에 기초하여 검출될 것이다.
일부 실시예들에서, 요청 서브시스템(116)은 하나 이상의 질의 계획을 결정하기 위해 하나 이상의 예측 모델을 이용할 수 있다. 일부 실시예들에서, 요청 서브시스템(116)은 하나 이상의 그래프 또는 그래프 데이터베이스에 대한 경로 정보(예를 들어, 본원에 설명된 바와 같이 경로 질의들에 의해 반환되는 경로들), 질의 계획 정보(예를 들어, 이전 질의 계획들, 이전 질의 계획들을 실행하기 위한 실제 비용들 등을 표시함), 또는 하나 이상의 이력 데이터베이스 또는 다른 소스들로부터의 다른 정보를 획득할 수 있다. 요청 서브시스템(116)은 하나 이상의 질의 계획이 하나 이상의 요청(예를 들어, 사용자들로부터의 요청들, 예측된 요청들 또는 다른 자동적으로 발생된 요청들 등)에 응답하기 위해 사용되도록 정보를 예측하기 위해 예측 모델을 훈련하도록 예측 모델에 경로 정보, 질의 계획 정보, 또는 다른 정보를 제공할 수 있다. 일부 실시예들에서, 예측 모델이 훈련될(또는 그러한 훈련에 기초하여 업데이트될) 시에, 요청 서브시스템(116)은 하나 이상의 질의 계획을 (예를 들어, 실시간으로 사용자들로부터의 요청에 응답하여, 요청들의 예측에 응답하는 등 하여) 발생시키기 위해 예측 모델을 사용할 수 있다.
질의 예측, 저장, 및 응답
일부 실시예들에서, 요청 서브시스템(116)은 데이터 요청이 장래에 발생할 예측을 하도록 구성될 수 있다. 일 예로서, 요청은 질의 제출(또는 클라이언트 개시 질의), 클라이언트 개시 질의와 관련된 업데이트 요청, 또는 다른 요청을 포함할 수 있다. 일부 실시예들에서, 요청 서브시스템(116)은 질의 결과들에 대한 요청을 예측하고 요청 예측에 응답하여 결과들의 서브세트를 획득할 수 있다. 데이터 관리 서브시스템(112)은 결과들의 서브세트가 일시적 데이터 스토리지 내에(예를 들어, 서버 캐시, 웹 캐시, 메모리 캐시, 또는 다른 일시적 데이터 스토리지에) 저장되게 할 수 있다. 일부 실시예들에서, 데이터 관리 서브시스템(112)은 (예를 들어, 결과들이 적절한 그래프 형태가 아니면) 결과들의 서브세트를 하나 이상의 서브그래프로 변환하고 일시적 데이터 스토리지 내에 서브그래프들을 저장할 수 있다. 예측된 요청(또는 예측된 요청과 매칭하는 장래의 요청)이 발생할 때, 요청 서브시스템(116)은 일시적 데이터 스토리지로부터 서브그래프들 중을 하나 이상을 획득하고 발생된 예측 요청에 응답하기 위해 획득된 서브그래프들을 사용할 수 있다. 이러한 방식으로, 예를 들어, (특정 요청들이 발생되기 전에) 그들의 변환 형태로 결과들의 일시적 저장은 요청들에 충분히 응답하기 위한 레이턴시 또는 다른 지연들을 상당히 감소시킬 수 있다.
일부 실시예들에서, 요청 서브시스템(116)은 요청이 사전 질의들(예를 들어, 그래프 데이터 모델과 호환되는 사전 질의들 또는 다른 사전 질의들)에 기초하여 장래에 발생하는 것을 예측할 수 있다. 일 예로서, 요청 예측은 요청 이력 정보, 예컨대 하나 이상의 사전 질의를 표시하는 정보, 요청들의 각각의 빈도들(예를 들어, 사전 질의들, 사전 질의들과 관련된 업데이트 요청들 등 각각의 빈도)을 표시하는 정보, 이전 요청들을 개시한 사용자들 또는 클라이언트 디바이스들에 관한 정보, 또는 다른 정보에 기초할 수 있다. 하나의 시나리오에서, 요청된 질의 결과들의 적어도 일부는 요청이 장래에 클라이언트 디바이스로부터 획득되기 전에 요청 예측에 기초하여 획득될 수 있다. 획득된 질의 결과들은 저장된 질의 결과들이 그것의 발생 시 장래의 요청에 응답하기 위해 이용될 수 있도록 장래에 발생하는 요청을 예상하여 (예를 들어, 일시적 데이터 스토리지, 예컨대 서버 캐시, 웹 캐시, 메모리 캐시, 또는 다른 일시적 데이터 스토리지 내에) 저장될 수 있다.
일부 실시예들에서, 데이터 요청의 예측에 응답하여, 요청 서브시스템(116)은 예측된 데이터 요청의 하나 이상의 파라미터에 기초하여 하나 이상의 그래프 질의를 발생시킬 수 있다. 일 예로서, 파라미터들은 하나 이상의 탐색 파라미터 예컨대 키워드들, 콘텐츠 아이템 또는 그것의 식별자/위치(예를 들어, 콘텐츠 ID, 하이퍼링크 또는 콘텐츠 아이템에 대한 다른 포인터 등), 논리 연산자들(예를 들어, 논리 곱 연산자들, 논리 합 연산자들, 논리 부정 연산자들, 또는 다른 논리 연산자들), 또는 다른 파라미터들을 포함할 수 있다. 하나의 사용 경우에, 콘텐츠 아이템이 이미지인 경우, 이미지는 유사한 이미지들, 동일한 이미지 또는 유사한 이미지들을 갖는 콘텐츠 아이템들, 이미지에서의 개념들과 유사한 개념들을 갖는 콘텐츠 아이템들, 또는 다른 결과들에 대한 탐색을 위해 사용될 수 있다. 다른 사용 경우에, 콘텐츠 아이템이 비디오인 경우, 비디오는 유사한 비디오들, 동일한 비디오 또는 유사한 비디오들을 갖는 콘텐츠 아이템들, 비디오에서의 개념들과 유사한 개념들을 갖는 콘텐츠 아이템들, 또는 다른 결과들에 대한 탐색을 위해 사용될 수 있다.
일부 실시예들에서, 그래프 데이터 모델에 기초하여, 요청 서브시스템(116)은 그래프 질의들 중 적어도 하나를 하나 이상의 비그래프 질의(예를 들어, 하나 이상의 SQL 또는 다른 비그래프 데이터베이스와 호환됨)로 변환할 수 있다. 일 예로서, 비그래프 질의들은 하나 이상의 비그래프 데이터베이스로부터 데이터 서브세트를 획득하기 위해 수행될 수 있다. 일부 실시예들에서, 그래프 질의들 중 적어도 하나는 하나 이상의 그래프 데이터베이스로부터 데이터 서브세트를 획득하기 위해 수행될 수 있다. 일 예로서, 그래프 질의들의 일부는 비그래프 데이터베이스들에 저장되는 결과들(예측된 데이터 요청과 관련됨)을 획득하기 위해 비그래프 질의들로 변환될 수 있다. 그러나, 그래프 질의들의 다른 것들이 그래프 데이터베이스들에 저장되는 결과들과 관련되면, 비그래프 질의들로 그래프 질의들의 어떠한 변환도 요구되지 않을 수 있다. 하나의 시나리오에서, 예를 들어, 요청 서브시스템(116)은 그래프 질의들과 관련된 결과들이 저장되는 곳(예를 들어, 결과들이 저장되는 비그래프 또는 그래프 데이터베이스들)을 결정하고, 그러한 결정에 기초하여, 그러한 결과들이 획득되어야 하는 비그래프 데이터베이스들 또는 그래프 데이터베이스들을 선택할 수 있다. (주어진 그래프 질의와 관련된 적어도 일부 결과들을 획득하기 위해) 적어도 비그래프 데이터베이스의 선택에 기초하여, 요청 서브시스템(116)은 그래프 질의를 비그래프 데이터베이스와 호환되는 비그래프 질의로 변환할 수 있다.
일부 실시예들에서, 데이터 관리 서브시스템(112)은 그래프, 하나 이상의 서브그래프(예를 들어, 그래프 또는 그것의 일부를 집합적으로 형성할 수 있음), 또는 하나 이상의 그래프 데이터 표현(예를 들어, 그래프, 서브그래프들, 또는 그래프/서브그래프들의 일부를 집합적으로 형성할 수 있는 노드들, 에지들 등)을 발생시키도록 구성될 수 있다. 본원에 표시된 바와 같이, 일부 실시예들에서, 데이터 관리 서브시스템(112)은 데이터 표현들(예를 들어, SQL 테이블들 또는 다른 데이터 소스들 내에 저장됨)을 그래프 표현들(예를 들어, 특정 그래프 데이터베이스와 호환됨)로 변환하기 위해 하나 이상의 그래프 데이터 모델을 이용할 수 있다. 데이터 요청이 장래에 발생할 예측에 응답하여, 요청 서브시스템(116)은 하나 이상의 데이터 소스로부터 장래 데이터 요청이 추구하도록 예측되는 하나 이상의 데이터 서브세트를 획득할 수 있다. 그러한 데이터 서브세트들을 획득할 시에, 데이터 관리 서브시스템(112)은 본원에 설명되는 하나 이상의 기술에 따라, (예를 들어, 비그래프 형태 또는 다른 비호환 표현의) 데이터 서브세트들을 하나 이상의 그래프 데이터 표현 또는 그래프 데이터 표현들을 포함하는 하나 이상의 서브그래프(예를 들어, 특정 그래프 데이터베이스와 호환됨)로 변환하기 위해 그래프 데이터 모델을 사용할 수 있다.
일부 실시예들에서, 데이터 요청의 예측에 응답하여, 하나 이상의 데이터 서브세트는 하나 이상의 비그래프 데이터 소스(예를 들어, SQL 데이터베이스들 또는 다른 비그래프 데이터 소스들)로부터 획득될 수 있고, 하나 이상의 다른 데이터 서브세트는 하나 이상의 그래프 데이터 소스(예를 들어, 그래프 데이터베이스들 또는 다른 그래프 데이터 소스들)로부터 획득될 수 있다. 일 예로서, (비그래프 데이터 소스들로부터의) 데이터 서브세트들은 비그래프 데이터 표현들(예를 들어, SQL 행들 또는 열들 또는 다른 비그래프 데이터 표현)로서 비그래프 데이터 소스들로부터 획득될 수 있고, (그래프 데이터 소스들로부터의) 다른 데이터 서브세트들은 노드들, 에지들, 또는 다른 그래프 데이터 표현들(예를 들어, 특정 그래프 데이터베이스와 호환됨, 그래프 데이터베이스와 호환되지 않음 등)로서 그래프 데이터 소스들로부터 획득될 수 있다. 데이터 관리 서브시스템(112)은 (비그래프 데이터 소스들로부터의) 데이터 서브세트들을 나타내는 하나 이상의 서브그래프 및 (그래프 데이터 소스들로부터의) 다른 데이터 서브세트들을 나타내는 하나 이상의 다른 서브그래프를 발생시킬 수 있다. 일 예로서, 비그래프 소스 획득 데이터 서브세트들에 대해, 데이터 관리 서브시스템(112)은 비그래프 데이터 표현들을 그래프 데이터베이스와 호환되는 그래프 데이터 표현들로 변환하고 그래프 데이터 표현들을 대표적인 서브그래프들로 컴파일하기 위해 그래프 데이터 모델을 사용할 수 있다. 다른 예로서, 그래프 소스 획득 데이터 서브세트들에 대해, 데이터 관리 서브시스템(112)은 (그러한 데이터 서브세트들의) 그래프 데이터 표현들을 다른 대표적인 서브그래프들로 컴파일하기 위해 그래프 데이터 모델을 사용할 수 있다. 그래프 데이터 표현들이 그래프 데이터베이스와 호환되지 않는 형태이면, 데이터 관리 서브시스템(112)은 비호환 데이터 표현들을 호환 그래프 데이터 표현들로 변환하고 호환 그래프 데이터 표현들을 다른 대표적인 서브그래프들로 컴파일하기 위해 그래프 데이터 모델을 사용할 수 있다.
일부 실시예들에서, 데이터 관리 서브시스템(112)은 일시적 데이터 스토리지 내에 서브그래프들(비그래프 데이터 서브세트들로부터 도출됨) 및 다른 서브그래프들(그래프 데이터 서브세트들로부터 도출됨)을 저장할 수 있다. 예측된 데이터 요청과 매칭하는 후속 데이터 요청을 획득하는 것에 응답하여, 요청 서브시스템(112)은 일시적 데이터 스토리지로부터 서브그래프들, 다른 서브그래프들, 또는 다른 정보를 획득하고 그러한 획득된 정보를 사용하여 후속 데이터 요청에 응답할 수 있다. 일부 실시예들에서, 요청 서브시스템은 획득된 서브그래프들의 노드들, 에지들, 또는 다른 그래프 데이터 표현들로부터 데이터 서브세트들을 추출하고 추출된 데이터 서브세트들을 반환하여 후속 데이터 요청에 응답할 수 있다.
일부 실시예들에서, 예측된 데이터 요청과 매칭하는 후속 데이터 요청을 획득하는 것에 응답하여, 요청 서브시스템(116)은 후속 데이터 요청에 응답하기 위해 질의 계획을 발생시킬 수 있다. 일 예로서, 후보 질의 계획은 질의 계획들(또는 템플릿 질의 계획들)의 집합으로부터 선택되고 후속 데이터 요청에 특정될 질의 계획을 생성하기 위해 수정될 수 있다. 일부 실시예들에서, 예측된 데이터 요청과 관련된 서브그래프들 또는 다른 정보가 일시적 데이터 스토리지 내에 저장되는 경우, 질의 계획은 (i) 일시적 데이터 스토리지로부터 서브그래프들 또는 다른 정보를 획득하는 것, (ii) 다른 데이터 소스들(예를 들어, 그래프 데이터베이스들, 비그래프 데이터베이스들 등)로부터 다른 정보를 획득하는 것을 포함하기 위해 발생될 수 있다. 일 예로서, 질의 계획에 기초하여, 요청 서브시스템(116)은 일시적 데이터 스토리지로부터 예측된 데이터 요청과 관련된 하나 이상의 서브그래프를 획득하고 하나 이상의 다른 데이터 소스로부터 하나 이상의 다른 데이터 서브세트(예를 들어, 예측된 데이터 요청과 관련됨, 후속 데이터 요청과 관련됨 등)를 획득할 수 있다. 요청 서브시스템(116)은 후속 데이터 요청에 응답하기 위해 서브그래프들(또는 서브그래프들이 표현하는 데이터 세트들) 및 다른 데이터 서브세트들을 사용할 수 있다.
일부 실시예들에서, 데이터 요청의 예측에 응답하여 수행되는 질의들(예를 들어, 그래프 질의들, 비그래프 질의들)은 예측된 데이터 요청에 응답하기 위해 수행되었던 질의들의 세트의 일부일 수 있으며 예측된 데이터 요청은 클라이언트 디바이스로부터 획득되었다. 일부 실시예들에서, 질의들의 세트 중 하나 이상의 다른 질의의 어떠한 수행도 데이터 요청의 예측으로부터 발생하지 않을 수 있다. 일 예로서, 다른 것에 대한 질의들의 어떠한 수행도 요청 예측으로부터 발생하지 않을 수 있다.
일부 실시예들에서, 질의들에 대한 결과들의 서브세트는 요청에 응답하기 위해 획득되었던 결과들의 세트의 일부일 수 있으며, 요청은 클라이언트 디바이스로부터 획득되었다. 예를 들어, 결과들의 세트가 (요청에 대한 응답으로서) 클라이언트 디바이스로 반환되는 제1 웹 페이지(예를 들어, 가장 관련된 결과들 또는 다른 프리젠테이션의 리스트) 상에 제공되었던 모든 결과들이면, 결과들의 서브세트는 제1 웹 페이지 상에 제공되는 그러한 결과들의 일부일 수 있다. 다른 사용 경우에, 결과들의 세트는 요청에 응답하기 위해 획득되었던 모든 결과들일 수 있으며, 요청은 클라이언트 디바이스로부터 획득되었다. 일 예로서, 다른 서브세트들(상술한 결과들의 세트)이 (예를 들어, 요청 예측에 응답하는 하나 이상의 질의를 통해) 획득될지라도, (서브그래프들의 세트의) 다른 서브세트들을 일시적 데이터 스토리지 내에 (예를 들어, 본원에 설명된 바와 같이, 빈도 정보, 비용 정보 등에 기초하여) 저장하지 않는 결정이 이루어질 수 있다.
일부 실시예들에서, 서브그래프들 또는 다른 데이터의 획득 또는 저장(또는 다른 서브그래프들 또는 다른 데이터를 획득하지 않거나 저장하지 않는 결정)은 빈도 정보, 비용 정보, 또는 다른 정보에 기초할 수 있다. 일부 실시예들에서, 요청 서브시스템(116)은 빈도 정보, 비용 정보, 또는 다른 정보에 기초하여 (다른 질의들을 통해) 수행될 질의들의 서브세트의 선택을 수행할 수 있다. 빈도 정보는 요청 또는 다른 정보와 매칭하는 요청들의 빈도를 표시하는 정보를 포함할 수 있다. 비용 정보는 일시적 데이터 스토리지 내에 데이터를 저장하기 위한 비용들을 표시하는 정보, 각각의 질의들을 수행하기 위한 비용들을 표시하는 정보, 또는 다른 정보를 포함할 수 있다. 그러한 비용들은 예를 들어, 화폐 비용(monetary cost), 컴퓨터 자원 비용(예를 들어, 대역폭 또는 다른 네트워크 자원 사용량 또는 다른 컴퓨터 자원 비용), 또는 다른 비용들을 포함할 수 있다.
비용/혜택 분석은 예를 들어, 결과들의 양이 요청 예측에 응답하여 획득 또는 저장되는지 또는 획득 또는 저장되는 것을 결정하기 위해 수행될 수 있다. 하나의 사용 경우에, 요청 서브시스템(116)은 그들의 각각의 비용들(예를 들어, 데이터에 대해 데이터 소스에 질의하기 위한 비용), 그러한 질의들로부터 획득되는 결과들의 각각의 혜택들(예를 들어, 예측된 요청과 매칭하는 요청들의 빈도, 결과들 중 어느 것이 요청자의 선호도들에 기초한 다른 결과들에 비해 우선순위를 갖는지 등), 일시적 데이터 스토리지에 그러한 결과들을 저장하기 위한 각각의 비용들, 또는 다른 기준들에 기초하여 질의들을 수행할지(또는 어느 질의들을 수행할지)를 결정할 수 있다. 추가 사용 경우에, 스코어들은 그들의 각각의 비용들, 그러한 질의들로부터 획득되는 결과들의 각각의 혜택들, 일시적 데이터 스토리지에 그러한 결과들을 저장하기 위한 각각의 비용들, 또는 다른 기준들에 기초하여 (실행되기 전에) 각각의 질의들에 할당될 수 있다. 일 예로서, 데이터에 대해 데이터 소스에 질의하기 위한 더 낮은 비용은 (다른 질의들에 대한 스코어들과 비교하여) 대응하는 질의에 대한 더 높은 할당된 스코어에 영향을 미칠 수 있다. 예측된 요청과 매칭하는 요청들의 더 큰 빈도는 예측된 요청과 관련된 질의들에 대한 더 높은 할당된 스코어들에 영향을 미칠 수 있다. 하나의 질의로부터 도출되는 결과들이 요청자에게(예를 들어, 요청자의 선호도들에 기초하여 다른 질의들로부터 도출되는 다른 결과들을 통해 사용자 인터페이스 상에) 제시될 더 큰 가능성은 (다른 질의들에 대한 스코어들과 비교하여) 질의에 대한 더 높은 스코어에 영향을 미칠 수 있다. 그들의 각각의 할당된 스코어들에 기초하여, 요청 서브시스템(116)은 질의들 중 하나 이상이 수행될지 또는 하나 이상 중 어느 것이 수행될지를 결정할 수 있다. 일 예로서, 요청 서브시스템(116)은 질의들의 다른 서브세트들보다 더 큰 스코어들을 갖는 질의들의 서브세트에 기초하여 수행될 질의들의 서브세트를 선택할 수 있다.
다른 사용 경우에, 획득될지라도, 일시적 요청 서브시스템(116)은 일시적 데이터 스토리지에 그러한 결과들을 저장하기 위한 각각의 비용들, 그러한 결과들의 각각의 혜택들, 또는 다른 기준들에 기초하여 결과들(또는 저장될 결과들의 양)을 저장할지를 결정할 수 있다. 추가 사용 경우에, 스코어들은 일시적 데이터 스토리지에 그러한 결과들을 저장하기 위한 각각의 비용들, 그러한 결과들의 각각의 혜택들, 또는 다른 기준들에 기초하여 각각의 결과들(예를 들어, 결과들의 서브세트들)에 할당될 수 있다. 일 예로서, 결과들의 특정 서브세트들을 저장하기 위한 더 낮은 비용은 결과들의 서브세트에 대한 더 높은 할당된 스코어들에 영향을 미칠 수 있다. 예측된 요청과 매칭하는 요청들의 더 큰 빈도는 예측된 요청과 관련된 결과들에 대한 더 높은 할당된 스코어들에 영향을 미칠 수 있다. 결과들의 특정 서브세트들이 요청자에게(예를 들어, 요청자의 선호도들에 기초하여 다른 결과들을 통해 사용자 인터페이스 상에) 제시될 더 큰 가능성은 결과들의 서브세트들에 대한 더 높은 스코어에 영향을 미칠 수 있다. 그들의 각각의 할당된 스코어들에 기초하여, 요청 서브시스템(116)은 결과들이 일시적 데이터 스토리지에 저장될지 또는 결과들 중 어느 것이 저장될지를 결정할 수 있다. 요청 서브시스템(116)은 예를 들어, 결과들의 다른 서브세트들보다 더 큰 스코어들을 갖는 결과들의 서브세트에 기초하여 저장될 결과들의 서브세트(예를 들어, 수행된 질의들로부터 획득됨)를 선택할 수 있다.
일부 실시예들에서, 결과들이 (본원에 설명된 바와 같이) 하나 이상의 요청의 예측에 응답하여 획득되거나 저장될 수 있지만, 어떠한 결과들도 (예를 들어, 발생하는 그러한 다른 요청들의 가능성들이 확실 임계치를 각각 충족시킬지라도) 특정 다른 요청들의 예측에 응답하여 획득 또는 저장되지 않을 수 있다. 일 예로서, 요청 서브시스템(116)은 예측된 요청에 대해 수행되는 비용/혜택 분석에 기초하여(예를 들어, 빈도 정보, 비용 정보, 또는 다른 정보에 기초하여) 요청의 예측에 응답하는 임의의 질의들을 수행하지 않는 것을 결정할 수 있다. 다른 예로서, 요청 서브시스템(116)은 예측된 요청에 대해 수행되는 비용/혜택 분석에 기초하여(예를 들어, 빈도 정보, 비용 정보, 또는 다른 정보에 기초하여) 요청 예측으로부터 획득되는 임의의 결과들을 저장하지 않는 것을 결정할 수 있다.
일부 실시예들에서, 모델 관리 서브시스템(114)은 요청 이력 정보를 획득하고 예측 모델을 훈련하기 위해 예측 모델에 요청 이력 정보를 제공하도록 구성될 수 있다. 요청 이력 정보는 (i) 이전 요청들(예를 들어, 데이터에 대한 사용자 제출 요청들)의 집합, (ii) 이전 요청들로부터 발생되는 사전 질의들(예를 들어, 그래프 데이터 모델과 호환되도록 구성되는 그래프 질의들)의 집합, (iii) 이전 요청들 또는 질의들이 획득되는 시간들을 표시하는 타이밍 정보, (iv) 이전 요청들 또는 질의들의 빈도들을 표시하는 빈도 정보, (v) 이전 요청들을 제출하고 이전 요청들 중 어느 것이 사용자들 또는 사용자들의 타입들에 의해 제출된 사용자들(예를 들어, 비개인적으로 식별가능한 사용자 식별자들 또는 다른 식별자들) 또는 사용자들의 타입들(예를 들어, 사용자들의 연령, 성별, 위치, 또는 다른 카테고리들)을 표시하는 사용자 정보, 또는 (vi) 다른 정보를 포함할 수 있다.
일부 실시예들에서, 예측 모델은 요청 이력 정보의 적어도 하나의 타입을 획득하고 획득된 정보에 기초하여 요청 이력 정보의 적어도 다른 타입을 예측하도록 구성될 수 있다. 일 예로서, 예측 모델에 대한 입력으로서 제공되는 각각의 이전 요청 또는 질의에 대해, 모델 관리 서브시스템(114)은 타이밍 정보(이전 요청 또는 질의가 획득된 시간들을 표시함), 빈도 정보(이전 요청 또는 질의의 빈도들을 표시함), 사용자 정보(이전 요청을 제출한 사용자들 또는 사용자들의 타입들을 표시함), 또는 예측 모델을 훈련하기 위해 이전 요청 또는 질의에 대한 타이밍 정보, 빈도 정보, 사용자 정보 또는 다른 정보의 예측 모델의 예측을 위한 참조 피드백으로서 이전 요청 또는 질의와 관련된 다른 정보를 제공할 수 있다. 예측 모델은 그것의 예측된 정보를 평가하기 위해 참조 피드백을 사용할 수 있다. 다른 예로서, 예측 모델에 대한 입력으로서 제공되는 타이밍 정보, 빈도 정보, 또는 사용자 정보에 대해, 모델 관리 서브시스템(114)은 예측 모델을 훈련하기 위해 요청들 또는 질의들의 예측 모델의 예측을 위한 참조 피드백으로서 입력 정보와 연관된 이전 요청들 또는 질의들을 제공할 수 있다. 예측 모델은 요청들 또는 질의들의 그것의 예측을 평가하기 위해 참조 피드백을 사용할 수 있다. 그것의 예측의 평가에 기초하여, 예측 모델은 (예를 들어, 그것의 예측이 정확했는지 또는 그것의 예측이 얼마나 정확했는지에 따라 예측 모델의 파라미터들 또는 예측 모델의 다른 부분들의 가중치들을 조정함으로써) 예측 모델의 하나 이상의 부분을 업데이트할 수 있다. 하나의 사용 경우에, 예측 모델이 신경 네트워크인 경우, 신경 네트워크는 부가 템플릿들의 그것의 예측의 신경 네트워크의 평가에 기초하여 신경 네트워크의 하나 이상의 계층을 업데이트할 수 있다.
일부 실시예들에서, 예측 모델이 훈련될(또는 그러한 훈련에 기초하여 업데이트될) 시에, 모델 관리 서브시스템(114)은 (i) 하나 이상의 요청 또는 질의, (ii) 그러한 요청들 또는 질의들에 대한 타이밍 정보, (iii) 그러한 요청들 또는 질의들에 대한 빈도 정보, (iv) 그러한 요청들 또는 질의들에 대한 사용자 정보, 또는 (v) 그러한 요청들 또는 질의들에 대한 다른 정보를 예측하기 위해 예측 모델을 사용할 수 있다. 일 예로서, 그러한 예측들은 예측된 요청의 하나 이상의 파라미터, 예컨대 탐색 파라미터들(예를 들어, 키워드들, 콘텐츠 아이템 또는 그것의 식별자/위치, 논리 연산자들 등) 또는 다른 파라미터들을 포함할 수 있다. 다른 예로서, 그러한 예측들은 그러한 예측된 요청(또는 예측된 요청과 매칭하는 후속 요청)의 하나 이상의 시간, 그러한 예측된 요청의 빈도들, 요청을 제출하도록 예측되는 사용자들 또는 사용자 타입들, 또는 다른 예측들을 포함할 수 있다. 그러한 예측들에 기초하여, 요청 서브시스템(116)은 결과들의 하나 이상의 서브세트를 획득하고 결과들을 일시적 데이터 스토리지 내에(예를 들어, 서버 캐시, 웹 캐시, 메모리 캐시, 또는 다른 일시적 데이터 스토리지에), 본원에 설명된 바와 같이(예를 들어, 그래프 데이터베이스와 호환되는 변환된 서브그래프 형태 또는 다른 형태로) 저장할 수 있다. 예측된 요청(또는 예측된 요청과 매칭하는 장래의 요청)이 발생할 때, 요청 서브시스템(116)은 일시적 데이터 스토리지로부터 결과들 중 하나 이상을 획득하고 발생된 예측 요청에 응답하기 위해 획득된 결과들을 사용할 수 있다.
질의 세트 최적화
일부 실시예들에서, 최적화 서브시스템(118)은 데이터 검색 프로세스에서 질의 관련 자원 사용을 감소시키도록 구성될 수 있다. 일부 실시예들에서, 최적화 서브시스템(118)은 데이터 요청(예를 들어, 사용자로부터의 명시적 요청 또는 다른 요청)로부터 도출되는 질의 세트, 예컨대 그래프 질의(또는 데이터 요청과 관련된 다른 질의)가 변환되는 질의 세트를 최적화함으로써 그러한 질의 관련 자원 사용을 감소시킬 수 있다. 일부 실시예들에서, 그러한 질의 세트 최적화들은 질의 세트로부터 다수의 질의를 링크하는 질의 연산자의 제거, 단일 질의 내로 질의 세트의 다수의 질의의 병합, 질의 세트로부터 하나 이상의 질의의 제거, 또는 다른 최적화들을 포함할 수 있다. 그러한 최적화들은 충족가능성 문제(예를 들어, 특정 질의들로부터 도출되는 결과들을 조합하는 것과 관련됨), 비호환성 문제들, 또는 다른 문제들의 예측에 기초하여 수행되어 그러한 문제들 또는 그러한 문제들의 부정적 영향들을 회피하거나 완화할 수 있다.
일부 실시예들에서, 요청 서브시스템(116)은 다수의 데이터 요청을 (예를 들어, 하나 이상의 사용자 디바이스로부터) 획득하고 처리하고 다수의 데이터 요청이 공통 타겟 데이터를 추구하는지를 결정할 수 있다(예를 들어, 데이터 요청들에 의해 추구되는 데이터의 적어도 일부는 데이터 요청들 중에서 동일함). 데이터 요청들이 공통 타겟 데이터를 추구한다는 결정에 기초하여, 요청 서브시스템(116)은 하나 이상의 질의를 (예를 들어, 질의 세트의 일부로서) 발생시킬 수 있으며, 질의들 중 각각은 이러한 하나의 질의가 모든 데이터 요청들에 응답하기 위해 공통 데이터 부분을 획득하는데 사용될 수 있도록 데이터 요청들에 의해 공통적으로 추구되는 데이터의 적어도 일부를 획득하기 위해 구성된다. 일부 실시예들에서, 요청 서브시스템(116)은 질의들 중 적어도 하나가 제1 소스로부터 공통 추구된 제1 데이터 세트를 획득하기 위해 구성되고 질의들 중 적어도 다른 것이 제2 소스로부터 공통 추구된 제2 데이터 세트를 획득하기 위해 구성되도록 질의들을 발생시킬 수 있다. 일 예로서, 제1 소스로부터 공통 추구된 제1 데이터 세트를 획득하기 위한 주어진 질의는 제1 소스와 호환되고, 제1 소스와 호환되고 제2 소스와 호환되지 않는 등 하도록 구성될 수 있다. 다른 예로서, 제2 소스로부터 공통 추구된 제2 데이터 세트를 획득하기 위한 주어진 질의는 제2 소스와 호환되고, 제2 소스와 호환되고 제1 소스와 호환되지 않는 등 하도록 구성될 수 있다. 상이한 소스들(예를 들어, 제1 소스, 제2 소스 등)로부터 공통 추구된 데이터의 세트들을 획득하는 것에 응답하여, 요청 서브시스템(116)은 공통 추구된 데이터의 세트들을 조합하고 데이터 요청들 각각에 응답하기 위해 조합된 세트들을 반환할 수 있다.
일부 실시예들에서, 요청 서브시스템(116)은 다수의 데이터 요청(예를 들어, 하나 이상의 사용자 디바이스로부터 획득됨)이 모든 데이터 요청들에 공통인 2개 이상의 속성과 연관된 2개 이상의 값을 각각 추구하는 것을 결정할 수 있다. 일 예로서, 데이터 요청들은 (i) 그룹 A 내의 개인들의 이름, 그룹 B 내의 개인들의 이름 등 및 (ii) 그룹 A 내의 개인들의 주소들, 그룹 B 내의 개인들의 주소들 등을 집합적으로 추구하기 위해 결정될 수 있다. 하나의 사용 경우에, 제1 데이터 요청은 그룹들 중 하나 내의 제1 개인의 이름 및 주소를 추구할 수 있고, 제2 데이터 요청은 그룹들 중 하나 내의 제2 개인의 이름 및 주소를 추구할 수 있는 등이다. 일부 실시예들에서, (i) 제1 공통 속성(예를 들어, 이름)과 연관된 값들이 제1 데이터 소스로부터 획득가능하고 (ii) 제2 공통 속성(예를 들어, 주소)과 연관된 값들이 제2 데이터 소스로부터 획득가능하다는 결정에 기초하여, 요청 서브시스템(116)은 하나 이상의 질의를 (예를 들어, 질의 세트의 일부로서) 발생시킬 수 있으며, 질의들 중 적어도 하나는 제1 데이터 소스로부터 제1 공통 속성과 연관된 값들을 획득하도록 구성되고, 질의들 중 적어도 다른 것은 제2 데이터 소스로부터 제2 공통 속성과 연관된 값들을 획득하도록 구성된다. 일부 실시예들에서, 데이터 요청들 각각에 대해, 요청 서브시스템(116)은 제1 데이터 소스로부터 획득되는 요청된 값 및 제2 데이터 소스로부터 획득되는 요청된 값을 조인하고 조인된 요청 값들을 반환하여 데이터 요청에 응답할 수 있다. 하나의 시나리오에서, 예를 들어, 상이한 개인의 이름 및 주소를 각각 추구하는 다수의 데이터 요청(예를 들어, 수십의 요청, 수백의 요청, 수천의 요청 등)이 있지만, 하나의 질의는 제1 데이터 소스로부터 모든 그러한 데이터 요청들에 대한 이름들을 획득하기 위해 발생될 수 있고, 다른 질의는 제2 데이터 소스로부터 모든 그러한 데이터 요청들에 대한 주소들을 획득하기 위해 발생될 수 있다. 2개의 질의의 수행을 통해 이름들 및 주소들의 적어도 일부를 획득할 시에, 각각의 개인에 대한 이름 및 주소는 대응하는 데이터 요청(즉, 그러한 특정 개인에 대한 이름 및 주소를 추구함)에 응답하기 위해 조인되고 반환될 수 있다.
일부 실시예들에서, 하나 이상의 속성과 연관된 하나 이상의 값을 추구하는 제1 요청을 획득한 후에, 요청 서브시스템(116)은 제1 요청에 응답하기 위해 데이터를 획득하도록 구성되는 하나 이상의 질의를 발생시키거나 수행하기 전에 미리 결정된 양의 시간을 대기할 수 있다. 그와 같이, 대기 기간은 다른 요청들(제1 요청에서 추구되는 속성들과 공통인 적어도 하나의 속성과 연관된 값들을 추구함)이 획득되는 것을 허용하며, 그것에 의해 제1 요청 및 다른 요청들에 응답하기 위해 수행될 필요가 있는 전체 수의 질의들을 감소시킨다. 일부 실시예들에서, 요청 서브시스템(116)은 (예를 들어, 주어진 요청을 획득하므로) 미리 결정된 양의 시간이 경과했는지를 결정할 수 있다. 미리 결정된 양의 시간이 경과하지 않았으면, 요청 서브시스템(116)은 주어진 요청에 대한 데이터를 획득하도록 구성되는 하나 이상의 질의의 발생 또는 수행을 지연시킬 수 있다. 다른 한편, 미리 결정된 양의 시간이 경과했으면, 요청 서브시스템(116)은 주어진 요청을 획득하므로 다른 요청들이 획득되었는지를 결정할 수 있다. 주어진 요청에서 추구되는 값들로서 적어도 하나의 속성과 연관된 값들을 추구하는 그러한 주어진 요청 및 다른 요청들에 대해, 요청 서브시스템(116)은 상술한 요청들에 의해 추구되는 공통 속성과 연관된 값들을 획득하도록 각각 구성되는 하나 이상의 질의의 수행을 발생시키고 야기할 수 있다.
일부 실시예들에서, 요청 서브시스템(116)은 요청 이력 정보, 예컨대 (i) 이전 요청들의 집합, (ii) 이전 요청들로부터 발생되는 사전 질의들의 집합, (iii) 이전 요청들 또는 질의들이 획득되는 시간들을 표시하는 타이밍 정보, (iv) 이전 요청들 또는 질의들의 빈도들을 표시하는 빈도 정보, (v) 이전 요청들을 제출하고 이전 요청들 중 어느 것이 사용자들 또는 사용자들의 타입들에 의해 제출된 사용자들 또는 사용자들의 타입들을 표시하는 사용자 정보, 또는 (vi) 다른 정보에 기초하여 미리 결정된 양의 시간을 (본원에 설명된 대기 기간 동안) 설정할 수 있다. 일부 실시예들에서, 미리 결정된 양의 시간은 요청의 각각의 카테고리에 대해 설정될 수 있으며, 요청들은 요청들에 의해 추구되는 콘텐츠, 사용자들 또는 사용자들의 타입들(예를 들어, 사용자들의 연령, 성별, 위치, 또는 다른 카테고리들), 또는 다른 기준들에 기초하여 카테고리화된다. 일부 실시예들에서, 그러한 미리 결정된 양의 시간은 요청을 (예를 들어, 실시간으로) 획득하는 것에 응답하여 주어진 요청에 대해 결정될 수 있다. 일 예로서, 요청 서브시스템(116)은 요청을 획득하는 것에 응답하여 요청의 카테고리를 결정하고 그 다음 (예를 들어, 더 유사한 요청들이 획득되는 것을 허용하기 위해) 대기 기간에 사용될 미리 결정된 양의 시간을 결정할 수 있다.
본원에 표시된 바와 같이, 일부 실시예들에서, 요청 서브시스템(116)은 공통 속성들(예를 들어, 모든 그러한 요청들에 공통임)과 연관된 값들을 각각 추구하는 요청들의 예측과 같이, 하나 이상의 요청이 장래에 발생할 것을 예측할 수 있다. 본원에 논의된 바와 같이, 그러한 예측들은 요청 이력 정보에 기초할 수 있다. 일부 실시예들에서, 요청 서브시스템(116)은 장래의 요청들과 관련된 예측들(예를 들어, 각각의 카테고리 내의 요청들이 발생할 때 또는 얼마나 자주 발생할지에 관한 예측들)에 기초하여 요청들의 각각의 카테고리에 대한 미리 결정된 양의 시간을 설정할 수 있다. 또한 본원에 논의되는 바와 같이, 예측 모델은 그러한 예측들의 표시들을 출력하기 위해 요청 이력 정보에 기초하여 훈련될 수 있다. 일부 실시예들에서, 예측 모델은 그 자체의 예측을 평가하도록 구성될 수 있고, 그러한 평가에 기초하여, 예측 모델은 (예를 들어, 그것의 예측이 정확했는지 또는 그것의 예측이 얼마나 정확했는지에 따라 예측 모델의 파라미터들 또는 예측 모델의 다른 부분들의 가중치들을 조정함으로써) 예측 모델의 하나 이상의 부분을 업데이트할 수 있다.
일부 실시예들에서, 요청 서브시스템(116)은 사용자 디바이스 또는 다른 소스로부터 데이터 요청을 획득하고 데이터 요청에 기초하여 하나 이상의 질의를 발생시킬 수 있다. 일부 실시예들에서, 요청 서브시스템(116)은 데이터 요청에 기초하여 그래프 질의를 발생시킬 수 있다. 그래프 질의를 획득하는 것에 응답하여, 최적화 서브시스템(118)은 그래프 질의를 다수의 질의 및 질의들을 링크하는 질의 연산자들(예를 들어, 유니언들, 조인들, 또는 다른 질의 연산자들)을 갖는 질의 세트로 변환할 수 있다. 일부 실시예들에서, 그래프 질의는 그래프 데이터베이스와 호환될 수 있고, 그래프 질의는 하나 이상의 타겟 데이터 소스와 호환되는 질의 세트에 대한 다수의 질의를 발생시키기 위해 사용될 수 있다. 일 예로서, 데이터 소스와 호환되는 질의는 데이터 소스의 데이터베이스 관리 시스템에 따라 데이터 소스들로부터 데이터를 검색하기 위해 실행될 수 있다. 발생된 바와 같이, 일부 실시예들에서, 다수의 질의는 타겟 데이터 소스들과 호환될 수 있지만, (그래프 질의가 호환되는) 그래프 데이터베이스와 호환되지 않을 수 있다. 일부 실시예들에서, 데이터 요청에 기초하여, 요청 서브시스템(116)은 제1 재귀 질의(recursive query)(예를 들어, 그래프 데이터베이스와 호환되는 그래프 재귀 질의)를 발생시킬 수 있다. 요청 서브시스템(116)은 (예를 들어, 질의 세트에 대한) 제1 재귀 질의를 하나 이상의 제2 재귀 질의로 변환할 수 있다. 일 예로서, 제2 재귀 질의들 각각은 타겟 컴퓨터 시스템에 의한 제2 재귀 질의들 중 하나의 실행(예를 들어, 타겟 데이터 소스의 호스팅) 시에, 실행된 재귀 질의가 타겟 컴퓨터 시스템으로 하여금 제2 재귀 질의로부터 다수의 질의를 발생시키고 다수의 질의를 실행하여 타겟 데이터 소스로부터 데이터 요청에 관련된 데이터를 획득하게 하도록 타겟 데이터 소스와 호환되도록 구성될 수 있다.
일부 실시예들에서, 상술한 질의 세트에 대해, 최적화 서브시스템(118)은 질의 세트의 하나 이상의 부분과 관련된 하나 이상의 문제를 예측하고 질의 세트를 업데이트하기 위해 예측된 문제들에 기초하여 질의 세트에 하나 이상의 최적화를 수행할 수 있다. 그와 같이, 업데이트된 질의 세트가 그래프 질의(및, 따라서, 데이터 요청)를 충족시키기 위해 실행될 때, 예측된 문제들 또는 예측된 문제들의 부정적 영향들이 회피되거나 완화될 수 있다.
일 예로서, 데이터 요청은 직원의 급여 및 직원이 작업하도록 할당받았던 프로젝트들에 대해 질문할 수 있다. 데이터 요청은 이하의 2개의 패턴을 갖는 그래프 질의로 기입될 수 있다(예를 들어, 이는 질의의 결과들이 그래프 내에 데이터 표현들로서 어떻게 저장되는지를 반영하며, 여기서 "직원" 및 "급여" 노드들 "hasSalary" 에지에 의해 연결되고, "직원" 및 "프로젝트" 노드들은 "worksOn" 에지에 의해 연결됨):
?employee :hasSalary ?salary
?employee :worksOn ?project
하나의 사용 경우에, 상술한 예에 대해, 매핑들(또는 그러한 매핑들에 의해 정의되는 템플릿들)은 급여 또는 프로젝트 정보를 포함하는 RDBMS 내에 소스 테이블(들)을 표시할 수 있고, 최적화 서브시스템(118)은 그래프 질의를 데이터베이스의 언어 내의 질의 세트로 변환하기 위해 매핑들을 (데이터베이스 특정 질의 트랜스레이터와 함께) 사용한다. 일부 경우들에서, 각각의 관계에 대한 하나보다 많은 소스가 있을 수 있어, 다수의 질의 연산자를 갖는 질의 세트를 야기한다. 예를 들어, 직원은 다수의 프로젝트를 착수할 수 있고, 이러한 프로젝트들은 다수의 테이블 내에 저장될 수 있다. 일부 경우들에서, 질의 세트로의 그래프 질의의 변환(RDBMS로부터 결과들을 획득하기 위함)은 패턴에 대응하는 소스에 대한 UNION을 발생시키고 SQL 조인들로서 각각의 패턴에 대한 UNION들의 데카르트 곱을 생성할 수 있다. 그래프 질의 내의 N개의 패턴 및 각각의 항에 대한 M개의 소스가 있으면, 질의 변환은 N x M UNION을 생성할 수 있다. 최적화 서브시스템(118)은 UNION들의 수의 감소시키거나, 주어진 UNION 내부의 조인들을 단순화하거나, 그렇지 않으면 질의 세트를 최적화할 수 있다.
일부 실시예들에서, 최적화 서브시스템(118)은 질의 세트(예를 들어, 그래프 질의 또는 다른 질의로부터 변환되는 초기 질의 세트)와 관련된 하나 이상의 충족가능성 문제를 예측할 수 있다. 일부 실시예들에서, 충족가능성 문제(질의들 중 2개로부터 도출되는 결과들을 조합하는 것과 관련됨)의 예측에 기초하여, 최적화 서브시스템(118)은 질의 세트를 업데이트하기 위해 질의 세트로부터 2개의 질의를 링크하는 질의 연산자를 제거하거나 질의 세트에 다른 최적화들을 수행할 수 있다. 그와 같이, 시스템(100)이 그래프 질의(및, 따라서 데이터 요청)을 충족시키기 위해 업데이트된 질의 세트를 실행할 때, 시스템(100)은 충족가능성 문제 또는 충족가능성 문제의 부정적 영향들, 예컨대 (i) 질의 세트의 하나 이상의 부분을 실행하기 위해 사용되고 그러한 질의 세트 실행으로부터 도출되는 비호환 결과들을 조합하려고 시도하는 자원들의 낭비, (ii) 그러한 실행 및 시도들에서 기인하는 지연, 또는 (iii) 다른 부정적 영향들을 회피하거나 완화할 수 있다.
일부 실시예들에서, 질의 세트 내의 다수의 질의가 하나 이상의 질의 연산자(예를 들어, 유니언들, 조인들, 또는 다른 질의 연산자들)에 의해 링크되는 경우, 최적화 서브시스템(118)은 링크된 질의들에 대한 결과들을 획득하기 위한 하나 이상의 소스를 결정할 수 있다. 결과들이 질의들 중 2개에 대해 획득되는(그리고 그러한 결과들이 초기에 그래프 데이터베이스와 호환되지 않는) 적어도 2개의 소스가 있으면, 최적화 서브시스템(118)은 그러한 소스들로부터의 데이터 표현들을 그래프 데이터베이스와 호환되는 그래프 데이터 표현들로 변환하도록 구성되는 템플릿들을 평가할 수 있다. 최적화 서브시스템(118)이 적어도 2개의 그러한 템플릿들과 관련된 비호환성을 결정하면, 최적화 서브시스템(118)은 충족가능성 문제(2개의 질의로부터 도출되는 결과들을 조합하는 것과 관련됨)를 예측하고 질의 세트를 업데이트하기 위해 질의 세트로부터 2개의 질의를 링크하는 질의 연산자를 제거하거나 질의 세트에 다른 최적화들을 수행할 수 있다. 하나의 사용 경우에, 매핑들은 전세계적 고유 식별자들(IRI들로 지칭될 수 있음)을 생성함으로써 RDBMS로부터의 행들을 그래프 내의 노드들로 변환하기 위한 템플릿들을 정의할 수 있다. 일 예로서, ID 123을 갖는 직원은 "http://example.org/employee/123"과 같은 식별자에 매핑될 수 있다. 2개의 소스에 대한 매핑들이 비호환 템플릿들을 사용하면, 최적화 서브시스템(118)은 조인 결과들이 비어 있을 것이고 제거될 수 있는 것을 예측할 수 있다. 일 예로서, 하나의 템플릿이 http://example.org/employee/{ID}의 형태이지만, 다른 템플릿이 http://example.org/department/{ID}의 형태이면, 이때 2개의 템플릿이 ID 값에 관계없이 비호환이라고 결론을 내릴 수 있다. 다시 말해, 템플릿들은 고정 및 가변 부분들, 예를 들어 "http://example.org/employee/" 및 "{ID}"를 각각 갖는다. 질의를 실행하기 전에 변수들의 값이 공지되어 있지 않지만, 템플릿들의 고정 부분들이 비일관되면, 비일관성은 2개의 템플릿 사이의 임의의 조인의 가능성을 배제하기 위해 사용될 수 있다.
일부 실시예들에서, 최적화 서브시스템(118)은 질의 세트 내의 하나 이상의 질의 연산자에 의해 링크되는 질의들에 대한 결과들에 대응하는 데이터 타입들을 결정하고, 데이터 타입들과 관련된 하나 이상의 비호환성에 기초하여 질의 세트에 최적화들을 수행할 수 있다. 일부 실시예들에서, 최적화 서브시스템(118)은 그래프 데이터베이스 내에 (질의 세트의 링크된 질의들 중 하나로부터의) 제1 결과 세트를 저장하기 위해 사용되는 제1 데이터 타입이 그래프 데이터베이스 내에 (링크된 질의들 중 다른 것으로부터의) 제2 결과 세트를 저장하기 위해 사용되는 제2 데이터 타입과 호환되지 않는 것을 결정할 수 있다. 데이터 타입 비호환성 결정에 기초하여, 최적화 서브시스템(118)은 충족가능성 문제(2개의 질의로부터 도출되는 결과들을 조합하는 것과 관련됨)를 예측하고 질의 세트를 업데이트하기 위해 질의 세트로부터 2개의 질의를 링크하는 질의 연산자를 제거하고 질의 세트에 다른 최적화들을 수행할 수 있다. 하나의 시나리오에서, 예를 들어, 테이블들 내의 열들은 IRI들 대신에 그래프 내의 원시 값들(예를 들어, 정수, 스트링, 날짜 등)에 매핑될 수 있다. 질의가 2개의 테이블로부터 2개의 비호환 타입(예를 들어, 정수 및 날짜)을 조인하려고 시도하면, 그러한 시도는 (이러한 시나리오에서) 실패할 것이다. 그와 같이, 그러한 데이터 타입들이 2개의 데이터 세트를 각각 저장하기 위해 사용되는 것으로 결정되면, 최적화 서브시스템(118)은 충족가능성 문제(예를 들어, 2개의 비호환 타입을 조인하는 실패)를 예측하고 적절한 최적화들(예를 들어, 대응하는 질의 연산자의 제거, 질의 연산자 대신에 상이한 연산자의 보충 등)을 수행할 수 있다.
일부 실시예들에서, 질의 세트와 관련된 하나 이상의 충족가능성 문제의 예측에 기초하여, 최적화 서브시스템(118)은 예측된 충족가능성 문제들과 관련된 하나 이상의 부가 충족가능성 문제 및 질의 세트를 예측할 수 있다. 최적화 서브시스템(118)은 부가 충족가능성 문제들과 관련된 하나 이상의 질의 연산자를 제거하거나 질의 세트에 다른 최적화들을 수행할 수 있다. 일부 실시예들에서, 제1, 제2, 및 하나 이상의 다른 질의는 질의 세트 내의 질의 연산자들에 의해 링크될 수 있다. 제1 및 제2 질의들과 관련된 제1 충족가능성 문제(예를 들어, 제1 및 제2 질의들로부터 도출되는 결과들을 조합하는 것과 관련됨)의 예측에 기초하여, 최적화 서브시스템(118)은 질의 세트 내의 제1 및 제2 질의들을 링크하는 제1 질의 연산자를 제거하거나 그렇지 않으면 (예를 들어, 제1 질의 연산자를 배제하거나 다른 변경들을 수행하기 위해) 제1 및 제2 질의들을 포함하는 질의 세트 부분을 수정할 수 있다. 제1 충족가능성 문제의 예측에 기초하여, 최적화 서브시스템(118)은 하나 이상의 다른 충족가능성 문제(예를 들어, 제1 질의 및 다른 질의들 중 적어도 하나로부터 도출되는 결과들, 제2 질의 및 다른 질의들 중 적어도 하나로부터 도출되는 결과들 등을 조합하는 것과 관련됨)를 예측할 수 있다. 다른 충족가능성 문제들의 예측에 기초하여, 최적화 서브시스템(118)은 제1, 제2, 또는 다른 질의들 중 2개 이상을 링크하는 제2 질의 연산자를 제거하거나 그렇지 않으면 2개 이상의 질의를 포함하는 질의 세트 부분을 수정할 수 있다(예를 들어, 제2 질의 연산자를 배제하거나 다른 변경들을 수행하기 위함). 하나의 사용 경우에, 최적화 서브시스템(118)은 비충족가능성 전파를 최적화하기 위해(예를 들어, 하나 이상의 질의 연산자를 배제하거나 다른 변경들을 수행하기 위해) 질의 세트의 하나 이상의 부분을 수정할 수 있다. 일 예로서, 2개의 패턴("?employee :hasSalary ?salary" 및 "?employee :worksOn ?project")을 갖는 그래프 질의에 대해, 최적화 서브시스템(118)은 2개의 상술한 패턴과 관련된 충족가능성 문제들이 있는(예를 들어, 그러한 패턴들로부터 발생되는 질의들로부터 도출되는 결과들이 조인될 수 없는) 것을 결정하면 패턴들로부터 전파할 가능성이 있는 다른 문제들을 예측할 수 있다. 추가 예에서, 2개의 패턴이 불만족스러운(예를 들어, 그들이 조인될 수 없는) 것으로 발견되는 것에 응답하여, 최적화 서브시스템(118)은 다른 만족스러운 패턴들이 있을지라도 비충족가능성이 질의 세트를 통해 전파되는 것을 결정할 수 있다. 예를 들어, 다른 패턴이 (예를 들어, 직원 이름을 검색하려고 시도하기 위해) 그래프 질의에 추가되면, 최적화 서브시스템(118)은 첫번째 2개의 패턴이 조인되지 않기 때문에 어떠한 결과들도 반환되지 않는 것을 결정할 수 있다.
일부 실시예들에서, 최적화 서브시스템(118)은 (예를 들어, 질의들을 질의들이 실행되는 하나 이상의 RDBMS 또는 다른 데이터베이스 관리 시스템들에 송신하기 전에) 질의 세트에 하나 이상의 셀프 조인 제거 또는 다른 최적화를 수행할 수 있다. 일부 실시예들에서, UNION 컴포넌트들 중 하나는 제거될 수 있지만 그것은 성능을 개선하기 위해 단순화될 수 있다. 2개의 패턴이 동일한 소스 테이블에 매핑되고 테이블에 대한 고유 키가 있으면, 이때 최적화 서브시스템(118)은 조인(예를 들어, SELECT e1.employee, e1.salary, e2.employee, e2.salaray FROM employees AS e1, employees as e2 WHERE e1.employee = e2.employee) 대신에 단일 질의(예를 들어, SELECT employee, salary, project FROM employees)를 발생시킬 수 있다. 이러한 경우에, 질의 실행 데이터베이스 관리 시스템에서의 SQL 최적화기가 이러한 종류의 변환을 수행할 수 있지만, 발생된 SQL 질의들의 복잡성은 더 많은 패턴들이 질의에 추가됨에 따라 SQL 최적화기들이 취급할 수 있는 것을 초과한다. SQL WHERE clause에서 너무 많은 조인 조건들 및 표현들을 갖는 질의들은 SQL 최적화기의 탐색 공간을 지수적으로 증가시켜 최적화기가 발견법을 사용하고 차선 질의 계획들을 발생시키는 것을 야기한다.
일부 실시예들에서, 최적화 서브시스템(118)은 예측 모델이 (i) 대응하는 질의 세트들 각각과 관련된 하나 이상의 문제, (ii) 대응하는 질의 세트들 각각에 대한 최적화들, 또는 (ii) 다른 정보를 예측하게 하기 위해 예측 모델에 그래프 질의들, 대응하는 질의 세트들(그래프 질의들로부터 도출됨), 또는 다른 정보를 제공할 수 있다. 일 예로서, 그러한 문제들은 하나 이상의 충족가능성 문제(예를 들어, 특정 질의들로부터 도출되는 결과들을 조합하는 것과 관련됨), 비호환성 문제들, 또는 다른 문제들을 포함할 수 있다. 그러한 질의 세트 최적화들은 질의 세트로부터 다수의 질의를 링크하는 질의 연산자의 제거, 단일 질의 내로 질의 세트의 다수의 질의의 병합, 질의 세트로부터 하나 이상의 질의의 제거, 또는 다른 최적화들을 포함할 수 있다. 일부 실시예들에서, 대응하는 질의 세트들 각각에 대해, 최적화 서브시스템(118)은 예측 모델을 훈련하기 위해 문제들 또는 최적화들의 예측 모델의 예측을 위한 참조 피드백으로서 예측 모델에 대응하는 질의 세트에 대한 하나 이상의 참조 문제 또는 최적화를 제공할 수 있다. 일 예로서, 참조 문제들 또는 최적화들은 예측 모델이 참조 문제들 또는 최적화들에 대해 예측된 문제들 또는 최적화들을 평가하게 하기 위해 참조 피드백으로서 제공될 수 있다. 예측 모델은 문제들 또는 최적화들의 그것의 예측을 평가하기 위해 참조 문제들 또는 최적화들을 사용할 수 있다. 그것의 예측의 평가에 기초하여, 예측 모델은 (본원에 설명된 바와 같이) 예측 모델의 하나 이상의 부분을 업데이트할 수 있다.
일부 실시예들에서, 최적화 서브시스템(118)은 예측 모델이 그래프 질의들 각각에 대한 질의 세트를 예측하게 하기 위해 예측 모델에 그래프 질의들 또는 다른 정보를 제공할 수 있다. 일부 실시예들에서, 그래프 질의들 각각에 대해, 최적화 서브시스템(118)은 예측 모델을 훈련하기 위해 질의 세트의 예측 모델의 예측을 위한 참조 피드백으로서 그래프 질의에 대한 참조 질의 세트를 예측 모델에 제공할 수 있다. 일 예로서, 참조 질의 세트는 예측 모델이 참조 질의 세트에 대해 예측된 질의 세트를 평가하게 하기 위해 참조 피드백으로서 제공될 수 있다. 예측 모델은 질의 세트의 그것의 예측을 평가하기 위해 참조 질의 세트를 사용할 수 있다. 그것의 예측의 평가에 기초하여, 예측 모델은 (본원에 설명된 바와 같이) 예측 모델의 하나 이상의 부분을 업데이트할 수 있다.
일부 실시예들에서, 예측 모델이 훈련될(또는 그러한 훈련에 기초하여 업데이트될) 시에, 최적화 서브시스템(118)은 하나 이상의 (i) 그래프 질의(또는 다른 질의)로부터 도출되는 초기 질의 세트와 관련된 문제들 또는 (ii) 초기 질의 세트에 대한 최적화들을 결정하기 위해 예측 모델을 사용할 수 있다. 일 예로서, 최적화 서브시스템(118)은 (i) 초기 질의 세트와 관련된 문제들, (i) 초기 질의 세트에 대한 최적화들, 또는 (iii) 최적화된 질의 세트의 예측을 획득하기 위해 예측 모델에 대한 입력으로서 그래프 질의 또는 초기 질의 세트를 제공할 수 있다. 하나의 사용 경우에, 그러한 입력에 응답하여, 예측 모델은 최적화된 질의 세트, 그러한 문제들의 표시들, 또는 그러한 최적화들의 표시들(예를 들어, 그러한 최적화들 또는 다른 표시들에 대한 명령어들)을 출력할 수 있다. 다른 사용 경우에, 최적화 서브시스템(118)은 초기 질의 세트를 최적화된 질의 세트로 변환하기 위해 문제들 또는 최적화들의 표시들을 사용할 수 있다.
질의 응답 결과들의 디스플레이
프리젠테이션 서브시스템(120)은 질의 결과들 또는 다른 정보의 디스플레이를 야기하도록 구성될 수 있다. 프리젠테이션 서브시스템(120)은 그래프 데이터 모델 템플릿들에 기초한 질의 결과들의 디스플레이, 질의 결과들에 대한 요청들의 예측들, 요청 예측들에 응답하여 획득되는 결과들의 서브세트들, 일시적 데이터 스토리지 내에 서브그래프들로 저장되는 결과들의 서브세트들, 또는 다른 정보를 야기하도록 구성될 수 있다. 디스플레이된 질의 결과들은 그래픽 사용자 인터페이스 또는 다른 인터페이스들의 하나 이상의 뷰 내에 하나 이상의 필드를 포함할 수 있다. 그래픽 사용자 인터페이스는 하나 이상의 클라이언트 디바이스(104), 또는 다른 컴퓨팅 시스템들 상에 디스플레이될 수 있다. 일부 실시예들에서, 디스플레이는 그래픽, 텍스트, 또는 다른 표현들을 포함할 수 있다. 일부 실시예들에서, 디스플레이는 그래프 데이터 모델의 서브맵, 맵, 또는 다른 뷰들을 포함할 수 있다. 일부 실시예들에서, 디스플레이는 그래픽 사용자 인터페이스, 또는 다른 디스플레이들의 다양한 뷰들 내에 하나 이상의 텍스트 및/또는 그래픽 필드의 제공을 포함할 수 있다.
일부 실시예들에서, 프리젠테이션 서브시스템(120)은 사용자로부터의 정보의 입력 또는 선택을 용이하게 하기 위해 그래픽 사용자 인터페이스와 통신하도록 구성될 수 있다. 예를 들어, 본원에 설명된 바와 같이, 일부 실시예들에서, 예측 모델로부터의 주어진 노드 또는 에지는 주어진 노드 또는 에지를 추가하는 것에 대해 그래픽 사용자 인터페이스를 통해 입력되거나 선택되는 사용자 확인에 기초하여 그래프에 추가될 수 있다. 사용자 확인의 표시는 주어진 노드 또는 에지의 예측 모델의 발생에 관한 참조 피드백으로서 프리젠테이션 서브시스템(120)에 의해 예측 모델에 제공될 수 있다. 일부 실시예들에서, 주어진 노드 또는 에지를 추가하는 것에 대한 사용자 거절은 그래픽 사용자 인터페이스를 통해 프리젠테이션 서브시스템(120)에 의해 획득될 수 있다. 사용자 거절에 응답하여, 주어진 노드 또는 에지는 그래프에 추가되지 않을 수 있다. 사용자 거절의 표시는 주어진 노드 또는 에지의 예측 모델의 발생에 관한 참조 피드백으로서 프리젠테이션 서브시스템(120)에 의해 예측 모델에 제공될 수 있다.
일부 실시예들에서, 프리젠테이션 서브시스템(120)은 다른 필드들 중 하나 이상 내에 또는 하나 이상에 인접하여 하나 이상의 메뉴, 필드, 및/또는 다른 객체의 확장 및 축소, 팝업, 및/또는 다른 디스플레이를 용이하게 하기 위해 그래픽 사용자 인터페이스와 통신하도록 구성될 수 있다. 일부 실시예들에서, 프리젠테이션 서브시스템(120)은 사용자에 의해 포인터 또는 다른 표시기로 디스플레이의 특정 부분의 위를 포인팅하거나, 클리킹하거나, 호버링하는 것에 응답하여 그러한 디스플레이들을 야기할 수 있다. 일부 실시예들에서, 확장된 필드들, 팝업 필드들, 부가 메뉴 아이템들, 및/또는 다른 객체들은 질의 결과들에 대응하는 부가 무료 또는 정보를 사용자에게 디스플레이할 수 있다.
예시적 흐름도들
도 12 내지 도 14는 위에 상세히 설명된 바와 같이 시스템의 다양한 특징들 및 기능성을 가능하게 하는 방법들의 처리 동작들의 예시적 흐름도들이다. 아래에 제시되는 각각의 방법의 처리 동작들은 예시적이고 비제한적이도록 의도된다. 일부 실시예들에서, 예를 들어, 방법들은 설명되지 않은 하나 이상의 부가 동작을 갖거나, 논의되는 동작들 중 하나 이상을 갖지 않고 달성될 수 있다. 부가적으로, 방법들의 처리 동작들이 예시되는(그리고 아래에 설명되는) 순서는 제한적이도록 의도되지 않는다.
일부 실시예들에서, 방법들은 하나 이상의 처리 디바이스(예를 들어, 디지털 프로세서, 아날로그 프로세서, 정보를 처리하도록 설계되는 디지털 회로, 정보를 처리하도록 설계되는 아날로그 회로, 상태 기계, 또는 정보를 전자적으로 처리하기 위한 다른 메커니즘들)로 구현될 수 있다. 처리 디바이스들은 전자 저장 매체 상에 전자적으로 저장되는 명령어들에 응답하여 방법들의 동작들의 일부 또는 전부를 실행하는 하나 이상의 디바이스를 포함할 수 있다. 처리 디바이스들은 방법들의 동작들 중 하나 이상의 실행을 위해 특별히 설계되도록 하드웨어, 펌웨어, 또는 소프트웨어를 통해 구성되는 하나 이상의 디바이스를 포함할 수 있다.
도 12는 하나 이상의 실시예에 따른, 예측 모델을 통해 그래프를 발생시키는 방법(1200)의 흐름도를 도시한다. 일부 실시예들에서, 예측 모델은 신경 네트워크, 기계 학습 모델, 또는 다른 예측 모델을 포함할 수 있다.
동작(1202)에서, 제1 모델링 정보가 획득될 수 있다. 제1 모델링 정보는 제1 그래프 데이터 모델과 관련될 수 있다. 제1 모델링 정보는 1 그래프 데이터베이스와 호환되지 않는 제1 데이터 표현들을 제1 그래프 데이터베이스와 호환되는 그래프 데이터 표현들로 변환하기 위한 제1 템플릿들을 포함할 수 있다. 일부 실시예들에서, 동작(1202)은 주어진 그래프 데이터베이스에서 그래프의 노드들 및 에지들과 관련된 그래프 정보를 획득하는 단계를 포함할 수 있다. 그래프 정보는 데이터 표현 세트들을 표시할 수 있다. 데이터 표현 세트들의 각각의 데이터 표현 세트는 노드들 및 노드들을 연결하는 에지들을 포함한다. 동작(1202)은 하나 이상의 실시예에 따라, 데이터 관리 서브시스템(112)과 동일하거나 유사한 그래프 발생 서브시스템에 의해 수행될 수 있다.
동작(1204)에서, 제1 템플릿들 중 하나 이상의 템플릿 및 제1 데이터 표현들은 예측 모델에 제공될 수 있다. 예측 모델은 제1 템플릿들 중 하나 이상의 부가 템플릿을 예측할 수 있다. 예측 모델은 부가 템플릿들에 대한 의존 없이 부가 템플릿들의 예측을 수행하도록 구성될 수 있다. 일부 실시예들에서, 동작(1204)은 데이터 표현 세트들의 각각의 데이터 표현 세트에 대해, 예측 모델에 데이터 표현 세트의 하나 이상의 노드 또는 에지를 제공하는 단계를 포함할 수 있다. 예측 모델은 데이터 표현 세트의 하나 이상의 부가 노드 또는 에지를 예측할 수 있다. 예측 모델은 부가 노드들 또는 에지들에 대한 의존 없이 부가 노드들 또는 에지들의 예측을 수행하도록 구성될 수 있다. 동작(1204)은 하나 이상의 실시예에 따라, 데이터 관리 서브시스템(112)과 동일하거나 유사한 그래프 발생 서브시스템에 의해 수행될 수 있다.
동작(1206)에서, 제1 템플릿들 중 부가 템플릿들은 예측 모델에 제공될 수 있다. 이러한 템플릿들은 부가 템플릿들의 예측 모델의 예측을 위한 참조 피드백으로서 제공될 수 있다. 이러한 피드백은 예측 모델을 훈련할 수 있다. 일부 실시예들에서, 동작(1206)은 데이터 표현 세트들의 각각의 데이터 표현 세트에 대해, 예측 모델을 훈련하기 위해 부가 노드들 또는 에지들의 예측 모델의 예측을 위한 참조 피드백으로서 데이터 표현 세트의 부가 노드들 또는 에지들을 예측 모델에 제공하는 단계를 포함할 수 있다. 동작(1206)은 하나 이상의 실시예에 따라, 모델 관리 서브시스템(114)과 동일하거나 유사한 모델 서브시스템에 의해 수행될 수 있다.
동작(1208)에서, 주어진 데이터베이스로부터의 데이터 표현들의 집합은 예측 모델에 제공될 수 있다. 이러한 데이터 표현들은 예측 모델이 주어진 데이터베이스의 데이터 표현들을 주어진 그래프 데이터베이스에 대한 그래프 데이터 표현들을 변환하기 위한 주어진 그래프 데이터 모델에 대한 하나 이상의 템플릿을 발생시키는 것을 허용할 수 있다. 일부 실시예들에서, 주어진 그래프 데이터베이스의 그래프 데이터 표현들은 그래프 노드들 또는 그래프 노드들을 연결하는 에지들을 포함한다. 동작(1208)은 하나 이상의 실시예에 따라, 데이터 관리 서브시스템(112)과 동일하거나 유사한 그래프 발생 서브시스템에 의해 수행될 수 있다.
일부 실시예들에서, 동작(1208)은 그래프의 노드들 또는 에지들을 처리하기 위해 그래프의 순회를 예측 모델을 통해 수행하는 단계를 포함할 수 있다. 이것은 예측 모델이 그래프에 대한 새로운 노드들 또는 에지들을 발생시키게 할 수 있다. 예측 모델의 새로운 노드들 또는 에지들은 그래프에 추가될 수 있다. 예측 모델로부터의 주어진 노드 또는 에지는 그래프의 순회에 기초하여 그래프에 추가될 수 있다. 일부 실시예들에서, 예측 모델로부터의 주어진 노드 또는 에지는 주어진 노드 또는 에지를 추가하는 것에 대한 사용자 확인에 기초하여 그래프에 추가될 수 있다. 사용자 확인의 표시는 주어진 노드 또는 에지의 예측 모델의 발생에 관한 참조 피드백으로서 예측 모델에 제공될 수 있다. 일부 실시예들에서, 주어진 노드 또는 에지를 추가하는 것에 대한 사용자 거절이 획득될 수 있다. 사용자 거절에 응답하여, 주어진 노드 또는 에지는 그래프에 추가되지 않을 수 있다. 사용자 거절의 표시는 주어진 노드 또는 에지의 예측 모델의 발생에 관한 참조 피드백으로서 예측 모델에 제공될 수 있다.
일부 실시예들에서, 방법(1200)은 제2 그래프 데이터 모델과 관련된 제2 모델링 정보를 획득하는 단계를 추가로 포함할 수 있다. 제2 모델링 정보는 제2 그래프 데이터베이스와 호환되지 않는 제2 데이터 표현들을 제2 그래프 데이터베이스와 호환되는 그래프 데이터 표현들로 변환하기 위한 제2 템플릿들을 포함할 수 있다. 일부 실시예들에서, 제1 데이터 표현들 및 제2 데이터 표현들은 동일한 데이터베이스와 호환될 수 있다. 일부 실시예들에서, 제1 데이터 표현들은 제1 비그래프 데이터베이스와 호환될 수 있다. 제2 데이터 표현들은 제2 비그래프 데이터베이스와 호환될 수 있고 제1 비그래프 데이터베이스와 호환되지 않을 수 있다. 일부 실시예들에서, 제1 데이터 표현들 또는 제2 데이터 표현들은 적어도 하나의 그래프 데이터베이스와 호환될 수 있다.
일부 실시예들에서, 방법(1200)은 예측 모델에 제2 템플릿들 중 하나 이상의 템플릿 및 제2 데이터 표현들을 제공하는 단계를 추가로 포함한다. 예측 모델은 제2 템플릿들 중 하나 이상의 부가 템플릿을 예측할 수 있다. 예측 모델은 제2 템플릿들 중 부가 템플릿들에 대한 의존 없이 제2 템플릿들 중 부가 템플릿들을 예측하도록 구성될 수 있다. 일부 실시예들에서, 방법(1200)은 예측 모델을 훈련하기 위해 제2 템플릿들 중 부가 템플릿들의 예측 모델의 예측을 위한 참조 피드백으로서 제2 템플릿들 중 부가 템플릿들을 예측 모델에 제공하는 단계를 추가로 포함한다.
도 13은 하나 이상의 실시예에 따른, 데이터 서브그래프들의 예측 기반 발생을 통해 데이터 검색 지연들을 감소시키는 방법(1300)의 흐름도를 도시한다.
동작(1302)에서, 데이터 요청이 장래에 발생할 예측이 이루어질 수 있다. 예측은 그래프 데이터 모델과 호환되는 사전 질의들에 기초할 수 있다. 동작(1302)은 하나 이상의 실시예에 따라 요청 서브시스템(116)과 동일하거나 유사한 요청 서브시스템에 의해 수행될 수 있다.
동작(1304)에서, 하나 이상의 서브그래프가 발생될 수 있다. 서브그래프들의 발생은 그래프 데이터 모델에 기초할 수 있다. 서브그래프들은 데이터 세트의 데이터 서브세트들을 나타낼 수 있다. 데이터 세트는 데이터 요청이 추구하는 것으로 예측되는 데이터일 수 있다. 서브그래프들은 데이터 요청의 예측에 응답하여 발생될 수 있다. 동작(1304)은 하나 이상의 실시예에 따라, 요청 서브시스템(116)과 동일하거나 유사한 요청 서브시스템에 의해 수행될 수 있다.
동작(1306)에서, 서브그래프들은 일시적 데이터 스토리지에 저장될 수 있다. 동작(1306)은 하나 이상의 실시예에 따라, 요청 서브시스템(116)과 동일하거나 유사한 요청 서브시스템에 의해 수행될 수 있다.
동작(1308)에서, 예측된 데이터 요청과 매칭하는 후속 데이터 요청이 획득될 수 있다. 후속 데이터 요청은 서브그래프들의 저장 후에 획득될 수 있다. 동작(1308)은 하나 이상의 실시예에 따라 요청 서브시스템(116)과 동일하거나 유사한 요청 서브시스템에 의해 수행될 수 있다.
동작(1310)에서, 서브그래프들은 일시적 데이터 스토리지로부터 획득될 수 있다. 서브그래프들은 예측된 데이터 요청과 매칭하는 후속 데이터 요청에 기초하여 획득될 수 있다. 질의 계획은 예측된 데이터 요청과 매칭하는 후속 데이터 요청에 기초하여 발생될 수 있다. 질의 플레이는 후속 데이터 요청에 응답하기 위해 발생될 수 있다. 질의 계획은 예측된 데이터 요청과 매칭하는 후속 데이터 요청에 기초하여 일시적 데이터 스토리지로부터 데이터를 획득하는 것을 포함하기 위해 발생될 수 있다. 동작(1310)은 하나 이상의 실시예에 따라, 요청 서브시스템(116)과 동일하거나 유사한 요청 서브시스템에 의해 수행될 수 있다.
동작(1312)에서, 서브그래프들은 후속 데이터 요청에 응답하기 위해 사용될 수 있다. 일 예로서, 데이터 서브세트들 하나 이상의 서브그래프의 노드들 및 에지들로부터 추출될 수 있고, 추출된 데이터 서브세트들은 후속 데이터 요청에 응답하기 위해 반환될 수 있다. 동작(1312)은 하나 이상의 실시예에 따라, 요청 서브시스템(116)과 동일하거나 유사한 요청 서브시스템에 의해 수행될 수 있다.
도 14는 하나 이상의 실시예에 따른, 데이터 검색 프로세스에서 질의 관련 자원 사용을 감소시키기 위한 방법(1400)의 흐름도를 도시한다. 동작(1402)에서, 그래프 질의가 획득될 수 있다. 그래프 질의는 데이터 요청 또는 다른 요청들과 관련될 수 있다. 그래프 질의는 패턴들 또는 다른 정보를 포함할 수 있다. 동작(1402)은 하나 이상의 실시예에 따라, 최적화 서브시스템(118)과 동일하거나 유사한 최적화 서브시스템에 의해 수행될 수 있다.
동작(1404)에서, 그래프 질의는 그래프 질의 세트로 변환될 수 있다. 변환은 그래프 데이터 모델, 그래프 질의의 패턴들, 또는 다른 정보에 기초할 수 있다. 질의 세트는 질의들 및 질의들을 링크하는 질의 연산자들을 포함할 수 있다. 질의 연산자들은 질의들 중 제1 및 제2 질의들을 링크하는 제1 질의 연산자를 포함할 수 있다. 동작(1404)은 하나 이상의 실시예에 따라, 최적화 서브시스템(118)과 동일하거나 유사한 최적화 서브시스템에 의해 수행될 수 있다.
일부 실시예들에서, 동작(1404)은 예측 모델이 그래프 질의들 각각에 대한 주어진 질의 세트를 예측하게 하기 위해 예측 모델(예를 들어, 신경 네트워크, 기계 학습 모델 등)에 그래프 질의들을 제공하는 단계를 포함할 수 있다. 예측된 주어진 질의 세트들 중 적어도 하나는 예측된 질의들 및 예측된 질의들을 링크하는 예측된 질의 연산자들을 포함할 수 있다. 그러한 실시예들에서, 동작(1404)은 예측 모델이 참조 질의 세트에 대해 예측된 주어진 질의 세트를 평가하게 하기 위해 그래프 질의들 각각에 대해, 예측 모델에 대한 참조 피드백으로서 그래프 질의에 대한 참조 질의 세트를 제공하는 단계를 포함할 수 있다. 예측 모델은 예측된 주어진 질의 세트의 예측 모델의 평가에 기초하여 업데이트될 수 있다. 그러한 실시예들에서, 동작(1404)은 질의 세트를 획득하기 위해 예측 모델에 그래프 질의를 제공함으로써 그래프 질의를 질의 세트로 변환하는 단계 및 예측 모델이 업데이트된 질의 세트에 대해 질의 세트를 평가하게 하기 위해 예측 모델에 대한 참조 피드백으로서 업데이트된 질의 세트를 예측 모델에 제공하는 단계를 포함할 수 있다. 예측 모델은 질의 세트의 예측 모델의 평가에 기초하여 업데이트될 수 있다.
동작(1406)에서, 제1 및 제2 질의들로부터 도출되는 결과들을 조합하는 것과 관련된 충족가능성 문제가 예측될 수 있다. 예측은 제1 및 제2 질의들의 실행 전에 이루어질 수 있다. 일부 실시예들에서, 충족가능성 문제를 예측하는 단계는 제1 및 제2 질의들에 대한 결과들을 획득하기 위한 제1 및 제2 소스들을 결정하는 단계, 및 제1 및 제2 템플릿들과 관련된 비호환성을 결정하는 단계를 포함할 수 있다. 제1 템플릿은 제1 소스로부터의 데이터 표현들을 그래프 데이터베이스와 호환되는 그래프 데이터 표현들로 변환하기 위해 구성될 수 있다. 제2 템플릿은 제2 소스로부터의 데이터 표현들을 그래프 데이터베이스와 호환되는 그래프 데이터 표현들로 변환하기 위해 구성될 수 있다. 동작(1406)은 하나 이상의 실시예에 따라, 최적화 서브시스템(118)과 동일하거나 유사한 최적화 서브시스템에 의해 수행될 수 있다.
동작(1408)에서, 제1 질의 연산자는 질의 세트로부터 제거될 수 있다. 일부 실시예들에서, 제1 질의 연산자는 제1 및 제2 질의들을 링크하는 유니언 또는 제1 및 제2 질의들을 링크하는 조인을 포함할 수 있다. 제거는 충족가능성 문제 또는 다른 정보의 예측에 기초할 수 있다. 제1 질의 연산자는 업데이트된 질의 세트가 제1 질의 연산자를 포함하지 않도록 질의 세트를 업데이트하기 위해 질의 세트로부터 제거될 수 있다. 일부 실시예들에서, 동작들(1406 및/또는 1408)은 질의 세트의 질의들의 서브세트의 실행 전에, 충족가능성 문제의 예측에 기초하여, 질의들의 서브세트로부터 도출되는 결과들을 조합하는 것과 관련된 다른 충족가능성 문제를 예측하는 단계를 포함할 수 있다. 질의들의 서브세트는 제1 질의 또는 제2 질의를 포함하지 않을 수 있다. 그러한 실시예들에서, 동작(1408)은 업데이트된 질의 세트가 제2 질의 연산자를 포함하지 않도록 질의 세트를 업데이트하기 위해 다른 충족가능성 문제의 예측에 기초하여 질의 세트로부터 제2 질의 연산자를 제거하는 단계를 포함할 수 있다. 동작(1408)은 하나 이상의 실시예에 따라, 최적화 서브시스템(118)과 동일하거나 유사한 최적화 서브시스템에 의해 수행될 수 있다.
동작(1410)에서, 그래프 질의의 충족시키기 위한 업데이트된 질의 세트의 실행이 야기될 수 있다. 동작(1410)은 하나 이상의 실시예에 따라, 최적화 서브시스템(118)과 동일하거나 유사한 요청 서브시스템에 의해 수행될 수 있다.
일부 실시예들에서, 상기 설명된 방법(1400)의 동작들 중 하나 이상은 예측 모델이 대응하는 질의 세트들 각각에 대한 하나 이상의 주어진 최적화를 예측하게 하기 위해 예측 모델에 그래프 질의들 또는 대응하는 질의 세트들을 제공하는 단계를 포함할 수 있다. 예측된 주어진 최적화들 중 적어도 하나는 주어진 질의 세트로부터 다수의 질의를 링크하는 주어진 질의 연산자의 제거, 단일 질의 내로 다수의 질의의 병합, 또는 주어진 질의 세트로부터 하나 이상의 질의의 제거를 포함할 수 있다. 방법(1400)은 예측 모델이 하나 이상의 참조 최적화에 대해 예측된 주어진 최적화들을 평가하게 하기 위해 대응하는 질의 세트들 각각에 대해, 예측 모델에 대한 참조 피드백으로서 대응하는 질의 세트에 대한 하나 이상의 참조 최적화를 제공하는 단계를 포함할 수 있다. 예측 모델은 예측된 주어진 최적화들의 예측 모델의 평가에 기초하여 업데이트될 수 있다. 방법(1400)은 초기 질의 세트에 대한 하나 이상의 최적화를 획득하기 위해 예측 모델에 그래프 질의 또는 그래프 질의로부터 도출되는 초기 질의 세트를 제공하는 단계를 포함할 수 있다. 방법(1400)은 초기 질의 세트에 최적화들을 수행함으로써 그래프 질의를 질의 세트로 변환하는 단계를 포함할 수 있다. 방법(1400)은 예측 모델이 제1 질의 연산자의 제거에 대해 최적화들을 평가하게 하기 위해 예측 모델에 대한 참조 피드백으로서 제1 질의 연산자의 제거의 표시를 예측 모델에 제공하는 단계를 포함할 수 있다. 예측 모델은 최적화들의 예측 모델의 평가에 기초하여 업데이트될 수 있다.
일부 실시예들에서, 상기 설명된 방법(1400)의 동작들 중 하나 이상은 예측 모델이 주어진 질의 세트들 각각과 관련된 하나 이상의 충족가능성 문제를 예측하게 하기 위해 예측 모델에 주어진 질의 세트들을 제공하는 단계를 포함할 수 있다. 방법(1400)은 예측 모델이 참조 충족가능성 문제들에 대해 예측된 충족가능성 문제들을 평가하게 하기 위해 주어진 질의 세트들 각각에 대해, 예측 모델에 참조 피드백으로서 주어진 질의 세트에 대한 하나 이상의 참조 충족가능성 문제를 제공하는 단계를 포함할 수 있다. 예측 모델은 예측된 충족가능성 문제들의 예측 모델의 평가에 기초하여 업데이트될 수 있다. 방법(1400)은 예측 모델로부터 충족가능성 문제의 예측의 표시를 획득하기 위해 예측 모델에 질의 세트를 제공하는 단계를 포함할 수 있다. 방법(1400)은 예측 모델로부터의 표시에 기초하여, 제1 및 제2 질의들로부터 도출되는 결과들을 조합하는 것과 관련된 충족가능성 문제를 예측하는 단계를 포함할 수 있다.
일부 실시예들에서, 도 1에 예시된 다양한 컴퓨터들 및 서브시스템들은 본원에 설명되는 기능들을 수행하도록 프로그래밍되는 하나 이상의 컴퓨팅 디바이스를 포함할 수 있다. 컴퓨팅 디바이스들은 하나 이상의 전자 스토리지(예를 들어, 데이터 소스(들)(132) 또는 다른 전기 스토리지들), 하나 이상의 컴퓨터 프로그램 명령어로 프로그래밍되는 하나 이상의 물리 프로세서, 또는 다른 컴포넌트들을 포함할 수 있다. 컴퓨팅 디바이스들은 유선 또는 무선 기술들(예를 들어, 이더넷, 광 섬유, 동축 케이블, WiFi, 블루투스, 근거리 통신, 또는 다른 기술들)을 통해 네트워크(예를 들어, 네트워크(150)) 또는 다른 컴퓨팅 플랫폼들과 정보의 교환을 가능하게 하기 위해 통신 라인들 또는 포트들을 포함할 수 있다. 컴퓨팅 디바이스들은 함께 동작하는 복수의 하드웨어, 소프트웨어, 또는 펌웨어 컴포넌트를 포함할 수 있다. 예를 들어, 컴퓨팅 디바이스들은 컴퓨팅 디바이스들로서 함께 동작하는 컴퓨팅 플랫폼들의 클라우드에 의해 구현될 수 있다.
전자 스토리지들은 정보를 전자적으로 저장하는 비일시적 저장 매체들을 포함할 수 있다. 전자 스토리지들의 전자 저장 매체들은 (i) 서버들 또는 클라이언트 디바이스들과 일체로 제공되는 (예를 들어, 실질적으로 비제거가능한) 시스템 스토리지 또는 (ii) 예를 들어, 포트(예를 들어, USB 포트, 파이어와이어 포트 등) 또는 드라이브(예를 들어, 디스크 드라이브 등)를 통해 서버들 또는 클라이언트 디바이스들에 제거가능하게 연결가능한 제거가능 스토리지 중 하나 또는 둘 다를 포함할 수 있다. 전자 스토리지들은 광학 판독가능 저장 매체들(예를 들어, 광 디스크들 등), 자기 판독가능 저장 매체들(예를 들어, 자기 테이프, 자기 하드 드라이브, 플로피 드라이브 등), 전기 충전 기반 저장 매체들(예를 들어, EEPROM, RAM 등), 고체 상태 저장 매체들(예를 들어, 플래시 드라이브 등), 또는 다른 전자 판독가능 저장 매체들 중 하나 이상을 포함할 수 있다. 전자 스토리지들은 하나 이상의 가상 저장 자원(예를 들어, 클라우드 스토리지, 가상 개인 네트워크, 또는 다른 가상 저장 자원들)을 포함할 수 있다. 전자 스토리지는 소프트웨어 알고리즘들, 프로세서들에 의해 결정되는 정보, 서버들로부터 획득되는 정보, 클라이언트 디바이스들로부터 획득되는 정보, 또는 본원에 설명된 바와 같은 기능성을 가능하게 하는 다른 정보를 저장할 수 있다.
프로세서들은 컴퓨팅 디바이스들 내에 정보 처리 능력들을 제공하도록 프로그래밍될 수 있다. 그와 같이, 프로세서들은 디지털 프로세서, 아날로그 프로세서, 정보를 처리하도록 설계되는 디지털 회로, 정보를 처리하도록 설계되는 아날로그 회로, 상태 기계, 또는 정보를 전자적으로 처리하기 위한 다른 메커니즘들 중 하나 이상을 포함할 수 있다. 일부 실시예들에서, 프로세서들은 복수의 처리 유닛을 포함할 수 있다. 이러한 처리 유닛들은 동일한 디바이스 내에 물리적으로 위치될 수 있거나, 프로세서들은 합동하여 동작하는 복수의 디바이스들의 처리 기능성을 표현할 수 있다. 프로세서들은 서브시스템들(112 내지 120) 또는 다른 서브시스템들의 본원에 설명된 기능들을 수행하기 위해 컴퓨터 프로그램 명령어들을 실행하도록 프로그래밍될 수 있다. 프로세서들은 소프트웨어; 하드웨어; 펌웨어; 소프트웨어, 하드웨어, 또는 펌웨어의 일부 조합; 또는 프로세서들 상에 처리 능력들을 구성하기 위한 다른 메커니즘들에 의해 컴퓨터 프로그램 명령어들을 실행하도록 프로그래밍될 수 있다.
본원에 설명되는 상이한 서브시스템들(112 내지 120)에 의해 제공되는 기능성의 설명은 예시적 목적들을 위한 것이고, 서브시스템들(112 내지 120) 중 어느 것이 설명된 것보다 더 많거나 더 적은 기능성을 제공할 수 있으므로, 제한적이도록 의도되지 않는다는 점이 이해되어야 한다. 예를 들어, 하서브시스템들(112 내지 120) 중 하나 이상은 제거될 수 있고, 그것의 기능성의 일부 또는 전부는 서브시스템들(112 내지 120) 중 다른 것들에 의해 제공될 수 있다. 다른 예로서, 부가 서브시스템들은 본원에 서브시스템들(112 내지 120) 중 하나에 기인되는 기능성의 일부 또는 전부를 수행하도록 프로그래밍될 수 있다.
본 발명이 가장 실제적이고 바람직한 실시예들인 것으로 현재 간주되는 것에 기초하여 예시의 목적을 위해 상세히 설명되었지만, 그러한 상세는 오로지 그러한 목적을 위한 것이고 본 발명은 개시된 실시예들에 제한되지 않지만, 이에 반하여, 첨부된 청구항들의 범위 내에 있는 수정들 및 등가 배열들을 망라하도록 의도된다는 점이 이해되어야 한다. 예를 들어, 본 발명은 가능한 정도까지, 임의의 실시예의 하나 이상의 특징이 임의의 다른 실시예의 하나 이상의 특징과 조합될 수 있는 것을 고려한다는 점이 이해되어야 한다.
본 기술들은 이하의 열거된 실시예들과 관련하여 더 잘 이해될 것이다:
1. 방법으로서, 제1 그래프 데이터 모델과 관련된 제1 모델링 정보를 획득하는 단계 - 제1 모델링 정보는 제1 그래프 데이터베이스와 호환되지 않는 제1 데이터 표현들을 제1 그래프 데이터베이스와 호환되는 그래프 데이터 표현들로 변환하기 위한 제1 템플릿들을 포함함 -; 기계 학습 모델이 제1 템플릿들 중 하나 이상의 부가 템플릿을 예측하도록 기계 학습 모델에 제1 템플릿들 중 하나 이상의 템플릿 및 제1 데이터 표현들을 제공하는 단계 - 기계 학습 모델은 하나 이상의 부가 템플릿에 대한 의존 없이 하나 이상의 부가 템플릿의 예측을 수행하도록 구성됨 -; 기계 학습 모델을 훈련하기 위해 하나 이상의 부가 템플릿의 기계 학습 모델의 예측을 위한 참조 피드백으로서 제1 템플릿들 중 하나 이상의 부가 템플릿을 기계 학습 모델에 제공하는 단계; 및 기계 학습 모델이 주어진 데이터베이스의 데이터 표현들을 주어진 그래프 데이터베이스에 대한 그래프 데이터 표현들로 변환하기 위한 주어진 그래프 데이터 모델에 대한 하나 이상의 템플릿을 발생시키도록 기계 학습 모델에 주어진 데이터베이스로부터의 데이터 표현들의 집합을 제공하는 단계를 포함하는, 방법.
2. 실시예 1에 있어서, 주어진 그래프 데이터베이스의 그래프 데이터 표현들은 그래프 노드들 또는 그래프 노드들을 연결하는 에지들을 포함하는, 방법.
3. 실시예 1 또는 실시예 2에 있어서, 제2 그래프 데이터 모델과 관련된 제2 모델링 정보를 획득하는 단계 - 제2 모델링 정보는 제2 그래프 데이터베이스와 호환되지 않는 제2 데이터 표현들을 제2 그래프 데이터베이스와 호환되는 그래프 데이터 표현들로 변환하기 위한 제2 템플릿들을 포함함 -; 기계 학습 모델이 제2 템플릿들 중 하나 이상의 부가 템플릿을 예측하도록 기계 학습 모델에 제2 템플릿들 중 하나 이상의 템플릿 및 제2 데이터 표현들을 제공하는 단계 - 기계 학습 모델은 제2 템플릿들 중 하나 이상의 부가 템플릿에 대한 의존 없이 제2 템플릿들 중 하나 이상의 부가 템플릿을 예측하도록 구성됨 -; 및 기계 학습 모델을 훈련하기 위해 제2 템플릿들 중 하나 이상의 부가 템플릿의 기계 학습 모델의 예측을 위한 참조 피드백으로서 제2 템플릿들 중 하나 이상의 부가 템플릿을 기계 학습 모델에 제공하는 단계를 추가로 포함하는, 방법.
4. 실시예 3에 있어서, 제1 데이터 표현들 및 제2 데이터 표현들은 동일한 데이터베이스와 호환되는, 방법.
5. 실시예 3에 있어서, 제1 데이터 표현들은 제1 비그래프 데이터베이스와 호환되고, 제2 데이터 표현들은 제2 비그래프 데이터베이스와 호환되고 제1 비그래프 데이터베이스와 호환되지 않는, 방법.
6. 실시예 3에 있어서, 제1 데이터 표현들 또는 제2 데이터 표현들은 적어도 하나의 그래프 데이터베이스와 호환되는, 방법.
7. 실시예 1 내지 실시예 6 중 어느 하나에 있어서, 주어진 그래프 데이터베이스에서 그래프의 노드들 및 에지들과 관련된 그래프 정보를 획득하는 단계 - 그래프 정보는 데이터 표현 세트들을 표시하고, 데이터 표현 세트들의 각각의 데이터 표현 세트는 노드들 및 노드들을 연결하는 에지들을 포함함 -; 기계 학습 모델이 데이터 표현 세트의 하나 이상의 부가 노드 또는 에지를 예측하도록 데이터 표현 세트들의 각각의 데이터 표현 세트에 대해, 기계 학습 모델에 데이터 표현 세트의 하나 이상의 노드 또는 에지를 제공하는 단계 - 기계 학습 모델은 하나 이상의 부가 노드 또는 에지에 대한 의존 없이 하나 이상의 부가 노드 또는 에지의 예측을 수행하도록 구성됨 -; 데이터 표현 세트들의 각각의 데이터 표현 세트에 대해, 기계 학습 모델을 훈련하기 위해 하나 이상의 부가 노드 또는 에지의 기계 학습 모델의 예측을 위한 참조 피드백으로서 데이터 표현 세트의 하나 이상의 부가 노드 또는 에지를 기계 학습 모델에 제공하는 단계를 추가로 포함하는, 방법.
8. 실시예 7에 있어서, 기계 학습 모델이 그래프에 대한 새로운 노드들 또는 에지들을 발생시키게 하기 위해 그래프의 노드들 또는 에지들을 처리하도록 그래프의 순회를 기계 학습 모델을 통해 수행하는 단계; 및 기계 학습 모델로부터의 새로운 노드들 또는 에지들을 그래프에 추가하는 단계를 추가로 포함하는, 방법.
9. 실시예 8에 있어서, 그래프의 순회에 기초하여 기계 학습 모델로부터 주어진 노드 또는 에지를 획득하는 단계; 주어진 노드 또는 에지를 추가하는 것에 대한 사용자 확인에 기초하여 기계 학습 모델로부터의 주어진 노드 또는 에지를 그래프에 추가하는 단계; 및 주어진 노드 또는 에지의 기계 학습 모델의 발생에 관한 참조 피드백으로서 사용자 확인의 표시를 기계 학습 모델에 제공하는 단계를 추가로 포함하는, 방법.
10. 실시예 8에 있어서, 그래프의 순회에 기초하여 기계 학습 모델로부터 주어진 노드 또는 에지를 획득하는 단계; 주어진 노드 또는 에지를 추가하는 것에 대한 사용자 거절을 획득하는 단계 - 주어진 노드 또는 에지는 사용자 거절에 기초하여 그래프에 추가되지 않음 -; 및 주어진 노드 또는 에지의 기계 학습 모델의 발생에 관한 참조 피드백으로서 사용자 거절의 표시를 기계 학습 모델에 제공하는 단계를 추가로 포함하는, 방법.
11. 방법으로서, 데이터 요청이 장래에 발생할 것을 예측하는 단계; 그래프 데이터 모델에 기초하여, 데이터 세트의 데이터 서브세트들을 나타내는 하나 이상의 서브그래프를 발생시키는 단계 - 데이터 세트는 데이터 요청이 추구하도록 예측되는 데이터이고, 하나 이상의 서브그래프는 데이터 요청의 예측에 응답하여 발생됨 -; 하나 이상의 서브그래프가 일시적 데이터 스토리지 내에 저장되게 하는 단계; 예측된 데이터 요청과 매칭하는 후속 데이터 요청을 획득하는 단계 - 후속 데이터 요청은 하나 이상의 서브그래프의 저장 후에 획득됨 -; 예측된 데이터 요청과 매칭하는 후속 데이터 요청에 기초하여, 일시적 데이터 스토리지로부터 하나 이상의 서브그래프를 획득하는 단계; 및 후속 데이터 요청에 응답하기 위해 하나 이상의 서브그래프를 사용하는 단계를 포함하는, 방법.
12. 실시예 11에 있어서, 하나 이상의 서브그래프를 사용하는 단계는 하나 이상의 서브그래프의 노드들 및 에지들로부터 데이터 서브세트들을 추출하는 단계; 및 후속 데이터 요청에 응답하기 위해 추출된 데이터 서브세트들을 반환하는 단계를 포함하는, 방법.
13. 실시예 11 또는 실시예 12에 있어서, 데이터 요청의 예측에 응답하여 하나 이상의 비그래프 데이터베이스로부터 데이터 서브세트들 중 제1 데이터 서브세트를 획득하는 단계를 추가로 포함하며, 하나 이상의 서브그래프를 발생시키는 단계는 그래프 데이터 모델에 기초하여, 제1 데이터 서브세트의 획득 후에 제1 데이터 서브세트를 나타내는 제1 서브그래프를 발생시키는 단계를 포함하고, 하나 이상의 서브그래프는 제1 서브그래프가 후속 데이터 요청에 응답하기 위해 사용되도록 제1 서브그래프를 포함하는, 방법.
14. 실시예 13에 있어서, 데이터 요청의 예측에 응답하여 하나 이상의 그래프 데이터베이스로부터 데이터 서브세트들 중 제2 데이터 서브세트를 획득하는 단계를 추가로 포함하며, 하나 이상의 서브그래프는 제2 서브그래프가 후속 데이터 요청에 응답하기 위해 사용되도록 제2 데이터 서브세트를 나타내는 제2 서브그래프를 포함하는, 방법.
15. 실시예 14에 있어서, 예측된 데이터 요청의 하나 이상의 탐색 파라미터에 기초하여 그래프 질의들을 발생시키는 단계; 그래프 데이터 모델에 기초하여, 그래프 질의들 중 적어도 하나를 하나 이상의 비그래프 질의로 변환하는 단계; 하나 이상의 비그래프 데이터베이스로부터 제1 데이터 서브세트를 획득하기 위해 하나 이상의 비그래프 질의를 수행하는 단계; 및 하나 이상의 그래프 데이터베이스로부터 제2 데이터 서브세트를 획득하기 위해 그래프 질의들 중 적어도 다른 것을 수행하는 단계를 추가로 포함하는, 방법.
16. 실시예 11 내지 실시예 15 중 어느 하나에 있어서, 후속 데이터 요청에 응답하기 위해 예측된 데이터 요청과 매칭하는 후속 데이터 요청에 기초하여, 질의 계획을 발생시키는 단계를 추가로 포함하며, 질의 계획은 예측된 데이터 요청과 매칭하는 후속 데이터 요청에 기초하여 일시적 데이터 스토리지로부터 데이터를 획득하는 단계를 포함하기 위해 발생되고, 하나 이상의 서브그래프를 획득하는 단계는 질의 계획에 기초하여, 일시적 데이터 스토리지로부터 하나 이상의 서브그래프를 획득하는 단계를 포함하는, 방법.
17. 실시예 11 내지 실시예 16 중 어느 하나에 있어서, 후속 데이터 요청에 응답하기 위해 예측된 데이터 요청과 매칭하는 후속 데이터 요청에 기초하여, 질의 계획을 발생시키는 단계를 추가로 포함하며, 질의 계획은 후속 데이터 요청에 응답하여 발생되고, 하나 이상의 서브그래프를 획득하는 단계는 질의 계획에 기초하여, 일시적 데이터 스토리지로부터 하나 이상의 서브그래프를 획득하고 하나 이상의 다른 데이터 소스로부터 하나 이상의 다른 데이터 서브세트를 획득하는 단계를 포함하고, 하나 이상의 서브그래프를 사용하는 단계는 후속 데이터 요청에 응답하기 위해 (i) 하나 이상의 서브그래프에 의해 표현되는 데이터 서브세트들 및 (ii) 하나 이상의 다른 데이터 서브세트를 사용하는 단계를 포함하는, 방법.
18. 실시예 11 내지 실시예 17 중 어느 하나에 있어서, 데이터 요청의 예측에 응답하여 질의들을 수행하는 단계 - 수행된 질의들은 예측된 데이터 요청에 응답하기 위해 수행되었던 질의들의 세트의 일부이며, 예측된 데이터 요청은 클라이언트 디바이스로부터 획득되었음 -; 및 질의들에 기초하여, 데이터 요청이 추구하도록 예측되는 데이터 세트의 데이터 서브세트들을 획득하는 단계를 추가로 포함하며, 하나 이상의 서브그래프를 발생시키는 단계는 데이터 서브세트들 및 그래프 데이터 모델에 기초하여 하나 이상의 서브그래프를 발생시키는 단계를 포함하는, 방법.
19. 실시예 18에 있어서, 질의들의 세트의 하나 이상의 다른 질의의 어떠한 수행도 데이터 요청의 예측으로부터 발생하지 않는, 방법.
20. 실시예 11 내지 실시예 19 중 어느 하나에 있어서, 기계 학습 모델을 훈련하기 위해 기계 학습 모델에 그래프 데이터 모델과 호환되는 사전 질의들을 제공하는 단계; 기계 학습 모델로부터, 기계 학습 모델의 훈련 후에 데이터 요청의 예측의 표시를 획득하는 단계; 및 기계 학습 모델을 추가로 훈련하기 위해 예측된 데이터 요청과 매칭하는 후속 데이터 요청에 기초하여, 기계 학습 모델에 대한 참조 피드백으로서 후속 데이터 요청의 표시를 제공하는 단계를 추가로 포함하는, 방법.
21. 방법으로서, 데이터 요청과 관련된 그래프 질의를 획득하는 단계 - 그래프 질의는 패턴들을 포함함 -; 그래프 데이터 모델 및 그래프 질의의 패턴들에 기초하여 그래프 질의를 질의 세트로 변환하는 단계 - 질의 세트는 질의들 및 질의들을 링크하는 질의 연산자들을 포함하고, 질의 연산자들은 질의들 중 제1 및 제2 질의들을 링크하는 제1 질의 연산자를 포함함 -; 제1 및 제2 질의들의 실행 전에, 제1 및 제2 질의들로부터 도출되는 결과들을 조합하는 것과 관련된 충족가능성 문제를 예측하는 단계; 질의 세트를 업데이트하기 위해 충족가능성 문제의 예측에 기초하여, 질의 세트에 하나 이상의 최적화를 수행하는 단계; 및 업데이트된 질의 세트의 실행이 그래프 질의를 충족시키게 하는 단계를 포함하는, 방법.
22. 실시예 21에 있어서, 하나 이상의 최적화를 수행하는 단계는 업데이트된 질의 세트가 제1 질의 연산자를 포함하지 않도록 질의 세트를 업데이트하기 위해 충족가능성 문제의 예측에 기초하여, 질의 세트로부터 제1 질의 연산자를 제거하는 단계를 포함하는, 방법.
23. 실시예 22에 있어서, 질의 세트의 질의들의 서브세트의 실행 전에, 충족가능성 문제의 예측에 기초하여, 질의들의 서브세트로부터 도출되는 결과들을 조합하는 것과 관련된 다른 충족가능성 문제를 예측하는 단계 - 질의들의 서브세트는 제1 질의 또는 제2 질의를 포함하지 않음 -; 및 업데이트된 질의 세트가 제2 질의 연산자를 포함하지 않도록 질의 세트를 업데이트하기 위해 다른 충족가능성 문제의 예측에 기초하여, 질의 세트로부터 제2 질의 연산자를 제거하는 단계를 추가로 포함하는, 방법.
24. 실시예 21 내지 실시예 23 중 어느 하나에 있어서, 제1 질의 연산자는 제1 및 제2 질의들을 링크하는 유니언 또는 제1 및 제2 질의들을 링크하는 조인을 포함하는, 방법.
25. 실시예 21 내지 실시예 24 중 어느 하나에 있어서, 충족가능성 문제를 예측하는 단계는 제1 및 제2 질의들에 대한 결과들을 획득하기 위한 제1 및 제2 소스들을 결정하는 단계; 제1 및 제2 템플릿과 관련된 비호환성을 결정하는 단계 - 제1 템플릿은 제1 소스로부터의 데이터 표현들을 그래프 데이터베이스와 호환되는 그래프 데이터 표현들로 변환하기 위해 구성되고, 제2 템플릿은 제2 소스로부터의 데이터 표현들을 그래프 데이터베이스와 호환되는 그래프 데이터 표현들로 변환하기 위해 구성됨 -; 및 제1 및 제2 템플릿들과 관련된 비호환성에 기초하여 충족가능성 문제를 예측하는 단계를 포함하는, 방법.
26. 실시예 21 내지 실시예 25 중 어느 하나에 있어서, 충족가능성 문제를 예측하는 단계는 그래프 데이터 모델에 기초하여, 그래프 데이터베이스 내에 제1 질의에 대한 제1 결과를 저장하기 위한 제1 데이터 타입을 데이터 타입으로서 결정하는 단계; 그래프 데이터 모델에 기초하여, 그래프 데이터베이스 내에 제2 질의에 대한 제2 결과를 저장하기 위한 제2 데이터 타입을 데이터 타입으로서 결정하는 단계; 제1 및 제2 데이터 타입들과 관련된 비호환성을 결정하는 단계; 및 제1 및 제2 데이터 타입들과 관련된 비호환성에 기초하여 충족가능성 문제를 예측하는 단계를 포함하는, 방법.
27. 실시예 26에 있어서, 제1 결과에 대응하는 제1 데이터 표현은 제2 소스 내에 제2 결과에 대응하는 제2 데이터 표현을 저장하기 위해 사용되는 데이터 타입과 호환되는 데이터 타입으로서 제1 소스 내에 저장되는, 방법.
28. 실시예 26에 있어서, 제1 결과에 대응하는 제1 데이터 표현은 제2 소스 내에 제2 결과에 대응하는 제2 데이터 표현을 저장하기 위해 사용되는 데이터 타입과 호환되지 않는 데이터 타입으로서 제1 소스 내에 저장되는, 방법.
29. 실시예 21 내지 실시예 28 중 어느 하나에 있어서, 기계 학습 모델이 그래프 질의들 각각에 대한 주어진 질의 세트를 예측하도록 기계 학습 모델에 그래프 질의들을 제공하는 단계 - 예측된 주어진 질의 세트들 중 적어도 하나는 예측된 질의들 및 예측된 질의들을 링크하는 예측된 질의 연산자들을 포함함 -; 기계 학습 모델이 참조 질의 세트에 대해 예측된 주어진 질의 세트를 평가하게 하기 위해 그래프 질의들 각각에 대해, 기계 학습 모델에 대한 참조 피드백으로서 그래프 질의에 대한 참조 질의 세트를 제공하는 단계 - 기계 학습 모델은 예측된 주어진 질의 세트의 기계 학습 모델의 평가에 기초하여 업데이트됨 -; 질의 세트를 획득하기 위해 기계 학습 모델에 그래프 질의를 제공함으로써 그래프 질의를 질의 세트로 변환하는 단계; 및 기계 학습 모델이 업데이트된 질의 세트에 대해 질의 세트를 평가하게 하기 위해 기계 학습 모델에 대한 참조 피드백으로서 업데이트된 질의 세트를 기계 학습 모델에 제공하는 단계 - 기계 학습 모델은 질의 세트의 기계 학습 모델의 평가에 기초하여 업데이트됨 - 를 추가로 포함하는, 방법.
30. 실시예 21 내지 실시예 29 중 어느 하나에 있어서, 기계 학습 모델이 대응하는 질의 세트들 각각에 대한 하나 이상의 주어진 최적화를 예측하게 하기 위해 기계 학습 모델에 그래프 질의들 또는 대응하는 질의 세트들을 제공하는 단계 - 예측된 주어진 최적화들 중 적어도 하나는 주어진 질의 세트로부터 다수의 질의를 링크하는 주어진 질의 연산자의 제거, 단일 질의 내로 다수의 질의의 병합, 또는 주어진 질의 세트로부터 하나 이상의 질의의 제거를 포함함 -; 기계 학습 모델이 하나 이상의 참조 최적화에 대해 하나 이상의 예측된 주어진 최적화를 평가하게 하기 위해 대응하는 질의 세트들 각각에 대해, 기계 학습 모델에 대한 참조 피드백으로서 대응하는 질의 세트에 대한 하나 이상의 참조 최적화를 제공하는 단계 - 기계 학습 모델은 하나 이상의 예측된 주어진 최적화의 기계 학습 모델의 평가에 기초하여 업데이트됨 -; 초기 질의 세트에 대한 하나 이상의 최적화를 획득하기 위해 기계 학습 모델에 그래프 질의 또는 그래프 질의로부터 도출되는 초기 질의 세트를 제공하는 단계; 초기 질의 세트에 하나 이상의 최적화를 수행함으로써 그래프 질의를 질의 세트로 변환하는 단계; 및 기계 학습 모델이 제1 질의 연산자의 제거에 대해 하나 이상의 최적화를 평가하게 하기 위해 기계 학습 모델에 대한 참조 피드백으로서 제1 질의 연산자의 제거의 표시를 기계 학습 모델에 제공하는 단계 - 기계 학습 모델은 하나 이상의 최적화의 기계 학습 모델의 평가에 기초하여 업데이트됨 - 를 추가로 포함하는, 방법.
31. 실시예 21 내지 실시예 30 중 어느 하나에 있어서, 기계 학습 모델이 주어진 질의 세트들 각각과 관련된 하나 이상의 충족가능성 문제를 예측하게 하기 위해 기계 학습 모델에 주어진 질의 세트들을 제공하는 단계; 기계 학습 모델이 하나 이상의 참조 충족가능성 문제에 대해 하나 이상의 예측된 충족가능성 문제를 평가하게 하기 위해 주어진 질의 세트들 각각에 대해, 기계 학습 모델에 대한 참조 피드백으로서 주어진 질의 세트에 대한 하나 이상의 참조 충족가능성 문제를 제공하는 단계 - 기계 학습 모델은 하나 이상의 예측된 충족가능성 문제의 기계 학습 모델의 평가에 기초하여 업데이트됨 -; 기계 학습 모델로부터 충족가능성 문제의 예측의 표시를 획득하기 위해 기계 학습 모델에 질의 세트를 제공하는 단계; 및 기계 학습 모델로부터의 표시에 기초하여, 제1 및 제2 질의들로부터 도출되는 결과들을 조합하는 것과 관련된 충족가능성 문제를 예측하는 단계를 추가로 포함하는, 방법.
32. 명령어들을 저장하는 유형의 비일시적 기계 판독가능 매체로서, 명령어들은 데이터 처리 장치에 의해 실행될 때 데이터 처리 장치가 실시예 1 내지 실시예 31 중 어느 하나의 것을 포함하는 동작들을 수행하게 하는, 유형의 비일시적 기계 판독가능 매체.
33. 시스템으로서, 하나 이상의 프로세서; 및 명령어들을 저장하는 메모리를 포함하며, 명령어들은 프로세서들에 의해 실행될 때 프로세서들이 실시예 1 내지 실시예 31 중 어느 하나의 것을 포함하는 동작들을 실시하게 하는, 시스템.

Claims (60)

  1. 데이터 검색 프로세스에서 질의 관련 자원 사용을 감소시키기 위한 시스템으로서,
    컴퓨터 프로그램 명령어들로 프로그래밍되는 하나 이상의 프로세서를 포함하는 컴퓨터 시스템
    을 포함하며, 상기 컴퓨터 프로그램 명령어들은 실행될 때, 상기 컴퓨터 시스템으로 하여금,
    데이터 요청과 관련된 그래프 질의를 획득하게 하고 - 상기 그래프 질의는 패턴들을 포함함 -;
    그래프 데이터 모델 및 상기 그래프 질의의 패턴들에 기초하여 상기 그래프 질의를 질의 세트로 변환하게 하고 - 상기 질의 세트는 질의들 및 상기 질의들을 링크하는 질의 연산자들을 포함하고, 상기 질의 연산자들은 상기 질의들 중 제1 및 제2 질의들을 링크하는 제1 질의 연산자를 포함함 -;
    상기 제1 및 제2 질의들의 실행 전에, 상기 제1 및 제2 질의들로부터 도출되는 결과들을 조합하는 것과 관련된 충족가능성 문제를 예측하게 하고;
    업데이트된 질의 세트가 상기 제1 질의 연산자를 포함하지 않도록 상기 질의 세트를 업데이트하기 위해 상기 충족가능성 문제의 예측에 기초하여, 상기 질의 세트로부터 상기 제1 질의 연산자를 제거하게 하고;
    상기 업데이트된 질의 세트의 실행이 상기 그래프 질의를 충족시키게 하는, 시스템.
  2. 제1항에 있어서, 상기 제1 질의 연산자는 상기 제1 및 제2 질의들을 링크하는 유니언(union) 또는 상기 제1 및 제2 질의들을 링크하는 조인(join)을 포함하는, 시스템.
  3. 제1항에 있어서, 상기 충족가능성 문제를 예측하는 것은,
    상기 제1 및 제2 질의들에 대한 결과들을 획득하기 위한 제1 및 제2 소스들을 결정하는 것;
    제1 및 제2 템플릿과 관련된 비호환성을 결정하는 것 - 상기 제1 템플릿은 상기 제1 소스로부터의 데이터 표현들을 그래프 데이터베이스와 호환되는 그래프 데이터 표현들로 변환하기 위해 구성되고, 상기 제2 템플릿은 상기 제2 소스로부터의 데이터 표현들을 상기 그래프 데이터베이스와 호환되는 그래프 데이터 표현들로 변환하기 위해 구성됨 -; 및
    상기 제1 및 제2 템플릿들과 관련된 비호환성에 기초하여 상기 충족가능성 문제를 예측하는 것
    을 포함하는, 시스템.
  4. 제1항에 있어서, 상기 충족가능성 문제를 예측하는 것은,
    상기 그래프 데이터 모델에 기초하여, 그래프 데이터베이스 내에 상기 제1 질의에 대한 제1 결과를 저장하기 위한 제1 데이터 타입을 데이터 타입으로서 결정하는 것;
    상기 그래프 데이터 모델에 기초하여, 상기 그래프 데이터베이스 내에 상기 제2 질의에 대한 제2 결과를 저장하기 위한 제2 데이터 타입을 데이터 타입으로서 결정하는 것;
    상기 제1 및 제2 데이터 타입들과 관련된 비호환성을 결정하는 것; 및
    상기 제1 및 제2 데이터 타입들과 관련된 비호환성에 기초하여 상기 충족가능성 문제를 예측하는 것
    을 포함하는, 시스템.
  5. 제4항에 있어서, 상기 제1 결과에 대응하는 제1 데이터 표현은 제2 소스 내에 상기 제2 결과에 대응하는 제2 데이터 표현을 저장하기 위해 사용되는 데이터 타입과 호환되는 데이터 타입으로서 제1 소스 내에 저장되는, 시스템.
  6. 제4항에 있어서, 상기 제1 결과에 대응하는 제1 데이터 표현은 제2 소스 내에 상기 제2 결과에 대응하는 제2 데이터 표현을 저장하기 위해 사용되는 데이터 타입과 호환되지 않는 데이터 타입으로서 제1 소스 내에 저장되는, 시스템.
  7. 제1항에 있어서, 상기 컴퓨터 시스템은,
    상기 질의 세트의 질의들의 서브세트의 실행 전에, 상기 충족가능성 문제의 예측에 기초하여, 상기 질의들의 서브세트로부터 도출되는 결과들을 조합하는 것과 관련된 다른 충족가능성 문제를 예측하게 되고 - 상기 질의들의 서브세트는 상기 제1 질의 또는 상기 제2 질의를 포함하지 않음 -;
    업데이트된 질의 세트가 제2 질의 연산자를 포함하지 않도록 상기 질의 세트를 업데이트하기 위해 상기 다른 충족가능성 문제의 예측에 기초하여, 상기 질의 세트로부터 상기 제2 질의 연산자를 제거하게 되는, 시스템.
  8. 제1항에 있어서, 상기 컴퓨터 시스템은,
    신경 네트워크가 상기 그래프 질의들 각각에 대한 주어진 질의 세트를 예측하게 하기 위해 상기 신경 네트워크에 그래프 질의들을 제공하게 되고 - 상기 예측된 주어진 질의 세트들 중 적어도 하나는 예측된 질의들 및 상기 예측된 질의들을 링크하는 예측된 질의 연산자들을 포함함 -;
    상기 신경 네트워크가 참조 질의 세트에 대해 상기 예측된 주어진 질의 세트를 평가하게 하기 위해 상기 그래프 질의들 각각에 대해, 상기 신경 네트워크에 대한 참조 피드백으로서 상기 그래프 질의에 대한 상기 참조 질의 세트를 제공하게 되고 - 상기 신경 네트워크는 상기 예측된 주어진 질의 세트의 신경 네트워크의 평가에 기초하여 업데이트됨 -;
    상기 질의 세트를 획득하기 위해 상기 신경 네트워크에 상기 그래프 질의를 제공함으로써 상기 그래프 질의를 상기 질의 세트로 변환하게 되고;
    상기 신경 네트워크가 상기 업데이트된 질의 세트에 대해 상기 질의 세트를 평가하게 하기 위해 상기 신경 네트워크에 대한 참조 피드백으로서 상기 업데이트된 질의 세트를 상기 신경 네트워크에 제공하게 되는 - 상기 신경 네트워크는 상기 질의 세트의 신경 네트워크의 평가에 기초하여 업데이트됨 -, 시스템.
  9. 제1항에 있어서, 상기 컴퓨터 시스템은,
    신경 네트워크가 대응하는 질의 세트들 각각에 대한 하나 이상의 주어진 최적화를 예측하게 하기 위해 상기 신경 네트워크에 그래프 질의들 또는 대응하는 질의 세트들을 제공하게 되고 - 상기 예측된 주어진 최적화들 중 적어도 하나는 주어진 질의 세트로부터 다수의 질의를 링크하는 주어진 질의 연산자의 제거, 단일 질의 내로 다수의 질의의 병합, 또는 주어진 질의 세트로부터 하나 이상의 질의의 제거를 포함함 -;
    상기 신경 네트워크가 상기 하나 이상의 참조 최적화에 대해 상기 하나 이상의 예측된 주어진 최적화를 평가하게 하기 위해 상기 대응하는 질의 세트들 각각에 대해, 상기 신경 네트워크에 대한 참조 피드백으로서 상기 대응하는 질의 세트에 대한 하나 이상의 참조 최적화를 제공하게 되고 - 상기 신경 네트워크는 상기 하나 이상의 예측된 주어진 최적화의 신경 네트워크의 평가에 기초하여 업데이트됨 -;
    초기 질의 세트에 대한 하나 이상의 최적화를 획득하기 위해 상기 신경 네트워크에 상기 그래프 질의 또는 상기 그래프 질의로부터 도출되는 초기 질의 세트를 제공하게 되고;
    상기 초기 질의 세트에 대한 하나 이상의 최적화를 수행함으로써 상기 그래프 질의를 상기 질의 세트로 변환하게 되고;
    상기 신경 네트워크가 상기 제1 질의 연산자의 제거에 대해 상기 하나 이상의 최적화를 평가하게 하기 위해 상기 신경 네트워크에 대한 참조 피드백으로서 상기 제1 질의 연산자의 제거의 표시를 상기 신경 네트워크에 제공하게 되는 - 상기 신경 네트워크는 상기 하나 이상의 최적화의 신경 네트워크의 평가에 기초하여 업데이트됨 -, 시스템.
  10. 제1항에 있어서, 상기 컴퓨터 시스템은,
    신경 네트워크가 주어진 질의 세트들 각각과 관련된 하나 이상의 충족가능성 문제를 예측하게 하기 위해 상기 신경 네트워크에 주어진 질의 세트들을 제공하게 되고;
    상기 신경 네트워크가 하나 이상의 참조 충족가능성 문제에 대해 상기 하나 이상의 예측된 충족가능성 문제를 평가하게 하기 위해 상기 주어진 질의 세트들 각각에 대해, 상기 신경 네트워크에 대한 참조 피드백으로서 상기 주어진 질의 세트에 대한 하나 이상의 참조 충족가능성 문제를 제공하게 되고 - 상기 신경 네트워크는 상기 하나 이상의 예측된 충족가능성 문제의 신경 네트워크의 평가에 기초하여 업데이트됨 -;
    상기 신경 네트워크로부터 상기 충족가능성 문제의 예측의 표시를 획득하기 위해 상기 신경 네트워크에 상기 질의 세트를 제공하게 되고;
    상기 신경 네트워크로부터의 표시에 기초하여, 상기 제1 및 제2 질의들로부터 도출되는 결과들을 조합하는 것과 관련된 충족가능성 문제를 예측하게 되는, 시스템.
  11. 데이터 검색 프로세스에서 질의 관련 자원 사용을 감소시키는 방법으로서, 상기 방법은 컴퓨터 프로그램 명령어들을 실행하는 하나 이상의 프로세서를 포함하는 컴퓨터 시스템에 의해 구현되고, 상기 컴퓨터 프로그램 명령어들은 실행될 때, 상기 방법을 수행하고, 상기 방법은,
    데이터 요청과 관련된 그래프 질의를 획득하는 단계 - 상기 그래프 질의는 패턴들을 포함함 -;
    그래프 데이터 모델 및 상기 그래프 질의의 패턴들에 기초하여 상기 그래프 질의를 질의 세트로 변환하는 단계 - 상기 질의 세트는 질의들 및 상기 질의들을 링크하는 질의 연산자들을 포함하고, 상기 질의 연산자들은 상기 질의들 중 제1 및 제2 질의들을 링크하는 제1 질의 연산자를 포함함 -;
    상기 제1 및 제2 질의들의 실행 전에, 상기 제1 및 제2 질의들로부터 도출되는 결과들을 조합하는 것과 관련된 충족가능성 문제를 예측하는 단계;
    업데이트된 질의 세트가 상기 제1 질의 연산자를 포함하지 않도록 상기 질의 세트를 업데이트하기 위해 상기 충족가능성 문제의 예측에 기초하여, 상기 질의 세트로부터 상기 제1 질의 연산자를 제거하는 단계; 및
    상기 업데이트된 질의 세트의 실행이 상기 그래프 질의를 충족시키게 하는 단계
    를 포함하는, 방법.
  12. 제11항에 있어서, 상기 제1 질의 연산자는 상기 제1 및 제2 질의들을 링크하는 유니언 또는 상기 제1 및 제2 질의들을 링크하는 조인을 포함하는, 방법.
  13. 제11항에 있어서, 상기 충족가능성 문제를 예측하는 단계는,
    상기 제1 및 제2 질의들에 대한 결과들을 획득하기 위한 제1 및 제2 소스들을 결정하는 단계;
    제1 및 제2 템플릿과 관련된 비호환성을 결정하는 단계 - 상기 제1 템플릿은 상기 제1 소스로부터의 데이터 표현들을 그래프 데이터베이스와 호환되는 그래프 데이터 표현들로 변환하기 위해 구성되고, 상기 제2 템플릿은 상기 제2 소스로부터의 데이터 표현들을 상기 그래프 데이터베이스와 호환되는 그래프 데이터 표현들로 변환하기 위해 구성됨 -; 및
    상기 제1 및 제2 템플릿들과 관련된 비호환성에 기초하여 상기 충족가능성 문제를 예측하는 단계
    를 포함하는, 방법.
  14. 제11항에 있어서, 상기 충족가능성 문제를 예측하는 단계는,
    상기 그래프 데이터 모델에 기초하여, 그래프 데이터베이스 내에 상기 제1 질의에 대한 제1 결과를 저장하기 위한 제1 데이터 타입을 데이터 타입으로서 결정하는 단계;
    상기 그래프 데이터 모델에 기초하여, 상기 그래프 데이터베이스 내에 상기 제2 질의에 대한 제2 결과를 저장하기 위한 제2 데이터 타입을 데이터 타입으로서 결정하는 단계;
    상기 제1 및 제2 데이터 타입들과 관련된 비호환성을 결정하는 단계; 및
    상기 제1 및 제2 데이터 타입들과 관련된 비호환성에 기초하여 상기 충족가능성 문제를 예측하는 단계
    를 포함하는, 방법.
  15. 제14항에 있어서, 상기 제1 결과에 대응하는 제1 데이터 표현은 제2 소스 내에 상기 제2 결과에 대응하는 제2 데이터 표현을 저장하기 위해 사용되는 데이터 타입과 호환되는 데이터 타입으로서 제1 소스 내에 저장되는, 방법.
  16. 제14항에 있어서, 상기 제1 결과에 대응하는 제1 데이터 표현은 제2 소스 내에 상기 제2 결과에 대응하는 제2 데이터 표현을 저장하기 위해 사용되는 데이터 타입과 호환되지 않는 데이터 타입으로서 제1 소스 내에 저장되는, 방법.
  17. 제11항에 있어서,
    상기 질의 세트의 질의들의 서브세트의 실행 전에, 상기 충족가능성 문제의 예측에 기초하여, 상기 질의들의 서브세트로부터 도출되는 결과들을 조합하는 것과 관련된 다른 충족가능성 문제를 예측하는 단계 - 상기 질의들의 서브세트는 상기 제1 질의 또는 상기 제2 질의를 포함하지 않음 -; 및
    업데이트된 질의 세트가 제2 질의 연산자를 포함하지 않도록 상기 질의 세트를 업데이트하기 위해 상기 다른 충족가능성 문제의 예측에 기초하여, 상기 질의 세트로부터 상기 제2 질의 연산자를 제거하는 단계
    를 추가로 포함하는, 방법.
  18. 제11항에 있어서,
    신경 네트워크가 상기 그래프 질의들 각각에 대한 주어진 질의 세트를 예측하게 하기 위해 상기 신경 네트워크에 그래프 질의들을 제공하는 단계 - 상기 예측된 주어진 질의 세트들 중 적어도 하나는 예측된 질의들 및 상기 예측된 질의들을 링크하는 예측된 질의 연산자들을 포함함 -;
    상기 신경 네트워크가 참조 질의 세트에 대해 상기 예측된 주어진 질의 세트를 평가하게 하기 위해 상기 그래프 질의들 각각에 대해, 상기 신경 네트워크에 대한 참조 피드백으로서 상기 그래프 질의에 대한 상기 참조 질의 세트를 제공하는 단계 - 상기 신경 네트워크는 상기 예측된 주어진 질의 세트의 신경 네트워크의 평가에 기초하여 업데이트됨 -;
    상기 질의 세트를 획득하기 위해 상기 신경 네트워크에 상기 그래프 질의를 제공함으로써 상기 그래프 질의를 상기 질의 세트로 변환하는 단계; 및
    상기 신경 네트워크가 상기 업데이트된 질의 세트에 대해 상기 질의 세트를 평가하게 하기 위해 상기 신경 네트워크에 대한 참조 피드백으로서 상기 업데이트된 질의 세트를 상기 신경 네트워크에 제공하는 단계 - 상기 신경 네트워크는 상기 질의 세트의 신경 네트워크의 평가에 기초하여 업데이트됨 -
    를 추가로 포함하는, 방법.
  19. 제11항에 있어서,
    신경 네트워크가 대응하는 질의 세트들 각각에 대한 하나 이상의 주어진 최적화를 예측하게 하기 위해 상기 신경 네트워크에 그래프 질의들 또는 대응하는 질의 세트들을 제공하는 단계 - 상기 예측된 주어진 최적화들 중 적어도 하나는 주어진 질의 세트로부터 다수의 질의를 링크하는 주어진 질의 연산자의 제거, 단일 질의 내로 다수의 질의의 병합, 또는 주어진 질의 세트로부터 하나 이상의 질의의 제거를 포함함 -;
    상기 신경 네트워크가 하나 이상의 참조 최적화에 대해 상기 하나 이상의 예측된 주어진 최적화를 평가하게 하기 위해 상기 대응하는 질의 세트들 각각에 대해, 상기 신경 네트워크에 대한 참조 피드백으로서 상기 대응하는 질의 세트에 대한 상기 하나 이상의 참조 최적화를 제공하는 단계 - 상기 신경 네트워크는 상기 하나 이상의 예측된 주어진 최적화의 신경 네트워크의 평가에 기초하여 업데이트됨 -;
    초기 질의 세트에 대한 하나 이상의 최적화를 획득하기 위해 상기 신경 네트워크에 상기 그래프 질의 또는 상기 그래프 질의로부터 도출되는 초기 질의 세트를 제공하는 단계;
    상기 초기 질의 세트에 대한 하나 이상의 최적화를 수행함으로써 상기 그래프 질의를 상기 질의 세트로 변환하는 단계; 및
    상기 신경 네트워크가 상기 제1 질의 연산자의 제거에 대해 상기 하나 이상의 최적화를 평가하게 하기 위해 상기 신경 네트워크에 대한 참조 피드백으로서 상기 제1 질의 연산자의 제거의 표시를 상기 신경 네트워크에 제공하는 단계 - 상기 신경 네트워크는 상기 하나 이상의 최적화의 신경 네트워크의 평가에 기초하여 업데이트됨 -
    를 추가로 포함하는, 방법.
  20. 제11항에 있어서,
    신경 네트워크가 주어진 질의 세트들 각각과 관련된 하나 이상의 충족가능성 문제를 예측하게 하기 위해 상기 신경 네트워크에 주어진 질의 세트들을 제공하는 단계;
    상기 신경 네트워크가 하나 이상의 참조 충족가능성 문제에 대해 상기 하나 이상의 예측된 충족가능성 문제를 평가하게 하기 위해 상기 주어진 질의 세트들 각각에 대해, 상기 신경 네트워크에 대한 참조 피드백으로서 상기 주어진 질의 세트에 대한 하나 이상의 참조 충족가능성 문제를 제공하는 단계 - 상기 신경 네트워크는 상기 하나 이상의 예측된 충족가능성 문제의 신경 네트워크의 평가에 기초하여 업데이트됨 -;
    상기 신경 네트워크로부터 상기 충족가능성 문제의 예측의 표시를 획득하기 위해 상기 신경 네트워크에 상기 질의 세트를 제공하는 단계; 및
    상기 신경 네트워크로부터의 표시에 기초하여, 상기 제1 및 제2 질의들로부터 도출되는 결과들을 조합하는 것과 관련된 충족가능성 문제를 예측하는 단계
    를 추가로 포함하는, 방법.
  21. 데이터 서브그래프들의 예측 기반 발생을 통해 데이터 검색 지연들을 감소시키기 위한 시스템으로서,
    컴퓨터 프로그램 명령어들로 프로그래밍되는 하나 이상의 프로세서를 포함하는 컴퓨터 시스템
    을 포함하며, 상기 컴퓨터 프로그램 명령어들은 실행될 때, 상기 컴퓨터 시스템으로 하여금,
    그래프 데이터 모델과 호환되는 사전 질의들에 기초하여, 데이터 요청이 장래에 발생할 것을 예측하게 하고;
    상기 그래프 데이터 모델에 기초하여, 데이터 세트의 데이터 서브세트들을 나타내는 하나 이상의 서브그래프를 발생시키게 하고 - 상기 데이터 세트는 상기 데이터 요청이 추구하도록 예측되는 데이터이고, 상기 하나 이상의 서브그래프는 상기 데이터 요청의 예측에 응답하여 발생됨 -;
    상기 하나 이상의 서브그래프가 일시적 데이터 스토리지 내에 저장되게 하고;
    상기 예측된 데이터 요청과 매칭하는 후속 데이터 요청을 획득하게 하고 - 상기 후속 데이터 요청은 상기 하나 이상의 서브그래프의 저장 후에 획득됨 -;
    상기 예측된 데이터 요청과 매칭하는 후속 데이터 요청에 기초하여, 상기 일시적 데이터 스토리지로부터 상기 하나 이상의 서브그래프를 획득하게 하고;
    상기 후속 데이터 요청에 응답하기 위해 상기 하나 이상의 서브그래프를 사용하게 하는, 시스템.
  22. 제21항에 있어서, 상기 컴퓨터 시스템은,
    상기 하나 이상의 서브그래프의 노드들 및 에지들로부터 상기 데이터 서브세트들을 추출하고;
    상기 후속 데이터 요청에 응답하기 위해 상기 추출된 데이터 서브세트들을 반환함으로써
    상기 하나 이상의 서브그래프를 사용하게 되는, 시스템.
  23. 제21항에 있어서, 상기 컴퓨터 시스템은,
    상기 데이터 요청의 예측에 응답하여 하나 이상의 비그래프 데이터베이스로부터 상기 데이터 서브세트들 중 제1 데이터 서브세트를 획득하게 되고;
    상기 그래프 데이터 모델에 기초하여, 상기 제1 데이터 서브세트의 획득 후에 상기 제1 데이터 서브세트를 나타내는 제1 서브그래프를 발생시키게 되는 - 상기 하나 이상의 서브그래프는 상기 제1 서브그래프가 상기 후속 데이터 요청에 응답하기 위해 사용되도록 상기 제1 서브그래프를 포함함 -, 시스템.
  24. 제23항에 있어서, 상기 컴퓨터 시스템은,
    상기 데이터 요청의 예측에 응답하여 하나 이상의 그래프 데이터베이스로부터 상기 데이터 서브세트들 중 제2 데이터 서브세트를 획득하게 되고,
    상기 하나 이상의 서브그래프는 상기 제2 서브그래프가 상기 후속 데이터 요청에 응답하기 위해 사용되도록 상기 제2 데이터 서브세트를 나타내는 제2 서브그래프를 포함하는, 시스템.
  25. 제24항에 있어서, 상기 컴퓨터 시스템은,
    상기 예측된 데이터 요청의 하나 이상의 탐색 파라미터에 기초하여 그래프 질의들을 발생시키게 되고;
    상기 그래프 데이터 모델에 기초하여, 상기 그래프 질의들 중 적어도 하나를 하나 이상의 비그래프 질의로 변환하게 되고;
    상기 하나 이상의 비그래프 데이터베이스로부터 상기 제1 데이터 서브세트를 획득하기 위해 상기 하나 이상의 비그래프 질의를 수행하게 되고;
    상기 하나 이상의 그래프 데이터베이스로부터 상기 제2 데이터 서브세트를 획득하기 위해 상기 그래프 질의들 중 적어도 다른 하나를 수행하게 되는, 시스템.
  26. 제21항에 있어서, 상기 컴퓨터 시스템은,
    상기 후속 데이터 요청에 응답하기 위해 상기 예측된 데이터 요청과 매칭하는 후속 데이터 요청에 기초하여, 질의 계획을 발생시키게 되고 - 상기 질의 계획은 상기 예측된 데이터 요청과 매칭하는 후속 데이터 요청에 기초하여 상기 일시적 데이터 스토리지로부터 데이터를 획득하는 것을 포함하기 위해 발생됨 -; 및
    상기 질의 계획에 기초하여, 상기 일시적 데이터 스토리지로부터 상기 하나 이상의 서브그래프를 획득하게 되는, 시스템.
  27. 제21항에 있어서, 상기 컴퓨터 시스템은,
    상기 후속 데이터 요청에 응답하기 위해 상기 예측된 데이터 요청과 매칭하는 후속 데이터 요청에 기초하여, 질의 계획을 발생시키게 되고 - 상기 질의 계획은 상기 후속 데이터 요청에 응답하여 발생됨 -;
    상기 질의 계획에 기초하여, 상기 일시적 데이터 스토리지로 상기 하나 이상의 서브그래프를 획득하고 상기 하나 이상의 다른 데이터 소스로부터 하나 이상의 다른 데이터 서브세트를 획득하게 되고;
    상기 후속 데이터 요청에 응답하기 위해 (i) 상기 하나 이상의 서브그래프에 의해 표현되는 데이터 서브세트들 및 (ii) 상기 하나 이상의 다른 데이터 서브세트를 사용하게 되는, 시스템.
  28. 제21항에 있어서, 상기 컴퓨터 시스템은,
    상기 데이터 요청의 예측에 응답하여 질의들을 수행하게 되고 - 상기 수행된 질의들은 상기 예측된 데이터 요청에 응답하기 위해 수행되었던 질의들의 세트의 일부이며, 상기 예측된 데이터 요청은 클라이언트 디바이스로부터 획득되었음 -;
    상기 질의들에 기초하여, 상기 데이터 요청이 추구하도록 예측되는 데이터 세트의 데이터 서브세트들을 획득하게 되고;
    상기 데이터 서브세트들 및 상기 그래프 데이터 모델에 기초하여 상기 하나 이상의 서브그래프를 발생시키게 되는, 시스템.
  29. 제28항에 있어서, 상기 질의들의 세트의 하나 이상의 다른 질의의 어떠한 수행도 상기 데이터 요청의 예측으로부터 발생하지 않는, 시스템.
  30. 제21항에 있어서, 상기 컴퓨터 시스템은,
    기계 학습 모델을 훈련하기 위해 기계 학습 모델에 상기 그래프 데이터 모델과 호환되는 사전 질의들을 제공하게 되고;
    상기 기계 학습 모델로부터, 상기 기계 학습 모델의 훈련 후에 상기 데이터 요청의 예측의 표시를 획득하게 되고;
    상기 기계 학습 모델을 추가로 훈련하기 위해 상기 예측된 데이터 요청과 매칭하는 후속 데이터 요청에 기초하여, 상기 기계 학습 모델에 대한 참조 피드백으로서 상기 후속 데이터 요청의 표시를 제공하게 되는, 시스템.
  31. 데이터 서브그래프들의 예측 기반 발생을 통해 데이터 검색 지연들을 감소시키는 방법으로서, 상기 방법은 컴퓨터 프로그램 명령어들을 실행하는 하나 이상의 프로세서를 포함하는 컴퓨터 시스템에 의해 구현되며, 상기 컴퓨터 프로그램 명령어들은 실행될 때, 상기 방법을 수행하고, 상기 방법은,
    그래프 데이터 모델과 호환되는 사전 질의들에 기초하여, 데이터 요청이 장래에 발생할 것을 예측하는 단계;
    상기 그래프 데이터 모델에 기초하여, 데이터 세트의 데이터 서브세트들을 나타내는 하나 이상의 서브그래프를 발생시키는 단계 - 상기 데이터 세트는 상기 데이터 요청이 추구하도록 예측되는 데이터이고, 상기 하나 이상의 서브그래프는 상기 데이터 요청의 예측에 응답하여 발생됨 -;
    상기 하나 이상의 서브그래프가 일시적 데이터 스토리지 내에 저장되게 하는 단계;
    상기 예측된 데이터 요청과 매칭하는 후속 데이터 요청을 획득하는 단계 - 상기 후속 데이터 요청은 상기 하나 이상의 서브그래프의 저장 후에 획득됨 -;
    상기 예측된 데이터 요청과 매칭하는 후속 데이터 요청에 기초하여, 상기 일시적 데이터 스토리지로부터 상기 하나 이상의 서브그래프를 획득하는 단계; 및
    상기 후속 데이터 요청에 응답하기 위해 상기 하나 이상의 서브그래프를 사용하는 단계
    를 포함하는, 방법.
  32. 제31항에 있어서, 상기 하나 이상의 서브그래프를 사용하는 단계는,
    상기 하나 이상의 서브그래프의 노드들 및 에지들로부터 상기 데이터 서브세트들을 추출하는 단계; 및
    상기 후속 데이터 요청에 응답하기 위해 상기 추출된 데이터 서브세트들을 반환하는 단계
    를 포함하는, 방법.
  33. 제31항에 있어서,
    상기 데이터 요청의 예측에 응답하여 하나 이상의 비그래프 데이터베이스로부터 상기 데이터 서브세트들 중 제1 데이터 서브세트를 획득하는 단계를 추가로 포함하며,
    상기 하나 이상의 서브그래프를 발생시키는 단계는 상기 그래프 데이터 모델에 기초하여, 상기 제1 데이터 서브세트의 획득 후에 상기 제1 데이터 서브세트를 나타내는 제1 서브그래프를 발생시키는 단계를 포함하고, 상기 하나 이상의 서브그래프는 상기 제1 서브그래프가 상기 후속 데이터 요청에 응답하기 위해 사용되도록 상기 제1 서브그래프를 포함하는, 방법.
  34. 제33항에 있어서,
    상기 데이터 요청의 예측에 응답하여 하나 이상의 그래프 데이터베이스로부터 상기 데이터 서브세트들 중 제2 데이터 서브세트를 획득하는 단계를 추가로 포함하며,
    상기 하나 이상의 서브그래프는 상기 제2 서브그래프가 상기 후속 데이터 요청에 응답하기 위해 사용되도록 상기 제2 데이터 서브세트를 나타내는 제2 서브그래프를 포함하는, 방법.
  35. 제34항에 있어서,
    상기 예측된 데이터 요청의 하나 이상의 탐색 파라미터에 기초하여 그래프 질의들을 발생시키는 단계;
    상기 그래프 데이터 모델에 기초하여, 상기 그래프 질의들 중 적어도 하나를 하나 이상의 비그래프 질의로 변환하는 단계;
    상기 하나 이상의 비그래프 데이터베이스로부터 상기 제1 데이터 서브세트를 획득하기 위해 상기 하나 이상의 비그래프 질의를 수행하는 단계; 및
    상기 하나 이상의 그래프 데이터베이스로부터 상기 제2 데이터 서브세트를 획득하기 위해 상기 그래프 질의들 중 적어도 다른 하나를 수행하는 단계
    를 추가로 포함하는, 방법.
  36. 제31항에 있어서,
    상기 후속 데이터 요청에 응답하기 위해 상기 예측된 데이터 요청과 매칭하는 상기 후속 데이터 요청에 기초하여, 질의 계획을 발생시키는 단계를 추가로 포함하며, 상기 질의 계획은 상기 예측된 데이터 요청과 매칭하는 상기 후속 데이터 요청에 기초하여 상기 일시적 데이터 스토리지로부터 데이터를 획득하는 것을 포함하기 위해 발생되고,
    상기 하나 이상의 서브그래프를 획득하는 단계는 상기 질의 계획에 기초하여, 상기 일시적 데이터 스토리지로부터 상기 하나 이상의 서브그래프를 획득하는 단계를 포함하는, 방법.
  37. 제31항에 있어서,
    상기 후속 데이터 요청에 응답하기 위해 상기 예측된 데이터 요청과 매칭하는 상기 후속 데이터 요청에 기초하여, 질의 계획을 발생시키는 단계를 추가로 포함하며, 상기 질의 계획은 상기 후속 데이터 요청에 응답하여 발생되고,
    상기 하나 이상의 서브그래프를 획득하는 단계는 상기 질의 계획에 기초하여, 상기 일시적 데이터 스토리지로부터 상기 하나 이상의 서브그래프를 획득하고 하나 이상의 다른 데이터 소스로부터 하나 이상의 다른 데이터 서브세트를 획득하는 단계를 포함하고,
    상기 하나 이상의 서브그래프를 사용하는 단계는 상기 후속 데이터 요청에 응답하기 위해 (i) 상기 하나 이상의 서브그래프에 의해 표현되는 상기 데이터 서브세트들 및 (ii) 상기 하나 이상의 다른 데이터 서브세트를 사용하는 단계를 포함하는, 방법.
  38. 제31항에 있어서,
    상기 데이터 요청의 예측에 응답하여 질의들을 수행하는 단계 - 상기 수행된 질의들은 상기 예측된 데이터 요청에 응답하기 위해 수행되었던 질의들의 세트의 일부이며, 상기 예측된 데이터 요청은 클라이언트 디바이스로부터 획득되었음 -; 및
    상기 질의들에 기초하여, 상기 데이터 요청이 추구하도록 예측되는 데이터 세트의 데이터 서브세트들을 획득하는 단계
    를 추가로 포함하며,
    상기 하나 이상의 서브그래프를 발생시키는 단계는 상기 데이터 서브세트들 및 상기 그래프 데이터 모델에 기초하여 상기 하나 이상의 서브그래프를 발생시키는 단계를 포함하는, 방법.
  39. 제38항에 있어서, 상기 질의들의 세트의 하나 이상의 다른 질의의 어떠한 수행도 상기 데이터 요청의 예측으로부터 발생하지 않는, 방법.
  40. 제31항에 있어서,
    기계 학습 모델을 훈련하기 위해 기계 학습 모델에 상기 그래프 데이터 모델과 호환되는 사전 질의들을 제공하는 단계;
    상기 기계 학습 모델로부터, 상기 기계 학습 모델의 훈련 후에 상기 데이터 요청의 예측의 표시를 획득하는 단계; 및
    상기 기계 학습 모델을 추가로 훈련하기 위해 상기 예측된 데이터 요청과 매칭하는 후속 데이터 요청에 기초하여, 상기 기계 학습 모델에 대한 참조 피드백으로서 상기 후속 데이터 요청의 표시를 제공하는 단계
    를 추가로 포함하는, 방법.
  41. 비그래프 데이터 표현들을 호환 그래프 데이터 표현들로 변환하기 위한 그래프 데이터 모델의 신경 네트워크 기반 발생을 제공하기 위한 시스템으로서,
    컴퓨터 프로그램 명령어들로 프로그래밍되는 하나 이상의 프로세서를 포함하는 컴퓨터 시스템
    을 포함하며, 상기 컴퓨터 프로그램 명령어들은 실행될 때, 상기 컴퓨터 시스템으로 하여금,
    그래프 데이터 모델 세트와 관련된 모델링 정보를 획득하게 하고 - 상기 그래프 데이터 모델 세트의 각각의 그래프 데이터 모델과 관련된 모델링 정보는 비그래프 데이터베이스 내의 비그래프 데이터 표현들을 그래프 데이터베이스와 호환되는 그래프 데이터 표현들로 변환하기 위한 템플릿들을 포함함 -;
    신경 네트워크가 상기 그래프 데이터 모델의 템플릿들 중 하나 이상의 부가 템플릿을 예측하도록, 상기 그래프 데이터 모델 세트의 각각의 그래프 데이터 모델 및 상기 그래프 데이터 모델이 변환하도록 구성되는 비그래프 데이터 표현들에 대해, 상기 그래프 데이터 모델의 템플릿들 중 하나 이상의 템플릿 및 상기 비그래프 데이터 표현들을 신경 네트워크에 제공하게 하고 - 상기 신경 네트워크는 상기 하나 이상의 부가 템플릿에 대한 의존 없이 상기 하나 이상의 부가 템플릿의 예측을 수행하도록 구성됨 -;
    상기 그래프 데이터 모델 세트의 각각의 그래프 데이터 모델에 대해, 상기 신경 네트워크를 훈련하기 위해 상기 하나 이상의 부가 템플릿의 신경 네트워크의 예측을 위한 참조 피드백으로서 상기 그래프 데이터 모델의 템플릿들 중 하나 이상의 부가 템플릿을 상기 신경 네트워크에 제공하게 하고;
    상기 신경 네트워크가 주어진 비그래프 데이터베이스 내의 비그래프 데이터 표현들을 주어진 그래프 데이터베이스와 호환되는 그래프 데이터 표현들로 변환하기 위한 주어진 그래프 데이터 모델에 대한 하나 이상의 템플릿을 발생시키도록 주어진 비그래프 데이터베이스로부터의 비그래프 데이터 표현들의 집합을 상기 신경 네트워크에 제공하게 하는, 시스템.
  42. 제41항에 있어서, 상기 주어진 그래프 데이터베이스와 호환되는 그래프 데이터 표현들은 그래프 노드들 또는 상기 그래프 노드들을 연결하는 에지들을 포함하는, 시스템.
  43. 제41항에 있어서, 상기 컴퓨터 시스템은,
    상기 주어진 그래프 데이터베이스에서 그래프의 노드들 및 에지들과 관련된 그래프 정보를 획득하게 되고 - 상기 그래프 정보는 데이터 표현 세트들을 표시하고, 상기 데이터 표현 세트들의 각각의 데이터 표현 세트는 노드들 및 상기 노드들을 연결하는 에지들을 포함함 -;
    상기 신경 네트워크가 상기 데이터 표현 세트의 하나 이상의 부가 노드 또는 에지를 예측하도록, 상기 데이터 표현 세트들의 각각의 데이터 표현 세트에 대해, 상기 데이터 표현 세트의 하나 이상의 노드 또는 에지를 상기 신경 네트워크에 제공하게 되고 - 상기 신경 네트워크는 상기 하나 이상의 부가 노드 또는 에지에 대한 의존 없이 상기 하나 이상의 부가 노드 또는 에지의 예측을 수행하도록 구성됨 -; 및
    상기 데이터 표현 세트들의 각각의 데이터 표현 세트에 대해, 상기 신경 네트워크를 훈련하기 위해 상기 하나 이상의 부가 노드 또는 에지의 신경 네트워크의 예측을 위한 참조 피드백으로서 상기 데이터 표현 세트의 하나 이상의 부가 노드 또는 에지를 상기 신경 네트워크에 제공하게 되는, 시스템.
  44. 제43항에 있어서, 상기 컴퓨터 시스템은,
    상기 신경 네트워크가 상기 그래프에 대한 새로운 노드들 또는 에지들을 발생시키게 하기 위해 상기 그래프의 노드들 또는 에지들을 처리하도록 상기 그래프의 순회(traversal)를 상기 신경 네트워크를 통해 수행하게 하고;
    상기 신경 네트워크로부터의 새로운 노드들 또는 에지들 중 적어도 하나를 상기 그래프에 추가하게 되는, 시스템.
  45. 제44항에 있어서, 상기 컴퓨터 시스템은,
    상기 그래프의 순회에 기초하여 상기 신경 네트워크로부터 주어진 노드 또는 에지를 획득하게 되고;
    상기 주어진 노드 또는 에지를 추가하는 것에 대한 사용자 확인에 기초하여 상기 신경 네트워크로부터의 주어진 노드 또는 에지를 상기 그래프에 추가하게 되고;
    상기 주어진 노드 또는 에지의 신경 네트워크의 발생에 관한 참조 피드백으로서 상기 사용자 확인의 표시를 상기 신경 네트워크에 제공하게 되는, 시스템.
  46. 제44항에 있어서, 상기 컴퓨터 시스템은,
    상기 그래프의 순회에 기초하여 상기 신경 네트워크로부터 주어진 노드 또는 에지를 획득하게 되고;
    상기 주어진 노드 또는 에지를 추가하는 것에 대한 사용자 거절을 획득하게 되고 - 상기 주어진 노드 또는 에지는 상기 사용자 거절에 기초하여 상기 그래프에 추가되지 않음 -;
    상기 주어진 노드 또는 에지의 신경 네트워크의 발생에 관한 참조 피드백으로서 상기 사용자 거절의 표시를 상기 신경 네트워크에 제공하게 되는, 시스템.
  47. 제41항에 있어서, 상기 그래프 데이터 모델 세트의 각각의 그래프 데이터 모델은 데이터베이스 행들을 그래프 데이터 표현들로 변환하도록 구성되는, 시스템.
  48. 비그래프 데이터 표현들을 호환 그래프 데이터 표현들로 변환하기 위한 그래프 데이터 모델의 기계 학습 모델 기반 발생을 제공하는 방법으로서, 상기 방법은 컴퓨터 프로그램 명령어들을 실행하는 하나 이상의 프로세서를 포함하는 컴퓨터 시스템에 의해 구현되며, 상기 컴퓨터 프로그램 명령어들은 실행될 때, 상기 방법을 수행하고, 상기 방법은,
    제1 그래프 데이터 모델과 관련된 제1 모델링 정보를 획득하는 단계 - 상기 제1 모델링 정보는 제1 그래프 데이터베이스와 호환되지 않는 제1 데이터 표현들을 상기 제1 그래프 데이터베이스와 호환되는 그래프 데이터 표현들로 변환하기 위한 제1 템플릿들을 포함함 -;
    기계 학습 모델이 상기 제1 템플릿들 중 하나 이상의 부가 템플릿을 예측하도록 상기 제1 템플릿들 중 하나 이상의 템플릿 및 상기 제1 데이터 표현들을 상기 기계 학습 모델에 제공하는 단계 - 상기 기계 학습 모델은 상기 하나 이상의 부가 템플릿에 대한 의존 없이 상기 하나 이상의 부가 템플릿의 예측을 수행하도록 구성됨 -;
    상기 기계 학습 모델을 훈련하기 위해 상기 하나 이상의 부가 템플릿의 기계 학습 모델의 예측을 위한 참조 피드백으로서 상기 제1 템플릿들 중 하나 이상의 부가 템플릿을 상기 기계 학습 모델에 제공하는 단계; 및
    상기 기계 학습 모델이 주어진 데이터베이스의 데이터 표현들을 주어진 그래프 데이터베이스에 대한 그래프 데이터 표현들로 변환하기 위한 주어진 그래프 데이터 모델에 대한 하나 이상의 템플릿을 발생시키도록 주어진 데이터베이스로부터의 데이터 표현들의 집합을 상기 기계 학습 모델에 제공하는 단계
    를 포함하는, 방법.
  49. 제48항에 있어서, 상기 주어진 그래프 데이터베이스의 그래프 데이터 표현들은 그래프 노드들 또는 상기 그래프 노드들을 연결하는 에지들을 포함하는, 방법.
  50. 제48항에 있어서,
    제2 그래프 데이터 모델과 관련된 제2 모델링 정보를 획득하는 단계 - 상기 제2 모델링 정보는 제2 그래프 데이터베이스와 호환되지 않는 제2 데이터 표현들을 상기 제2 그래프 데이터베이스와 호환되는 그래프 데이터 표현들로 변환하기 위한 제2 템플릿들을 포함함 -;
    상기 기계 학습 모델이 상기 제2 템플릿들 중 하나 이상의 부가 템플릿을 예측하도록 상기 제2 템플릿들 중 하나 이상의 템플릿 및 상기 제2 데이터 표현들을 상기 기계 학습 모델에 제공하는 단계 - 상기 기계 학습 모델은 상기 제2 템플릿들 중 하나 이상의 부가 템플릿에 대한 의존 없이 상기 제2 템플릿들 중 하나 이상의 부가 템플릿을 예측하도록 구성됨 -; 및
    상기 기계 학습 모델을 훈련하기 위해 상기 제2 템플릿들 중 하나 이상의 부가 템플릿의 기계 학습 모델의 예측을 위한 참조 피드백으로서 상기 제2 템플릿들 중 하나 이상의 부가 템플릿을 상기 기계 학습 모델에 제공하는 단계
    를 추가로 포함하는, 방법.
  51. 제50항에 있어서, 상기 제1 데이터 표현들 및 상기 제2 데이터 표현들은 동일한 데이터베이스와 호환되는, 방법.
  52. 제50항에 있어서, 상기 제1 데이터 표현들은 제1 비그래프 데이터베이스와 호환되고, 상기 제2 데이터 표현들은 제2 비그래프 데이터베이스와 호환되고 상기 제1 비그래프 데이터베이스와 호환되지 않는, 방법.
  53. 제50항에 있어서, 상기 제1 데이터 표현들 또는 상기 제2 데이터 표현들은 적어도 하나의 그래프 데이터베이스와 호환되는, 방법.
  54. 제48항에 있어서,
    상기 주어진 그래프 데이터베이스에서 그래프의 노드들 및 에지들과 관련된 그래프 정보를 획득하는 단계 - 상기 그래프 정보는 데이터 표현 세트들을 표시하고, 상기 데이터 표현 세트들의 각각의 데이터 표현 세트는 노드들 및 상기 노드들을 연결하는 에지들을 포함함 -;
    상기 기계 학습 모델이 상기 데이터 표현 세트의 하나 이상의 부가 노드 또는 에지를 예측하도록, 상기 데이터 표현 세트들의 각각의 데이터 표현 세트에 대해, 상기 데이터 표현 세트의 하나 이상의 노드 또는 에지를 상기 기계 학습 모델에 제공하는 단계 - 상기 기계 학습 모델은 상기 하나 이상의 부가 노드 또는 에지에 대한 의존 없이 상기 하나 이상의 부가 노드 또는 에지의 예측을 수행하도록 구성됨 -;
    상기 데이터 표현 세트들의 각각의 데이터 표현 세트에 대해, 상기 기계 학습 모델을 훈련하기 위해 상기 하나 이상의 부가 노드 또는 에지의 기계 학습 모델의 예측을 위한 참조 피드백으로서 상기 데이터 표현 세트의 하나 이상의 부가 노드 또는 에지를 상기 기계 학습 모델에 제공하는 단계
    를 추가로 포함하는, 방법.
  55. 제54항에 있어서,
    상기 기계 학습 모델이 상기 그래프에 대한 새로운 노드들 또는 에지들을 발생시키게 하기 위해 상기 그래프의 노드들 또는 에지들을 처리하도록 상기 그래프의 순회를 상기 기계 학습 모델을 통해 수행하는 단계; 및
    상기 기계 학습 모델로부터의 새로운 노드들 또는 에지들을 상기 그래프에 추가하는 단계
    를 추가로 포함하는, 방법.
  56. 제55항에 있어서,
    상기 그래프의 순회에 기초하여 상기 기계 학습 모델로부터 주어진 노드 또는 에지를 획득하는 단계;
    상기 주어진 노드 또는 에지를 추가하는 것에 대한 사용자 확인에 기초하여 상기 기계 학습 모델로부터의 주어진 노드 또는 에지를 상기 그래프에 추가하는 단계; 및
    상기 주어진 노드 또는 에지의 기계 학습 모델의 발생에 관한 참조 피드백으로서 상기 사용자 확인의 표시를 상기 기계 학습 모델에 제공하는 단계
    를 추가로 포함하는, 방법.
  57. 제55항에 있어서,
    상기 그래프의 순회에 기초하여 상기 기계 학습 모델로부터 주어진 노드 또는 에지를 획득하는 단계;
    상기 주어진 노드 또는 에지를 추가하는 것에 대한 사용자 거절을 획득하는 단계 - 상기 주어진 노드 또는 에지는 상기 사용자 거절에 기초하여 상기 그래프에 추가되지 않음 -; 및
    상기 주어진 노드 또는 에지의 기계 학습 모델의 발생에 관한 참조 피드백으로서 상기 사용자 거절의 표시를 상기 기계 학습 모델에 제공하는 단계
    를 추가로 포함하는, 방법.
  58. 비그래프 데이터 표현들을 호환 그래프 데이터 표현들로 변환하기 위한 그래프 데이터 모델의 기계 학습 모델 기반 발생을 제공하기 위한 시스템으로서,
    컴퓨터 프로그램 명령어들로 프로그래밍되는 하나 이상의 프로세서를 포함하는 컴퓨터 시스템
    을 포함하며, 상기 컴퓨터 프로그램 명령어들은 실행될 때, 상기 컴퓨터 시스템으로 하여금,
    제1 그래프 데이터 모델과 관련된 제1 모델링 정보를 획득하게 하고 - 상기 제1 모델링 정보는 제1 그래프 데이터베이스와 호환되지 않는 제1 데이터 표현들을 상기 제1 그래프 데이터베이스와 호환되는 그래프 데이터 표현들로 변환하기 위한 제1 템플릿들을 포함함 -;
    상기 기계 학습 모델이 상기 제1 템플릿들 중 하나 이상의 부가 템플릿을 예측하도록 상기 제1 템플릿들 중 하나 이상의 템플릿 및 상기 제1 데이터 표현들을 상기 기계 학습 모델에 제공하게 하고 - 상기 기계 학습 모델은 상기 하나 이상의 부가 템플릿에 대한 의존 없이 상기 하나 이상의 부가 템플릿의 예측을 수행하도록 구성됨 -;
    상기 기계 학습 모델을 훈련하기 위해 상기 하나 이상의 부가 템플릿의 기계 학습 모델의 예측을 위한 참조 피드백으로서 상기 제1 템플릿들 중 하나 이상의 부가 템플릿을 상기 기계 학습 모델에 제공하게 하고;
    상기 기계 학습 모델이 주어진 데이터베이스의 데이터 표현들을 주어진 그래프 데이터베이스에 대한 그래프 데이터 표현들로 변환하기 위한 주어진 그래프 데이터 모델에 대한 하나 이상의 템플릿을 발생시키도록 주어진 데이터베이스로부터의 데이터 표현들의 집합을 상기 기계 학습 모델에 제공하게 하는, 시스템.
  59. 제58항에 있어서, 상기 컴퓨터 시스템은,
    상기 주어진 그래프 데이터베이스에서 그래프의 노드들 및 에지들과 관련된 그래프 정보를 획득하게 되고 - 상기 그래프 정보는 데이터 표현 세트들을 표시하고, 상기 데이터 표현 세트들의 각각의 데이터 표현 세트는 노드들 및 상기 노드들을 연결하는 에지들을 포함함 -;
    상기 기계 학습 모델이 상기 데이터 표현 세트의 하나 이상의 부가 노드 또는 에지를 예측하도록, 상기 데이터 표현 세트들의 각각의 데이터 표현 세트에 대해, 상기 데이터 표현 세트의 하나 이상의 노드 또는 에지를 상기 기계 학습 모델에 제공하게 되고 - 상기 기계 학습 모델은 상기 하나 이상의 부가 노드 또는 에지에 대한 의존 없이 상기 하나 이상의 부가 노드 또는 에지의 예측을 수행하도록 구성됨 -;
    상기 데이터 표현 세트들의 각각의 데이터 표현 세트에 대해, 상기 기계 학습 모델을 훈련하기 위해 상기 하나 이상의 부가 노드 또는 에지의 기계 학습 모델의 예측을 위한 참조 피드백으로서 상기 데이터 표현 세트의 하나 이상의 부가 노드 또는 에지를 상기 기계 학습 모델에 제공하게 되는, 시스템.
  60. 제59항에 있어서, 상기 컴퓨터 시스템은,
    상기 기계 학습 모델이 상기 그래프에 대한 새로운 노드들 또는 에지들을 발생시키게 하기 위해 상기 그래프의 노드들 또는 에지들을 처리하도록 상기 그래프의 순회를 상기 기계 학습 모델을 통해 수행하게 하고;
    상기 기계 학습 모델로부터의 새로운 노드들 또는 에지들을 상기 그래프에 추가하게 되는, 시스템.
KR1020207035793A 2018-06-13 2019-06-11 다중 소스 타입 상호운용성 및/또는 정보 검색 최적화 KR20210034547A (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US16/007,911 2018-06-13
US16/007,850 US10223417B1 (en) 2018-06-13 2018-06-13 System and method for reducing query-related resource usage in a data retrieval process
US16/007,639 US10303688B1 (en) 2018-06-13 2018-06-13 System and method for reducing data retrieval delays via prediction-based generation of data subgraphs
US16/007,639 2018-06-13
US16/007,911 US10599719B2 (en) 2018-06-13 2018-06-13 System and method for providing prediction-model-based generation of a graph data model
US16/007,850 2018-06-13
PCT/US2019/036612 WO2019241293A1 (en) 2018-06-13 2019-06-11 Multi-source-type interoperability and/or information retrieval optimization

Publications (1)

Publication Number Publication Date
KR20210034547A true KR20210034547A (ko) 2021-03-30

Family

ID=68843577

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207035793A KR20210034547A (ko) 2018-06-13 2019-06-11 다중 소스 타입 상호운용성 및/또는 정보 검색 최적화

Country Status (6)

Country Link
EP (1) EP3807778A4 (ko)
JP (2) JP7420745B2 (ko)
KR (1) KR20210034547A (ko)
AU (1) AU2019284618A1 (ko)
CA (1) CA3102984A1 (ko)
WO (1) WO2019241293A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11302095B2 (en) * 2020-01-09 2022-04-12 International Business Machines Corporation Cognitive motion picture analysis
WO2023249641A1 (en) * 2022-06-24 2023-12-28 Hewlett Packard Enterprise Development Lp Retrieval, model-driven, and artificial intelligence-enabled search

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5659725A (en) * 1994-06-06 1997-08-19 Lucent Technologies Inc. Query optimization by predicate move-around
JP2005251092A (ja) 2004-03-08 2005-09-15 Konica Minolta Holdings Inc 情報検索システム、情報検索方法および情報検索プログラム
US7702616B1 (en) * 2006-06-21 2010-04-20 Actuate Corporation Methods and apparatus for processing a query joining tables stored at different data sources
KR100912190B1 (ko) * 2007-10-31 2009-08-14 한양대학교 산학협력단 최적화 변환 규칙을 적용하여 rdql 질의를 sql질의로 변환하는 rdql-to-sql 시스템 및 방법
US9396283B2 (en) 2010-10-22 2016-07-19 Daniel Paul Miranker System for accessing a relational database using semantic queries
WO2013175611A1 (ja) 2012-05-24 2013-11-28 株式会社日立製作所 データの分散検索システム、データの分散検索方法及び管理計算機
US10223417B1 (en) * 2018-06-13 2019-03-05 Stardog Union System and method for reducing query-related resource usage in a data retrieval process

Also Published As

Publication number Publication date
JP7420745B2 (ja) 2024-01-23
CA3102984A1 (en) 2019-12-19
AU2019284618A1 (en) 2020-12-03
EP3807778A4 (en) 2022-03-09
WO2019241293A1 (en) 2019-12-19
JP2024041902A (ja) 2024-03-27
EP3807778A1 (en) 2021-04-21
JP2021531540A (ja) 2021-11-18

Similar Documents

Publication Publication Date Title
US10599719B2 (en) System and method for providing prediction-model-based generation of a graph data model
US10223417B1 (en) System and method for reducing query-related resource usage in a data retrieval process
US11727000B2 (en) System and method for reducing resource usage in a data retrieval process
US11921751B2 (en) Technologies for data capture and data analysis
US11321338B2 (en) Intelligent data ingestion system and method for governance and security
US11068439B2 (en) Unsupervised method for enriching RDF data sources from denormalized data
US20150095303A1 (en) Knowledge Graph Generator Enabled by Diagonal Search
EP3671526B1 (en) Dependency graph based natural language processing
US10599777B2 (en) Natural language processing with dynamic pipelines
US11281864B2 (en) Dependency graph based natural language processing
JP2024041902A (ja) マルチソース型の相互運用性および/または情報検索の最適化
Bellare et al. Woo: A scalable and multi-tenant platform for continuous knowledge base synthesis
EP3594822A1 (en) Intelligent data ingestion system and method for governance and security
US20230026656A1 (en) Machine learning for categorizing text
Dabroek Scalable and Reuse-Oriented Data Integration: A Distributed Semi-Automatic Approach
Thavornun Metadata Management for Knowledge Discovery