subgraphとは?初心者にもわかる基本と使い方共起語・同意語・対義語も併せて解説!

  • このエントリーをはてなブックマークに追加
subgraphとは?初心者にもわかる基本と使い方共起語・同意語・対義語も併せて解説!
この記事を書いた人

高岡智則

年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)


subgraphとは?初心者にもわかる基本と使い方

このページでは、subgraphとは何かを、初めての人にも分かる言葉で解説します。subgraphは「データを切り出す設計図」のような役割を果たします。特にブロックチェーンの世界では、さまざまな取引やイベントが日々発生します。その大量のデータから、私たちが必要とする部分だけを取り出して、速く便利に使えるようにするのが subgraph の仕事です。

subgraphが活躍する場所

代表的な活用先は The Graph という分散型のデータインデックスのプロジェクトです。The Graph は dApps が自分の欲しいデータを素早く見つけられるよう、データの「インデックス」を作ってくれます。ここで subgraph を作ると、ブロックチェーン上の特定のコントラクトから、どのイベントやデータを取り出して保存するかを決められます。

仕組みのイメージと用語

subgraph の基本的な仕組みは、データソース、マッピング、スキーマの3つの要素で成り立っています。

<th>要素
説明
データソース対象となるブロックチェーンとコントラクト。
マッピングイベントを受け取り、データを整理して保存する処理です。通常は JavaScript に似た言語で書きます。
スキーマGraphQL という質問の仕方を決める部分。どんなデータをどんな順番で取り出せるかを定義します。

この3つを組み合わせて、特定のデータセットを「検索しやすい形」に整えます。実際の現場では、データの正確さやリアルタイム性よりも、正しく整理して速く取り出せることが重要です。

実際の使い方のイメージ

わかりやすい例として、ある NFT コレクションの取引履歴を追跡する subgraph を考えます。スマートコントラクトが Transfer イベントを発生させるたび、マッピングがそのイベントを読み取り、転移元・転移先・枚数などの情報をデータベースに保存します。その後、GraphQL を使って「このコレクターがいつどの NFT を買ったか」「ある期間に行われた取引総額はどれくらいか」を素早く問合せできます。これがアプリの動作を速く、ユーザーにとって使いやすくする理由です。

注意点として、subgraph はデータのリアルタイム性を完全には保証しません。データはソースの更新とノードの処理タイミングにより遅延することがあります。また、データの正確性は元のブロックチェーンの情報とマッピングの実装に依存します。

用語のイメージ表

用語説明
subgraphデータを取り出して整形する設計図のこと。
データソース対象となるブロックチェーンとコントラクト。
マッピングイベントを受け取り、データを整理・保存する処理。
スキーマどのデータをどう取り出すかを定義する GraphQL の設計。

このように、subgraph を使うと、特定のデータだけを素早く見つけ出せる「カスタムの検索エンジン」を自分で作ることができます。技術的には難しそうに見えますが、基本を押さえれば中学生でも理解できる考え方です。最終的には、ブロックチェーン上の公開データを、自分のアプリが必要とする形で提供する橋渡し役だと覚えておくと良いでしょう。


subgraphの同意語

部分グラフ
グラフ理論において、あるグラフの頂点の一部と、それに対応する辺だけで構成されるグラフのこと。元のグラフの構造を部分的に取り出して表現します。
サブグラフ
上記の“部分グラフ”と同義の別表現。英語の subgraph を日本語にした言い方で、同じ意味で使われます。
子グラフ
文献などで使われることがある同義表現。元のグラフの一部だけを取り出して作られるグラフを指します。

subgraphの対義語・反対語

スーパーグラフ
対義語。あるグラフが別のグラフの部分グラフであるとき、もう一方のグラフは前者のスーパーグラフ(上位グラフ)と呼ばれる。つまり、スーパーグラフはサブグラフをすべて含む、より大きなグラフのこと。
上位グラフ
対義語。サブグラフの反対概念で、あるグラフが別のグラフをすべて含むとき、その別のグラフを上位グラフと呼ぶ。サブグラフを包摂する“大きな”グラフを指す表現。
超グラフ
対義語の別表現。英語の supergraph の日本語表記のひとつ。意味はスーパーグラフと同じく、サブグラフを含む大きなグラフ。
包含グラフ
対義語として用いられる表現のひとつ。あるグラフをすべて含むグラフを指す言い方。サブグラフを包み込むイメージ
親グラフ
比喩的表現。小さなグラフ(サブグラフ)に対して“親”の立場にある大きなグラフを指す言い方。数学的には標準用語ではないものの意味は伝わりやすい。
全体グラフ
対義語として使われることがある表現。サブグラフの“全体を含むグラフ”という意味合いで用いられることがあるが、厳密な定義ではない。

