RDF オントロジーのマッピングとマージの形式化
谷口 祥一（慶應義塾大学文学部）
taniguchi@z2.keio.jp
１．はじめに現在、多数かつ多様な RDF データが Linked
Data として公開・提供されている。また、それらは領域においても多岐にわたり、複数領域の横断的なものから特定領域に限定されるものまで幅がある。こうした RDF データには、
1)対象とする個別のリソース（インスタンス）に対するメタデータ記述と、2)そうしたメタデータ記述に用いる語彙（RDF クラスとプロパティの定義情報）自体を RDF データとして公開したもの、あるいは 3)データ値の記録に用いる値を RDF クラスとして定義し公開したものなどが含まれる。図書館等に直接かかわるものとしても、1)情報資源とそれらに関与するエージェント等に関するメタデータ、2)それらメタデータ記述に用いるエレメントなどの定義情報、3)主に情報資源の特定のエレメント記述または主題表現に用いる概念体系（RDF クラス群）などがある。上記 2 および 3 は、オントロジーとも呼ばれる。
本研究では、このうち上記 2、および 3 の一部に属するものを対象とし、RDF と RDFS が規定するクラスとプロパティのみを用いて定義されているオントロジーを想定し、複数の異なるオントロジー間のマッピングとマージの形式化、すなわちそれらが成立する要件の明示およびマージにおける選択肢の明示を試みる。
これらは、そのままマッピングとマージの手順の提示に通じる。
発表者は以前に IFLA Library Reference
Model（LRM）と BIBFRAME という 2 つの語彙のマッピングとマージを試行しており 1)-2)、その過程で必要とされた要件の明示等を、本研
究は改めて試みる。
なお、オントロジーのマッピングやマージに関する研究は相当数の蓄積があるが 3)-5)、管見の範囲では、本研究が取り上げる事項について詳細に検討したものは見受けられない。
２．対象とするオントロジー
RDF と RDFS が規定するクラスとプロパテ
ィのみを用いて定義されている語彙に対象を限定する。具体的には、以下のクラスとプロパティを適用して定義された語彙とする。
rdfs:Resource, rdfs:Class, rdfs:Literal,rdf:Property, rdfs:Datatype, rdf:type,rdfs:subClassOf, rdfs:subPropertyOf,
rdfs:domain, rdfs:range, rdfs:label,
rdfs:comment, rdfs:seeAlso,
rdfs:isDefinedBy
なお、rdf:type はインスタンスを示すプロパテ
ィであるが、RDF/RDFS ではあるリソースがクラスかつ他のクラスのインスタンスであることは認められており、定義情報においてrdf:type は出現しうる。また、rdfs:seeAlso,
rdfs:isDefinedBy など、本研究の範囲では直接参照しないプロパティも含めている。
他方、以下の RDF/RDFS クラスとプロパテ
ィは対象外とする。
rdf:Statement, rdfs:Container, rdf:Bag,
rdf:Seq, rdf:Alt, rdf:List, rdf:first, rdf:rest,rdf:subject, rdf:predicate, rdf:object
これらは、RDF トリプルのメタ記述（具体化、reification）に用いるものと、コンテナ／コレクションの記述に用いるものであり、通常、オントロジーには出現しない。
また、SKOS や OWL のクラスとプロパティを用いて定義された語彙は対象外とする。ただし、skos:definition がクラスまたはプロパティの意味範囲の定義を示すために使用されているときには、それのみ採用する。
こうしたオントロジーとしては、書誌的世界に関するものとして FRBR, FRAD, FRSAD,
IFLA
LRM,
BIBFRAME,
FRBRoo,schema.org などがある。なお、ER モデルで表現されている FRBR などは、RDF モデルに変換（実体は RDF クラスに、属性と関連は RDFプロパティに変換）した上で対象となる。
本研究では、クラスやプロパティの意味定義（意味範囲）の包含関係が機械的に判断できない状況を想定しており、それゆえ人手によるマッピングとマージの処理となる。
３．RDF オントロジーのマッピング
2 つのオントロジーの間でのクラス間、プロパティ間の、方向性をもった対応づけがマッピング（mapping）である。マッピングにおいて、クラス定義やプロパティ定義の変更や追加はない。また、クラス間のサブクラス関係やプロパティ間のサブプロパティ関係の追加もない。
マッピングは、1 対 1 または 1 対多の対応づけプロパティ Pj に包含される。
ここで、プロパティ Pi の定義域を Di、プロパティ Pj の定義域を Dj とする。すなわち、Pi rdfs:domain Di . Pj rdfs:domain Dj .
同様に、プロパティ Pi の値域を Ri、プロパティ Pj の値域を Rj とする。すなわち、Pi rdfs:range Ri . Pj rdfs:range Rj .
３．１ クラスのマッピング
上記の条件①を述語論理記法で表すと、オントロジーO1 のクラス Ci に対して、マッ∀:x, :y ( :x rdf:type Di . ∧ :y rdf:type Ri .
ピングとは、オントロジーO2 のクラスのうち、∧ :x Pi :y . → :x Pj :y . )下記の条件①および②を満たす（①∧②）クラプロパティにはクラスとそのインスタンスのス Cj を同定すること、そして同定されたクラスがマッピング結果（マッピング先）となる。 ような区別はないため、上記の表現で代用することになる。上記の論理式は、実際にはサブプ【条件①】クラス Ci が意味範囲においてクラロパティを定義するものであり、そこに定義域
ス Cj に包含される。と値域の条件指定が部分的にせよ、含まれてし述語論理記法に RDF/Turtle の記法を組み合まっている。
わせて表すと、インスタンス :x に対して、下なお、プロパティの意味範囲の定義は、通常、記の条件となる。
rdfs:comment（または skos:definition）に記述∀:x ( :x rdf:type Ci . → :x rdf:type Cj . )されるため、それを解釈し判断することになる。
実際には、意味範囲の定義はプロパティ【条件②】プロパティ Pi の定義域 Di、プロパ
rdfs:comment （または skos:definition）を用ティ Pj の定義域 Dj に関して、下記の a)またはいて自然言語で記述されるため、それを解釈しb)が成立する（a∨b）。
包含関係を判断することになる。
a) 定義域として指定されたクラス Di が意味【条件②】Cj は上記の条件①を満たす、意味範範囲においてクラス Dj に包含される。
囲において最下位レベルのクラスとする。すな∀:x ( :x rdf:type Di . → :x rdf:type Dj . )わち、複数のマッピング先候補があるときには、b)
定義域 Dj が未指定（unspecified）。これはそのうち最下位レベルのクラスを選択する。
下記と同等である。
Cj’ はオントロジーO2 に属する、Cj 以外のクPj rdfs:domain rdfs:Resource .
ラスとすると、上記の条件は下記を満たす Cj
つまり、を求めることを指す。
∀:x ( :x rdf:type rdfs:Resource .
∀:x’ ( :x’ rdf:type Cj. → :x’ rdf:type Cj’ . ) ∧→ :x rdf:type Dj . )￢∀:x’ ( :x’ rdf:type Cj’ . → :x’ rdf:type Cj . )rdfs:Resource
は rdfs:Class と rdfs:Literal を
すなわち、Cj’ のインスタンスであって、かつ含んでおり、未指定の場合と同等となる。
Cj のインスタンスでない:x’ が存在する。
なお、このとき定義域 Di は、クラス指定で上記の条件①および②を満たさない場合にあっても、未指定であってもよい。
は、クラス Ci のマッピングはなされない。た【条件③】プロパティ Pi の値域 Ri、プロパテとえ意味的にクラス間に部分的な包含関係、すィ Pj の値域 Rj に関して、下記の a)、b)、c)のなわち重なりがあるときをも、これは含む。
いずれかが成立する（a∨b∨c）。
また、当該クラスを定義域とするプロパティa)値域として指定されたクラス
Ri が意味範を含めてクラスの意味定義とする扱いはここ
囲においてクラス Rj に包含される。
では採用しない。プロパティのクラスからの独∀:y ( :y rdf:type Ri . → :y rdf:type Rj . )立性が RDF では強いため、両者を切り分けてb)
値域 Ri と値域 Rj がいずれもリテラル。
扱う。
Pi rdfs:range rdfs:Literal .
Pj rdfs:range rdfs:Literal .
３．２ プロパティのマッピング∀:y ( :y rdf:type rdfs:Literal .
オントロジーO1 のプロパティ Pi に対して、→ :y rdf:type Rj . ∧ :y rdf:type Rj. )マッピングは下記の条件①から④のすべてをc) 値域 Rj が未指定（unspecified）。
満たす（①∧②∧③∧④）オントロジーO2 のPj rdfs:range rdfs:Resource .
プロパティ Pj を同定すること、同定されたも∀:y ( :y rdf:type rdfs:Resource .のがマッピングの結果（マッピング先）となる。
→ :y rdf:type Rj . )【条件①】プロパティ Pi が意味範囲においてとなるが、対応づけがなされない、すなわちマッピング先がないクラスやプロパティは発生しうる。また、逆向きのマッピングはそれ自体を独立したマッピングとして規定する必要がある。

