그래프 쿼리 언어

Graph Query Language

GQL(Graph Query Language)은 제안된 표준 그래프 쿼리 언어입니다.9월 2019년에서 계획은 새로운 표준 그래프 쿼리 언어(/IEC39075 정보 기술 데이터베이스 언어 — GQL —)[1]를 위한 제안/IEC공동 기술 위원회 1(/IEC합동 훈련 연동 체계 1)의 회원인 국가 표준 기구의 투표에 의해. 합동 훈련 연동 체계 1국제 정보 기술 스탠드에 책임이 있는 것이 승인되었다.함께ds. GQL은 SQL과 같은 선언형 데이터베이스 쿼리 언어입니다.

새로운 국제 표준 그래프 쿼리 언어 프로젝트

GQL 프로젝트 제안서에는 다음과 같은 내용이 기재되어 있습니다.

"그래프를 데이터 모델링의 기본 표현으로 사용하는 것은 데이터 관리에서 새롭게 부상하고 있는 접근법입니다.이 접근법에서 데이터 세트는 그래프로서 모델링되어 각 데이터 엔티티를 그래프의 정점(노드라고도 함)으로 나타내며 두 엔티티 간의 관계를 대응하는 정점 사이의 엣지로 나타냅니다.그래프 데이터 모델은 독특한 장점으로 주목을 받고 있습니다.첫째, 그래프 모델은 계층 구조, 복잡 구조 또는 임의 구조를 가진 데이터 집합에 자연스럽게 적합할 수 있습니다.이러한 구조는 그래프 모델에 엣지로 쉽게 인코딩할 수 있습니다.이 방법은 데이터 세트를 고정 행 유형의 테이블 세트로 정규화해야 하는 관계형 모델보다 더 편리할 수 있습니다.둘째, 그래프 모델을 통해 도달 가능성 쿼리, 최단 또는 최단 경로 쿼리 또는 중앙 집중성 분석과 같이 데이터 엔티티 간의 멀티홉 관계를 관찰해야 하는 고가의 쿼리 또는 데이터 분석 기능을 효율적으로 실행할 수 있습니다.현재 사용 중인 그래프 모델에는 RDF(Resource Description Framework) 모델과 속성 그래프 모델이 있습니다.RDF 모델은 W3C에 의해 많은 사양으로 표준화되어 있습니다.반면 속성 그래프 모델은 그래프 데이터베이스, 그래프 알고리즘 및 그래프 처리 설비에 다수의 구현이 있습니다.그러나 속성 그래프에 대한 공통 표준 쿼리 언어(관계형 데이터베이스 시스템의 SQL 등)는 누락되어 있습니다.[2]공백을 메우기 위해 GQL을 제안합니다."

GQL 프로젝트는 특히 [3]2016년 7월에 Neo4j가 다른 데이터베이스 벤더에 제안한 것, 그리고 그해 [4]말 ISO/IEC JTC 1 표준 프로세스에서 Oracle 기술 직원이 제안한 것 등 2016년으로 거슬러 올라가는 통합 이니셔티브의 정점입니다.

GQL 프로젝트는 Stefan Plantikow(Neo4jCyper for Apache Spark 프로젝트 최초의 리드 엔지니어)와 Stephen Cannan(SQL의 테크니컬 Corrigenda 에디터)이 주도하고 있습니다.또한 GQL 사양의 초기 작업[5] 초안 편집자이기도 합니다.

원래 [4]동기부여로 GQL 프로젝트는 JTC 1 국제표준을 [6][7]정의하는 공식 프로세스에 참여할 수 없거나 관심이 없는 사람들의 공헌을 가능하게 하는 지원 커뮤니티의 노력으로 구현 가능한 규범적 자연어 규격을 만드는 작업을 보완하는 것을 목표로 한다.2019년 7월, Linked Data Benchmark Council(LDBC)은 커뮤니티 기술 작업 그룹의 노력을 위한 포괄적 조직이 되기로 합의했습니다.기존 언어 및 속성 그래프 스키마 작업 그룹은 각각 2018년 말과 2019년 초에 구성되었습니다.2019년 [8]10월 제3차 GQL 커뮤니티 업데이트에서 GQL에 대한 공식적인 표현적 의미를 정의하는 작업 그룹이 제안되었다.

GQL 속성 그래프 데이터 모형