subgraphの共起語

グラフ
頂点と辺からなるデータ構造の総称。
部分グラフ
元のグラフの頂点と辺の一部を選んで作る小さなグラフ。
誘導部分グラフ
元のグラフの特定の頂点集合に対応する辺だけを含む部分グラフ。
頂点
グラフの基本要素であり、点として表される。
頂点集合
グラフの全頂点を集めた集合。
頂点同士を結ぶ線や関係のこと。
辺集合
グラフの全辺を集めた集合。
ノード
頂点の別名。計算機科学でもよく使われる表現。
隣接
二つの頂点が直接結ばれている状態。
隣接行列
頂点間の隣接関係を表す行列。
経路
ある頂点から別の頂点へ至る道筋。
経路長
経路に含まれる辺の数。
連結
任意の二つの頂点間に道がある性質。
成分
連結成分のこと。グラフを連結成分に分けた部分。
閉路
始点と終点が同じ経路。
パニング部分グラフ
全頂点を含む部分グラフ。元のグラフの全頂点を保持するタイプ。
グラフ理論
グラフを扱う数学の分野。
同型
二つのグラフが構造的に同じ形を持つこと。
部分グラフ同型
あるグラフの部分グラフが別のグラフと同じ形をしていること。
インデックス
データを素早く検索できるよう整理する仕組み。
インデックス作成
データを索引として整える作業。
スキーマ
データの構造や型を定義する設計。
schema.graphql
サブグラフのデータ形を定義するGraphQLスキーマを記述するファイル
GraphQL
データの取得・操作を行う問い合わせ言語。
マニフェスト
subgraph.yaml に書かれた設定情報の総称。
subgraph.yaml
The Graph におけるサブグラフの設定ファイル
mapping.ts
イベントをエンティティに変換する処理を記述するコードファイル。
ハンドラー
イベントやトランザクションを受け取り処理する関数。
イベント
ブロックチェーン上で発生する出来事
データソース
データを取得する元の定義。
データストア
エンティティを保存する場所。
エンティティ
データの基本単位。
デプロイ
サブグラフを公開・実行環境へ展開する作業。
GRTトークン
The Graph のネイティブトークン。報酬やガバナンスに使われる。
The Graph
ブロックチェーンデータを索引・クエリする分散型プロトコルの名称。
Ethereum
スマートコントラクトを実行できる代表的なブロックチェーンの一つ。
データ
分析・処理の対象となる情報。
クエリ
データを取り出す問い合わせ。
クエリ言語
データを問い合わせる言語(主に GraphQL)。
API
アプリケーション同士が通信する窓口。
データモデル
データの構造と型の設計。
ユースケース
Subgraph を使う具体的な用途。

subgraphの関連用語

