OWL演習資料

Webインテリジェンス論
OWL演習
演習の概要
▪ カクテルオントロジーの作成
– クラス階層
– プロパティ階層
– クラス公理
– 推論機構の利用
▪ 第2回レポート
カクテルオントロジーの作成
カクテル
主材料
副材料
(cocktail)
(primary ingredient)
(secondary ingredient)
スクリュードライバー
(screwdriver)
ウォッカ(vodka)
オレンジジュース
(orange juice)
バラライカ(balalaika)
ウォッカ(vodka)
ホワイトキュラソー
(white curacao)
レモンジュース
(lemon juice)
ギムレット(gimlet)
ジン(gin)
ライムジュース
(lime juice)
ジンアンドイット
(gin and it)
ジン(gin)
スイートベルモット
(suite vermouth)
フロリダ(florida)
オレンジジュース
レモンジュース
(orange juice)
(lemon juice)
オントロジ技術入門 第4章 OWLウェブオントロジ言語の記述例より
カクテルオントロジーにおける
クラス階層の作成
▪ スピリッツ (spirits)
– 蒸留酒.醸造酒を蒸留して作られた酒 (出典: Wikipedia)
– ウォッカ,ジン
▪ リキュール (liqueur)
– 蒸留酒に果実やハーブなどの副材料を加えて調製した酒 (出典:
材料
Wikipedia)
(ingredient) – ホワイトキュラソー,スイートベルモット
▪ ジュース (juice)
– 果汁飲料.
– レモンジュース,ライムジュース,グレープフルーツジュース,オレンジジュー
ス
▪ カクテル (cocktail)
– 主にベースとなる酒に,他の酒またはジュースなどを混ぜて作るアルコール
飲料 (出典: Wikipedia)
– スクリュードライバー,バラライカ,ギムレット,ジンアンドイット,フロリダ
カクテルオントロジーにおける
クラス階層の作成
下位クラス 兄弟クラス
の作成
の作成
クラス
の削除
カクテルオントロジーにおける
プロパティ階層の作成
オブジェクト
プロパティ
定義域の追加
値域の追加
サブ
プロパティ
の作成
兄弟プロパティ
の作成
プロパティ
の削除
カクテルオントロジーにおける
プロパティ階層の作成
▪ 材料プロパティ
– 定義域:カクテル
– 値域:ジュース,スピリッツ,リキュール
材料プロパティの値域の定義
ジュース orスピリッツ orリキュール
日本語は文字化けするが、
定義は可能
Classhierarchyから追加すると
Intersectionとなるので注意
カクテルオントロジーにおける
クラス公理の作成
▪ スクリュードライバーは,主材料がウォッカ,副材料
がオレンジジュースからできるカクテル
OWLのプロパティ制約により表現
n
n
スクリュードライバークラスは,主材料プロパティを持ち,その
値の少なくとも一つはウォッカクラスのインスタンスである
スクリュードライバークラスは,副材料プロパティを持ち,その
値の少なくとも一つはオレンジジュースクラスのインスタンス
である
カクテルオントロジーにおける
クラス公理の作成
スクリュードライバー
owl:Thing
主材料:ウォッカ
カクテル
副材料:
オレンジジュース
カクテルオントロジーにおける
クラス公理の作成
カクテルオントロジーにおける
クラス公理の作成
スクリュードライバークラスは,主材料プロパティを持ち,
その値の少なくとも一つはウォッカクラスのインスタンスである
カクテルオントロジーにおける
クラス公理の作成
スクリュードライバークラスの定義
RDF/XML構文
<owl:Classrdf:ID="スクリュードライバー">
<rdfs:subClassOfrdf:resource="#カクテル"/>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty>
<owl:ObjectProperty rdf:about="#主材料"/>
</owl:onProperty>
<owl:someValuesFromrdf:resource="#ウォッカ"/>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:someValuesFromrdf:resource="#オレンジジュース"/>
<owl:onProperty>
<owl:ObjectProperty rdf:about="#副材料"/>
</owl:onProperty>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
Protégé
カクテルオントロジーにおける
クラス公理の作成
カクテル
主材料
副材料
スクリュードライバー ウォッカ
オレンジジュース
バラライカ
ウォッカ
ホワイトキュラソー
レモンジュース
ギムレット
ジン
ライムジュース
ジンアンドイット
ジン
スイートベルモット
フロリダ
オレンジジュース レモンジュース
同様に,上記の表を参考にして,プロパティ制約を作成
推論機構の利用
▪ Protégéと推論エンジンを連携させることにより,クラ
スの自動分類を行うことができる
– Reasoner -> HermiT 1.3.8.413
▪ 推論機構を利用して,以下のカクテルを自動的に判
別させる
– ウォッカベースカクテル
– アルコール入りカクテル
– ノンアルコールカクテル
ウォッカベースカクテルの定義
主材料がウォッカであるカクテル
▪ カクテルクラスの下位クラス
▪ 主材料プロパティを持ち,その値の少なく
とも一つはウォッカクラスのインスタンスで
あるという制約を持つ
▪ 上記を必要十分条件とする
ウォッカベースカクテルの分類
必要条件の場合,主材料がウォッカであっても,
ウォッカベースカクテルであるとは限らないという
意味になるため
分類されない
ウォッカベースカクテルの分類
ウォッカベースカクテルの分類
<owl:Classrdf:ID="ウォッカベースカクテル">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty>
<owl:ObjectProperty rdf:ID="主材料"/>
</owl:onProperty>
<owl:someValuesFromrdf:resource="#ウォッカ"/>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Classrdf:ID="カクテル"/>
</rdfs:subClassOf>
</owl:Class>
<owl:Classrdf:ID="ウォッカベースカクテル">
<owl:equivalentClass>
<owl:Class>
<owl:intersectionOfrdf:parseType="Collection">
<owl:Classrdf:ID="カクテル"/>
<owl:Restriction>
<owl:someValuesFromrdf:resource="#ウォッカ"/>
<owl:onProperty>
<owl:ObjectProperty rdf:ID="主材料"/>
</owl:onProperty>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
</owl:equivalentClass>
</owl:Class>
部分公理(必要条件)
完全公理(必要十分条件)
ウォッカベースカクテルの分類
推論されたクラス階層
Reasoner -> HermiT 1.3.8.413
Reasoner -> Start reasoner
メニューを実行
アルコール入りカクテルの定義
▪ 材料にアルコールが含まれているか,そうでな
いかを区別
▪ スピリッツとリキュールはアルコールが含まれ
ており,ジュースにはアルコールは含まれてい
ない
▪ アルコール飲料というクラスを作成し,その下
位クラスをスピリッツとリキュールとする
アルコール入りカクテルの分類
アルコール入りカクテルの定義
主材料,副材料の別を問わず,
材料にアルコール飲料を含むカクテル
▪ カクテルクラスの下位クラス
▪ 材料プロパティを持ち,その値の少なくとも
一つはアルコール飲料クラスのインスタン
スであるという制約を持つ
▪ 上記を必要十分条件とする
アルコール入りカクテルの分類
アルコール入りカクテルの分類
Reasoner -> Synchronize reasoner
メニューを実行
ノンアルコールカクテルの分類
▪ カクテルのうちアルコール入りカクテル
以外のもの
– フロリダはノンアルコールカクテル
• 主材料:オレンジジュース
• 副材料:レモンジュース
▪ 補集合(owl:complementOf)を用いて
定義可能
ノンアルコールカクテル
owl:Thing
アルコール入り
カクテル
カクテル
ノンアルコールカクテルの分類
ノンアルコールカクテルの分類
Reasoner -> Synchronize reasoner
メニューを実行
フロリダがノンアルコールカクテル
として分類されない
ノンアルコールカクテルの分類
▪ フロリダクラスのプロパティ制約
開世界仮説では,これだけの
条件からは,フロリダに他の材料
(アルコール飲料)が含まれる可能性が
排除できない
ノンアルコールカクテルの分類
フロリダクラスの材料プロパティ(およびその下位プロパティ)の値は,
すべてオレンジジュースクラスまたはレモンジュースクラスの
インスタンスである
ノンアルコールカクテルの分類
<rdfs:subClassOf>
RDF/XML構文
<owl:Restriction>
<owl:allValuesFrom>
<owl:Class>
<owl:unionOf rdf:parseType="Collection">
<owl:Class rdf:about="#オレンジジュース"/>
<owl:Class rdf:about="#レモンジュース"/>
</owl:unionOf>
</owl:Class>
</owl:allValuesFrom>
<owl:onProperty>
<owl:ObjectProperty rdf:ID="材料"/>
</owl:onProperty>
</owl:Restriction>
</rdfs:subClassOf>
ノンアルコールカクテルの分類
▪ ジュースがアルコール飲料ではないというこ
とが定義できていない
▪ ジュースクラスとアルコール飲料クラスの関
係は互いに素であることを定義
– owl:disjointWith
owl:Thing
ジュース
アルコール飲料
ノンアルコールカクテルの分類
ジュースクラスと互いに素であるクラスを追加
ノンアルコールカクテルの分類
Reasoner -> Synchronize reasoner
メニューを実行
Protégé: オントロジーの保存
第2回レポート
▪ 課題1:カクテルオントロジーを作成せよ.(講義中に作成)
▪ 課題2:興味のある分野についてOWLオントロジーを
Protégéを用いて作成せよ.
– 記述したクラス公理(個体列挙,クラスの論理的な組み合わせ,プロパティ制
約)とプロパティ公理(様々なプロパティのタイプ)の意味をレポート中で説明
すること
– クラスの自動分類やプロパティのタイプによる推論など,構築したオントロ
ジーとインスタンスにより,どのような推論が可能かを説明せよ
▪ 課題1と課題2で作成したオントロジーのOWLファイルと課
題2については,構築したオントロジーの定義の意味の説明
とProtégé上でReasonerを実行した結果のスクリーンショッ
トをWord等の文書ファイルに貼り付けて,授業支援システ
ムから提出せよ.
▪ レポート提出締切: 7月5日(火) 23:59
参考文献
▪ オントロジ技術入門 AIDOS編著 東京電機大
学出版局 ISBN4-501-54010-9