GQL은 속성 그래프 전용 쿼리 언어입니다.속성 그래프는 개체-관계 모형 또는 UML 클래스 다이어그램에서 표현되는 개념 데이터 모델과 매우 유사하다(단, 두 개 이상의 개체를 연결하는 n-ary 관계를 포함하지 않음).도면요소 또는 개념은 그래프에서 노드로 모델링되고 관계는 모서리로 모델링됩니다.속성 그래프는 다중 그래프입니다. 동일한 노드 쌍 사이에 여러 개의 모서리가 있을 수 있습니다.GQL 그래프는 혼재할 수 있습니다.즉, 에지의 엔드포인트노드 중 하나가 테일(또는 소스), 다른 노드가 헤드(또는 타깃 또는 타깃)인 방향성이 없는(양방향 또는 반사형) 에지를 포함할 수 있습니다.

집합적으로 요소라고 불리는 노드와 가장자리에는 속성이 있습니다.이러한 속성은 데이터 값 또는 라벨(태그)일 수 있습니다.속성 값은 그래프의 요소가 될 수도, 전체 그래프일 수도 없습니다.이러한 제한은 그래프의 토폴로지와 그래프 토폴로지의 컨텍스트에서 데이터 값을 전송하는 속성을 의도적으로 명확하게 구분합니다.따라서 속성 그래프 데이터 모델은 의도적으로 그래프의 중첩을 방지하거나 한 그래프의 노드를 다른 그래프의 모서리로 취급합니다.각 속성 그래프에는 그래프 전체에 관련된 레이블 집합과 속성 집합이 있을 수 있습니다.

현재 그래프 데이터베이스 제품 및 프로젝트는 여기에 설명된 모델의 제한된 버전을 지원하는 경우가 많습니다.예를 들어 Apache[9] Tinkerpop은 각 노드와 각 엣지에 하나의 라벨을 붙입니다.Cyper는 노드에 0에서 다수의 라벨을 붙일 수 있지만 관계에는 하나의 라벨(reltype이라고 함)만 붙입니다.Neo4j의 데이터베이스는 문서화되어 있지 않은 그래프 전체의 속성을 지원하며, Tinkerpop은 동일한 역할을 하는 그래프 값을 가지고 있으며, 속성에 대한 "메타프로퍼티" 또는 속성을 지원합니다.Oracle의 PGQL은 노드 및 엣지에서 0에서 다수의 라벨을 지원하는 반면 SQL/PGQ는 각 종류의 요소에 대해 1에서 다수의 라벨을 지원합니다.ETSI에 의해 지정된 NGSI-LD 정보 모델은 이전에 언급한 모델에서 라벨의 역할을 할 수 있는 노드와 관계(에지) 유형을 사용하여 특성 그래프를 공식적으로 지정하려는 시도이며 공유 온톨로지 내에서 정의된 클래스를 상속함으로써 의미 참조를 지원한다.

GQL 프로젝트에서는 표준 데이터 모델이 정의됩니다.GQL의 첫 번째 버전에서는 벤더가 SQL/PGQ와 마찬가지로 각 구현에서 라벨의 중요도를 결정하고 비방향 관계를 지원할지 여부를 선택할 수 있습니다.

ERM 또는 UML 모델의 추가 측면(일반화 또는 서브타이핑, 엔티티 또는 관계 기본 등)은 GQL 스키마 또는 General Data Model의 가능한 인스턴스를 설명하는 유형에 의해 포착될 수 있습니다.

첫 번째 구현

GQL 표준은 아직 공개되지 않았지만 GQL을 해석할 수 있는 최초의 메모리 내 그래프 데이터베이스를 사용할 [10][11]수 있습니다.구현 외에도 GQL의 [12]특정 서브셋의 구문을 읽고 정식화를 찾을 수도 있습니다.

WG3: SQL 확장 및 GQL 생성

GQL 프로젝트의 기간은 4년입니다.7개의 국가 표준 기관(미국, 중국, 한국, 네덜란드, 영국, 덴마크 및 스웨덴의 기관)은 ISO/IEC JTC 1의 소위원회 32(데이터베이스 언어)에 의해 수행되는 프로젝트에 대해 국가 주제 전문가를 지명했다.ISO/IEC JTC 1/SC 32 WG3, 줄여서 WG3표기합니다.WG3(및 JTC 1 내의 이전 직속 위원회)는 [13][14]1987년부터 SQL 표준을 담당해 왔습니다.

기존 그래프 쿼리 언어 확장

