まず、このオントロジーで答えられるべき業務上の問いを5つ定義します。
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 と組み合わせて使用 |
上記で決めたプロパティに、適切な特性を付与します。
partOf (例: サブシステム partOf システム partOf 企業): Transitive Property - 多階層の資産構造探索に有用managedBy (例: システム管理者 managedBy 部門): Inverse Property - 逆方向から「誰が管理しているか」を即座に特定installs: 特性を付与しない(デフォルト) - 明示的なトリプルのみを使用belongsTo: Functional Property (一対一の対応) - PCは一つの部門にのみ所属設計したモデルが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 . # + は推移的探索
}
}
}
実際にProtégéエディタで以下の手順を試してみてください。
Server, Workstation, SoftwareLicense, 等) を追加runsOn, belongsTo, partOf, managedBy ) を追加Transitive, Inverse, Functional を適切にチェックserver01, os-linux, dept-sales 等) を作成し、トリプルを割り当てるEntailments ビューで自動導出されたトリプル(例: 推移的な partOf 関係) が正しく表示されるか確認問: IT資産管理オントロジーにおいて、以下のCQに答えるために、どのプロパティに Transitive Property を付与すべきでしょうか?
CQ: 「その企業のトップレベルのシステム構造を再帰的に探索し、ルートとなるルートシステムと、その配下のすべてのサーバーを特定したい」
ここまでで、CQ → 榅語抽出 → プロパティ設計 → OWL特性付与 → 推論確認 の一連のフローを体験いただけたかと思います。
次のLesson 5では、Lesson 1-4で学んだすべての知識を統合し、「GraphRAG連携を見据えた成熟したオントロジー設計の全体像」をまとめます。