Lesson 5: GraphRAG連携 - オントロジーを動くシステムにする

所要時間: 10分 | 前提: Lesson 1〜4(基礎・CQ・OWL推論・設計ハンズオン)
本レッスンのゴール:
Missionの到達点である「オントロジー駆動のLLM/RAG」を設計できるようになる。3つの連携パターンを理解し、自分の業務にどれを当てるか決められる状態がゴールです。

0. 全体像:これまでの復習マップ

L1 基礎 → L2 CQ設計 → L3 OWL推論 → L4 実装 → L5 連携★

L1〜L4で「意味の枠組み(TBox)+実データ(ABox)=ナレッジグラフ」を作れるようになりました。 L5では、そのグラフをLLMの推論にどう接続するかを学びます。 詳しい用語定義は リファレンス を参照してください。

1. なぜベクトルRAGだけでは足りないのか

通常のRAGは文書チャンクの類似度検索です。次のような問いには弱くなります。

使い分けの原則: 「似た文書を探す」=ベクトル検索。「つながりを辿る・数える・検証する」=グラフ探索。実務の問いは後者が多いため、両者を組み合わせます。

2. 3つの連携パターン

パターン 流れ 向いている問い
A. KG-grounded RAG
(グラフ検索→LLM生成)
質問 → グラフから部分グラフ取得 → その事実だけをLLMに渡して回答生成 影響分析・経路説明。「なぜそう言えるか」の根拠提示が必須な業務
B. Text2SPARQL
(LLMがクエリを書く)
質問 → LLMがSPARQLを生成 → グラフDBで実行 → 結果をLLMが文章化 集計・一覧・条件検索。「サポート切れの全サーバーを列挙」のような厳密回答
C. ハイブリッド
(ベクトル+グラフ)
ベクトルで候補文書を拾い、グラフで関係・制約を検証して絞り込む 社内横断検索。文書は大量、でも「権限・部門・契約関係」で絞りたい場合
💡 パターンBの具体例(L4の資産グラフで)

質問: 「営業部門のサポート切れサーバーを全部挙げて」

# LLMが生成するSPARQL(骨格)
SELECT ?server ?contractEnd WHERE {
  ?server a :Server ;
          :belongsTo :SalesDept ;
          :contractEndDate ?contractEnd .
  FILTER (?contractEnd < NOW())
}

ポイント: LLMは文章を「創作」せず、クエリだけ書いて実行結果に忠実に答えるため、ハルシネーションが構造的に抑えられます。 ただし生成クエリの検証(存在しないプロパティを使っていないか等)が必須です。

3. 動かすための3つの土台(見落としがち)

3-1. エンティティ解決:サイロの「別名」を束ねる

Salesforceの「顧客A」とSAPの「得意先A」が同一実体だと宣言しない限り、グラフは分断されたままです。 owl:sameAs で同一性を明示するか、IDマッピングテーブルを経由して正規URIに寄せます。これがMissionの「意味的統合」の核心作業です。

3-2. SHACL:LLMに入れる前の品質ゲート

OWLは推論のための「開世界」(書いてない≠間違い)でした。対して SHACL は検証のための「閉世界チェック」です。「ServerはipAddress必須」「contractEndDateは日付型」といったShapeを定義し、投入データを検証してからグラフに入れます。 ゴミが入ったグラフをLLMに読ませないための関所です。

3-3. ハイブリッド構築:トップダウン+ボトムアップ

L2〜L4のCQ起点はトップダウン(あるべき概念から設計)。実務では既存DB・CSVからのボトムアップ(RDBテーブル→クラス、外部キー→プロパティへの機械的マッピング)と組み合わせます。 推奨手順: CQで骨格を決める → 既存スキーマをマッピングして肉付け → CQの受け入れテスト(SPARQLで回答できるか)で検証。

4. 理解度チェック

問: 「サポート契約が切れた全サーバーを漏れなく列挙せよ」という問いに対する最適な連携パターンはどれか?

5. コース修了:次の一手

Mission達成への推奨順序です。

  1. 自分の業務でCQを3つ書く(L2の手法で)。それがそのまま受け入れテストになります。
  2. 最小グラフを作る:クラス5・プロパティ5以内で Protégé に実装し、Reasonerで推論を確認(L4の手順)。
  3. SHACLで1つ制約を書く:必須属性チェックから始める(§3-2)。
  4. パターンを1つ選んで試す:列挙系ならB、説明系ならA(§2)。最初は小さいCQでText2SPARQLの手動実行から。
推奨一次情報: Ontology Development 101(設計手順の原典)、W3C SPARQL 1.1(パターンBの実行言語)、W3C SHACL(品質ゲート)。GraphRAG側はNeo4jのGraphRAGリサーチも参照。

全5回、お疲れさまでした。不明点・次に深掘りしたいテーマ(RDFlib実装、SHACL実例、自社データでの設計レビュー等)があれば、遠慮なく質問してください — それが次の学習記録になります。