Lesson 4: IT資産管理ドメインでのオントロジー設計ハンズオン

所要時間: 15分 | 前提: Lesson 1-3(オントロジー基礎、CQと概念モデリング、OWLプロパティ特性)
本レッスンのゴール:
これまで学んだ知識を統合し、「IT資産管理(ハードウェア・ソフトウェア・ライセンス)」という実務ドメインで、CQからクラス・プロパティ・OWL特性までをステップバイステップで設計します。

1. ステップ1: コンピテンシー・クエスチョン(CQ)の策定

まず、このオントロジーで答えられるべき業務上の問いを5つ定義します。

💡 CQ例(IT資産管理)
  1. その企業の全サーバー一覧と、それぞれのオペレーティングシステムは何か
  2. 特定のソフトウェアライセンスが、社員のどのPCにインストールされているか
  3. 部門ごとのハードウェア構成の違いを比較して、標準化の余地はないか
  4. 特定の脆弱性(CVE)にさらされている資産を、リスク順にリストアップしたい
  5. 企業全体のハードウェア資産価値とソフトウェア資産価値を集計したい
重要: CQは多くなるほど精度は上がりますが、オントロジーのスコープが肥大化します。まずは上位5つで始め、必要に応じて追加してください。

2. ステップ2: 榅語と語彙の抽出(概念モデル設計)

CQに答えるための核心概念を洗い出します。

CQから導出 クラス (Class) 説明
サーバーの一覧 Server 企業が運用する物理的・仮想的サーバー
PCの一覧 Workstation 社員が利用するデスクトップ・ノートPC
ソフトウェアライセンス SoftwareLicense インストール許諾を持つソフトウェア製品
オペレーティングシステム OperatingSystem サーバー・PCが動作するOS(Windows, Linux等)
脆弱性(CVE) Vulnerability セキュリティ上の脆弱性情報(CVE-ID等)
部門 Department 組織的な部門区分
CQから導出 オブジェクトプロパティ (Object Property) 特性
サーバーが OS を持つ runsOn (任意:OSが変わってもサーバーは存続するため、Transitiveとせず、 Functional Property とする)
PCにソフトウェアがインストールされている installs (任意:推移的にはならないが、Inverseで「installer」を定義可)
PCが部門に所属する belongsTo 推移的でないが、 Functional Property (一台のPCは一つの部門に所属)
部門が管理する資産の合計 manages Transitive Property にできるが、今回は partOf と組み合わせて使用

3. ステップ3: OWLプロパティ特性の適用

上記で決めたプロパティに、適切な特性を付与します。

⚙️ プロパティ特性の決定

4. ステップ4: 制約と推論の確認

設計したモデルがCQに答えられるか、SPARQLで簡易的に確認します。

# 想定SPARQLクエリ1: 「特定部門に所属するすべてのサーバーを取得」
PREFIX : 
SELECT ?server ?os WHERE {
  ?server a :Server .
  ?server :runsOn ?os .
  ?server :belongsTo : departmentA .
}
# 想定SPARQLクエリ2: 「部下のサーバーを含む上位システムを再帰的に探索(Transitive partOfの場合)」
PREFIX : 
PREFIX owl: 
SELECT ?rootSystem (GROUP_CONCAT(DISTINCT ?server) AS ?allServers) WHERE {
  ?server a :Server .
  ?server :partOf ?system .
  {
    SELECT ?server ?system WHERE {
      ?system owl:equivalentClass ?rootSystem .
      ?server :partOf+ ?system .  # + は推移的探索
    }
  }
}

5. ハンズオン演習: Protégéでのモデル作成手順

実際にProtégéエディタで以下の手順を試してみてください。

  1. 新しいオントロジーを作成し、「IT Asset Management」と名前を付ける
  2. クラスパネルで上記のクラス (Server, Workstation, SoftwareLicense, 等) を追加
  3. プロパティパネルでプロパティ (runsOn, belongsTo, partOf, managedBy ) を追加
  4. 各プロパティの「Characteristics」で Transitive, Inverse, Functional を適切にチェック
  5. 「Individuals」タブで、実際のインスタンス(例: server01, os-linux, dept-sales 等) を作成し、トリプルを割り当てる
  6. Reasoner(推論エンジン)を有効にし、Entailments ビューで自動導出されたトリプル(例: 推移的な partOf 関係) が正しく表示されるか確認
リソース: Protégé (Stanford大学無料提供のデファクトスタンダード・オントロジーエディタ)

6. 理解度チェック(Practice Quiz)

問: IT資産管理オントロジーにおいて、以下のCQに答えるために、どのプロパティに Transitive Property を付与すべきでしょうか?

CQ: 「その企業のトップレベルのシステム構造を再帰的に探索し、ルートとなるルートシステムと、その配下のすべてのサーバーを特定したい」

次のステップ & 一次情報

ここまでで、CQ → 榅語抽出 → プロパティ設計 → OWL特性付与 → 推論確認 の一連のフローを体験いただけたかと思います。
次のLesson 5では、Lesson 1-4で学んだすべての知識を統合し、「GraphRAG連携を見据えた成熟したオントロジー設計の全体像」をまとめます。