More Related Content
More from Kazuro Fukuhara (12)
OWLで何が書けるか
- 1. ウェブオントロジー言語で
何が書けるか
福原和朗
twitter.com/kazurof
2012-11-25
1
- 2. 前口上
• 巷をにぎわすキーワード
• セマンティックウェブ
– 「インターネットの情報にメタ情報も記述して、
色々便利にしましょう。」というW3Cのプロジェクト。
– SW と略記します。
• オントロジー
• ウェブオントロジー言語
– Web Ontology Language (OWL)
2
- 4. そもそもOWLとはなんぞや
• SWにおいて使われるメタデータの記述言語
– 「メタ」です。本文そのものは含みません。
• ウェブ上のドキュメントに対するメタ情報を記述する。
– 作者、発行日、内容のキーワード、などなど、、、
• 文字もデータとして持てるので、無理やり本文を入れ
られないこともない。
• データの記述、知識表現のための仕様
• データの識別にURIを使う。
– http://example.org/somedata#nantoka
4
- 5. 続き
• 物理的な表現形式
– RDF/XML
• XMLベースの表記
– N-Triples
• 主語、述語、目的語を並べて書くという、素朴な表記
– Turtle
• N-Triplesに便利な書式を加えた表記
– 他に、関数型構文やマンチェスター構文などがある。
• 「記述論理」を理論的な基礎としている。
5
- 6. 記述論理とはなんぞや
• Description Logic (DL と略記)
• 知識表現の方式
– 人工知能の分野でのKL-ONEやKRYPTONなど、従
前にある知識表現システムを改良させたもの
– 意味の記述
– 推論システムの実装可能性
• 矛盾がないかの計算
• 何らかの新しい知識を導出できるかどうかの計算
• 利用可能なルールを組み合わせることで、多
数のサブ言語を構成可能
6
- 9. SHOIN(D)
• SHOIN(D)
– ALC言語 と 推移的ロール (S)
– ロール階層(H)
– ONE-OF概念(O)
– 逆ロール (I)
– 制限なし数量限定(N)
– データ型 + データ型ロール (2個まとめて(D))
• まずは、ALC言語というものを解説します。
9
- 11. 概念と個体
• 素朴な集合論に該当する
– 集合の要素が個体。集合が概念。
赤字、概念。 青字、個体。
概念:「冷たい飲物」
概念:「炭酸飲料」
概念:「温かい飲物」
個体:コーラ
概念:「コーヒー」
概念:「お酒」 個体:牛乳
個体:甘酒
個体:ビール 個体:ボス
概念:「ジュース」
概念:「菓子」
個体:ポンジュース
個体:チョコレート 11
- 12. 解説
• 否定、積集合、和集合、包含関係が記述可能
– 否定 ¬, 連言 ∩, 選言 ∪ , 部分集合⊆
• 例
概念:「温かい飲物」
– コーヒー ⊆ 温かい飲み物
概念:「コーヒー」
– ビール ∈ お酒 ∩ 炭酸飲料
– ¬ジュース
• コーラ、ビール、甘酒など。 概念:「炭酸飲料」
コーラ
ビール
概念:「お酒」 12
- 13. 組み込みの概念
• 最大概念
– すべてを含めている概念 T
• すべての概念の親概念
– いわゆる全体集合
• 空概念
– 何も含まない概念 ⊥
• すべての概念の子概念
– いわゆる空集合 (φ)
13
- 14. 知識ベースの表記
• 式でどのように表記するか
• TBox
– terminological component の略
– 概念の定義
– 概念同士の関係の定義
• [ある概念] ⊆ [他の概念] という形式
• ABox
– assertion component の略
– 個体がどの概念に属するかの定義
14
- 15. 概念の関係
• 概念の包含関係
– [概念A] ⊆ [概念B]
• 概念Aに含まれる個体は、概念Bに含まれることを意味
する。
• 「概念Aの要素を概念Bの要素とみなして問題ない」
– オブジェクト指向で言うところの階層関係、あるい
は親子関係。
15
- 17. 例:三角形
• 直角三角形 ⊆ 3辺がa2 = b2 +c2 である三角形
• 3辺がa2 = b2 +c2である三角形 ⊆ 直角三角形
– この2個で、
• 直角三角形 ≡ 3辺がa2 = b2 +c2である三角形
– と、表記できる。
• 「a2 = b2 +c2 である三角形」を使って「直角三角
形」を定義した。
– 同時に逆も定義している。
17
- 18. 定義の他の例
• 6の倍数 ⊆ 3の倍数∩2の倍数
• 3の倍数 ∩ 2の倍数⊆6の倍数
• 6の倍数 ≡ 3の倍数∩2の倍数 と、表記で
きる。
• 組み合わされた概念を1つの概念に定義す
ることが可能。
– 否定 ¬, 連言 ∩, 選言 ∪ の組み合わせ。
18
- 19. 飲み物での例
• TBox
– 冷たい飲み物
• 概念の定義
– 温かい飲み物
– 炭酸飲料 ⊆ 冷たい飲み物
• 「炭酸飲料は冷たい飲み物の子概念である」という概
念同士の関係の定義
– 飲み物 ≡ 温かい飲み物 ∪冷たい飲み物
• 図にはありませんが、このような概念を既存概念の組
み合わせから新たに定義することが可能。
19
- 20. 飲み物での例(続き)
• ABox
– 冷たい飲み物(コーラ)
• 「コーラは冷たい飲み物である」という意味
– 炭酸飲料(ビール)
– 菓子(チョコレート)
– ¬(温かい飲み物 ∪冷たい飲み物)(チョコレート)
• 「チョコレートは温かい飲み物でも冷たい飲み物でもな
い」という意味。
20
- 21. 解釈
• 概念、ロール、個体は決め事(定義)だけの
存在
– 今までの例では説明上わかり易い名前を使って
ますが、所詮名前だけ。ぶっちゃけ記号です。
• 知識ベースに対して合致するような具体的な
実際の物(=解釈)を当てはめて、妥当か否
か判定します。
– 「コレコレの個体にはナニナニを当てはめる」
• OWLで何が書けるかとは直接関係しません。
– 記述論理での推論には必要
21
- 22. 解釈の定義
• 解釈 I
– 具体的な値の集合Δ (デルタ) と、
関数 ・ (中黒) の、ペア
• 関数 ・
– TBoxの各概念 → Δ の部分集合
– ABoxの各個体 → Δ の要素
• 「当てはめる値の集合と、それぞれの概念へ
の当てはめを決めるもの」
22
- 23. 妥当な解釈の例
• TBox
– 素数 偶数
• ABox
– 素数(a) 偶数(b)
• 妥当な解釈
– Δ = {5, 4} , 素数→ {5} , 偶数→{4}, a → 5 , b → 4
• 妥当でない解釈
– Δ = {6, 4} , 素数→ {6} , 偶数→{4}, a → 6 , b → 4
• 妥当な解釈を知識ベースのモデルと呼ぶ
23
- 24. 妥当か否かの判定
• 「解釈が知識ベースの妥当な解釈かどうかの判
定(=充足判定)を行う。」という仕様が記述論
理に組み込まれています。
• 利用可能なルールの組み合せごとに、判定の
アルゴリズムとその計算量(オーダー)が研究さ
れています。
– タブロー法
– 「PSPACEである」「NLOGである」など。
24
- 25. ロール
• 個体同士の関係
– 個体と個体のペア
– 概念同士ではありません。
• 例
– タラの親はサザエである。
– 2より小さい数は1である。
– ミルカさんの得意科目は数学である。
• 関係の方向を意識します。
– 「タラの親はサザエ」といったら逆は普通成り立た
ない。 25
- 26. 図による例
義兄
カツオ マスオ
義弟
夫
弟
妻
姉
サザエ
親
叔父
子
子 親
甥
タラ タラの親はサザエ
26
- 27. 図の解説
• 前頁の例の場合
– 親 = {(タラ, サザエ) ,(タラ,マスオ)}
– 子 = {(サザエ, タラ) ,(マスオ, タラ)}
– 弟 = {(サザエ, カツオ)}
• などと記述できる。
• (タラ, サザエ) のようなペアをロールと呼びま
すが、親をロールと呼ぶ場合もあります。
– 文脈で判断。
27
- 28. ロールによる概念の構築
• Rをロール、Cを概念とします。
• ∀ R.C
– どのロール”R”の値も、概念Cの個体である。
– “∀ 子.男” -> 全ての子が男である個体。
• サザエ
• ∃ R.C
– 何らかのロール”R”の値が存在し、その値は概念
Cの個体である。
– “∃ 親.女” -> ある親は女である個体。
• タラ
28
- 29. 図示
• ∀ 子. 男
– 全ての子が男である個体。
– サザエが該当する。
• すべての子供(=タラ)は男。
– ナミヘイは該当しない。
• 子供にサザエ(=女)がいるから。
– 実はカツオとタラも該当する。
• 子供がいないから。
子 子
サザエ
ナミヘイ タラ
子 カツオ 29
- 30. 図示2
• ∃ 親.女
– ある親は女である個体。
– タラとサザエが該当する
• サザエ(=女)、フネ(=女)が存在するから。
– マスオは該当しない
• そのようなロールが存在しないから
親 親
フネ サザエ
タラ
マスオ 親
30
- 31. ロールによる概念(別の例)
より大きい
a c
より小さい
より大きい
より大きい Cより小さいのはB
より小さい
より小さい
b
• TBox
– 整数の集合 X
• 仮に、X ={a, b, c} とします。
– 最大の数 ≡X ∩ ∀ より小さい X
– 最大でない数 ≡X ∩ ∃ より大きい X 31
- 32. 別例(続き)
• ABox
– より大きい(a,b) – 最大の数(c)
• aより大きいのはb • Xに属し、全ての“より小さい”プロ
• a < b(以下同様) パティ値が X の要素である。
– より大きい(b,c) – 最大でない数(a)
• b<c • Xに属し、“より大きい”プロパティ
– より大きい(a,c) 値が存在し、Xの要素である。
– より小さい(b,a) – 最大でない数(b)
• b > a (以下同様)
– より小さい(c,b)
– より小さい(c,a) では、これの
妥当な解釈は? 32
- 33. 別例の解釈
• 解釈の例
– Δ = {1, 2, 3} 、a = 1、b = 2、c = 3
– Δ = {4, 5, 6} 、a = 4、b = 5、c = 6
• ロールと概念をも組み合わせて新たな概念を
作ることができる。
– 「最大の数 ≡ X ∩ ∀ より小さい 整数」
33
- 34. SHOIN(D)(再掲)
• SHOIN(D)
– ALC言語 と 推移的ロール (S)
– ロール階層(H)
– ONE-OF概念(O)
– 逆ロール (I)
– 制限なし数量限定(N)
– データ型 + データ型ロール( 2個まとめて(D))
• ALC言語は説明できたので、順次追加要素を
説明します。
34
- 35. 推移的ロール
• 例
– 先祖の先祖も先祖
– 大きいものより大きいものは大きい。
• あるロールRが推移的である。
– (x,y) ∈R ∧ (y,z) ∈ R ⇒ (x,z) ∈ R
• ALC言語 に 推移的ロール を追加して S
35
- 38. ONE-OF概念 (O)
• 列挙を表現する概念
– 例:曜日、トランプのスートなど。
– {スペード、ハート、ダイヤ、クラブ}
• ロールでの例
– ∃hasSuit.{スペード、ハート}
• スペードかハートのいずれかを持つ個体
– ∃hasSuit.{ハート}
• ハートを持つ個体
38
- 39. 逆ロール (I)
• 例
– 「親」の逆は「子」
– 「大きい」の逆は「小さい」
• ロールR-はRの逆ロールである。
– (x,y) ∈ R ⇔ (x,y) ∈ RI
• I は inverse の I
39
- 40. 制限なし数量限定(N)
• 「数量限定」
– ∃R.C
• 何らかのロール”R”の値が存在し、その値は概念Cの
個体である。
– これを拡張し、ロール”R”の値が存在する数を指
定する表現。
• ≦nR
– n個以下のロールRが存在する。
• ≧nR
– n個以上のロールRが存在する。
40
- 41. 「制限なし」
• 「制限なし」
– 通常は、∃R.C などと値の概念を表現するが、そ
のような概念を定めないという意味で、「制限な
し」
• 制限ありの場合は、以下のようになる
– ≦n R.C →Cに属する個体でロールRの値である
値がn個以下存在する。
– ≧n R.C →Cに属する個体でロールRの値である
値がn個以上存在する。
– 言語名は(Q)
41
- 42. データ型 と データ型ロール((D))
• データ型
– 数字、文字列、日付などの総称
– 個体では、解釈を与えて実際の当てはめる必要
があるが、データ型ならそのまま使える。
• 文字列を名前として使える。
– データ型の値から発生するロールは持てない。
• データ型ロール
– ロールの値がデータ型であるようなロール
– 今までのものは個体値型ロールと呼ぶ。
• 言語名は2個まとめて(D) 42
- 43. SHOIN(D)(再々掲)
• SHOIN(D)
– ALC言語 と 推移的ロール (S)
– ロール階層(H)
– ONE-OF概念(O)
– 逆ロール (I)
– 制限なし数量限定(N)
– データ型 + データ型ロール (2個まとめて(D))
• ここまでで、 SHOIN(D)を説明できました。
43
- 44. OWLで何が書けるかまとめ
• 個体
– 表現するデータそのもの
• 概念
– 個体の所属する集合
– 論理式の組み合わせで新たな概念を作成可能
– ロールから、概念を構成することが可能
• ロール
– 個体同士の関係の記述
– 個体とロールで、有向グラフの形になります。
44
- 48. RDBのテーブルをDLで表現する例
• 例: 商品テーブルと受注テーブル
• 商品 {商品コード, 商品名, 単価}
• 受注 {受注番号, 商品コード , 数量}
商品コード 商品名 単価 受注番号 商品コード 数量
0001 みかん 100 01 0001 3
0002 りんご 150 02 0001 4
03 0002 5
商品 受注
48
- 49. 記述論理の枠での図示
参照整合性制約を表現
商品 受注
x a
受注対象商品
商品コード 受注番号 数量
商品名 単価
0001 みかん 100 01 100
•x とかa はレコードそのものを表現している。
•変数名みたいなものなのでxやaを使う。
•「0001」とか「みかん」はデータ値なのでそのまま書く。 49
- 50. DLでの例
• TBox
– 商品概念 ≡ 商品 ∩ =1 商品コード ∩
=1 商品名 ∩ =1 単価
– 受注概念 ≡ 受注 ∩=1 受注番号 ∩
=1 商品 ∩ =1 数量
※「=1 商品コード」は、「≦1 商品コード∩ ≧1 商品コード」の略。
「=1 商品コード . 文字列」などと書きたいけど制限なしなのででき
ない。 (D)であって(Q)ではない。
50
- 51. 解説
• 個体の分類としての商品と、各項目を持ってい
る商品は別の物なので、別の名前を付与。
– 「商品概念」と「商品」
• 自然な命名が思いつかない。
• 慣れていないのか、記述論理が高級すぎるのか。
– 個体の属する概念と、他の個体とのつながりは別の
話。
51
- 52. • ABox
– 商品(x) – 受注(a)
– 商品コード(x, “0001”) – 受注番号(a, “01”)
– 商品名(x, “みかん”) – 受注対象商品(a, x)
– 単価(x, “100”) – 受注 a の対象商品
– 商品(y) はx という意味。
– 商品コード(y, “0002”) – 数量(a, “3”)
– 商品名(y, “りんご”)
– 単価(y, “150”)
52
- 53. オブジェクト指向としての特徴
• クラス
– 多重継承を許す。
• プログラミング言語では多重継承を許すと使いこなす
のが大変なことになるが、データの表現ならば許した
ほうが便利。
• いわゆる「タグ」
• プロパティ
– クラスなしで単体で存在しうる。
• 制約の制限とは別である。
– 継承も多重継承も可能。
• 個体のペアの集合の包含関係 53
- 54. 続き
• インスタンス
– あるインスタンスが、全く別の複数のクラスに属す
ることを許す。
• 多重継承しているクラスに属するという意味ではない。
• プログラミング言語では聞いたことがない。
• RDBでのテーブルとレコードの関係では実現できない。
– 同じクラスに属するインスタンスが異なるプロパティ
を持っていて良い。
• クラスに属することがプロパティを制約するわけではない。
54
- 55. OWLの使い道
• いろいろな人が個別に書いたオレオレオントロ
ジーを透過的に処理することができそう。
– 各人が、個別の概念とロールを使って知識ベースを
作る。
– それらの知識ベースについて、同じもの決定する知
識ベースを追加する。
• 翻訳をするような知識ベース
– 翻訳済みの知識ベースについて処理をする。
• 分散的に作られたデータを統合して処理する。
• セマンティックウェブ向き
– 当たり前といえば当たり前か。。。 55
- 59. 参考文献2
• The Description Logic Handbook Second edition
– http://ebooks.cambridge.org/ebook.jsf?bid=CBO97
80511711787
– 内容それなりにしっかり。
• リファレンスとしても使える。
– ALC言語とその派生の話が多い。
– OWL1 SHOIN(D)
59
- 60. 参考文献3
• Wikipedia
– http://en.wikipedia.org/wiki/Description_logic
– http://en.wikipedia.org/wiki/Web_Ontology_Lang
uage
– OWL1, 2. SHOIN(D) , SROIQ(D) 全部触れてある
– wikipedia日本語版は記述いまいち
60
- 61. 参考文献4
• Foundations of Description Logics
– http://www.aifb.kit.edu/images/1/19/DL-Intro.pdf
– http://www.semantic-web-
book.org/w/images/a/a9/DL-Foundations-
RW2011.pdf
– カールスルーエ大学(ドイツ)の講義テキスト
• プレゼン資料がわかりやすい!
– OWL2 , SROIQ(D)
61