Webアプリ開発エンジニアのための技術情報サイト「テックスコア」

3. 基本構成

OWLの記述方法

ここではOWLの基本構成について説明します。

ヘッダ要素

ヘッダ要素はowl:Ontology要素の中に記述します。ヘッダ要素にはバージョン情報など、そのオントロジーに関する情報を記述します。
またowl:Ontology要素は一般にひとつの文書に対してひとつ記述します。

例1:ヘッダ要素
			
<?xml version=”1.0” encoding=”Shift_JIS” ?>
<rdf:RDF
     xmls:owl=”http://www.w3.org/2002/07/owl#”
     xmls:rdf=”http://www.w3.org/1999/02/22-rdf-syntax-ns#”
     xml:base=”http://www.4dd.co.jp/sw/ontology#”  >
   <owl:Ontology rdf:about=””>
      <owl:priorVersion rdf:resource=”http://www.4dd.co.jp/example” />
      ・・・
   </owl:Ontology>
   ・・・

OWLはRDFの構文に従って記述するため、オントロジーの要素をすべてrdf:RDF要素の中に記述します。以降ではxml宣言やrdf:RDF要素を省略しています。

クラス要素

クラス要素ではRDF Schemaで定義されたクラスについての記述をします。OWLでクラスを表すときは基本的にowl:Class要素を用います。
OWLではクラス間の関係、プロパティの制約条件、クラスの論理的組み合わせなどにより詳細なクラス表現が可能です。

ここではクラス同士の関係を記述するためのプロパティを紹介します。

  • owl:equivalentClass:そのクラスと同じインスタンスのセットを持つクラスを記述する
  • owl:disjointWith:そのクラスと共通インスタンスを持たないクラスを記述する

equivalentは英語で「〜に相当する」という意味です。つまりOWLでは、A equivalentClass B と記述した場合はAはBと同じようなクラスだと言っていることになります。
disjointWithは共通部分がないことを表します。「男」と「女」など反対のものを表したいときに使います。
クラス定義の例を以下に示します。

例2:男(Men)は女(Women)と共通部分を持たず、人(Person)のサブクラスである。
            
 <owl:Class rdf:ID="Men">
    <rdfs:subClassOf rdf:resource="http://www.4dd.co.jp/example/Person" />
    <owl:disjointWith rdf:resource="http://www.4dd.co.jp/example/Women" />
 </owl:Class>

プロパティ要素

プロパティ要素でもクラス要素と同じように、RDF Schemaで定義されたプロパティクラス同士の関係を記述します。OWLでプロパティ要素を記述する方法としては大きく分けて二つあり、目的語がオブジェクトであるようなプロパティはowl:ObjectProperty要素、データタイプであるようなプロパティのときはowl:DatatypeProperty要素を使用します。またRDF Schemaの要素であるrdfs:subPropertyOf、rdfs:range、rdfs:domainもこのプロパティ要素で記述できます。

プロパティ同士の関係を記述するプロパティが二つあり、それを紹介します。

  • owl:equivalentProperty:そのプロパティと同じインスタンスのセットを持つクラスを記述する
  • owl:inverseOf:そのプロパティと逆の意味を持つプロパティを記述する

equivalentPropertyはクラスでのequivalentClassと同じです。
inverseOfはプロパティとして逆の関係にあることを表します。

このプロパティ定義の例を以下に示します。

例3:後輩は先輩と逆の意味のプロパティであり、その主語と目的語には必ず人(Person)のインスタンスを持つ。
			
	<owl:ObjectProperty rdf:ID=”junior”>
		<owl:inverseOf rdf:resource=”#senior” />
		<rdfs:range rdf:resource=”#Person” />
		<rdfs:domain rdf:resource=”#Person” />
	</owl:ObjectProperty>

インスタンス要素

インスタンス(実体、OWLではよく個体と呼ばれる)は実際のものを表しており、たとえばPersonクラスの「四次元太郎」インスタンスであればそれは四次元太郎という実在の人物を指すものとします。この四次元太郎さんが他の組織では”Taro,Yojigen”と別の名前で定義されてしまった場合、現実では「四次元太郎」という人と「Taro,Yojigen」という人が別人として存在するということになってしまいます。このようなときにはowl:sameAsプロパティを使ってこの二つのインスタンスは同じものであると宣言します。この例を以下に示します。

例4:「四次元太郎」と”Taro,Yojigen”は同じインスタンス
			
	<Person rdf:ID=”四次元太郎”>
		<owl:sameAs rdf:resource=”#Taro,Yojigen” />
	</Person>

このようなインスタンスに関する記述はインスタンス要素で行います。

OWLの機能はこの章で紹介したものだけではありません。次章からはさらに詳しく説明します。



前のページへ TECHSCOREのTOPページへ 次のページへ
techscore(トップページへ)
TECHSCORE書店
TECHSCOREトップページJavaSQLXMLリッチクライアントモデリングセマンティックWebその他技術Tuigwaa