GQL 프로젝트는 여러 소스 또는 입력, 특히 기존 산업용 언어와 SQL 표준의 새로운 섹션을 사용합니다.WG3 내에서의 준비 논의에서는 이러한[16] 입력사항 중 일부의 이력[15] 및 비교 내용에 대한 조사가 제시되었다.GQL은 독자적인 구문을 가진 선언형 언어이며 데이터베이스 애플리케이션 구축 시 SQL과 같은 역할을 합니다.분기 및 루프와 같은 직접 절차적 기능을 제공하는 다른 그래프 쿼리 언어(Apache Tinkerpop의 Gremlin,[17] GSQL)[18]가 정의되어 있어 그래프 알고리즘을 반복적으로 실행할 수 있지만 GQL은 이러한 [19][20]기능을 직접 통합하지는 않습니다.단, GQL은 그래프 유형의 시스템과 그래프를 처리하는 절차를 위한 호출 인터페이스를 공유하는 보다 일반적인 그래프 언어의 특정 사례로 간주됩니다.

SQL/PGQ 속성 그래프 쿼리

WG3 및 SC32 미러바디, 특히 INCITS DM32에 의한 이전 작업은 SQL Standard의 새로운 계획된 Part 16을 정의하는 데 도움이 되었습니다.이를 통해 읽기 전용 그래프 쿼리를 SQL SELECT 문 내에서 호출할 수 있으며 Cyper, PGQL 및 G-CORE에 매우 가까운 구문을 사용하여 그래프 패턴을 일치시켜 데이터 리소스로 반환할 수 있습니다.또한 SQL/PGQ에는 DDL이 포함되어 있어 레이블 집합 및 데이터 [21][22][23]속성 집합과 연관된 노드 및 모서리를 사용하여 SQL 테이블을 그래프 뷰 스키마 개체에 매핑할 수 있습니다.GQL 프로젝트는 ISO 9075 SQL의 SQL/PGQ "프로젝트 분할"과 밀접하게 연계되어 있으며, 미국(INCITS DM32) 및 국제적 수준(SC32/WG3)의 기술 작업 그룹에는 두 [22]프로젝트 모두에 종사하는 여러 명의 전문가 기여자가 있습니다.GQL 프로젝트 제안에서는 SQL/PGQ와 GQL의 긴밀한 연계가 요구되고 있습니다.이는 GQL이 일반적으로 SQL/PGQ의 슈퍼셋임을 나타냅니다.

패턴 매칭 언어에 대한 자세한 내용은 문서 "Graph Pattern Matching in GQL and SQL/PGQ"[24]를 참조하십시오.

사이퍼

Cyper는[25] 원래 Andrés Taylor와 Neo4j Inc.의 동료들에 의해 설계되었으며 2011년에 이 회사가 처음 구현했습니다.2015년부터 Oy를 사용하여 [27]문법 툴링, Cyper 쿼리를 구문 분석하는 JVM 프런트 엔드 및 2000개가 넘는 테스트 시나리오의 기술 호환성 키트(TCK)를 사용한 오픈 소스 언어 설명으로[26] 제공되고 있습니다.TCK는 Cyper 개선 [28]제안서에 문서화된 시간 데이터 유형 및 함수에 대한 언어 설명 및 개선 사항을 반영합니다.

Cyper는 그래프 요소의 작성, 읽기, 업데이트 및 삭제를 가능하게 하므로 분석 엔진 및 트랜잭션 데이터베이스에 사용할 수 있는 언어입니다.

시각적 경로 패턴을 사용한 쿼리

Cyper는 노드 및 관계(에지) 토폴로지의 시각적 표현을 라벨 존재 및 속성 값 술어와 결합하는 콤팩트한 고정 길이 및 가변 길이 패턴을 사용합니다.(이러한 패턴은 보통 "ASCII 아트" 패턴이라고 불리며, 원래 하위 수준의 그래프 API를 사용하는 프로그램에 코멘트하는 방법으로 생겨났습니다.)[15]이러한 패턴을 그래프 데이터 요소에 일치시킴으로써 쿼리는 노드, 관계 및 관심 경로에 대한 참조를 추출할 수 있습니다.이러한 참조는 열 이름이 그래프 요소의 다중 집합에 바인딩되는 "바인딩 테이블"로 내보내집니다.열의 이름은 "바인딩 변수"의 이름이 되며, 이 값은 테이블의 각 행에 대한 특정 그래프 요소 참조가 됩니다.

