

高岡智則
年齢: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つの要素で成り立っています。
| 説明 | |
|---|---|
| データソース | 対象となるブロックチェーンとコントラクト。 |
| マッピング | イベントを受け取り、データを整理して保存する処理です。通常は 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ネットワーク
- データをインデックス化して提供する分散型のインデックスネットワーク。
- イベント
- ブロックチェーン上で発生する取引や状態変更の出来事。マッピングの対象になる。



















