狠狠撸

狠狠撸Share a Scribd company logo
セマンティック?ウェブのための
RDF/OWL入門 解説
第五章:RDFの語彙の定義
Agenda
5.1 RDFスキーマと語彙
5.2 クラスを表現する
5.3 プロパティを表現する
5.4 注釈情報も含めたスキーマの記述
5.1 RDFスキーマと語彙
?RDFのモデルはプロパティにより定義されるが、このプロパティ自体も事前に
定義しておくことができる。
?プロパティ、またプロパティをまとめたクラスの定義をRDFスキーマと呼ぶ。
?RDFスキーマはオブジェクト指向言語のクラス定義と非常によく似ている。
ただ、大きく異なる点もある(後述)。
5.2 クラスを表現する(1/4)
rdfs:Class
ex:Animal
ex:Cat
Mika
?AnimalはClassのインスタンスである。
すべてのクラスはClassのインスタンスとなる
?CatはAnimalのサブクラスである。
クラスの階層はsubClassOfで記述
?MikaはCatのインスタンスである。
クラスを定義しておくことで、同じ定義のリソ
ースインスタンスをグループ化できる
上記の関係は全てトリプルで表現される。
rdf:type
rdfs:subClassOf
例:
?主語 ex:Animal
?述語(プロパティ) rdf:type
?目的語 rdfs:Class
5.2 クラスを表現する(2/4)
rdfs:Class
ex:Animal
ex:Cat
Mika
AnimalはClassのインスタンスである。
<rdf:Class rdf:about=”http://example.org/terms/Animal”>
rdf:type
rdfs:subClassOf
CatはAnimalのサブクラスである。
<rdf:Class rdf:about=”http://example.org/terms/Cat”>
<rdfs:subClassOf rdf:about=”http://example.org/terms/Animal”>
</rdf:Class>
MikaはCatのインスタンスである。
<ex:Cat rdf:about=”http://example.org/Uchino#Mika”>
<ex:name>ミカ</ex:name>
</ex:Cat>
5.2 クラスを表現する(3/4)
RDFスキーマは、クラスも含め以下のように定義されている。
rdfs:Resource
rdfs:Class
rdfs:Property rdfs:Literal
rdfs:Datatype
rdfs:XMLLiteral
サブクラス&インスタン
ス
(subClassOf&type)
インスタンス(のみ)
サブクラス(のみ)
タグ入り
Literal
データ型を表
すクラス
全てはリソースクラスの
インスタンスでありサブ
クラス
5.2 クラスを表現する(4/4)
?外延について
RDFではクラスのような定義を表すリソースも、前述のミカのような具体的なリソ
ースも、まとめて「インスタンス」と呼んでおり判別しにくい。
これを区別するのが「外延」であるが、例外があり実際は役に立たない。
<具体的な例外>
?Classクラスはクラス定義であるとともに自身がClassのインスタンス。
?Aのクラスの外延かつBの「クラス定義である」ということがある。
(例では、マッカランはウィスキーの外延だが30年ものマッカランのクラス定義)
原則:リソースとしてのクラスは「クラスの外延」と呼ぶ。
例:ミカはCatクラスの外延である。
5.3 プロパティを表現する(1/3)
domain
range
property
プロパティは、主語と目的語をつなぐものになる。
?プロパティの主語となるもの = domain(定義域)
?プロパティの目的語となるもの = range(値域)
domain、rangeは共にクラスで表現される。
rangeは、性質上型(DataType)が設定されることもある
(価格など)。
例:人(Person)は生物(LivingThing)と暮らしている(livesWith)
?domain Person
?property livesWith
?range LivingThing
<rdf:Property rdf:about=”http://examples.org/terms/livesWith”>
<rdfs:domain rdf:resource=”http://examples.org/terms/Person”>
<rdfs:range rdf:resource=”http://examples.org/terms/LivingThing”>
</rdf:Property>
5.3 プロパティを表現する(2/3)
Satoru
Mika
liveWith
Person
Cat
liveWith
Satoru/Keikoは
Person
Mika/MikeはCat
Keiko
Mike
liveWith
プロパティは、クラスとは独立して定義される。
そのdomain/rangeの定義から、主語/目的語がどのクラスに属しているのかを推
定することが可能となる。
range
domain
5.3 プロパティを表現する(3/3)
?サブプロパティ
プロパティも、”rdfs:subPropertyOf”を利用することでクラスと同様階層構造を
表現できる(liveWithに対しliveWithPetなど)。
サブプロパティは上位のプロパティのdomain/rangeを継承するため、ここから
外れた関係は記述できない。
?外延
プロパティにとっての外延はdomainとrangeのペアになる。
Person->liveWith->LivingThingなら、(Person,LivingThings)のペアが外延で
あり、これをプロパティのインスタンスともいう。
5.4 注釈情報も含めたスキーマの記述
?ラベル(rdfs:label)
クラスやプロパティによりわかりやすい名前を付けておくのに利用する。
?コメント(rdfs:comment)
説明のための記述を書くのに利用する。言語タグで言語に応じた記載が可能。
?注釈リンク(rdfs:seeAlso)
関連するリソースへのリンクを設定する。
?定義へのリンク(rdfs:isDefinedBy)
利用方法は決められていない。定義先へのリンクを設定する。

More Related Content

セマンティック?ウェブのためのRdf owl入門解説.ch5