このとき値域 Ri は、クラスであっても、未指定であってもよい。
【条件④】プロパティ Pj は上記①～③の条件を満たす、意味範囲において最下位レベルのプロパティとする。これは複数のマッピング先候補が存在するときには、最下位レベルのプロパティを選択することを指す。
Pj’ はオントロジーO2 に属する、Pj 以外のクラスとすると、下記を満たす最下位クラス Pjを求めることになる。
∀:x’, :y’ ( :x’ rdf:type Dj . ∧ :y’ rdf:type Rj .
∧ :x’ Pj :y’ . → :x’ Pj’ :y’ . ) ∧￢∀:x’, :y’ ( :x’ rdf:type Dj’ . ∧ :y’ rdf:type Rj’ .
∧ :x’ Pj’ :y’ . → :x’ Pj :y’ . )４．RDF オントロジーのマージ
オントロジーO1 と O2 から、新たな O3 を導き出すのがマージ（merge）である。マージ結果のオントロジーO3 は O1 と O2 のクラス、プロパティの全部またはその一部を含む。それゆえ、元の O1 と O2 のクラスとプロパティをすべて取り込むことを求めるものではない。
マージ処理のレベルを、本研究では、下記の3 つに区分する。
レベル 1：O1 と O2 のクラス、プロパティの採用と関係づけ。O1 と O2 の既存クラス、プロパティに修正を加えず、O3 においてそれらをそのまま採用する。
レベル 2：O1 と O2 のクラス、プロパティの調整（修正）。O3 において整合するよう、「最小限の」調整を加える。あるいは、調整結果に相当する新規のクラス、プロパティを追加する。
レベル 3：上記の範囲を超えたクラス、プロパティの修正と追加。O1 と O2 の各クラスやプロパティの上位クラスや上位プロパティを新たに定義し、既存のものをその下位に位置づけることなども含まれる。例えば、FRBRoo は、FRBR 等と CIDOC CRM を対象にしてレベル3 に該当するマージを行った例と捉えることができる。同様に、IFLA LRM は、FRBR,FRAD, FRSAD の単純なマージを超えてレベル 3 に相当するマージを実行した例である。
４．１ クラスのマージ：レベル１
1) オントロジーO1 のクラス Ci、オントロジー
O2 のクラス Cj に関して、クラス Ci と Cj が意味範囲において重なりがないとき（すなわち、クラス Ci がすべての Cj と意味範囲において重なりがなく、かつクラス Cj がすべての Ci と意味範囲において重なりがないとき）は、下記のように表すことができ、￢∃:x ( :x rdf:type Ci . ∧ :x rdf:type Cj . )オントロジーO3 のクラスとして Ci と Cj の両者を採用する。
2) 他方、クラス Ci が意味範囲においてクラスCj と重なりがあるときは、下記のように表すことができ、∃:x ( :x rdf:type Ci . ∧ :x rdf:type Cj . )マージ処理は、下記の選択肢 1 から 3 のいずれかとなる。
・選択肢 1：オントロジーO1 のクラス Ci とオントロジーO2 のクラス Cj の両者を採用する。
・選択肢 2：クラス Ci を採用する。
・選択肢 3：クラス Cj を採用する。
いずれを選択するのかは任意であり、それゆえ通常は依拠する方針に基づく選択となる。
加えて、上記の選択肢 1～3 において、オントロジーO3 におけるその時点のクラス Ck（オントロジーO3 は順次更新される）と採用したクラス Ci または Cj が意味範囲において包含関係があるときには、すなわち∀:x ( :x rdf:type Ci . → :x rdf:type Ck. )または、∀:x ( :x rdf:type Cj . → :x rdf:type Ck. )と表され、マージ処理において、下記のクラス間の関係づけを追加する。
Ci rdfs:subClassOf Ck .
または、Cj rdfs:subClassOf Ck .
なお、Ck は上記の条件を満たす、意味範囲において最下位レベルのクラスとする。
４．２ クラスのマージ：レベル２
クラス Ci が意味範囲においてクラス Cj と重なりがあるとき、マージ処理は、下記の選択
肢 1 から 3 のいずれかとなる。
・選択肢 1：オントロジーO1 のクラス Ci とオントロジーO2 のクラス Cj の両者を等しく調整し採用する。
・選択肢 2：クラス Ci を優先して採用し、それと整合するようクラス Cj を調整し採用する。
・選択肢 3：クラス Cj を優先して採用し、それと整合するようクラス Ci を調整し採用する。
なお、調整とは、クラスのマッピングにおいて示した条件に合致させる修正を指す。調整（修正）ではなく、調整結果に相当する新たなクラスを追加するという選択肢もある。
加えて、上記の選択肢 1～3 において、オントロジーO3 におけるその時点のクラス Ck（オントロジーO3 は順次更新される）と採用したクラスが意味範囲において包含関係があるときには、レベル１のマージ処理と同様、下記のクラス間の関係づけを追加する。
Ci rdfs:subClassOf Ck .
または、Cj rdfs:subClassOf Ck .
ただし、Ck は上記の条件を満たす、意味範囲において最下位レベルのクラスとする。
４．３ プロパティのマージ：レベル１
あくまでも、クラスのマージにおけるレベル1 に対応して採用するものである。これは、プロパティの定義域、値域に指定されているクラス自体の採用が前提となるためである。
1) オントロジーO1 のプロパティ Pi とオント
ロジーO2 のプロパティ Pj に関して、プロパテ
ィ Pi と Pj が意味範囲において重なりがないとき（すなわち、プロパティ Pi がすべての Pjと意味範囲において重なりがなく、かつプロパティ Pj がすべての Pi と意味範囲において重なりがないとき）には、下記のように表すことができ、￢∃:x, :y ( :x rdf:type Di . ∧ :y rdf:type Ri .
∧ :x Pi :y . ∧ :x Pj :y . ) ∧￢∃:x, :y ( :x rdf:type Dj. ∧ :y rdf:type Rj .
∧ :x Pi :y . ∧ :x Pj :y . )そのマージ処理は、プロパティ Pi と Pj の両者をオントロジーO3 において採用する。
2) 他方、プロパティ Pi が意味範囲においてクラス Pj と重なりがあるときには、下記のように表すことができ、∃:x, :y ( :x rdf:type Di . ∧ :y rdf:type Ri .
∧ :x Pi :y . ∧ :x Pj :y . ) ∨∃:x, :y ( :x rdf:type Dj. ∧ :y rdf:type Rj .
∧ :x Pi :y . ∧ :x Pj :y . )マージ処理は、下記の選択肢 1 から 3 のいずれかとなる。
・選択肢 1：マッピングの条件①から③を満たす、オントロジーO1 のプロパティ Pi とオントロジーO2 のプロパティ Pj の両者を採用する。
なお、マッピングの条件④は満たす必要はない。
・選択肢 2：プロパティ Pi を採用する
・選択肢 3：プロパティ Pj を採用する
加えて、上記の選択肢 1～3 において、オントロジーO3 におけるその時点のプロパティ Pk（オントロジーO3 は順次更新される）について、意味範囲およびその定義域、値域において包含関係があるときには、下記のプロパティ間の関係づけを追加する。
Pi rdfs:subPropertyOf Pk .
または、Pj rdfs:subPropertyOf Pk .
ただし、Pk は上記の条件を満たす、意味範囲において最下位レベルのプロパティとする。
４．４ プロパティのマージ：レベル２
調整（修正）は、プロパティの意味範囲、定義域、値域のすべて、またはそのいずれかの変更を指す。ラベル等の変更を含む。また、新規プロパティの追加とは、既存プロパティの調整結果に相当する新たなプロパティの追加を指す。あくまでも、マージ結果として先に採用したクラスに対応した調整とする。これは、プロパティの定義域、値域に指定されているクラス自体の採用が前提となるためである。
プロパティ Pi が意味範囲においてクラス Pjと重なりがあるときには、マージ処理は、下記の選択肢 1 から 3 のいずれかとなる。
・選択肢 1：マッピングの条件①から③を満たすように、オントロジーO1 のプロパティ Pi とオントロジーO2 のプロパティ Pj の両者を等しく調整し採用する。なお、マッピングの条件④は満たす必要はない。
・選択肢 2：プロパティ Pi を優先して採用し、それと整合するようプロパティ Pj を調整の上で採用する。
・選択肢 3：プロパティ Pj を優先して採用し、それと整合するようプロパティ Pi を調整の上で採用する。
加えて、上記の選択肢 1～3 において、オントロジーO3 におけるその時点のプロパティ Pk（オントロジーO3 は順次更新される）について、意味範囲および定義域、値域において包含関係があるときには、レベル１の場合と同様、下記のプロパティ間の関係づけを追加する。
Pi rdfs:subPropertyOf Pk .
または、Pj rdfs:subPropertyOf Pk .
ただし、Pk は上記の条件を満たす、意味範囲において最下位レベルのプロパティとする。
引用文献
1) Shoichi Taniguchi. Mapping and Merging of IFLA
Library Reference Model and BIBFRAME 2.0.
Cataloging & Classification Quarterly. 2018, inpress.
2) 谷 口 祥 一 . IFLA Library Reference Model とBIBFRAME 2.0 の統合：マッピングからマージへ.
2018 年度日本図書館情報学会春季研究集会発表論文集. 2018, p.57-60.
3) Jérôme Euzenat and Pavel Shvaiko. Ontology
Matching, 2nd ed. Berlin, Springer, 2013, 511p.
4) Asunción Gómez-Pérez, et al. OntologicalEngineering. Springer, 2004, 403p.
5) Heiko Angermann and Naeem Ramzan.

Taxonomy
Matching
Using
Knowledge. Springer, 2017, 103p.

Background