🎥 YouTubeでも公開しています
組織の一次データから、根拠のあるオントロジーへ|Evidence-Grounded Ontology Construction
Books: Knowledge Flow実践ガイド: 企業知識をAIが利用できる知識基盤へ変換する

企業内には、メール、議事録、規程、手順書、契約書、PDF、表計算ファイル、業務チケット、システムログ、会話記録などの**業務一次データ(Raw Data)**が散在している。そこには、組織が日々使っている言葉、例外処理、判断基準、役割分担が記録されている。
こうしたデータから固有名詞を広く抽出し、LLMで上位概念・下位概念・類似語を補いながら蓄積すれば、短時間で知識グラフの種を作ることができる。これは探索の出発点として有効である。
しかし、そのままオントロジーとして育てると、別の問題が現れる。名称を中心に関係を増やすため、実データや発話文脈に裏付けられない階層や類似関係が、もっともらしい形で蓄積してしまうのである。
「顧客」と「利用者」は似ているが、契約・請求・サポートという業務では別の役割を持つことがある。「売上」も、受注額、請求額、入金額、取消後の純売上のいずれを意味するかによって、判断結果は変わる。
必要なのは、名詞の周囲に知識を増殖させることではない。原文に現れた事実、関係、出来事、ルール、制約、意図を抽出し、それらを根拠とともに概念へ統合することである。
本稿では、この考え方を Evidence-Grounded Ontology Construction と呼ぶ。ChinobaのKnowledge Flowにおいて、Raw DataをOntology、Knowledge Graph、DSL、Decision Trace、Runtime OSへ接続するための、より検証可能なオントロジー生成方式である。
固有名詞中心の方式が抱える課題
従来の方式は、Raw Dataに含まれる固有名詞や名詞を抽出し、LLMが上位・下位・関連・類似の概念を補完する。発見的な知識探索には向く一方、業務で利用できる知識基盤にするには、次の問題を解かなければならない。
| 従来の処理 | 起きやすい問題 | Evidence-Grounded方式 |
|---|---|---|
| 固有名詞・名詞を抽出 | 一般名詞、ノイズ、表記揺れが大量に混ざる | Entityに加え、Event、Rule、Constraint、Intentを抽出する |
| 各語の上位・下位・類似語をLLM生成 | 根拠のない階層や、もっともらしい誤統合が生じる | 関係候補には必ず原文引用または承認済み定義を持たせる |
| 1語ごとに固定数のノードを生成 | 関係が薄い概念にも人工的なグラフができる | 必要な関係だけを生成し、分からない部分は「未知」として残す |
| 名称・類似度で統合 | 部署別用語、多義語、同名異義語を一つにしてしまう | 名前、定義、文脈、出典、時間、グラフ近傍でConcept Resolutionを行う |
| 蓄積後すぐ利用 | 古い情報、矛盾、誤った知識が判断に混入する | DraftとApprovedを分離し、承認済み知識のみをRuntimeで利用する |
| 抽出精度のみで評価 | 実際の業務判断への有用性が分からない | 根拠性、制約順守、再現性、誤統合率まで評価する |
重要なのは、LLMの生成能力を抑えることではない。LLMが提案した関係を、どの根拠で、どの適用範囲で、どの状態まで利用できるのかを明確にすることである。
Raw Dataから承認済みOntologyまでの流れ
Evidence-Grounded Ontology Constructionでは、抽出・統合・承認・実行利用を一つの処理に混ぜない。
flowchart TD
A["Organizational Raw Data\nEmail / Documents / Tables / Tickets / Logs / Conversations"] --> B["Semantic Chunking\n文脈・発信者・時刻・権限を保持"]
B --> C["Structured Extraction\nEntity / Event / Rule / Constraint"]
C --> D["Concept Resolution\n候補の照合・分離・統合"]
D --> E["Evidence Graph\n根拠付きの関係グラフ"]
E --> F["Ontology Draft\n仮説として版管理"]
F --> G["Validation & Human Review"]
G --> H["Approved Ontology\nRuntime / DSLへ供給"]
H --> I["Trace & Feedback"]
I --> F
この流れでは、Raw Dataから抽出された内容は、直ちに正しいオントロジーにはならない。まずは根拠を伴う候補であり、検証・承認を経て初めて、判断や実行のための知識になる。
Raw Dataは一種類ではない
組織知は複数の媒体に分散しており、媒体ごとに根拠の強さ、更新性、利用可能な範囲が異なる。したがって、すべての業務一次データを同じ「テキスト」として扱ってはいけない。
| Raw Dataの種類 | 主に得られるもの | 取り扱い上の注意 |
|---|---|---|
| チャット・会議メモ | 暗黙知、例外、現場の判断、未解決論点 | 正式ルールとは限らない。話者、スレッド、発言時点を必ず残す |
| メール | 依頼、合意、承認、例外承認、責任分担 | 宛先、CC、返信連鎖、添付、送信者の権限を保持する |
| 規程・契約書・手順書 | 正式な定義、義務、制約、承認条件 | 版、発効日、失効日、管轄、原本の所在を管理する |
| 議事録・提案書 | 意思決定の背景、選択肢、合意事項 | 確定事項と検討案を区別する |
| 表計算・CSV・DBテーブル | 指標、実績、マスタ、状態、計算根拠 | 列名ではなく、単位、更新頻度、集計粒度、データ所有者を解釈する |
| チケット・ワークフロー履歴 | 要求、担当、変更、障害、解決経緯 | 状態遷移、担当変更、優先度、完了条件をEventとして抽出する |
| システムログ・監査ログ | 実際に起きた行動、時刻、結果、失敗 | 意味の補完を避け、観測事実と解釈を分離する |
ここで重要なのは、会話記録や個別メールに現れた内容を、規程や契約書と同じ強さの知識として扱わないことである。たとえば、現場で共有された例外対応は、優れた改善候補になりうる。しかし正式なルールへ昇格するには、規程との整合、責任者の確認、適用範囲の判断が必要である。
Source Adapterで、媒体固有の文脈を保持する
各Raw Dataは、共通のSemantic Chunkへ変換する前に、媒体固有の情報を取り出すSource Adapterを通す。
Email Adapter : sender / recipients / thread / attachment / approval wording
Document Adapter : title / section / version / effective dates / cited policy
Table Adapter : schema / unit / grain / refresh cadence / data owner
Ticket Adapter : status transition / assignee / priority / acceptance criteria
Log Adapter : event time / actor / system / operation / result / error code
Conversation Adapter: speaker / channel / thread / reply relationship / reaction
この前処理によって、すべての入力は共通形式で検索・比較できる一方、元の媒体が持つ意味と統制情報を失わない。結果として、「あるメールで部長が承認した」「最新版の規程では異なる」「ログ上は実際に処理が失敗している」といった違いを、同じ知識グラフの中で扱える。
1. Raw Dataを「意味のある単位」に切る
業務一次データを、単なる文字列やレコードとして扱うのではなく、意味のまとまりとして保持する。概念の意味は、その言葉だけでなく、誰が、どの媒体で、いつ、どの話題や業務の中で使ったかによって変わるからである。
{
"chunk_id": "raw-20260918-042",
"text": "不良率が5%を超えた場合は、品質保証部に通知してください。",
"source_type": "operational_document",
"speaker_role": "quality_manager",
"timestamp": "2026-09-18T10:15:00+09:00",
"source_reference": "quality-operations-procedure-v2",
"authority_hint": "operational_instruction",
"thread_context": ["前日の検査結果についての会話"]
}
この段階では、日時表現、URL、助数詞、一般的すぎる名詞などを除外する。一方で、話者、送信者、役割、スレッド文脈、宛先、添付資料、文書版、参照先、データ所有者、アクセス権といった情報は残す。
後段で「これは正式な規程か、現場の会話か」「誰の権限で述べられた内容か」を判断するためである。
2. Entityではなく、業務意味フレームを抽出する
オントロジー生成で必要なのは、Entityのリストだけではない。各チャンクから、少なくとも次の六種類を取り出す。
| 抽出対象 | 例 |
|---|---|
| Entity | 不良率、品質保証部、契約、取引先 |
| Relation | 品質保証部が不良率を監視する |
| Event | 不良率が閾値を超過した |
| Rule | 不良率が5%超なら通知する |
| Constraint | 通知先は品質保証部、閾値は5% |
| Intent / Decision | 通知すべき、確認が必要、停止する |
たとえば「不良率が5%を超えた場合は、品質保証部に通知してください」という発話からは、次のような構造を抽出できる。
{
"entities": [
{"mention": "不良率", "type": "Metric"},
{"mention": "品質保証部", "type": "OrganizationUnit"}
],
"event": {
"type": "ThresholdExceeded",
"subject": "不良率",
"condition": "> 5%",
"time": "when_observed"
},
"rule": {
"type": "NotificationRule",
"if": "DefectRate > 0.05",
"then": "Notify(QualityAssurance)",
"modality": "required"
},
"evidence": {
"source_chunk_id": "raw-20260918-042",
"quote": "不良率が5%を超えた場合は、品質保証部に通知してください。"
}
}
ここで得られるのは、「不良率」という名詞の上位語ではない。どの条件のもとで、誰に、何をすべきかという、実行可能な業務ルールの候補である。
3. 抽出とConcept Resolutionを分離する
抽出された表現を既存の概念へ統合する処理は、独立した工程にする必要がある。
たとえば「顧客」という表現が出ても、直ちに既存のCustomerへ統合しない。契約を締結する主体なのか、サービスの利用者なのか、請求先なのかを比較する。
| 判定材料 | 例 |
|---|---|
| 表記 | 顧客、会員、契約先、利用者、請求先 |
| 定義 | 契約を締結する主体か、サービスを利用する人か |
| 文脈 | 営業、請求、サポートのどのチャネルか |
| 関係 | 契約、請求、利用、問い合わせのどれと結ばれるか |
| 時間 | 組織改編・制度改定の前後か |
| 出典の強さ | 契約書、正式規程、運用会話、推測のどれか |
| 人の判断 | 新規概念、統合、分離が妥当か |
判定結果は、必ず次の三つに分ける。
- Resolved:既存の正規概念へ安全に統合できる
- Candidate:似ているが、統合するための根拠が不足している
- Ambiguous:複数解釈があり、統合してはいけない
「不明」を失敗として消すのではなく、知識の状態として保持することが重要である。これにより、LLMが「顧客」と「利用者」を善意で一つにしてしまう誤統合を防げる。
4. 関係そのものを、根拠付きで管理する
オントロジーでは概念だけでなく、関係そのものも管理対象にする。特に業務ルールは、誰が何と関係するかだけでなく、条件、適用期間、根拠、状態を持つ必要がある。
relation:
id: rule.notify_quality_when_defect_rate_exceeds_threshold
subject: metric.defect_rate
predicate: triggers_notification_to
object: org.quality_assurance
condition: "value > 0.05"
source:
chunk_id: raw-20260918-042
quote: "不良率が5%を超えた場合は、品質保証部に通知してください。"
confidence:
extraction: 0.94
resolution: 0.91
status: candidate
valid_from: null
valid_to: null
confidenceは、候補の優先順位を決めるためには役立つ。しかし、それだけでRuntime利用を許可してはならない。利用可否は、出典、権限、適用期間、矛盾、承認状態を合わせて決める。
5. 「意味」と「実行可能なルール」を分離する
Chinobaでは、知識の各層を混同しない。
- Ontology:顧客、不良率、契約、品質保証部とは何か
- Knowledge Graph:誰が何と関係し、何がいつ起きたか
- DSL / Policy:条件を満たすとき、何を許可・依頼・停止するか
- Runtime OS:その操作を、現在の状況と権限のもとで実行してよいか
業務一次データに「顧客へメールを送る」という記述があったとしても、それを自動実行ルールにはしない。
candidate_rule:
if: "churn_risk > 0.8"
then: "send_email(customer)"
status: draft
concerns:
- consent_unknown
- message_template_unknown
- owner_authority_unknown
runtime_decision: ask
同意、担当者、テンプレート、送信権限を満たして初めて、その候補は承認済みルールとしてRuntime OSへ渡せる。意味を理解したことと、実行を許可されたことは別である。
6. Ontology Repositoryを、版管理された知識資産にする
オントロジーは完成図ではない。変化し、修正され、古くなる知識資産である。そこで、概念・関係・ルールを次の状態で管理する。
| 状態 | 意味 |
|---|---|
observed |
Raw Dataから観測された表現 |
extracted |
構造化候補として抽出済み |
candidate |
統合・関係・ルールの候補 |
approved |
人または規定の検証を経た利用可能な定義 |
deprecated |
古くなったが、履歴として保持する定義 |
rejected |
根拠不足、矛盾、誤統合のため不採用 |
各変更には、少なくとも以下を残す。
- 何を追加、統合、分離、廃止したか
- どのRaw Dataが根拠か
- どの評価によって妥当と判断したか
- 誰またはどのPolicyが承認したか
- いつからいつまで有効か
- どのDecision Traceや業務結果が変更を促したか
つまり、Ontologyの更新自体もDecision Traceの対象にする。
7. 自動改善を「評価付き提案」に変える
Agentの誤解、人の訂正、例外処理は、オントロジー改善の重要な材料になる。ただし、改善とは自己書換えではない。
- Agentの誤解、人の訂正、例外処理を収集する
- 原因を分類する
- Entity抽出誤り
- 同義語・多義語の誤統合
- 関係の誤り
- ルールの欠落
- 有効期限切れ
- Policy・Boundary不足
- Ontologyの差分案を生成する
- 旧版と新版を、同じ質問、同じデータ、同じモデル、同じ予算で比較する
- 高リスクの変更はHuman Reviewへ送る
- 合格した差分だけを
approvedへ昇格する
評価も、抽出F1だけで完結させない。
| 指標 | 確認すること |
|---|---|
| Extraction Precision / Recall | 必要なEntity・Relation・Ruleを正しく抽出できるか |
| Resolution Accuracy | 同義語・多義語を正しく統合・分離できるか |
| Evidence Coverage | 採用した概念・関係に原典があるか |
| Contradiction Rate | 矛盾する定義・ルールを増やしていないか |
| Freshness / Validity | 古い定義を現在の判断に使っていないか |
| Constraint Compliance | 業務ルール、権限、Boundaryを守れるか |
| Runtime Task Success | 実際の質問・判断・業務支援を正しく行えるか |
| Trace Completeness | 意味解決から結果まで説明・再現できるか |
この仕組みは、EvoOntologyが示した「同じ条件で改善した場合のみ採用する」という発想とも接続できる。ただしChinobaでは、精度だけでなく、根拠性、制約順守、再現性、Human Gateを含めて評価する。
最小実装は、四層から始められる
最初から全社オントロジーを作る必要はない。まずは、対象業務に関わる業務一次データを入力に、次の四層を実装すればよい。
Organizational Raw Data
└ Email / Document / Table / Ticket / Log / Conversation
→ Semantic Chunk Store
→ Extraction Store
└ Entity / Relation / Event / Rule / Constraint / Evidence
→ Ontology Draft Repository
→ Approved Ontology + Knowledge Graph
MCPとしては、次の六つから始められる。
browse_semantics:概念、関係、ルール候補を探索するresolve_semantics:質問中の言葉を正規概念と根拠へ対応付けるexplain_semantics:定義、原典、確信度、適用期間を返すpropose_semantic_change:候補差分を作るevaluate_semantic_change:旧版と新版を比較するtrace_semantic_decision:意味解決、判断、結果を保存する
業務一次データを、検証可能な組織知へ変える
この方式では、組織に散在する業務一次データが、ばらばらの業務記録ではなくなる。そこに含まれる暗黙知、正式な定義、例外、判断基準、実績、役割分担が、出典と文脈を失わずに、検証可能な知識基盤へ変換される。
Raw Data → Semantic Chunk → Evidence Extraction → Concept Resolution → Ontology / Knowledge Graph → DSL / Policy → Runtime OS → Decision Trace → Evaluated Evolution
以前の「固有名詞の周囲へLLMが知識を増殖させる」モデルから、Raw Dataに現れた事実を出発点に、意味・関係・ルールを根拠付きで構築し、承認された知識だけを判断に用いるモデルへ。
この転換によって、Knowledge Flowは検索のための前処理ではなく、組織が判断し、説明し、学び直すための知識インフラになる。
Chinoba
Intelligence as Relationship
Research Platform
founded by
Masao Watanabe
AI Systems Architecture
Decision Trace
Human–AI Coordination
Algorithmic Governance
Related Research
この記事は Chinoba Knowledge Base の一部です。
コメント