예를 들어, 패턴MATCH (p:Person)-[:LIVES_IN]->(c:City)는 2열 출력 테이블을 생성합니다.이름이 붙은 첫 번째 열p라벨이 붙어 있는 노드에 대한 참조가 포함됩니다.Person. 두 번째 컬럼은c라벨이 붙어 있는 노드에 대한 참조가 포함됩니다.City그 사람이 살고 있는 도시를 나타냅니다.

바인딩 변수p그리고.c그런 다음 참조를 취소하여 변수에 의해 참조되는 요소와 관련된 속성 값에 액세스할 수 있습니다.예제 쿼리는 다음과 같이 종료될 수 있습니다.RETURN그 결과 다음과 같은 완전한 쿼리가 발생합니다.

경기 (p:사람인)-[:살고 있다]->(c:도시) 돌아가다 p.이름, p.성_이름, c.이름., c. 

이렇게 하면 그래프에 저장된 도시의 주민 이름을 나열하는 최종 4열 표가 작성됩니다.

패턴 기반 쿼리는 동일한 바인딩 변수를 사용하여 여러 패턴을 조합하여 조인을 표현할 수 있습니다.MATCH절:

경기 (p:사람인)-[:살고 있다]->(c:도시), (p:사람인)-[:국내_OF]->(EUC Outry) 돌아가다 p.이름, p.성_이름, c.이름., c. 

이 문의는 EU국민의 거주지만을 반환할 것이다.

외부 결합은 다음과 같이 나타낼 수 있습니다.MATCH ... OPTIONAL MATCH:

경기 (p:사람인)-[:살고 있다]->(c:도시) 옵션 매치 (p:사람인)-[:국내_OF]->(ec:EUC Outry) 돌아가다 p.이름, p.성_이름, c.이름., c., ec.이름. 

이 쿼리는 그래프에서 각 개인의 거주 도시를 주거 정보와 함께 반환하고, EU 국적의 경우 어느 나라 출신인지도 반환합니다.

따라서 쿼리는 먼저 입력된 그래프의 서브그래프를 쿼리에 투영하고 그 서브그래프와 관련된 데이터 값을 추출할 수 있습니다.데이터 값은 집계 함수를 포함한 함수에 의해서도 처리될 수 있기 때문에, 투영 그래프에 보관 유지된 정보를 다양한 방법으로 렌더링하는 계산치를 투영할 수 있다.G-CORE 및 Morpheus의 뒤를 이어 GQL은 일치하는 패턴(및 그 서브그래프 위에 계산된 그래프)에 의해 정의된 서브그래프를 쿼리에 의해 반환되는 새로운 그래프로 투영하는 것을 목표로 한다.

