knowledge-graph-construction について
ナレッジグラフの計画と構築を支援するスキルです。構造化データ、RAG、推論、分析に取り組むチーム向けに、構築手順、モデル選択、スキーマ設計、抽出、検証の指針をまとめています。
主な機能
- 016段階のグラフ構築手順
- 02グラフデータモデルの選択指針
- 03エンティティ関係・イベント・階層型のスキーマパターン
- 04LLMによる抽出と検証
- 05スキーマ・網羅性・整合性・完全性の確認
活用シーン
- 01RAGや分析向けグラフの範囲設定
- 02領域に応じたグラフモデルの選択
- 03複数参加者のイベント用スキーマ設計
- 04元文書に照らした抽出グラフの確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ lyndonkl/ claude --skill knowledge-graph-constructionインストール後、Claude Code で/knowledge-graph-constructionを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
resources/data-models.mdmethodology.mdresources/evaluators/rubric_kg_construction.json詳細
目次
ナレッジグラフの構築
ワークフロー
このチェックリストをコピーして、各ステップに沿って進めてください。
KG Construction Progress:
- [ ] Step 1: Identify data sources and domain scope
- [ ] Step 2: Select graph data model
- [ ] Step 3: Design schema and ontology
- [ ] Step 4: Configure extraction pipeline
- [ ] Step 5: Define layered architecture
- [ ] Step 6: Validate and quality-check the graph
ステップ 1:データソースとドメインの範囲を特定する
入力データを分類します。文書の種類(論文、臨床記録、ウェブページ、ログ)、量、更新頻度、言語を確認します。ドメインの境界、つまり対象のユースケースで重要となるエンティティの種類と関係の種類を定義します。KG を RAG 検索、推論、分析、またはそれらの組み合わせのどれに利用するかを決定します。このスコープ設定により、過剰な抽出を防ぎ、スキーマを適切な範囲に保てます。
ステップ 2:グラフデータモデルを選択する
アーキテクチャ選定ガイドを参考に、基盤となるデータモデルを選択します。主なトレードオフは次のとおりです。柔軟性と迅速なプロトタイピングには LPG、標準ベースの相互運用性と推論には RDF/OWL、複雑な N 項関係にはハイパーグラフ、時間とともに変化する知識には時間グラフが適しています。クエリ言語、ツールの成熟度、ベクトル統合のニーズも考慮してください。モデルの詳細な比較については、データモデルのリファレンスを参照してください。
ステップ 3:スキーマとオントロジーを設計する
ノードの種類(エンティティクラス)、エッジの種類(関係クラス)、プロパティのスキーマを定義します。スキーマパターンのパターンを適用します。単純なドメインにはエンティティ・関係型、N 項関係にはイベント再ification、複数のソースを統合する場合は階層型が適しています。管理語彙、カーディナリティ制約、既存のオントロジー(例:Schema.org、UMLS、SNOMED)を採用または拡張するかどうかを決めます。手法の詳細については、手法のリファレンスを参照してください。
ステップ 4:抽出パイプラインを構成する
グラフにデータを追加するパイプラインを構築します。主要なコンポーネントは、複数回の検証を伴う LLM 支援エンティティ抽出、プロンプトベースまたは依存構造解析による関係抽出、エンティティの正規化(同義語の統合、オントロジーとのリンク)、後処理の検証によるスキーマ適用です。プロンプトに少数ショットの例を含めて、抽出の一貫性を高めます。見落としたエンティティを検出するため、2 回目の LLM 検証を実施します。パイプライン設計の全容については、手法のリファレンスを参照してください。
ステップ 5:階層型アーキテクチャを定義する
保守性と信頼性を確保するため、KG を階層に分けて構成します。一般的なパターンでは、レイヤー 1(インスタンスデータ)にユーザー固有またはケース固有のエンティティと関係を格納し、レイヤー 2(ドメイン知識)に文献やドメイン専門家から得たキュレーション済みの事実を格納し、レイヤー 3(標準オントロジー)に正式なスキーマと上位オントロジーを格納します。プロベナンスとエビデンスの階層を追加し、すべての事実をソース文書、抽出方法、信頼度スコアまで追跡できるようにします。知識が変化するドメインでは、時間インデックス付きの状態を時間サブグラフで表現します。
ステップ 6:グラフを検証し、品質を確認する
複数のレベルで検証を実施します。スキーマ適合性(すべてのノードとエッジが定義済みの種類に一致しているか)、網羅性(想定されるエンティティの種類にデータが格納されているか)、一貫性(矛盾するエッジがないか)、完全性(サンプルに基づく人手レビュー)を確認します。2 つ目の LLM を検証役として使い、抽出したトリプルをソース文書に照らして事実確認します。グラフの統計情報(ノード次数の分布、連結成分、孤立ノード)を計算し、抽出漏れを特定します。品質基準は品質評価基準で定義されています。
アーキテクチャ選定ガイド
ユースケース別
| モデル | 柔軟性 | 標準化 | 推論 | ベクトル統合 | クエリ言語 | 最適な用途 |
|---|---|---|---|---|---|---|
| LPG | 高 | 低 | 限定的 | ネイティブ(Neo4j) | Cypher、Gremlin | 迅速な開発、RAG パイプライン |
| RDF/OWL | 中 | 高 | 完全(OWL-DL) | 拡張機能経由 | SPARQL | 相互運用性、オントロジーを多用する分野 |
| ハイパーグラフ | 高 | 低 | 限定的 | カスタム | カスタム API | N 項関係、複数エンティティにまたがるイベント |
| 時間グラフ | 中 | 低 | 時間ベース | 拡張機能経由 | Temporal Cypher | 変化する知識、エピソード記憶 |
分野別
| 分野 | 推奨モデル | 理由 |
|---|---|---|
| 生物医学/臨床 | RDF/OWL | UMLS/SNOMED オントロジー、推論が必要 |
| エンタープライズ/RAG | LPG | 迅速な反復、ベクトル検索との統合 |
| イベント中心(ニュース、ログ) | ハイパーグラフまたは時間グラフ | 複数参加者のイベント、時間的な変化 |
| 法務/コンプライアンス | RDF/OWL | 形式的推論、来歴チェーン |
| 科学文献 | LPG + レイヤー構造 | 柔軟な抽出、信頼度別のレイヤー |
スキーマパターン
エンティティ・関係パターン
最もシンプルなパターンです。ノードはエンティティを表し、エッジは二項関係を表します。ノードのプロパティには属性を、エッジのプロパティには関係のメタデータ(信頼度、ソース、タイムスタンプ)を格納します。
(:Person {name, role}) -[:WORKS_AT {since}]-> (:Organization {name, type})
(:Drug {name, class}) -[:TREATS {efficacy}]-> (:Disease {name, icd_code})
最適な用途:主に二項関係で構成され、複雑さが中程度の分野。
イベント具象化パターン
N 項関係や複雑なイベントを、独立したノードとしてモデル化します。イベントノードは、型付きの役割エッジを介してすべての参加者と接続します。これにより、N 項関係を二項エッジに押し込むことで生じる情報損失を回避できます。
(:ClinicalTrial {id, phase, start_date})
-[:HAS_DRUG]-> (:Drug {name})
-[:HAS_CONDITION]-> (:Disease {name})
-[:HAS_OUTCOME]-> (:Outcome {measure, value})
-[:CONDUCTED_BY]-> (:Organization {name})
最適な用途:複数の参加者が関わるイベント、臨床データ、ニュースイベント、金融取引。
階層化レイヤーパターン
グラフを信頼度ごとのレイヤーに分割し、個別またはまとめてクエリできるようにします。
Layer 3 (Canonical Ontology): Formal class hierarchy, relation definitions, constraints
Layer 2 (Domain Knowledge): Curated facts from literature, expert-validated
Layer 1 (Instance Data): Extracted from user documents, case-specific, lower confidence
レイヤー間エッジは、インスタンスをドメイン概念に、ドメイン概念をオントロジークラスに結び付けます。すべてのエッジの来歴メタデータに、ソースドキュメント、抽出方法、信頼度スコア、タイムスタンプを記録します。
最適な用途:複数ソースの統合、信頼度スコアリングを用いた RAG、エンタープライズナレッジ管理。
出力テンプレート
KNOWLEDGE GRAPH CONSTRUCTION SPECIFICATION
============================================
Domain: [Target domain and scope]
Use Case: [RAG / Reasoning / Analytics / Hybrid]
Data Sources: [List of input data types and volumes]
Data Model: [LPG / RDF / Hypergraph / Temporal]
Query Language: [Cypher / SPARQL / Gremlin / Custom]
Storage Backend: [Neo4j / Amazon Neptune / Virtuoso / etc.]
Schema Definition:
Node Types:
1. [EntityType] - [description]
Properties: [list with types]
2. [EntityType] - [description]
Properties: [list with types]
3. [Continue for each node type...]
Edge Types:
1. [RelationType] (source -> target) - [description]
Properties: [list with types]
2. [Continue for each edge type...]
Constraints:
- [Cardinality, uniqueness, required properties]
Extraction Pipeline:
1. Entity Extraction
- Method: [LLM-assisted / NER / Hybrid]
- Prompt template: [summary or reference]
- Verification: [Multi-round / Second-LLM / Manual sample]
2. Relation Extraction
- Method: [Prompt-based / Dependency parsing / Hybrid]
- Few-shot examples: [count and source]
3. Normalization
- Deduplication: [method]
- Ontology linking: [target ontology]
- Synonym resolution: [approach]
Layered Architecture:
Layer 1 (Instance): [description of instance-level data]
Layer 2 (Domain): [description of curated domain knowledge]
Layer 3 (Ontology): [description of formal schema]
Provenance: [How source/confidence/timestamp are tracked]
Validation Plan:
- Schema conformance: [automated checks]
- Coverage: [expected entity/relation counts]
- Consistency: [contradiction detection method]
- Human review: [sampling strategy]
Estimated Scale: [node count, edge count, properties per node]
Key Dependencies: [libraries, APIs, ontologies]
NEXT STEPS:
- Implement extraction pipeline on sample data
- Populate graph and run validation suite
- Iterate schema based on extraction results
- Integrate with downstream application (RAG, reasoning, etc.)