← /teach Study Portal (ontology) に戻る /teach lesson

Lesson 2: コンピテンシー・クエスチョン(CQ)と概念モデリング実践

所要時間: 8分 | 対象: 業務要件定義・スキーマ抽出・GraphRAG設計
本レッスンのゴール:
業務課題を「コンピテンシー・クエスチョン(CQ)」として形式化し、そこからエンティティ(クラス)、関係性(オブジェクトプロパティ)、属性(データプロパティ)を漏れなく抽出する設計手法を習得します。

1. なぜ「コンピテンシー・クエスチョン(CQ)」が最重要なのか?

オントロジー構築で最もありがちな失敗は、「最初からすべての概念を網羅しようとして巨大化し、使われないオントロジーを作ってしまうこと」です(オントロジーの肥大化・死活化)。

これを防ぐのが、スタンフォード大学の設計手法(Ontology Development 101)でも推奨されるコンピテンシー・クエスチョン(Competency Questions, CQ)です。

CQの定義:
「完成したオントロジー/ナレッジグラフが、最低限答えられなければならない業務上の具体的な質問群(自然言語)」のこと。
オントロジーのスコープ(境界線)と受け入れ基準(テストケース)になります。

2. 実践ケーススタディ: ITインフラ障害・組織影響分析

例えば、社内のシステム統合・障害影響分析用のナレッジグラフを作るとします。

ステップ1: CQの策定(業務の問い)

ステップ2: CQからの要素抽出(クラス・関係性・属性)

CQを文法分解(名詞=クラス/属性、動詞/助詞=関係性)することで、必要なモデルが自然と浮かび上がります。

要素タイプ 抽出された要素(URI / ラベル) 説明
クラス (Class) :Server, :BusinessService, :Department, :Employee, :Vendor ドメイン内の独立した「概念・モノ」
関係性 (Object Property) :hostsService (Server → BusinessService)
:managedBy (BusinessService → Department)
:belongsTo (Employee → Department)
:suppliedBy (Server → Vendor)
エンティティとエンティティを結ぶエッジ(グラフの結合線)
属性 (Data Property) :ipAddress (xsd:string)
:contractEndDate (xsd:date)
:email (xsd:string)
エンティティが持つ具体的な値(文字列・日付・数値など)

3. トリプル表現とグラフ構造(Turtle記法)

これらをRDF標準のトリプル(主語 - 述語 - 目的語)として記述すると、以下のようになります。

@prefix : <https://example.org/enterprise/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

# インスタンスデータの例 (ABox)
:Srv-Database-01 a :Server ;
    :ipAddress "192.168.10.5" ;
    :hostsService :PaymentService ;
    :suppliedBy :VendorOracle .

:PaymentService a :BusinessService ;
    :serviceName "決済ゲートウェイ" ;
    :managedBy :PaymentTeam .

:Alice a :Employee ;
    :email "alice@example.com" ;
    :belongsTo :PaymentTeam .
GraphRAG / 検索時の威力:
:Srv-Database-01 が落ちた」というイベントが発生したとき、グラフを2ホップ・3ホップ辿るだけで
Srv-Database-01:PaymentService:PaymentTeam:Alice
と探索でき、LLMに「決済ゲートウェイが停止するリスクがあります。PaymentTeamのAliceさんに即時連絡してください」と正確なコンテキストを渡せます。

4. 設計演習ミニクイズ

問: 「CQ: 従業員Aが保有する認定スキル(Python等)と、現在参画しているプロジェクトPで要求される必須スキルの一致度を調べたい」という要件に対し、オントロジーの要素設計として最も不適切な(誤った)組み合わせはどれでしょうか?

次のステップ & 関連リンク

設計の基本が掴めたら、次はRDF/OWLでのクラス階層とプロパティ特性(推移関係・逆関係などによる推論)を学びます。
参照: 用語リファレンス