← ホームへ戻る

GQL (Graph Query Language) の概要と標準化の歩み

現代のデータ管理において、複雑に絡み合うエンティティ間の関係性を効率的に扱う「グラフデータベース」の重要性が高まっています。これまで、グラフデータの操作には各ベンダー独自の言語が用いられてきましたが、2024年4月12日、ついに国際標準規格 ISO/IEC 39075 として「GQL (Graph Query Language)」が正式に公開されました。

GQLは、プロパティグラフ(Property Graph)というデータモデルを操作するための宣言的なクエリ言語です。これは、リレーショナルデータベースにおけるSQLのような役割を担い、ユーザーが「どのようにデータを抽出するか」ではなく「どのような結果が欲しいか」を記述することで、複雑なネットワーク構造を持つデータの分析を容易にします。

Key Facts

  • 正式名称: ISO/IEC 39075:2024 (GQL)
  • 公開日: 2024年4月12日
  • 目的: プロパティグラフのための標準的なクエリ言語の提供
  • 特性: SQLと同様の宣言的パラダイムを採用
  • 影響を受けた言語: Cypher, SQL, GSQL など
  • 策定機関: ISO/IEC JTC 1/SC 32/WG 3

GQL誕生の背景と標準化への道のり

GQLのプロジェクトは、2016年頃から始まった複数の取り組みが統合される形で進められました。Neo4j社による提案や、Oracle社の技術スタッフによるISO/IEC JTC 1への提案が端緒となり、2019年9月には国際標準化団体であるISO/IEC JTC 1によって正式にプロジェクトとして承認されました。

この標準化の最大の目的は、プロパティグラフにおける「共通言語」の欠如を解消することでした。W3Cによって標準化されていたRDFモデルとは異なり、プロパティグラフは多くの実装が存在しながらも、統一された規格がなかったため、相互運用性の向上が急務となっていました。

開発を主導したのは、Neo4jのCypher for Apache Sparkのリードエンジニアを務めたStefan Plantikow氏と、SQLのテクニカルエディターであるStephen Cannan氏です。また、米国、中国、韓国、オランダ、英国、デンマーク、スウェーデンの7カ国から専門家が派遣され、SQL標準を長年担当してきたWG3(Working Group 3)の下で策定が進められました。

技術的な特徴と影響を与えた言語

GQLはゼロから作られたのではなく、既存の産業用言語や研究用言語の優れたエッセンスを統合して設計されています。特に以下の言語が強い影響を与えています。

  • Cypher: Neo4j社が開発した言語で、直感的なパターンマッチング構文を提供しています。
  • GSQL: TigerGraph社が開発したチューリング完全な言語で、手続き的なフロー制御やアキュムレータ機能を備えています。
  • G-CORE: LDBC(Linked Data Benchmark Council)主導の研究用言語で、グラフの合成やビューの概念を導入しました。
  • SQL/PGQ: SQL標準の拡張(Part 16)として計画されているもので、SQL文の中でグラフクエリを呼び出すことを可能にします。GQLは基本的にこのSQL/PGQのスーパーセット(上位互換)となるよう調整されています。

GQLは、Apache TinkerpopのGremlinやGSQLに見られるような「ループ」や「分岐」といった手続き的な機能は直接的に取り入れていません。あくまで宣言的なアプローチを維持することで、最適化をデータベースエンジン側に任せ、ユーザーがシンプルにデータ構造を記述できる設計となっています。

GQLの標準化プロセス(タイムライン)

GQLが構想から正式公開に至るまでには、厳格なISOのステージを経て検討が重ねられました。

GQL標準化の主要マイルストーン
日付 ISOステージ 内容
2019-09-10 10.99 / 20.00 新プロジェクトの承認および登録
2021-11-22 30.00 委員会草案 (CD) の登録
2023-03-24 40.00 国際規格案 (DIS) の登録
2023-12-11 50.00 最終案 (FDIS) の登録
2024-04-12 60.60 国際標準規格として正式に発行

エコシステムと今後の展望

GQLの登場により、開発者は特定のデータベース製品に依存せず、標準化された構文でグラフデータのクエリを記述できるようになります。また、Apache Spark上での実装を試みた「Morpheus」プロジェクトなどの成果も、グラフDDL(データ定義言語)やビューの概念としてGQLの策定に寄与しました。

今後は、SQL/PGQとの緊密な連携により、リレーショナルデータとグラフデータのハイブリッドな操作がより一般的になると予想されます。これにより、最短経路探索や中心性分析といった高度なグラフアルゴリズムを、より広範なアプリケーションで容易に実装することが可能になります。

Frequently Asked Questions

GQLとSQLの最大の違いは何ですか?

SQLが表形式(テーブル)のデータを操作することに特化しているのに対し、GQLはノード(点)とエッジ(線)で構成されるプロパティグラフ構造の操作に特化しています。特に、多段のホップを伴う関係性の探索(パス探索)を簡潔に記述できる点が特徴です。

CypherやGremlinなどの既存言語は使えなくなりますか?

いいえ、そうではありません。GQLは標準規格であり、多くの既存言語がその設計に影響を与えています。多くのデータベースベンダーは、既存の言語を維持しつつ、標準であるGQLへの準拠や互換性の提供を進めると考えられます。

GQLを導入することでどのようなメリットがありますか?

最大のメリットは「ベンダーロックインの回避」です。標準言語を用いることで、異なるグラフデータベース間での移行や、複数のツールを組み合わせたデータパイプラインの構築が容易になります。

GQLはどのようなデータ分析に向いていますか?

エンティティ間の複雑なつながりを分析するタスクに最適です。具体的には、不正検知における資金洗浄のルート特定、SNSにおける影響力のあるユーザーの抽出(中心性分析)、物流における最短経路の算出などが挙げられます。

SQL/PGQとはどのような関係にありますか?

SQL/PGQはSQL標準の一部としてグラフクエリを組み込むための拡張機能です。GQLは独立した完全なグラフクエリ言語であり、基本的にはSQL/PGQが提供する機能を含む、より広範な機能セット(スーパーセット)として設計されています。

References

  1. Green, Alastair (July 2016). "Creating an Open Industry Standard for a Declarative Property Graph Query Language" (PDF). opencypher.org. Retrieved November 12, 2019.
  2. 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.
  3. "ISO/IEC 39075 Information Technology — Database Languages — GQL". ISO. Retrieved January 7, 2022.
  4. "SC32 WG3 N282 "SC32 N3002 Draft NWIP Form4 Information Technology – Database Languages - GQL"". ISO. Retrieved December 9, 2019.
  5. "ISO/IEC 39075:2024 Information technology — Database languages — GQL". ISO. Retrieved 25 May 2024.
  6. Eds. Plantikow, Stefan; Cannan, Stephen (October 2019). "GQL Early Working Draft v2.2". ISO. Retrieved November 9, 2019.
  7. "GQL Standard". Retrieved November 12, 2019.
  8. "GQL Community Updates". Retrieved November 12, 2019.
  9. Libkin, Leonid. "Formal Semantics Working Group". Retrieved November 12, 2019.
  10. "JTC 1/SC 32 Data Management and Interchange". ISO/IEC JTC1. Retrieved October 6, 2019.