이러한 종류의 패턴은 속성 그래프 쿼리 언어에 널리 보급되어 GQL 언어의 서브셋이 될 가능성이 높은 SQL/PGQ에서 정의되는 고급 패턴 하위 언어의 기초가 됩니다.Cyper는 삽입구 및 수정구에도 패턴을 사용합니다(CREATE그리고.MERGEGQL 프로젝트에서는 그래프 유형을 기술하기 위한 노드 및 에지 패턴을 수집하기 위한 제안이 이루어지고 있습니다.

Cypher 구현

사이퍼 Neo4j의 데이터베이스에 SAP의 HANA Graph에 RedisGraph.,[29]캠브리지 의미로 Anzograph,[30]Bitnine의 AgensGraph에 의해, Memgraph,[31일]에 의해 사이퍼 Gremlin[32]에 Neueda 연구소 리가에서 사이퍼에 의해 아파치 스파크(지금 잠의 신에 이름을 바꾸)[33][34][35]뿐만 아니라 연구 프로젝트에서 유지된 오픈 소스 프로젝트에 의해 구현됩니다.사이퍼와 같은.PL과 Ingraph.[36]언어로서의 Cyper는 비공식 커뮤니티에 의해 openCyper 프로젝트로 관리되고 있으며, 2017년 [38]2월부터 5차례에 걸쳐 openCyper Implementers' Meetings를 개최하고 있습니다.

사이퍼 9와 사이퍼 10

Cyper의 현재 버전(시간적 확장 포함)은 Cyper 9라고 불립니다.GQL 프로젝트 이전에는 스키마, 합성 가능한 그래프 쿼리 및 뷰 등의 기능을 포함하는 새로운 버전인 Cyper 10 [REF HEADING BEADING BEWARE]을 작성할 예정이었습니다.사이퍼 10의 첫 디자인은 그래프 구축과 투영을 포함하며 [33]2016년부터 아파치 스파크 프로젝트에서 구현되었다.

PGQL

PGQL은[39] Oracle Inc.가 설계 및 구현한 언어이지만 JVM 해석 [41]소프트웨어와 함께 오픈 소스 [40]사양으로 제공됩니다.PGQL은 SQL 식, 결과 순서 지정 및 집약을 포함한 익숙한 SQL SELECT 구문을 Cyper와 매우 유사한 패턴 매칭 언어와 결합합니다.그래프 지정을 쿼리할 수 있으며 매크로가 "패턴 뷰" 또는 이름 있는 하위 패턴을 캡처할 수 있는 기능을 포함합니다.Oracle의 PGX 제품과 같은 분석 환경을 위해 주로 설계되었기 때문에 삽입 또는 업데이트 작업을 지원하지 않습니다.PGQL은 Oracle Big Data Spatial and Graph 및 연구 프로젝트 PGX에도 구현되어 있습니다.D/[42]Async

G코어

G-CORE는 Cyper, PGQL 및 SPARQL[43][44]특징을 바탕으로 학술 및 산업 연구자 및 언어 디자이너 그룹에 의해 설계된 연구 언어입니다.이 프로젝트는 2015년 말 그래프 쿼리 언어 태스크포스(TF) 구성을 시작으로 Linked Data Benchmark Council(LDBC; 연계 데이터 벤치마크 협의회)의 후원으로 진행되었으며, 2017년에는 논문 작성이 대부분 수행되었습니다.G-CORE는 그래프 위에 닫힌 합성 언어입니다. 그래프 입력은 그래프 출력을 생성하기 위해 처리되며 그래프 투영 및 그래프 세트 연산을 사용하여 새 그래프를 생성합니다.G-CORE 쿼리는 그래프에 대한 순수한 함수이며 부작용이 없습니다. 즉, 언어는 저장된 데이터를 변환(업데이트 또는 삭제)하는 작업을 정의하지 않습니다.G-CORE는 뷰(이름 있는 쿼리)를 도입합니다.또한 경로를 그래프('일등 시민으로서의 경로')에 요소로 포함시켜 투영 경로(노드 및 에지 요소에 대한 쿼리 시간에 계산됨)와는 독립적으로 쿼리할 수 있습니다.G-CORE는 LDBC GitHub [45][46][47]조직의 오픈 소스 연구 프로젝트에서 부분적으로 구현되었습니다.

GSQL

GSQL은[18] TigerGraph Inc.의 속성 그래프 데이터베이스용으로 설계된 언어입니다.2018년 10월부터 TigerGraph 언어 디자이너는 GQL 프로젝트를 홍보 및 수행하고 있습니다.GSQL은 절차 흐름 제어와 반복, 전체 그래프 또는 누적기라고 불리는 그래프의 요소에 대한 프로그램 실행과 관련된 계산 값을 수집하고 수정하는 기능을 포함하는 튜링 완전 언어입니다.이러한 기능은 반복 그래프 계산을 데이터 탐색 및 검색과 결합할 수 있도록 설계되었습니다.GSQL 그래프는 모든 삽입 및 업데이트를 제한하는 정점과 모서리의 스키마로 설명해야 합니다.따라서 이 스키마는 SQL 스키마의 폐쇄적인 세계 속성을 가지고 있으며, GQL의 중요한 옵션 기능으로 GSQL의 이 측면(Morpheus[48] 프로젝트에서 파생된 설계 제안에도 반영됨)을 제안합니다.

정점과 모서리는 데이터를 포함할 뿐만 아니라 SQL 테이블이 연관된 암묵적 행 유형과 함께 데이터 컨테이너인 것처럼 귀속 유형을 정의하는 명명된 스키마 개체입니다.그런 다음 GSQL 그래프가 이러한 정점과 가장자리 집합에서 구성되고 여러 개의 명명된 그래프에 동일한 정점 또는 가장자리 집합이 포함될 수 있습니다.GSQL은 2017년 [49]9월 출시 이후 새로운 기능을 개발했습니다.특히 Cyper, PGQL 및 SQL/PGQ에서 볼 수 있는 구문을 사용한 가변 길이 에지 패턴[50] 매칭이 도입되어 Microsoft SQL/Server[51] Graph에서 제공하는 고정 길이 패턴에 가까운 스타일입니다.

GSQL은 그래프의 서브셋에 역할 기반 액세스 제어를 허용하는 멀티그래프 개념도[52] 지원합니다.멀티그래프는 다양한 사용자에 대한 세분화된 액세스 제어가 필요한 엔터프라이즈 규모의 그래프에서 중요합니다.

Morpheus: Apache Spark의 여러 그래프 및 합성 가능한 그래프 쿼리

오픈사이퍼 Morpheus 프로젝트는[33] Apache Spark 사용자를 위해 Cyper를 구현합니다.2016년에 시작된 이 프로젝트는 원래 Morpheus 디자이너가 참여한 세 가지 관련 노력과 함께 진행되었습니다. SQL/PGQ, G-CORE 및 여러 [53]그래프를 쿼리 및 구성하기 위한 Cyper 확장 설계입니다.Morpheus 프로젝트는 그래프 DDL과 쿼리 언어 확장의 두 영역에서 Cyper ("Cyper 10"으로 알려진) 확장의 테스트베드 역할을 했습니다.

Graph DDL 기능은[54] 다음과 같습니다.

  1. JDBC 연결 SQL 테이블 및 Spark[55] DataFrames에 대한 속성 그래프 뷰 정의
  2. 노드 유형 및 에지 유형 패턴을 조합하여 정의된 그래프 스키마 또는 유형의 정의(서브타이핑[55] 포함)
  3. 닫힌 스키마 또는 고정된 스키마에 의해 그래프 내용을 제약
  4. 계층 구조로 구성된 카탈로그에서 여러 명명된 그래프에 대한 카탈로그 항목 생성
  5. 그래프 데이터 소스를 사용하여 연합된 이기종 카탈로그를 구성합니다.
  6. 명명된 조회에 대한 카탈로그 항목 생성(메시지)

그래프 쿼리 언어 확장에는[54] 다음이 포함됩니다.

  1. 그래프 결합
  2. 여러 입력 그래프에 대한 패턴 일치 결과로부터 계산된 그래프의 투영
  3. 쿼리에 대한 입력('드라이빙 테이블')으로 테이블(Spark Data Frames) 지원
  4. 명명된 그래프 또는 투영된 그래프를 매개 변수로 받아들이는 뷰입니다.

이러한 기능은 GQL 프로젝트에서 속성 그래프 쿼리 언어의 표준화에 대한 입력으로 제안되었습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "ISO/IEC 39075 Information Technology — Database Languages — GQL". ISO. Retrieved January 7, 2022.{{cite web}}: CS1 maint :url-status (링크)
  2. ^ "SC32 WG3 N282 "SC32 N3002 Draft NWIP Form4 Information Technology – Database Languages - GQL"". ISO. Retrieved December 9, 2019.
  3. ^ Green, Alastair (July 2016). "Creating an Open Industry Standard for a Declarative Property Graph Query Language" (PDF). opencypher.org. Retrieved November 12, 2019.
  4. ^ a b Green, Alastair (July 2018). "Working towards a New Work Item for GQL, to complement SQL PGQ, ANSI INCITS DM32.2 submission DM32.2-2018-00128r1" (PDF). opencypher.org. Retrieved November 12, 2019.
  5. ^ Eds. Plantikow, Stefan; Cannan, Stephen (October 2019). "GQL Early Working Draft v2.2". ISO. Retrieved November 9, 2019.
  6. ^ "GQL Standard". Retrieved November 12, 2019.
  7. ^ "GQL Community Updates". Retrieved November 12, 2019.
  8. ^ Libkin, Leonid. "Formal Semantics Working Group". Retrieved November 12, 2019.
  9. ^ "Apache Tinkerpop". Apache Software Foundation. Retrieved November 11, 2019.
  10. ^ "GQL Parser". GitHub. Retrieved January 18, 2021.
  11. ^ "First GQL research implementation from Olof Morra at TU Eindhoven!". Alastair Green. Retrieved January 18, 2021.
  12. ^ "A Semantics of GQL; a New Query Language for Property Graphs Formalized" (PDF). Olof Morra. Retrieved January 18, 2021.
  13. ^ "JTC 1/SC 32 Data Management and Interchange". ISO/IEC JTC1. Retrieved October 6, 2019.
  14. ^ "Scope from the original standard, ISO 9075-1987, Database Language SQL". ISO/IEC JTC1. Retrieved November 9, 2019.
  15. ^ a b Lindaaker, Tobias (May 2018). "An overview of the recent history of Graph Query Languages" (PDF). opencypher.org. Retrieved October 6, 2019.
  16. ^ Plantikow, Stefan (May 2018). "Summary Chart of Cypher, PGQL, and G-Core" (PDF). opencypher.org. Retrieved November 3, 2019.
  17. ^ Rodriguez, Marko A. (2015). The Gremlin graph traversal machine and language (invited talk). In Proceedings of the 15th Symposium on Database Programming Languages (DBPL 2015). ACM, New York, NY, USA, 1-10. DOI: 10.1145/2815072.2815073. ACM. doi:10.1145/2815072. ISBN 9781450339025. S2CID 32623848. Retrieved November 10, 2019.
  18. ^ a b Wu, Mingxi; Deutsch, Alin. "GSQL: An SQL-Inspired Graph Query Language". Retrieved November 9, 2019.
  19. ^ Wood, Peter T. (25 April 2012). "Query languages for graph databases. , SIGMOD Rec. 41, 1 (April 2012), 50-60. DOI: 10.1145/2206869.2206879". ACM SIGMOD Record. ACM. 41 (1): 50–60. doi:10.1145/2206869.2206879. S2CID 13537601. Retrieved October 25, 2019.
  20. ^ Angles, Renzo; et al. (September 2017). "Foundations of Modern Query Languages for Graph Databases, ACM Comput. Surv. 50, 5, DOI: 10.1145/3104031". ACM Computing Surveys. ACM. 50 (5): 68:1–68:40. arXiv:1610.06264. doi:10.1145/3104031. S2CID 13526884. Retrieved November 12, 2019.
  21. ^ "ISO/IEC 9075-16 Information technology — Database languages SQL — Part 16: SQL Property Graph Queries (SQL/PGQ)". ISO. Retrieved January 7, 2022.{{cite web}}: CS1 maint :url-status (링크)
  22. ^ a b Hare, Keith; et al. (March 2019). "SQL and GQL, W3C Workshop on Web Standardization for Graph Data. Creating Bridges: RDF, Property Graph and SQL" (PDF). W3C. Retrieved October 6, 2019.
  23. ^ Trigonakis, Vasileios (July 2019). "Property graph extensions for the SQL standard. LDBC 12th TUC" (PDF). LBDC. Retrieved January 7, 2022.
  24. ^ Deutsch, Alin; Francis, Nadime; Green, Alastair; Hare, Keith; Li, Bei; Libkin, Leonid; Lindaaker, Tobias; Marsault, Victor; Martens, Wim; Michels, Jan; et al. (2021-12-12). "Graph Pattern Matching in GQL and SQL/PGQ". arXiv:2112.06217 [cs.DB].
  25. ^ Francis, Nadime; et al. (27 May 2018). Cypher: An Evolving Query Language for Property Graphs. In Proceedings of the 2018 International Conference on Management of Data (SIGMOD '18). ACM, New York, NY, USA, 1433-1445. DOI: 10.1145/3183713.3190657. Sigmod '18. ACM. pp. 1433–1445. doi:10.1145/3183713.3190657. ISBN 9781450347037. S2CID 13919896. Retrieved October 25, 2019.
  26. ^ "Cypher Query Language Reference (Version 9)" (PDF). opencypher.org. Retrieved November 10, 2019.
  27. ^ "openCypher Resources". ACM. Retrieved November 10, 2019.
  28. ^ "CIP2015-08-06 - Date and Time". opencypher.org. 15 May 2019. Retrieved October 25, 2019.
  29. ^ "RedisGraph - a graph database module for Redis". Redis Labs. Retrieved November 9, 2019.
  30. ^ "Cambridge Semantics Adds OpenCypher to AnzoGraph". March 2019. Retrieved November 9, 2019.
  31. ^ "Memgraph - Frequently asked questions". memgraph.com.
  32. ^ Novikov, Dmitry; et al. (January 2018). "Cypher for Gremlin adds Cypher support to any Gremlin graph database.". openCypher. Retrieved November 3, 2019.
  33. ^ a b c Rydberg, Mats; et al. (July 2016). "Morpheus brings the leading graph query language, Cypher, onto the leading distributed processing platform, Spark.". openCypher. Retrieved November 3, 2019.
  34. ^ Green, Alastair; Junghanns, Martin (April 2019). "Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apache Spark". Databricks Inc. Retrieved November 3, 2019.
  35. ^ "Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apache Spark (continues)".
  36. ^ "Usage of Cypher". openCypher.org. Retrieved November 10, 2019.
  37. ^ "Specification of the Cypher property graph query language". openCypher.org. Retrieved November 10, 2019.
  38. ^ "Events". openCypher.org. Retrieved November 10, 2019.
  39. ^ van Rest, Oskar; et al. (June 2016). "PGQL: a property graph query language. In Proceedings of the Fourth International Workshop on Graph Data Management Experiences and Systems (GRADES '16). ACM, New York, NY, USA. DOI: 10.1145/2960414.2960421". ACM. doi:10.1145/2960414.2960421. S2CID 6806901. Retrieved October 25, 2019. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  40. ^ "PGQL". pgql.org. Retrieved October 6, 2019.
  41. ^ van Rest, Oskar; et al. (September 2015). "PGQL is an SQL-based query language for the Property Graph data model". pgql.org. Retrieved November 3, 2019.
  42. ^ Roth, Nicholas P.; et al. (2017). "PGX.D/Async: A Scalable Distributed Graph Pattern Matching Engine. In Proceedings of the Fifth International Workshop on Graph Data-management Experiences & Systems (GRADES'17). ACM, New York, NY, USA, Article 7, 6 pages. DOI: 10.1145/3078447.3078454". ACM. doi:10.1145/3078447.3078454. S2CID 26283328. Retrieved October 29, 2019. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  43. ^ Angles, Renzo; et al. (2018). "G-CORE: A Core for Future Graph Query Languages. In Proceedings of the 2018 International Conference on Management of Data (SIGMOD '18). ACM, New York, NY, USA, 1421-1432. DOI: 10.1145/3183713.3190654". ACM. doi:10.1145/3183713.3190654. S2CID 4623760. Retrieved November 9, 2019. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  44. ^ Voigt, Hannes (February 2018). "G-CORE: The LDBC Graph Query Language Proposal. In archives of FOSDEM 2018". Retrieved November 12, 2019.
  45. ^ van Rest, Oskar (2017). "G-CORE Grammar and Parser". LDBC. Retrieved November 12, 2019.
  46. ^ Ciocîrdel, Georgiana Diana (2018). "A G-CORE (Graph Query Language) Interpreter, Master's Thesis in Parallel and Distributed Computer Systems, CWI and Vrije Universiteit Amsterdam" (PDF). CWI. Retrieved November 12, 2019.
  47. ^ Ciocîrdel, Georgiana Diana; Boncz, Peter (2017). "G-CORE interpreter on Spark". LDBC. Retrieved November 12, 2019.
  48. ^ Voigt, Hannes; Selmer, Petra; Lindaaker, Tobias; Plantikow, Stefan; Green, Alastair; Furniss, Peter (December 2018). "Property Graph Schema, ANSI INCITS DM32.2 SQL Property Graph Extensions Ad Hoc submission sql-pg-2018-0056r1, Neo4j Query Languages Standards and Research Team" (PDF). openCypher.org. Retrieved November 12, 2019.
  49. ^ "GSQL documentation Tigergraph 1.0". 2017. Retrieved November 9, 2019.
  50. ^ "Pattern Matching, TigerGraph 2.4 Release Notes". June 2019. Retrieved November 9, 2019.
  51. ^ "Query language extensions, Graph processing with SQL Server and Azure SQL Database". Microsoft Inc. 2017. Retrieved November 10, 2019.
  52. ^ "Multigraphs, TigerGraph Online Documentation". June 2019. Retrieved January 7, 2022.
  53. ^ Taylor, Andrés; Plantikow, Stefan; Selmer, Petra (2017–2018). "CIP2017-06-18 Querying and constructing multiple graphs". opencypher.org. Retrieved November 12, 2019.
  54. ^ a b Kiessling, Max (2019). "Multiple graphs and composable queries in Cypher for Apache Spark. openCypher Implementers Meeting V, Berlin" (PDF). opencypher.org. Retrieved November 9, 2019.
  55. ^ a b Johanssen, Tobias; et al. (2019). "graphddl-example-ldbc: A cypher-for-apache-spark example showing the use of SqlPropertyGraphSource and GraphDDL to provide a property graph view of a SQL dataset". GitHub. Retrieved November 9, 2019.