2. ウェブ オントロジ 言・ ー 語 OWL
l
オントロジ の 史ー 歴
l
2004 年に W3C によって 告されたのが、勧 OWL Web Ontology Language
l
OWL の 3 。種類
l
OWL には、 述 理に基づく 密な記 論 厳 OWL DL 。
l
OWL DL 易版の簡 OWL Lite 。
l
RDF スキ マの としてより自由な 述が可能なー 拡張 記 OWL Full がある。
3. ウェブ オントロジ とは・ ー
l
RDF スキ マによシンプル 述から一 踏み んだ、ー 記 歩 込
l
情 の な 理表 のためにオントロジ報 詳細 論 現 ー (Ontology) を用います。
l
コンピュ タを用いた知 表 のオントロジ は「概念の明示的な 」ー 識 現 ー 規約
l
「分野の知 を 算 で 理できるように明示的、 理的に 述し、識 計 機 処 論 記
l
その知 の共有と再利用」を可能にする。識
l
その目的は、
l
々のコミュニティでつくられるオントロジ の共有と相互 用。別 ー 運
l
オントロジ の改 や 合が可能な 展性の 保。ー 訂 統 発 確
l
数のオントロジ やデ タの の不合成の 出。複 ー ー 間 検
l
多 な知 を 述するための表 力とスケ ラビリティのバランス。様 識 記 現 ー
4. OWL Lite/OWL DL/OWL
l
オントロジ のコンセプトとしてー
l
オントロジ には、 なる の を示すレベルから、ー 異 語彙 関係
l
密な 理的 を くための概念 述を行うもの。厳 論 帰結 導 記
l
具体的な 解 を念 に置いた(タスクオントロジ )問題 決 頭 ー
l
ある 域の概念を 用的に定 するもの(ドメインオントロジ ) 領 汎 義 ー
5. OWL オントロジ の 成ー 構
l
オントロジ 全体の情 を 述するヘッダ。ー 報 記
l
クラスの定 を 述するクラス公理。義 記
l
プロパティのグロ バルな定 を 述するプロパティ公理。ー 義 記
l
体(インスタンス)を 述する事 。個 記 実
l
1 つのオントロジ あ上 のすべてを持つことも、ー 記
l
いくつかの 成要素だけをもつこともできる。構
l
公理、事 はいくつあっても わない。実 構
6. l
OWL の 々なニ ズを 一の でカバ するのはなく、様 ー 単 単語 ー 3 つのサブ言 を用意。語
l
OWL DL OWL の をすべて利用しつつ、 述 理に基づき、語彙 記 論
l
理 算の完全性(すべての含意は 算可能)。論 計 計
l
定可能性(すべての 算は有限 内に完了する)を 保する 。決 計 時間 確 設計
l
OWL DL は 密な推 を行うシステムのためのオントロジ を 述。厳 論 ー 記
l
人口知能や 理 述に基づく推 エンジンを可能にする。論 記 論
l
OWL Lite クラス の と基本的な制 条件の 述が階層 構築 約 記
l
主目的である 合に使える場 OWL DL のサブセット。
l
OWL Lite では OWL DL/OWL Full で使える の一部が利用できなかったり、語彙
l
の使い方が制限されているが、その分語彙 OWL Lite を 理する。処
l
アプリケ ションは比 的容易に 装可能。ー 較 実
l
OWL Full OWL の と語彙 RDF の柔 性を最大限利用するための言 。軟 語
l
OWL の中で最も表 力があるが、 算の完全性、 定可能性は保 されない。現 計 決 証
l
すでに RDF スキ マなどで表 されている をより に 述したり、ー 現 語彙 詳細 記
l
相互に づけたりする。関係
l
クラスとインスタンスの区 を柔 にした 用性を求める 合に使う。別 軟 実 場
7. OWL の基本クラス
l
owl:Class
l
ある概念を抽象化して表 。現
l
すべての 体は少なくとも1つの個 owl:Class に属さなければならない。
l
owl:Class は rdfs:Class のサブクラス。
l
owl: Thing
l
OWL の み みクラスで組 込 OWL で 述する世界の 体全体に 。記 個 対応
l
すべての 体個 ( インスタンス ) は owl:Thing のインスタンス。
l
すべての OWL クラスは owl:Thing のサブクラスになる。
l
owl:Nothing
l
OWL の み みクラスでインスタンスを1つも持たない、「空集合」に 。組 込 対応
l
定 により、空集合はあらゆる集合の部分集合となる。義
l
owl:Nothing はすべての OWL クラスのサブクラスとなる。
8. クラス表 とクラス公理現
l
OWL のクラスは、クラス表 (現 class description )という 成要素を み合わせ、構 組
l
クラス公理 (class axiom) として定 する。義
l
1. URI 参照によるクラスの名前付け。
l
2. クラスのインスタンスとなる 体の列 。個 挙
l
3. プロパティの制 。約
l
4 2 つ以上のクラス表 の 。現 積
l
5. 2 つ以上のクラス表 の和。現
l
6 クラス表 の否定。現
9. クラスの表現
l
クラスメンバ の列ー 挙
l
クラスはその外延のメンバ となる 体をすべて列 することで表 する。ー 個 挙 現
l
メンバ の列 にー 挙 owl:oneOf プロパティを使う。
l
owl:oneOf
l
OWL クラスのインスタンスを 不足なく列 する 。過 挙
l
定 域は義 owl:Class, 域は値 rdf:list 。
l
OWL Lite では使用できない。
10. クラスメンバ の列ー 挙
l
列 した 体がそのクラスの外延の全メンバ で、挙 個 ー
l
それ以上でもそれ以下でもないことを示すために、
l
owl:oneOf は RDF のコレクションを目的 とする。語
l
XML/RDF ならば、 parseType=”Collection” 属性を用いる。
l
下 の例ははストラヴィンスキ の三大バレエを表す匿名クラス。記 ー
l
<owl: class>
l
<owl: oneOf rdf:parseType>
l
<owl: Thing rdf:about=”#Firebird” />
l
<owl: Thing rdf:about=”#Petrouchka” />
l
<owl: Thing rdf:about=”#RiteOfSpring” />
l
</owl: oneOf >
l
</owl: Class>
11. クラス 理 み合わせ論 組
l
理 み合わせは論 組
l
クラスを のクラスの和(別 owl:intersectionOf )
l
クラスを のクラスの (別 積 owl:unionOf )
l
クラスを のクラスの否定(別 owl:complementOf )として表 する。現
l
、和として み合わせる 合はそのクラスは 不足なく列 する。積 組 場 過 挙
12. l
owl:intersectionOf
l
クラスを列 したクラスの として表 。挙 積 現
l
主 クラスのインスタンスは、列 した各クラスのインスタンスに共通する。語 挙
l
定 域は義 owl:Class 、 域は値 rdf:List 。
l
下 はの例はクラッシク音 の 入記 楽 輸 盤 CD を表 するクラスを 表 で 述。現 積 現 記
l
<owl:Class>
l
<owl:intersectionOf rdf:parseType=”Collection”>
l
<owl:Class rdf:about=”#ClassicalMusicCD”/>
l
<owl:Class rdf:about=”#ImportedCD”/>
l
</owl:intersectionOf>
l
</owl:Class>
14. owl:unionOf
l
クラスを列 したクラスの和として表 。挙 現
l
主 クラスのインスタンスには列 した各クラスのインスタンスが含まれる。語 挙
l
定 域は義 owl:Class 、 域は値 rdf:List OWL Lite では使用できない。
l
下 の例は音記 楽 CD をクラッシクとそれ以外のクラスに分 した 合の音類 場 楽 CD 全体のクラス。
l
<owl:Class>
l
<owl:unionOf rdf:parseType=”Collection”>
l
<owl:Class rdf:about=”#ClassicalMusicCD” />
l
<owl:Class rdf:about=”#NonClassicalMusicCD” />
l
</owl:unionOf>
l
</owl:Class>
15. l
この匿名クラス表 だと、現
l
すべての 体(個 owl:Thing )のうち、
l
ClassicalMusicCD クラスのインスタンスでない外延メンバ が、ー
l
すべて含まれてしまうのでダメ。
l
<owl:Class>
l
<owl:complementOf>
l
<owl:Class rdf:about=”#ClassicalMusicCD” />
l
</owl:complementOf>
l
</owl:Class>
16. l
この 合、匿名クラスと音場 楽 CD クラスの が求めるクラスになる。積
l
<owl:Class>
l
<owl:intersectionOf rdf:parseType=”Collection”>
l
<owl:Class rdf:about=”#MusicCD” />
l
<owl:Class>
l
<owl:complementOf>
l
<owl:Class rdf:about=”#ClassicalMusicCD” />
l
</owl:complementOf>
l
</owl:Class>
l
</owl:intersectionOf>
l
</owl:Class>
18. に する制値 関 約
l
に する制 は、クラスと共に用いる 合のプロパティの 域(目的 )を示す。値 関 約 場 値 語
l
これは OWL の み みプロパティの下 の3つで表す。組 込 記
l
owl:allValuesFrom
l
owl:someValuesFrom
l
owl:hasValue
19. プロパティの制 によるクラス表約 現
l
プロパティの制 は約 owl:Restriction クラスを使う。
l
owl:onProperty で制 を与えるプロパティを明示して表 。約 現
l
owl:Restriction
l
プロパティによる制 を 述。約 記
l
owl:Restriction は owl:Class のサブクラスであると同 に、時 rdf:Class のインスタンス。
l
owl:Restriction は 制的に匿名クラスになる。強
l
制 象を必ず約対 1 一つ持つことが前提になる( 、もしくは出 回数の制 式)。値 現 約
l
owl:onProperty
l
owl:Restriction による制 の 象となるプロパティを示す。約 対
l
定 域は義 owl:Restriction 、 域は値 rdf:Property 。
20. l
owl:allValuesFrom
l
owl:Restriction をクラス表 、もしくはデ タ 域に びつける。現 ー 値 結
l
( OWL Lite では目的 はクラス名によるクラス表 に限られる)語 現
l
定 域は義 owl:Restriction 域は値 rdfs:Class 。
l
主 の語 Restriction クラスの全インスタンスについて、その制 象になるプロパティの が、約対 値
l
すべて目的 クラスのインスタンスもしくは目的 デ タ 域で示された である。語 語 ー 値 値
l
述 理の全称 号( )と同 の きをする。語論 記 ∀ 様 働
l
下 の例はすべての演奏者が弦 器奏者である 体のクラスを表 。記 楽 個 現
l
<owl:Restriction>
l
<owl:onProperty rdf:resource=”#hasMember” />
l
<owl:allValuesFrom rdf:resource=”#StringPlayerr” />
l
</owl:Restriction>
21. l
owl:someValueFrom
l
owl:Restriction をクラス表 、もしくはデ タ 域に びつける。現 ー 値 結
l
OWL Lite では目的 はクラス名によるクラス表 に限られる。語 現
l
定 域は義 owl:Restriction 、 域は値 rdfs:Class 。
l
述 理の存在 号( )と同 の きをする。語論 記 ∃ 様 働
l
下 の例は、演奏者のうち、少なくとも一人はピアノ奏者がいる 体の集まり。記 個
l
<owl:Restriction>
l
<owl:onProperty rdf:resource=”#hasMember” />
l
<owl:onProperty rdf:resource=”#PianoPlayer” />
l
</owl:Restriction>
22. l
owl:hasValue
l
owl:Restriction を1つの 体、もしくはデ タ 域に びつける。個 ー 値 結
l
OWL Lite では owl:hasValue は使えない。
l
定 域は義 owl:Restriction だが、 域は定められていない。値
l
owl:hasValue は主 の語 Restriction クラスの全インスタンスについて、
l
その制 象プロパティの のうち、少なくとも1つが目的 で示された に等しい。約対 値 語 値
l
下 の例は、サトルがメンバ として参加している 体の集まりであるクラス。記 ー 個
l
<owl:Restriction>
l
<owl:onProperty rdf:resource=”#hasMember” />
l
<owl:hasValue rdf:resource=”#http://example.org/people#Satoru” />
l
</owl:Restriction>
23. l
以上のように、いずれもプロパティ hasMember の を限定することで、値
l
クラスがある性 をもった 体(演奏 体)の集まりとして表 した。質 個 団 現
l
抽象 文でのクラス制 は構 約 restriction() 部分に、
l
象プロパティ名と制 条件を列 して表 すると同 の きをする。対 約 挙 現 様 働
l
restriction(ex:hasMember allValuesFrom(ex:StringPlayer))
24. l
OWL では、 RDF の 合と同 、 体は同じプロパティを任意の数だけもつことができる。場 様 個
l
このプロパティの出 回数(現 cardinality )も、クラスの性 を表 する重要な要素。質 現
l
出 回数の制 は現 約
l
owl:maxCardinality
l
owl:minCardinality
l
owl:cardinality
出 回数に する制現 関 約
25. l
owl:maxCardinality
l
主語 Ristriction クラスの全インスタンスについて、
l
その制 象プロパティの出 回数が、目的 として示された 以下であることを示す。約対 現 語 値
l
定 域は義 owl:Restriction 、 域は値 &xsd;nonNegativeInteger 。
l
OWL Lite では、 域は値 0 もしくは 1 。
l
この が値 0 であるときは、そのプロパティは禁止されている。
l
(このプロパティを持つ 体は主 クラスの外延には属さない)個 語
l
また、この が1つであるときは、主 クラスのインスタンスが、値 語
l
このプロパティを持つとき、その は1つに定まる。値
l
名別 functional プロパティ。
l
下 の例は、リ ダ は最大1人としう性 をもつクラス。記 ー ー 質
l
体に してプロパティの が高々1つに定まる個 対 値
l
<owl:Restriction>
l
<owl:onProperty rdf:resource=”#leader” />
l
<owl:maxCardinality rdf:datatype=”&xsd;nonNegativeInteger”>1</owl:maxCardinality>
l
</owl:Restriction>
26. l
owl:minCardinality
l
主 の全インスタンスについて、語
l
その制 象プロパティの出 回数が、目的 として示された 以上であることを示す。約対 現 語 値
l
定 域は義 owl:Restriction 、 域は値 &xsd;nonNegativeInteger 。
l
OWL Lite では 域は値 0 もしくは 1 。
l
この が値 1 以上であるときは、そのプロパティは必 。 須
l
下 の例は、ディレクタが必ず1人いる、 体のクラス表 。ディレクタが必 プロパティ。記 個 現 須
l
<owl:Restriction>
l
<owl:onProperty rdf:resource=”#director” />
l
<owl:minCardinality rdf:datatype=”&xsd;nonNegativeInteger”>1</owl:minCardinality>
l
</owl:Restriction>
27. l
owl:cardinality
l
主 の全インスタンスについて、語
l
その制 象プロパティの出 回数が、目的 として示された に常に等しい。約対 現 語 値
l
定 域は義 owl:Restriction 、 域は値 &xsd;nonNegativeInteger 。
l
OWL Lite では 域は値 0 、もしくは 1 。
l
これは owl:maxCardinality と owl:minCardinality が同じであるときに 略 法として使う。簡 記
l
下 の例は、メンバ がちょうど記 ー 4 人である、クラス表 。現
l
<owl:Restriction>
l
<owl:onProperty rdf:resource=”#hasMember” />
l
<owl:cardinality rdf:datatype=”&xsd;nonNegativeInteger”>4</owl:cardinality>
l
</owl:Restriction>
29. サブクラスによる必要条件の定義
l
クラスを名前付けし、クラス表 をサブクラスとして 述すると、現 記
l
そのクラスに属するための必要条件を与える部分公理( partial aximo )となる。
l
OWL Lite では名前付けクラス表 、現
l
もしくは制 条件で表 した匿名クラス(制 クラス)のみを クラスにすることができる。約 現 約 親
l
<owl:Class rdf:ID=”#PianoTrio”>
l
<rdfs:subClassOf>
l
<owl:Restriction>
l
<owl:onProperty rdf:resource=”#hasMember />
l
<owl:someValuesFrom rdf:resource=”#PianoPlayer” />
l
</owl:Restriction>
l
</rdfs:subClassOf>
l
</owl:Class>
31. l
クラス公理は、 数のクラス表 のサブクラスとして 述することもできる。複 現 記
l
<owlClass rdf:ID=”PianoTrio”>
l
<rdfs:subClassOf>
l
<owl:Restriction>
l
<owl:onProperty rdf:resource=”#hasMember” />
l
<owl:someValuesFrom rdf:resource=”#PianoPlayer” />
l
</owl:Restriction>
l
</rdfs:subClassOf>
l
<rdfs:subClassOf>
l
<owl:Restriction>
l
<owl:onProperty rdf:resource=”#hasMember” />
l
<owl:cardinality rdf:datatype=”&xsd;nonNegativeInteger” >3</owl:cardinality>
l
</owl:Restriction>
l
</rdfs:subClassOf>
l
</owl:ClassOf>
32. l
2 番目の制 クラス表 を加えることにより、ピアノ トリオは、約 現 ・
l
「3人の奏者で 成され、そのうちの少なくとも1人はピアノ奏者である」構
l
という 体の集まったクラス表 であることを下 に示す。個 現 記
l
抽象 文でのクラス公理は、構 Class() 内に、クラス名、完全 (complete) 、
l
もしくは部分 (partial) 、クラス表 を列 していく。現 挙
l
Class(ex:PianoTrio partial
l
restriction(ex:hasMember someValuesFrom(ex:PianoPlayer))
l
restriction(ex:hasMember cardinality(3))
l
)
33. 同等なクラスと必要十分条件の定義
l
名前付けしたクラスを主 とし、語
l
目的 クラス表 と同等であると 述すると、語 現 記
l
主 クラスに属するための必要十分条件を与える完全公理(語 complete axiom )になる。
l
owl:equivalentClass
l
主 クラスと目的 クラスが同一の 体の集合を外延として持つ。語 語 個
l
必ずしも 者のクラスが同じクラスであるという意味ではない。両
l
owl:equivalentClass の定 域、 域はいずれも義 値 owl:Class である。
l
rdfs:subClassOf のサブプロパティ。
l
OWL Liite では主 クラスの名前、目的 クラスの名前、語 語
l
もしくは制 クラス表 でなければならない。約 現
l
equivalentClass である2つのクラスは、互いにサブクラスの状 になる。態
35. l
クラス外延のメンバ を列 した制 クラス表 を用いて、クラスの完全公理を 成。ー 挙 約 現 構
l
<owl:Class rdf:ID=”StravinskyDiaghilevBallet”>
l
<owl:equivalentClass>
l
<owl:Class>
l
<owl:oneOf rdf:parseType=”Collection”>
l
<owl:Thing rdf:about=”#Firebird” />
l
<owl:Thing rdf:about=”#Petrouchka” />
l
<owl:Thing rdf:about=”RiteOfSpring” />
l
</owl:oneOf>
l
</owl:Class>
l
</owl:equivalentClass>
l
</owl:Class>
36. l
制 クラス表 は、サブクラスによる部分公理だけでなく、約 現
l
完全公理を 成することもできる。構
l
弦 四重奏クラスの外延はすべての奏者が弦 器奏者であるクラスの外延と、楽 楽
l
奏者の数が4人であるクラスの外延の共通部分と等しい。
l
<owl:Class rdf:ID=”StringQuartet”>
l
<owl:equivalentClass>
l
<owl:Class>
l
<owl:intersectionOf rdf:parseType=”Collection”>
l
<owl:Restriction>
l
<owl:onProperty rdf:resource=”#hasMember” />
l
<owl:allValuesFrom rdf:about=”#StringPlayer” />
l
</owl:Restriction>
l
<owl:Restriction>
l
<owl:onProperty rdf:resource=”#hasMember” />
l
<owl:cardinality rdf:datatype=”&xsd;nonNegativeInteger” >4</owl:cardinality>
l
<owl:Restriction>
l
</owl:intersectionOf>
l
</owl:Class>
l
</owl:equivalentClass>
l
</owl:Class>
37. l
クラス表 に直接名前を与える完全公理現
l
必要十分条件を示す完全公理は、
l
owl:equivalentClass を用いず、クラス表 に直接名前を与えても 成できる。現 構
l
( OWL Lite では不可能)
l
<owl:Class rdf:ID=”StravinskyDiaghilevBallet”>
l
<owl:oneOf rdf:parseType=”Collection”>
l
<owl:Thing rdf:about=”#Firebird” />
l
<owl:Thing rdf:about=”#Petroucka” />
l
<owl:Thing rdf:about=”#RiteOfSpring” />
l
</owl:oneOf>
l
</owl:Class>
38. l
クラス 理 み合わせによるクラス表 も、論 組 現
l
同 に直接名前を与えて、完全公理とすることができる。様
l
<owl:Class rdf:ID=”ImportedClassicalMusicCd”>
l
<owl:intersectionOf rdf:parseType=”Collection”>
l
<owl:Class rdf:about=”#ClassicalMusicCD” />
l
<owl:Class rdf:about=”#ImportedCD” />
l
</owl:intersectionOf>
l
</owl:Class>
l
これら前述の2つの直接型名前付け公理は、
l
owl:equivalentClass を使う公理と意味的には同じ。
l
(同一の外延を持ち、内包的意味も同じ)
l
制 クラスの約 owl:Restriction は、
l
常に匿名クラス( 名クラス)になるので、無
l
直接名前を owl:Restriction に与えてクラス公理にすることは出来ない。
39. 分 クラスによる必要条件の定離 義
l
名前付けによるクラス表 に現 owl:disjointWith として、
l
のクラスを びつけると「主 と目的 の外延は互いに素 」という、別 結 語 語 関係
l
主 クラスに属するための必要条件を与える部分公理になる。語
l
owl:disjointWith
l
主 になるクラスと目的 になるクラスの外延が互いに素であることを示す。語 語
l
定 域、 域は 方ともに義 値 両 owl:Class 。
l
OWL Lite では使用できない。
41. l
3つのクラスが分 されている(それぞれの外延が互いに素)ことを示す公理離 . 。
l
<owl:Class rdf:ID=”Person”>
l
<owl:Class rdf:ID=”Animal”>
l
<owl:disjointWith rdf:resource=”#Person” />
l
</owl:Class>
l
<owl:Class rdf:ID=”Robott”>
l
<owl:disjointWith rdf:resource=”#Person” />
l
<owl:disjointWith rdf:resource=”#Animal” />
l
</owl:Class>
l
</owl:Class>
42. l
抽象 文では、互いに分 されたクラスを構 離 DisjointClasses() でまとめて 述する。記
l
DisjointClass(ex:Person ex:Animal ex:Robot)
l
クラスの分 を 述しておくと、アプリケ ションに離 記 ー RDF 文の矛盾を指摘させるなどの推 が可能。論
l
<ex:Person rdf:about=”http://example.org/people#Tsutomu”>
l
<ex:livesWith>
l
<ex:Robot rdf:about=”http://example.org/tsutomu/family#Robita” />
l
</ex:livesWith>
l
</ex:Person>
l
ツトムが一 に暮らしているロビタは(緒 ex:Robot )である。
l
Eex:livesWith の 域から ると、ロビタは値 見 ex:LivingThing である。
l
上 2つの 性について矛盾は起きていない。記 関係