サブグラフ
元のグラフの一部を取り出して作るグラフ。頂点と、それらに紐づくエッジだけで構成される。The Graph の文脈では、特定のブロックチェーンデータをインデックスするための定義ファイルを指すことが多い。
部分グラフ
元のグラフから選んだ頂点と、それらの間のエッジでだけ構成されるグラフ。誘導部分グラフと混同しないように注意。
誘導部分グラフ
元のグラフの頂点集合を固定し、その頂点間のエッジだけを含むサブグラフ。
頂点
グラフの点のこと。ノードとも呼ばれる。
ノード
グラフの頂点の別名。接続関係を表す基本的な要素。
エッジ
グラフの辺。頂点間の関係を表す線。
有向グラフ
エッジに向きがあるグラフ。矢印で方向を示す。
無向グラフ
エッジに向きがないグラフ。対称的な関係を表す。
有向・無向を問わず、サイクル(循環)がない連結グラフ。
木の集まり。複数の木が集まってできる無向グラフ。
連結成分
グラフを分解したとき、それぞれの部分でどの頂点同士も道で結べる独立した部分のこと。
経路
始点から終点へ向かって辿るエッジの列。
距離
2つの頂点の間の最短経路の長さ。
次数
ある頂点に接続しているエッジの数。
次数分布
グラフ全体で、各頂点の次数がどのくらいの頻度かを表す分布。
隣接リスト
各頂点と、それに隣接する頂点のリストでグラフを表す表現。
隣接行列
頂点同士の隣接関係を行列で表す表現(n×n の0/1行列)。
直径
グラフ内の任意の2頂点間の距離の最大値。最も離れている点同士の距離。
完全グラフ
すべての頂点が互いにエッジで結ばれているグラフ。
二部グラフ
頂点を2つのグループに分け、エッジは必ず反対のグループ同士を結ぶグラフ。
クリーク
頂点集合の中で、任意の2頂点がエッジで直接結ばれている集まり。
平面グラフ
平面上にエッジを交差させずに描くことができるグラフ。
同型
2つのグラフが構造的に同じ形をしていること。頂点とエッジの対応があるとき同型と呼ぶ。
部分同型
あるグラフの部分集合が、別のグラフの同型な部分と一致すること。
ブリッジ
削除すると連結性が失われるエッジのこと。通称“橋”エッジ。
切断点
削除するとグラフの連結性が変わる頂点。
カット
削除すると連結性が変わるエッジ。
グラフ密度
実際のエッジ数が、最大可能なエッジ数に対してどの程度かを表す指標。
グラフ彩色
隣接する頂点が異なる色になるように、頂点に色を割り当てるルールのこと。
サブグラフマニフェスト
The Graph の定義ファイル Subgraph.yaml に相当する、日本語表現。データソース・エンティティ・マッピングなどの設定を記述する。
データソース
外部データの元となる出所。The Graph ではブロックチェーンのアドレスやイベントなど。
エンティティ
The Graph 内で永続的に保存されるデータの型。複数の属性を持つデータの“集合体”のようなもの。
マッピング
イベントを受け取り、エンティティへ変換する処理。実際のデータを整形する役割。
ハンドラ
イベントを処理する関数の総称。handleEvent などの命名で呼ばれる。
GraphQLスキーマ
取得するデータの構造を定義する GraphQL の設計図。検索やクエリの形式を決める。
サブグラフ名
このサブグラフの識別名。デプロイ時に使われることが多い。
デプロイ
作成したサブグラフを実環境へ配置して公開する作業。
ステータス
同期の進捗や現在の状態を示す表示情報。
インデックスノード
データを取り込み、加工してクエリで返せるようにするノード。
インデクサ
インデックス作業を担当するノードや役割のこと。
クエリエンドポイント
外部から GraphQL クエリを送るためのURL。ここからデータを取得する。
The Graphネットワーク
データをインデックス化して提供する分散型のインデックスネットワーク。
イベント
ブロックチェーン上で発生する取引や状態変更の出来事。マッピングの対象になる。

インターネット・コンピュータの人気記事

awstatsとは?初心者でもわかる使い方と基本解説共起語・同意語・対義語も併せて解説!
14691viws
bing・とは?初心者のための基本ガイド:検索エンジンの仕組みと使い方共起語・同意語・対義語も併せて解説!
2448viws
着信転送とは?初心者向けガイドで分かる使い方と設定のコツ共起語・同意語・対義語も併せて解説!
1091viws
差し込み印刷・とは?初心者でもすぐわかる使い方と仕組みガイド共起語・同意語・対義語も併せて解説!
1070viws
com端子・とは?初心者にも分かる基礎ガイド|シリアルポートの使い方と歴史を解説共起語・同意語・対義語も併せて解説!
959viws
充電アダプターとは何かを徹底解説|初心者でも分かる基本と選び方のコツ共起語・同意語・対義語も併せて解説!
921viws
7zファイル・とは?初心者でもわかる使い方と特徴を解説共起語・同意語・対義語も併せて解説!
881viws
全角文字とは?初心者向け解説|全角と半角の違いをやさしく学ぶ共起語・同意語・対義語も併せて解説!
862viws
pinロックとは?初心者が知っておくべき基本と使い方ガイド共起語・同意語・対義語も併せて解説!
813viws
リマインドメールとは?初心者にもわかる基本ガイドと使い方のコツ共起語・同意語・対義語も併せて解説!
813viws
none とは?初心者にもやさしく解説する意味と使い方ガイド共起語・同意語・対義語も併せて解説!
738viws
16進数カラーコード・とは?初心者でもつまずかない基礎と使い方ガイド共起語・同意語・対義語も併せて解説!
721viws
xlsmとは?初心者でも分かるExcelのマクロ付きファイルの基本共起語・同意語・対義語も併せて解説!
622viws
asp・とは?初心者向けに徹底解説する基本と使い方ガイド共起語・同意語・対義語も併せて解説!
619viws
ローカルポート・とは?初心者にも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
609viws
countifとは?初心者でもすぐ使える基本と応用ガイド共起語・同意語・対義語も併せて解説!
563viws
ワンタイムコード・とは?初心者でも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
540viws
csvダウンロードとは?初心者が今すぐ使える基本ガイド共起語・同意語・対義語も併せて解説!
519viws
sha256とは?初心者が知るべき暗号ハッシュの基礎と使い道共起語・同意語・対義語も併せて解説!
511viws
googleドキュメントとは?初心者が今日から使いこなす基本ガイド共起語・同意語・対義語も併せて解説!
487viws

新着記事

インターネット・コンピュータの関連記事