MR3 ドキュメント

MR3 とは

MR3 (Meta-Model Management based on RDFs Revision Reflection)(読み:エムアールキューブ) は,次世代Webの候補の1つであるセマンティックWebにおける RDF (Resource Description Framework) および RDFS (RDF Schema) の視覚的な編集とそれらの間の関係を管理する機能を持つエディタです.

セマンティックWebを実現するための基盤技術として,計算機が理解可能なメタデータを記述するためのフレームワークであるRDFやオントロジー記述言語RDFS, OWL (Web Ontology Language) の標準化がW3Cにより行われています.RDFはURIで表現されるリソース相互の関係を主語,述語,目的語のトリプルにより表現するためのデータモデルと構文を提供しています.また,RDFSではリソースのタイプ (クラス)及びリソース間の関係 (プロパティ)を定義するための語彙 (オントロジー)を提供しています.計算機がメタデータをより明確に理解・推論するためには,RDFSやOWLなどのオントロジー記述言語を用いてクラス 及びプロパティを定義し,それらを用いてインスタンス (RDF)を記述する必要があります.

上記のように,RDFとRDFSはインスタンス (モデル)とオントロジー (モデルの構成要素を定義するメタモデル)という意味的に異なる記述を行います.しかし,RDFSはRDFデータモデル及び構文を用いて記述されるため, RDFとRDFSが混在するコンテンツを扱う際には,両者を区別することはユーザの負担となります.特に,特定の目的のためのメタデータを記述するために,RDFSとRDFをユーザが定義する初期段階においては,両者の間を双方向に頻繁に編集するため,RDFSとRDFを分離し,両者の整合性を保ちながら記述を支援することが重要となります.

MR3 はRDFSとRDFを分離し,両者の間の整合性を保ちながら視覚的に編集する機能を提供することでユーザの負担を軽減します.

MR3 には主に以下の3つの機能があります.

RDF (インスタンス)の視覚的編集機能
RDFデータモデルに基づき,主語,述語,目的語のトリプルを視覚的に編集する機能
RDFS (オントロジー)の視覚的編集機能
RDFSモデルに基づき,クラス及びプロパティの上位・下位関係,プロパティの定義域及び値域の視覚的編集機能
RDF(S)コンテンツ管理機能
RDFとRDFSの間の整合性を管理し,変更を双方向に反映させる機能

上記の機能の詳細は以下のようになっています.

  • RDFファイルをインポートし,RDFデータモデルを視覚的に表示・編集する機能
  • RDFデータグラフを様々なRDF構文 (RDF/XML, N-Triple, N3)に基づいてファイルにエクスポートする機能
  • RDFSファイルをインポートし,RDFSデータモデルを視覚的に表示・編集する機能
  • RDFSデータグラフを様々なRDF構文 (RDF/XML, N-Triple, N3)に基づいてRDFSファイルにエクスポートする機能
  • RDFリソースタイプの変更をRDFSクラス及びRDFSプロパティの定義域及び値域に反映させる機能
  • RDFプロパティの変更をRDFSプロパティに反映させる機能
  • RDFSクラス及びプロパティの変更をRDFリソースのタイプ及びプロパティに反映させる機能

インストール

動作環境

MR3 は,Java言語で実装されています.実行するには,JRE (Java Runtime Environment) 8または,それ以上が必要です.

動作確認は,以下の環境で行っています.

  • MS Windows 10 + JDK 1.8.0_40
  • Mac OS 10.11.3 + JDK 1.8.0_40

インストール方法

  1. ダウンロードページ からファイルをダウンロード
  2. 解凍したフォルダにあるMR3.exeまたはMR3.appを実行

アンインストール方法

  1. 解凍したフォルダを削除する

重要概念

モデルとオントロジー

MR3 におけるモデルとオントロジーの関係は,次のように説明することができる.

モデル

Webコンテンツから些末な情報を排除し,機械処理させたい本質的なコンテンツをRDFにより記述したもの.具体的には,あるリソースがどのクラスに属するか,また,どのようなプロパティおよびプロパティ値を持つかをRDFにより記述したもの.モデルは,オントロジーによって提供されるモデル構成要素によって構成される.セマンティックWeb では,モデルはRDFコンテンツに相当する.また,モデルはOWL における事実(fact)と同義である.オントロジーによって提供される,RDFにおけるモデル構成要素は,RDFリソースにおけるrdf:type プロパティの値(RDFリソースのタイプ)およびRDF プロパティである.

オントロジー

クラスおよびプロパティとそれらの間の関係を定義したもの.セマンティックWebでは,オントロジーはRDFS およびOWLコンテンツに相当する.RDFSコンテンツでは,RDFコンテンツの構成要素である,RDF リソースのタイプをRDFS クラスとして,RDF プロパティをRDFSプロパティとして定義する.Webリソース,モデル,オントロジーの関係を 図 1 に示す.

各Web リソースには,それらの内容をモデル化したRDF データモデルを用意する.RDFデータモデルをXML などの特定の構文で記述したものがRDF コンテンツである.RDF データモデル構築のために,領域オントロジーや汎用オントロジー(WordNet [Miller95] ,EDR 電子化辞書 [Yokoi95] など)を参照する. 図 1 中のDomain B のように,複数のWeb リソースでも対象領域が同じであれば,同一の領域オントロジーを参照することが可能である.

セマンティックWeb におけるWeb リソース,モデル,オントロジーの関係

セマンティックWeb におけるWeb リソース,モデル,オントロジーの関係

RDF(S) コンテンツ管理の概念

MR3 におけるRDF(S) コンテンツ管理の概念について述べる.

RDFおよびRDFSコンテンツは共にRDFモデルにより記述されるため,RDFおよびRDFSコンテンツが混在する場合には,両者を区別することは困難である.ユーザはRDFおよびRDFS コンテンツを区別するために,リソースのタイプに着目する必要があり,このことはユーザの負担となる.

RDFS よりも詳細なオントロジーにおける記述(クラス公理やプロパティ公理など)が可能である,セマンティックWeb のためのオントロジー記述言語OWLの標準化についても,W3C が行っている.しかしながら,OWLもRDFSと同様に単一のフレームワーク(RDFモデルによる記述)を採用しており,オントロジーとモデルの間の対応関係を管理するための仕組みは標準化されていない.

MR3 では,上記の問題を解決するために,RDF(S)コンテンツ管理機能を備えている.RDF(S)コンテンツ管理とは,RDF コンテンツとRDFS コンテンツをモデルとオントロジーの関係として捉え,両者を明確に区別し,両者の間の整合性を(半)自動的に管理することと定義する.RDF(S) コンテンツ管理では,特に,オントロジーにおけるRDFSクラスおよびRDFSプロパティと,モデルにおけるRDFリソースのタイプおよびRDFプロパティを適切に管理する.

図 2 にRDF(S) コンテンツ管理の概念図を示す.

RDF(S) コンテンツ管理

RDF(S) コンテンツ管理

RDF(S) コンテンツ管理のシナリオ

セマンティックWeb 実現のためには,Web リソースに対して,オントロジー(RDFSおよびOWL コンテンツ)に基づいて,モデル(RDFコンテンツ)を構築する必要がある.しかし,モデル構築に適切なオントロジーが常に存在するとは限らない.その場合,モデラは,モデルおよびオントロジーを同時に構築することが考えられる.

オントロジーおよびモデルの構築は,実際には二つの異なる観点から行われることが考えられる.オントロジーは,現実世界のオブジェクトからは離れて,対象の概念化を考慮して構築が行われる.一方,モデルは現実世界のオブジェクトを考慮して構築が行われる.モデルの修正は,オントロジーの修正をもたらすことがあり,また,その逆もいえる.適切なオントロジーおよびモデルを構築するためには,モデラはモデルおよびオントロジーを相互に繰り返し修正しなければならない.そのような状況では,モデルおよびオントロジーの両方に頻繁に修正が発生するため,モデラの修正コストは大きくなる.

MR3 は,RDF(S) コンテンツの視覚的編集機能およびRDF(S) コンテンツ管理機能により,モデルおよびオントロジーの双方向に頻繁に発生する修正を支援する.RDF(S) コンテンツの視覚的編集機能は,モデルおよびオントロジーを明確に区別し,視覚的に表示および編集を可能にする機能であり,モデラがモデルとオントロジーの関係を容易にとらえることを可能にする.RDF(S) コンテンツ管理機能は,モデラが,モデル編集モードとオントロジー編集モードを頻繁に切り替えることなく,モデルまたはオントロジーの編集に集中することを可能にする.

図 3 にRDF(S) コンテンツ管理のシナリオを示す. 図 3 の上部は,オントロジー修正プロセスを示している. 図 3 の下部はモデル修正プロセスを示している. オントロジーにおけるC1,C2,C3は,RDFS クラスを表す.オントロジーにおけるOP1は,RDFSプロパティを表す.モデルにおけるR1およびR2はRDF リソースを表す.モデルにおけるRDF リソースの右上に描いているC2およびC3は,RDFリソースのタイプを表す.モデルにおけるMP1は,RDFプロパティを表す.

図 3 では,はじめにOP1がユーザによりOP1′ に修正される.それに伴い,RDF(S) コンテンツ管理機能により,対応するモデルにおけるRDFプロパティ(MP1)が自動的に修正される.次に,RDFリソースのタイプであるモデルにおけるC2がユーザによりC2′ に修正される.それに伴い,対応するオントロジーにおけるRDFS クラスがRDF(S) コンテンツ管理機能により半自動的に修正される.詳しくは, RDF(S)コンテンツ管理機能 で述べる.

RDF(S) コンテンツ管理のシナリオ

RDF(S) コンテンツ管理のシナリオ

参考文献

[Miller95]G.A.Miller, “WordNet: A Lexical Database for English,” Commun. ACM, vol.38, no.11, pp.39.41, 1995.
[Yokoi95]
  1. Yokoi, “The EDR Electronic Dictionary,” Commun. ACM, vol.38, no.11, pp.42. 44, 1995, http://www2.nict.go.jp/r/r312/EDR/.

機能一覧

MR3 の機能概要

RDF(S)コンテンツ構築支援ツールの機能概要を 図 4 に示す.RDF(S)コンテンツ構築支援ツールは,(1) RDFコンテンツの視覚的編集機能,(2) RDFSコンテンツの視覚的編集機能,(3) RDF(S)コンテンツ管理機能の主に三つの機能を持つ.

RDFS文書は,クラスおよびプロパティの階層関係,プロパティの定義域および値域がRDF構文(RDF/XML, Notation 3, N-Triples など)により記述された文書を表す.RDF文書は,クラスのインスタンスに関するステートメントがRDF構文により記述された文書を表す.RDF(S)データグラフとは,RDF(S)データモデルを視覚的に表現したものである.RDF要素は,RDFリソース,RDFプロパティ,RDFリテラルを表す.RDFS要素は,RDFSクラスおよびRDFSプロパティを表す.

以下では,RDF(S)コンテンツ構築支援ツールの各機能について説明する.

RDF(S)コンテンツ構築支援ツールの機能概要

RDF(S)コンテンツ構築支援ツールの機能概要

RDFコンテンツの視覚的編集機能

図 4 の(1) は,RDFコンテンツの視覚的編集機能を表している.RDFコンテンツの視覚的編集機能は,RDF文書からRDFデータグラフへの変換機能,RDFデータグラフからRDF文書への変換機能,RDFデータモデルに基づいたRDF要素の視覚的編集機能の三つから構成される.RDF要素の視覚的編集機能では,ステートメント(RDFリソース,RDFプロパティ,RDFリテラルで表される三つ組み)の編集を行うことができる.

RDFSコンテンツの視覚的編集機能

図 4 の(2)は,RDFSコンテンツの視覚的編集機能を表している.RDFSコンテンツの視覚的編集機能は,RDFS文書からRDFSデータグラフへの変換機能,RDFSデータグラフからRDFS文書への変換機能,RDFSデータモデルに基づいたRDFS要素の視覚的編集機能の三つから構成される.RDFS要素の視覚的編集機能では,クラスおよびプロパティの階層関係,プロパティの定義域および値域の編集を行うことができる.

RDF(S)コンテンツ管理機能

図 4 の(3) は,RDF(S)コンテンツ管理機能を表している.RDF(S)コンテンツ管理機能により,オントロジー(RDFSコンテンツ)とモデル(RDFコンテンツ) 間の整合性を管理することができる.

RDF(S)コンテンツ管理機能は,O→MまたはM→Oで表すことができる.O→Mは,オントロジー(RDFSクラスおよびRDFSプロパティ) の変更をモデル(RDFリソースのタイプおよびRDFプロパティ) に反映させる機能を表す.M→Oは,モデルの変更をオントロジーに反映させる機能を表す.

O→M: RDFSクラスの編集

RDF(S)コンテンツ管理機能におけるRDFSクラスの編集には,RDFSクラスのURIの変更とRDFSクラスの削除がある.

RDFSクラスのURIの変更

RDFSクラスのURIを変更する場合,そのRDFSクラスを参照しているRDFリソースのタイプ(URI) も同時に変更される. 図 5 は,RDFSクラスのURIを変更する場合の具体例を表している. 図 5 の左側はRDFSクラスex:書籍を変更する前の状態を表しており,右側がRDFSクラスex:書籍をex:書物に変更した後の状態を表している.以下,RDF(S)コンテンツ管理機能の具体例を表す図中のRDFSにおける矩形はクラス,楕円はプロパティ,矢印はクラスの上位・下位関係を表す.矢印は,下位クラスから上位クラスに向かって伸びている.同様に,図中のRDFにおける楕円はRDFリソース,矢印はRDFプロパティ,楕円右上のラベルは,RDFリソースのタイプを表す.ex:学問のすゝめとex:民情一新は,ex:書籍をタイプとするRDFリソースである.RDFSクラスex:書籍をex:書物に変更すると,ex:書籍に対応するRDFリソースのタイプにも自動的に変更が反映される.つまり,RDFリソースex:学問のすゝめおよびex:民情一新のタイプは,ex:書物に自動的に変更される.

RDFSクラスのURIの変更

RDFSクラスのURIの変更

RDFSクラスの削除

RDFSクラスを削除する場合,そのRDFSクラスをタイプとするRDFリソースの一覧を示し,ユーザはRDFリソースのタイプとして,他のRDFSクラス(または空)を選択することができる. 図 6 は,RDFSクラスを削除する場合の具体例を表している.ユーザがRDFSクラスex:書籍を削除したとする.ex:学問のすゝめおよびex:民情一新は,ex:書籍をタイプとするRDFリソースであるため,ex:書籍が削除されるとRDFコンテンツとRDFSコンテンツ間の整合性を保つことができない. 図 6 では整合性を保つために,RDFリソースex:学問のすゝめおよびex:民情一新のタイプを空にしている.

注釈

RDFリソースのタイプが空の場合,暗黙的にrdfs:Resource クラスをタイプとして持つことになる.

RDFSクラスの削除

RDFSクラスの削除

O→M: RDFSプロパティの編集

RDF(S) コンテンツ管理機能におけるRDFSプロパティの編集には,RDFSプロパティのURIの変更とRDFSプロパティの削除がある.

RDFSプロパティのURIの変更

RDFSプロパティのURIを変更する場合,そのRDFSプロパティを参照しているRDFプロパティのURIも同時に自動的に変更される. 図 7 は,RDFSプロパティのURIを変更する場合の具体例を表している. 図 7 の左側はRDFSプロパティex:著者を変更する前の状態を表しており,右側はRDFSプロパティex:著者をex:作者に変更した後の状態を表している.ex:学問のすゝめおよびex:民情一新は,ex:著者プロパティをもつRDFリソースである.ユーザがRDFSプロパティex:著者をex:作者に変更すると,ex:著者と対応するRDFプロパティにも変更が反映される.つまり,RDFリソースex:学問のすゝめおよびex:民情一新がもつプロパティex:著者はex:作者に自動的に変更される.

RDFSプロパティのURIの変更

RDFSプロパティのURIの変更

RDFSプロパティの削除

RDFSプロパティを削除する場合,そのRDFSプロパティを参照しているRDFプロパティの一覧を示し,ユーザはRDFプロパティとして,他のRDFSプロパティ(あるいは初期のプロパティ)を選択することができる. 図 8 は,RDFSプロパティを削除する場合の具体例を表している.ユーザがRDFSプロパティex:著者を削除したとする.ex:学問のすゝめとex:民情一新は,ex:著者をプロパティとしてもつRDFリソースであるため,ex:著者が削除されるとRDFコンテンツとRDFSコンテンツ間の整合性を保つことができない. 図 8 では,整合性を保つためにユーザは,RDFリソースex:学問のすゝめおよびex:民情一新がもつex:著者プロパティをデフォルトのプロパティ(mr3:nil) にしている.

注釈

MR3 では,デフォルトのプロパティをmr3:nil としている.RDFSプロパティが定義されていない状態でRDFリソース間の関係を定義した場合,そのRDFリソース間の関係はデフォルトのプロパティとなる.

RDFSプロパティの削除

RDFSプロパティの削除

M→O: RDFリソースのタイプの変更

ユーザが変更したRDFリソースのタイプがRDFSクラスで定義されている場合は,RDF(S) コンテンツ構築支援ツールは,RDFリソースのタイプとそれに対応するRDFSクラスを対応づける.ユーザが変更したRDFリソースのタイプに対応するRDFSクラスが定義されていない場合,ユーザは次の二つのどちらかを選択できる.一つは,ユーザはRDFリソースのタイプを変更する前に参照していたRDFSクラスのURIを変更することができる.もう一つは,ユーザは,定義されていないRDFSクラスを新規に作成することができる.ユーザが変更する前のRDFリソースのタイプが空の場合には,RDFSクラス名の変更は選択できない. 図 9 および 図 10 は,それぞれ,RDFリソースのタイプを変更した場合の具体例を表している.

参照しているRDFSクラスのURIの変更

図 9 では,RDFSクラスex:書物が定義されていない状態で,ユーザがRDFリソースex:民情一新のタイプex:書籍をex:書物に変更している.ここでは,整合性を保つためにRDFSクラス名の変更をユーザが選択している.RDFSクラスex:書籍をex:書物に変更することにより,ex:学問のすゝめのタイプもex:書物に半自動的に変更される.

参照しているRDFSクラスのURIの変更

参照しているRDFSクラスのURIの変更

RDFSクラスの新規作成

図 10 では,RDFSクラスex:啓蒙書が定義されていない状態で,ユーザがRDFリソースex:学問のすゝめのタイプex:書籍をex:啓蒙書に変更している.ここでは,整合性を保つためにRDFSクラスの新規作成をユーザが選択している.ex:啓蒙書クラスを新規に作成することによって,RDFコンテンツとRDFSコンテンツ間の整合性が保たれる.RDFSクラスex:啓蒙書は,rdfs:Resource のサブクラスとなる.

注釈

rdfs:subClassOfプロパティが定義されていないクラスは,暗黙的にrdfs:Resourceのサブクラスとなる.

RDFSクラスの新規作成

RDFSクラスの新規作成

M→O: RDFプロパティの変更

ユーザが変更したRDFプロパティがRDFSプロパティで定義されている場合は,RDF(S)コンテンツ構築支援ツールは,RDFプロパティとそれに対応するRDFSプロパティを対応づける.ユーザが変更したRDFプロパティに対応するRDFSプロパティが定義されていない場合,ユーザは次の二つのどちらかを選択できる.一つは,ユーザはRDFプロパティを変更する前に参照していたRDFSプロパティのURIを変更することができる.もう一つは,ユーザは,定義されていないRDFSプロパティを新規に作成することができる. 図 11 および 図 12 は,それぞれ,RDFプロパティを変更した場合の具体例を表している.

参照しているRDFSプロパティのURIの変更

図 11 では,RDFSプロパティex:作者が定義されていない状態で,ユーザがRDFリソースex:民情一新が持つプロパティex:著者をex:作者に変更している.ここでは,整合性を保つためにRDFSプロパティ名の変更をユーザが選択している.RDFSプロパティex:著者をex:作者に変更することにより,ex:学問のすゝめが持つプロパティex:著者もex:作者に半自動的に変更される.

参照しているRDFSプロパティのURIの変更

参照しているRDFSプロパティのURIの変更

RDFSプロパティの新規作成

図 12 では,RDFSプロパティex:作者が定義されていない状態で,ユーザがRDFリソースex:民情一新が持つプロパティex:著者をex:作者に変更している.ここでは,整合性を保つためにRDFSプロパティの新規作成をユーザが選択している.RDFSプロパティex:作者を新規に作成することによって,整合性を保つことができる.

RDFSプロパティの新規作成

RDFSプロパティの新規作成

その他の機能

RDF文書のインポート

RDF文書をRDF(S) コンテンツ構築支援ツールにインポートする場合,RDFリソースのタイプおよびRDFプロパティが,RDFSクラスおよびRDFSプロパティとして定義されていない場合がある.その場合,整合性を保つためにRDFSクラスとして定義されていないRDFリソースのタイプは,rdfs:Resource クラスのサブクラスとして新規作成する.同様に,RDFSプロパティとして定義されていないRDFプロパティについても新規作成する.

図 13 の左側は,RDF文書をインポートする前の状態を表しており,右側はRDF文書をインポートした後の状態を表している.RDFリソースex:学問のすゝめとex:民情一新のタイプex:書籍は,RDFSクラスとして定義されていない.RDFプロパティex:著者も同様に,RDFSプロパティとして定義されてない.整合性を保つために,RDFSクラスex:書籍とRDFSプロパティex:著者は,インポート時に自動的に作成される.

RDF文書のインポート

RDF文書のインポート

要素名の一意性確保

要素名の一意性確保は,RDF要素およびRDFS要素の名前変更および新規作成を行う際に,他の要素名と重複しないようにするための機能である.RDFS要素名の重複を許すと,RDFリソースのタイプおよびRDFプロパティに対応するRDFS要素が複数存在することになるため,整合性を保つことができない.RDFコンテンツとRDFSコンテンツ間の整合性を保つために,RDF(S) コンテンツ構築支援ツールでは,要素名の一意性を確保する.

URI 識別補助機能

URI 識別補助機能とは,RDF要素およびRDFS要素の識別を補助するための機能である.ユーザはRDF要素およびRDFS要素をURI によって識別する.URI は一般的に数十文字になるため,膨大な数のリソースを扱う場合,ユーザがURI を識別および編集することが困難である.そこで,RDF(S) コンテンツ構築支援ツールではユーザが指定した名前空間URI を指定した名前空間接頭辞に置換して表示する機能をもつ.また,RDF要素およびRDFS要素にrdfs:label プロパティの値(ラベル)が定義されている場合,URIの代わりにラベルを表示する機能をもつ.

メタクラスの設定機能

RDF(S) コンテンツ構築支援ツールでは,ユーザはメタクラスを設定することができる.メタクラスには,クラスクラスとプロパティクラスの2 種類がある.あるリソースのタイプがクラスクラスの場合,そのリソースはクラスとなる.また,あるリソースのタイプがプロパティクラスの場合,そのリソースはプロパティとなる.この機能により,ユーザはどのリソースをクラスまたはプロパティとして扱うかを設定することができる.例えば,ユーザがowl:Class をクラスクラスとして,owl:ObjectProperty とowl:DatatypePropertyをプロパティクラスとして設定した場合,RDF(S) コンテンツ構築支援ツールはOWLのクラスおよびプロパティを扱うことができる.RDF(S) コンテンツ構築支援ツールでは,初期クラスクラスとしてrdfs:Class が,初期プロパティクラスとしてrdf:Propertyが設定されている.

整合性チェック機能

整合性チェック機能により,RDF(S)コンテンツ構築中の任意の時点で,RDFSプロパティの定義域および値域に違反するRDFコンテンツのステートメントをユーザに提示することができる.RDF(S)コンテンツ構築支援ツールは,RDFプロパティの定義を容易に行うことができるように,RDFSプロパティの定義域および値域の整合性チェックをリアルタイムに行わない.整合性チェックには,vOWLidator を用いている.

注釈

オントロジーベースのツールでは,RDFS プロパティの定義域および値域を定義しなければ,RDF コンテンツ構築時にRDF プロパティが利用できない. MR3 は,RDFS プロパティの定義域および値域の定義を行うことなく,RDF プロパティの定義を行うことができる.

ユーザマニュアル

MR3 のアーキテクチャ

図 14 にMR3 の実装アーキテクチャを示す.MR3 はGUIコンポーネントとしてJava Swingを用いて,Java言語で実装を行った. MR3 は,RDFおよびRDFSデータグラフを視覚化するためにJGraphライブラリを用いている.図 14 のグラフィカルモデラの実装にはJGraphを用いている.また,MR3 は,セマンティックWeb コンテンツ(RDF,RDFS,OWLコンテンツ)のインポート,編集,エクスポートを行うために,Apache Jenaを用いている.パーサとジェネレータの実装にはJena APIを用いている.他のセマンティックWebアプリケーションと連携を行うことができるように, MR3 はプラグイン機構を備えている.MR3 はプラグイン開発のために主に2 種類のAPI を提供している.一つは,MR3 のデータグラフをJenaのモデルオブジェクトに変換するAPIであり,もう一つは,JenaのモデルオブジェクトをMR3 のデータグラフに変換するAPIである.これらのAPIを用いることで, MR3 で構築したRDFおよびRDFSコンテンツを別のセマンティックWeb アプリケーションに入力することや,逆に他のセマンティックWeb アプリケーションの出力をMR3 に入力することが可能となる.

MR\ :sup:`3` \の実装アーキテクチャ

MR3 の実装アーキテクチャ

MR3 のシステム構成図

図 15 にMR3 のシステム構成を示す. MR3 は,パーサモジュール,ジェネレータモジュール,RDF(S)コンテンツ管理モジュール,プラグイン,ユーザインタフェースから構成される.ユーザインタフェースには,プラグインインタフェースおよびグラフィカルモデラがあり,ユーザはグラフィカルモデラを介して,RDFおよびRDFSコンテンツを視覚的に編集することができる.また,ユーザは,プラグインインタフェースより,プラグインの機能にアクセスすることができる. MR3 の入力と出力はRDF(S)文書である.パーサはRDF(S)文書を解析して,Jena のモデルオブジェクトに変換し,その後,RDF(S)コンテンツ管理を行うことができるようにMR3 の内部データに変換する.ジェネレータは, MR3 の内部データをJena のモデルオブジェクトに変換し,その後,RDF(S)文書に変換する

MR\ :sup:`3` \のシステム構成

MR3 のシステム構成

MR3 の画面構成

図 16 にMR3 のグラフィカルモデラのスクリーンショットを示す.グラフィカルモデラは,RDFエディタ,クラスエディタ,プロパティエディタ,アトリビュートダイアログ,名前空間テーブル,削除ダイアログ,リソース検索ダイアログ,インポートダイアログ,エクスポートダイアログ,設定ダイアログから構成される.

MR\ :sup:`3` \のグラフィカルモデラのスクリーンショットs

MR3 のグラフィカルモデラのスクリーンショット

RDFエディタ

RDFエディタでは,RDFリソース,RDFリソースのタイプ,RDFプロパティ,RDFリテラルの編集を行う.図 17 に示すように,RDFリソースは楕円,RDFプロパティは矢印,RDFリテラルは矩形でRDFエディタ内に表示される.RDFリソースのタイプはRDFリソースの右上に表示される.

RDFエディタ

RDFエディタ

RDFエディタのツールバー

以下にRDFエディタのツールバーにおけるアイコンと対応する機能を示す.

アイコン 機能
_images/move.gif
ノードを移動する
_images/connect.gif
ノードとノードを矢印で接続する
_images/link.png
RDFノードを選択時に,対応するRDFSノードを選択する状態
_images/link_break.png
RDFノードを選択時に,対応するRDFSノードを選択しない状態
_images/insert_resource.png
RDFリソースを挿入する
_images/insert_literal.png
RDFリテラルを挿入する
_images/arrow_undo.png
アンドゥ
_images/arrow_redo.png
リドゥ
_images/copy.png
ノードをコピーする
_images/cut.png
ノードをカットする
_images/paste.png
ノードをペーストする
_images/delete.png
ノードを削除する
_images/find.png
リソース検索ダイアログを表示する
_images/zoom100.gif
標準の倍率にする
_images/zoom_in.png
拡大する
_images/zoom_out.png
縮小する
_images/zoom.png
全体が表示できる倍率にする
_images/shape_group.png
ノードのグループ化
_images/shape_ungroup.png
ノードのグループ化解除
_images/layout_rdf_graph.png
RDFグラフの自動整列を実行

RDFエディタのポップアップメニュー

RDFエディタ内で,右クリックするとポップアップメニューが表示される.ポップアップメニューは,ノードを選択している場合としていない場合で表示内容が異なる.

図 18 にノードが選択されていない状態のRDFエディタ内で表示されるポップアップメニューのスクリーンショットを示す. 図 19 にノードが選択された状態のRDFエディタ内で表示されるポップアップメニューのスクリーンショットを示す.

ノードが選択されていない状態

ノードが選択されていない状態

ノードが選択された状態

ノードが選択された状態

各メニューの説明は以下のとおりである.

RDFリソースの挿入
マウスの右クリックで指定した位置にRDFリソースを挿入する.
リテラルの挿入
マウスの右クリックで指定した位置にリテラルを挿入する.
接続モード
接続モードにきりかえる.接続モードでRDFリソースから別のRDFリソースまたは,RDFリテラルにドラッグ&ドロップを行うと,リソース間をプロパティで接続することができる.
RDFからクラスへ変換
RDFリソースをRDFSクラスに変換する.
RDFからプロパティへ変換
RDFリソースをRDFSプロパティに変換する.
コピー
RDFリソース,プロパティ,リテラルをコピーする.
カット
RDFリソース,プロパティ,リテラルをカットする.
ペースト
RDFリソース,プロパティ,リテラルをペーストする.
削除
RDFリソース,プロパティ,リテラルを削除する.
アトリビュートダイアログを表示
アトリビュートダイアログを表示する

RDFリソースの属性編集

RDFエディタ内のRDFリソースを選択すると,アトリビュートダイアログにRDFリソースの属性が表示される( 図 20 から 図 27 ).RDFリソースの属性編集では,RDFリソースのURI,RDFリソースのタイプ,RDFリソースが空白ノード(blank node) かどうかの選択,RDFリソースのラベルおよびコメントを編集することができる.ここで,空白ノードとは,URI により名前付けしないRDFリソースを表す.空白ノードは外部から参照することはできない.しかし,ステートメントにおける主語または目的語になることができ,URI により名前付けしにくいRDFリソースを記述したり,複数のRDFプロパティを構造化したRDFコンテンツを表現するために用いられる.

RDFリソースのURI を設定したい場合には, 図 20 に示すように,アトリビュートダイアログ左側の一覧から「URI」を選択する.「接頭辞」コンボボックスには,名前空間テーブルに登録されている名前空間接頭辞の一覧が表示される.「接頭辞」コンボボックスから名前空間接頭辞を選択すると,対応する名前空間が「RDFリソース」テキストフィールドに出力される.ユーザは,「RDFリソース」テキストフィールドに設定したいRDFリソースのURI を入力する.RDFリソースを空白ノードとしたい場合には,「ブランク」チェックボックスにチェックをいれる.

アトリビュートダイアログ(RDFリソースのURI)

アトリビュートダイアログ(RDFリソースのURI)

RDFリソースのタイプを設定したい場合には, 図 21 に示すように,アトリビュートダイアログ左側の一覧から「タイプ」を選択する.RDFリソースタイプを入力するには,「タイプ」チェックボックスをチェックする.RDFリソースのタイプを空にするには,「タイプ」チェックボックスのチェックをはずす.「タイプ選択」ボタンをクリックすると, 図 22 に示す「RDFリソースタイプ選択」ダイアログが表示される.「RDFリソースタイプ選択」ダイアログには,クラスエディタで構築したクラス階層が表示される.RDFリソースのタイプとしたいクラスを選択すると,「RDFリソースタイプ選択」ダイアログのURI ラベルに,選択したクラスのURI が表示される.「了解」ボタンをクリックすると,アトリビュートダイアログの「接頭辞」コンボボックスと「リソースタイプID」テキストフィールドに,「RDFリソースタイプ選択」ダイアログで選択したURI が設定される.クラスエディタで定義されていないクラスのURI をRDFリソースのタイプとして入力した場合,RDF(S)コンテンツ管理機能が働き, 図 23 に示す「RDF(S)コンテンツ管理」ダイアログが表示される.RDF(S)コンテンツ管理ダイアログでは,RDFSクラス名の変更またはRDFSクラスの新規作成のどちらかをユーザは選択することができる.「ジャンプクラス」ボタンをクリックすると,そのRDFリソースのタイプと対応するクラスエディタ内のRDFSクラスへジャンプする.また,アトリビュートダイアログにそのRDFSクラスの属性が表示される.

アトリビュートダイアログ(RDFリソースのタイプ)

アトリビュートダイアログ(RDFリソースのタイプ)

RDFリソースタイプ選択ダイアログ

RDFリソースタイプ選択ダイアログ

RDF(S)コンテンツ管理ダイアログ

RDF(S)コンテンツ管理ダイアログ

RDFリソースに対して,rdfs:label プロパティを用いてRDFリソースのラベルを記述したい場合には, 図 24 に示すように,アトリビュートダイアログ左側の一覧から「ラベル」を選択する.「言語」テキストフィールドに言語を,「ラベル」テキストフィールドにラベルを入力し,「追加」ボタンを押すと,アトリビュートダイアログ中央のテーブルに言語とラベルが追加される.テーブルの行を選択し,「削除」ボタンを押すと選択したラベルを削除することができる.

アトリビュートダイアログ(RDFリソースのラベル)

アトリビュートダイアログ(RDFリソースのラベル)

RDFリソースに対して,rdfs:comment プロパティを用いてRDFリソースのコメントを記述したい場合には, 図 25 に示すように,アトリビュートダイアログ左側の一覧から「コメント」を選択する.「追加」ボタンを押すと,「コメント編集」ダイアログが表示される.「言語」テキストフィールドに言語を,「ラベル」テキストフィールドにラベルを入力し,「了解」ボタンを押すと,アトリビュートダイアログ中央のテーブルに言語とコメントが追加される.テーブルの行を選択し,「編集」ボタンを押すと「コメント編集」ダイアログが表示され,コメントを編集することができる.テーブルの行を選択し,「削除」ボタンを押すと選択したコメントを削除することができる.

アトリビュートダイアログ(RDFリソースのコメント)

アトリビュートダイアログ(RDFリソースのコメント)

RDFプロパティの属性編集

RDFエディタ内のRDFプロパティを選択すると,アトリビュートダイアログにRDFプロパティの属性が表示される( 図 26 ).RDFプロパティの属性編集では,RDFプロパティのURI を編集することができる.「コンテナ」チェックボックスにチェックをして,数値を入力するとrdf: 1…rdf: n プロパティの入力を行うことができる.「プロパティの接頭辞のみ表示」チェックボックスにチェックをいれると,プロパティエディタで定義されているプロパティがもつ名前空間URI に対応する名前空間接頭辞のみを「接頭辞」コンボボックスから選択可能となる.チェックをはずすと,名前空間テーブルに登録されているすべての接頭辞を選択可能となる.

アトリビュートダイアログ(RDFプロパティ)

アトリビュートダイアログ(RDFプロパティ)

プロパティエディタで定義されていないプロパティのURI を入力した場合,RDF(S)コンテンツ管理機能が働き, 図 23 に示す「RDF(S)コンテンツ管理」ダイアログが表示される.RDF(S)コンテンツ管理ダイアログでは,RDFSプロパティ名の変更またはRDFSプロパティの新規作成のどちらかをユーザは選択することができる.プロパティエディタ内で定義されているプロパティの中で,名前空間接頭辞に対応する名前空間URI をもつプロパティのID が「プロパティID」リストに表示される.「プロパティ」ボタンをクリックすると,選択したRDFプロパティに対応するプロパティエディタ内のRDFSプロパティにジャンプし,アトリビュートダイアログにそのRDFSプロパティの属性が表示される.

RDFリテラルの属性編集

RDFエディタ内のRDFリテラルを選択すると,アトリビュートダイアログにRDFリテラルの属性が表示される( 図 27 ).RDFリテラルの編集では,リテラルの内容,言語属性(xml:lang 属性),データタイプの編集を行うことができる.「リテラル」テキストエリアには,リテラルの内容を入力する.「言語」テキストフィールドには,リテラルの記述言語を入力する.リテラルのデータタイプを設定したい場合には,「タイプ」チェックボックスにチェックを入れて,「タイプ」コンボボックスからデータタイプを選択することができる.リテラルのデータタイプを必要としない場合には,「タイプ」チェックボックスのチェックをはずす.言語とリテラルのタイプは排他的であり,どちらか一方しか設定することはできない

アトリビュートダイアログ(RDFリテラル)

アトリビュートダイアログ(RDFリテラル)

クラスエディタ

クラスエディタでは,RDFSクラスの階層関係およびRDFSクラスの属性編集を行うことができる. 図 28 にクラスエディタのスクリーンショットを示す

クラスエディタ

クラスエディタ

クラスエディタのツールバー

以下にクラスエディタのツールバーにおけるアイコンと対応する機能を示す.

アイコン 機能
_images/move.gif
ノードを移動する
_images/connect.gif
ノードとノードを矢印で接続する
_images/insert_class.png
RDFSクラスを挿入する
_images/arrow_undo.png
アンドゥ
_images/arrow_redo.png
リドゥ
_images/copy.png
ノードをコピーする
_images/cut.png
ノードをカットする
_images/paste.png
ノードをペーストする
_images/delete.png
ノードを削除する
_images/find.png
リソース検索ダイアログを表示する
_images/zoom100.gif
標準の倍率にする
_images/zoom_in.png
拡大する
_images/zoom_out.png
縮小する
_images/zoom.png
全体が表示できる倍率にする
_images/shape_group.png
ノードのグループ化
_images/shape_ungroup.png
ノードのグループ化解除
_images/layout_class_graph.png
RDFSクラスグラフの自動整列を実行

クラスエディタのポップアップメニュー

クラスエディタ内で,右クリックするとポップアップメニューが表示される.ポップアップメニューは,ノードを選択している場合としていない場合で表示内容が異なる.

図 29 にノードが選択されていない状態のクラスエディタ内で表示されるポップアップメニューのスクリーンショットを示す. 図 30 にノードが選択された状態のクラスエディタ内で表示されるポップアップメニューのスクリーンショットを示す.

ノードが選択されていない状態

ノードが選択されていない状態

ノードが選択された状態

ノードが選択された状態

各メニューの説明は以下のとおりである.

クラスの挿入
マウスの右クリックで指定した場所にクラスを挿入する.他のクラスを選択した状態でクラスの挿入を行うと,選択したクラスのサブクラスとして,新規クラスが挿入される.
接続モード
接続モードに切り替える.下位クラスから上位クラスにドラッグ&ドロップをすることで,上位・下位関係を定義できる.
クラスからRDFへ変換
RDFSクラスからRDFリソースへ変換する.
クラスからプロパティへ変換
RDFSクラスからRDFSプロパティへ変換する.
コピー
クラスとクラス間の関係をコピーする.
カット
クラスとクラス間の関係をカットする.
ペースト
クラスとクラス間の関係をカットする.
削除
クラスとクラス間の関係を削除する.
アトリビュートダイアログを表示
アトリビュートダイアログを表示する.

クラスエディタの属性編集

クラスエディタ内のRDFSクラスを選択すると,RDFSクラスの属性がアトリビュートダイアログに表示される( 図 31 から 図 33 ).アトリビュートダイアログ左側のリストから「基本」,「ラベル」,「コメント」,「インスタンス」,「上位クラス」項目を選択し,RDFSクラスの属性の編集を行う.「基本」では,リソースタイプおよびURI を編集することができる( 図 31 ).リソースタイプで選択できる項目は,「設定」ダイアログのクラスクラスリストから追加および削除を行うことができる.「ラベル」では,rdfs:label プロパティの編集を行うことができる.「コメント」では,rdfs:commentの編集を行うことができる.ラベルとコメントの編集方法は,RDFリソースと同様である.「インスタンス」には選択したRDFSクラスのインスタンスのリストが表示される( 図 32 ).リスト中の項目をクリックすると対応するRDFエディタ内のRDFリソースにジャンプし,そのRDFリソースの属性がアトリビュートダイアログに表示される.「上位クラス」には,選択したRDFSクラスの上位クラスのリストが表示される( 図 33 ).

アトリビュートダイアログ(RDFSクラスの基本)

アトリビュートダイアログ(RDFSクラスの基本)

アトリビュートダイアログ(RDFSクラスのインスタンス)

アトリビュートダイアログ(RDFSクラスのインスタンス)

アトリビュートダイアログ(RDFSクラスの上位クラス)

アトリビュートダイアログ(RDFSクラスの上位クラス)

プロパティエディタ

プロパティエディタでは,RDFS プロパティの階層関係およびRDFS プロパティの属性編集を行うことができる. 図 34 にプロパティエディタのスクリーンショットを示す.

プロパティエディタ

プロパティエディタ

プロパティエディタのツールバー

以下にプロパティエディタのツールバーにおけるアイコンと対応する機能を示す.

アイコン 機能
_images/move.gif
ノードを移動する
_images/connect.gif
ノードとノードを矢印で接続する
_images/insert_property.png
RDFSプロパティを挿入する
_images/arrow_undo.png
アンドゥ
_images/arrow_redo.png
リドゥ
_images/copy.png
ノードをコピーする
_images/cut.png
ノードをカットする
_images/paste.png
ノードをペーストする
_images/delete.png
ノードを削除する
_images/find.png
リソース検索ダイアログを表示する
_images/zoom100.gif
標準の倍率にする
_images/zoom_in.png
拡大する
_images/zoom_out.png
縮小する
_images/zoom.png
全体が表示できる倍率にする
_images/shape_group.png
ノードのグループ化
_images/shape_ungroup.png
ノードのグループ化解除
_images/layout_property_graph.png
RDFSプロパティグラフの自動整列を実行

プロパティエディタのポップアップメニュー

プロパティエディタ内で,右クリックするとポップアップメニューが表示される.ポップアップメニューは,ノードを選択している場合としていない場合で表示内容が異なる.

図 35 にノードが選択されていない状態のプロパティエディタ内で表示されるポップアップメニューのスクリーンショットを示す. 図 36 にノードが選択された状態のプロパティエディタ内で表示されるポップアップメニューのスクリーンショットを示す.

ノードが選択されていない状態

ノードが選択されていない状態

ノードが選択された状態

ノードが選択された状態

各メニューの説明は以下のとおりである.

プロパティの挿入
マウスの右クリックで指定した場所にプロパティを挿入する.他のクラスを選択した状態でプロパティの挿入を行うと,選択したプロパティのサブプロパティとして,新規プロパティが挿入される.
接続モード
接続モードに切り替える.下位プロパティから上位プロパティにドラッグ&ドロップをすることで,上位・下位関係を定義できる.
プロパティからRDFへ変換
RDFSプロパティからRDFリソースへ変換する.
プロパティからクラスへ変換
RDFSプロパティからRDFSクラスへ変換する.
コピー
プロパティとプロパティ間関係をコピーする.
カット
プロパティとプロパティ間関係をカットする.
ペースト
プロパティとプロパティ間関係をペーストする.
削除
プロパティとプロパティ間関係を削除する.
アトリビュートダイアログを表示
アトリビュートダイアログを表示する.

プロパティエディタの属性編集

プロパティエディタ内のRDFS プロパティを選択すると,RDFS プロパティの属性がアトリビュートダイアログに表示される( 図 37図 38図 39 ).アトリビュートダイアログ左側のリストには,「基本」,「ラベル」,「コメント」,「範囲」,「インスタンス」,「上位プロパティ」項目が表示される.「基本」,「ラベル」,「コメント」の編集項目はRDFSクラスと同様である.「基本」のリソースタイプは,「設定」ダイアログのプロパティクラスリストから追加および削除を行うことができる.「範囲」にはRDFS プロパティの定義域および値域をクラスエディタから選択できる( 図 37 ).「インスタンス」には選択したRDFS プロパティを有するRDF リソースのリストが表示される( 図 38 ).リスト中の項目をクリックした際の動作は,RDFS クラスの場合と同様である.「上位プロパティ」には選択したRDFS プロパティの上位プロパティが表示される( 図 39 ).

アトリビュートダイアログ(RDFSプロパティの範囲)

アトリビュートダイアログ(RDFSプロパティの範囲)

アトリビュートダイアログ(RDFSプロパティのインスタンス)

アトリビュートダイアログ(RDFSプロパティのインスタンス)

アトリビュートダイアログ(RDFSプロパティの上位クラス)

アトリビュートダイアログ(RDFSプロパティの上位クラス)

リソース検索ダイアログ

リソース検索ダイアログでは,RDF エディタ,クラスエディタ,プロパティエディタ内に定義されているRDF(S) 要素の検索を行うことができる. 図 40 にリソース検索ダイアログを示す.「グラフタイプ」内の「RDF」,「クラス」,「プロパティ」チェックボックスのいずれか一つを選択し,検索範囲を設定する.「URI」テキストフィールドに検索したいURI を入力すると,「グラフタイプ」内で選択されたチェックボックスの検索範囲内でリソースを検索する.該当するリソース一覧が, 図 40 下部の「検索結果」リストに表示される.「検索結果」リストの項目を選択すると,選択したリソースを含むエディタ内のノードへジャンプし,アトリビュートダイアログにそのリソースの属性が表示される.「ラベル」と「コメント」テキストフィールドには,それぞれ,「rdfs:label」プロパティ値と「rdfs:comment」プロパティ値を対象に検索を行うことができる.表示方法は,「URI」テキストフィールドにおける検索と同様である.

リソース検索ダイアログ

リソース検索ダイアログ

名前空間テーブル

名前空間テーブルでは,名前空間URI を名前空間接頭辞に置換して表示するために,名前空間接頭辞と名前空間URI の管理を行う. 図 41 に名前空間テーブルのスクリーンショットを示す.「接頭辞」テキストフィールドに名前空間接頭辞を,「名前空間」テキストフィールドに名前空間URI を入力して,「追加」ボタンを押すと名前空間接頭辞と名前空間URI の対応がテーブルに追加される.対応を削除したい場合には,削除したいテーブルの行を選択し,「削除」ボタンを押す.「有効」チェックボックスをチェックすると,URI表示にしている場合に名前空間URI が名前空間接頭辞で置換される.

「有効」チェックボックスのチェックをはずすと名前空間接頭辞が名前空間URI に置換される.RDF(S) 要素のURI を入力する際に名前空間テーブルが参照される.RDF(S) 要素のURI を入力するためには,名前空間接頭辞とID(ローカル名)を入力する必要がある.名前空間テーブルに登録されている名前空間接頭辞をコンボボックスから選択することができる.入力したいURI の名前空間URI および,その名前空間接頭辞をあらかじめ名前空間テーブルに登録する必要がある.名前空間接頭辞を選択すると対応する名前空間URIが「名前空間」ラベルに表示される.

名前空間テーブル

名前空間テーブル

削除ダイアログ

削除対象のRDFSクラスを,RDFリソースのタイプまたはRDFプロパティの定義域または値域が参照している場合,そのRDFSクラスを削除すると整合性を保つことができない.RDFプロパティが削除対象のRDFSプロパティを参照している場合も同様である.これらの場合,RDF(S)コンテンツ管理機能によって, 図 42 に示す「削除」ダイアログが表示される. 図 42 上部の「削除」リストには,削除対象のRDFSクラスのうち,削除すると整合性を保つことができないRDFSクラスまたはRDFSプロパティのリストが表示される. 図 42 下部の参照リスト内の「RDF」タブには,削除対象のRDFSクラスをタイプとして参照しているRDFリソースのリストまたは,削除対象のRDFSプロパティを参照しているRDFプロパティのリストが表示される.「プロパティ」タブには,定義域または値域として,削除対象のRDFSクラスを参照しているRDFSプロパティの一覧が表示される.参照リストの「削除」チェックボックスは,RDFSクラスまたは,RDFSプロパティの参照をやめるかどうかの決定に用いる.「削除」チェックボックスをチェックした状態で「適用」ボタンをクリックすると,削除対象のRDFSクラスまたはRDFSプロパティへの参照がたたれる.「削除」チェックボックスのチェックをはずした項目については,「適用」ボタンを押したときに整合性のチェックを行う.「全選択」ボタンは,すべての「削除」チェックボックスにチェックをつける.「全解除」ボタンは,すべての「削除」チェックボックスのチェックをはずす.「反転」ボタンは,現在チェックされているものとされていないものを反転する.「ジャンプ」ボタンは,選択したリソースへジャンプする.RDFリソースのタイプ,定義域,値域を変更したい場合は,ジャンプボタンで該当するリソースへジャンプして変更を行うことができる.

削除ダイアログ

削除ダイアログ

インポートダイアログ

インポートダイアログでは,RDF/XML, N3, N-Triple, Turtle 形式で記述されたRDF(S)文書をMR3 にインポートすることができる. 図 43 にインポートダイアログのスクリーンショットを示す.また,以下ではインポートダイアログの各部分( 図 43 内の 1 から 13)について説明する.

インポートダイアログ

インポートダイアログ

  1. コンテナリスト
    RDF,N3, N-Triple,Turtle 形式で記述されたRDF(S) 文書が保存されたフォルダまたはURI のリストを表示する.
  2. フォルダ追加
    「1. コンテナリスト」にフォルダを追加する.
  3. URI 追加
    「1. コンテナリスト」にURI を追加する.
  4. 削除
    「1. コンテナリスト」内の選択したフォルダまたはURI を削除する.
  5. 構文
    インポートしたいRDF(S) 文書の構文(RDF/XML, N3, N-Triple, Turtle) を選択する.
  6. データタイプ
    インポートしたい文書のタイプ(RDF, RDFS, OWL) を選択する.
  7. インポート方法
    編集中のRDF(S) コンテンツにインポートしたいRDF(S) 文書の内容をマージするか,または,編集中のRDF(S) コンテンツをインポートしたいRDF(S) 文書の内容に置換するかを選択する.
  8. 検索
    「検索」テキストフィールドに入力したキーワードによって,「9. インポートファイル」内に表示されているファイルを絞り込む.
  9. インポートファイル
    「1. コンテナリスト」内で選択されたフォルダ内のファイル一覧を表示する.
  10. 拡張子
    拡張子によって,「9. インポートファイル」内に表示されているファイルを絞り込む.
  11. 再読み込み
    「1. コンテナリスト」で選択されているフォルダの内容を再読込し,最新のファイル一覧を「9. インポートファイル」に表示する.
  12. インポート
    設定した条件(構文,データタイプ,インポート方法,インポートファイル)でRDF(S) 文書をMR3 にインポートする.
  13. 取消し
    インポートを中止し,インポートダイアログを閉じる.

エクスポートダイアログ

エクスポートダイアログでは, MR3 で構築したRDF(S) データグラフをRDF/XML, N3, N-Triple, Turtle 形式でRDF(S) 文書にエクスポートすることができる. 図 44 にエクスポートダイアログのスクリーンショットを示す.また,以下ではエクスポートダイアログの各部分( 図 44 内の1 から8)について説明する.

エクスポートダイアログ

エクスポートダイアログ

  1. 構文
    RDF(S) 文書としてエクスポートしたい構文(RDF/XML,N-Triple,Turtle,N3 など)を選択する.
  2. データタイプ
    各チェックボックスでチェックされたエディタ内のデータグラフをRDF(S) 文書にエクスポートする.(例:クラスとプロパティにチェックをつけた場合,クラスエディタとプロパティエディタ内のデータグラフをRDF(S) 文書にエクスポートする.)
  3. オプション
    「Encode(UTF-8)」チェックボックスにチェックをいれた場合,エクスポート時にURI の規則を定めるRFC3986 に基づいて,各要素のURI 文字列に含まれる非予約文字データをURLエンコードする.「Selected」チェックボックスにチェックをいれた場合,範囲選択されているサブデータグラフをエクスポートする.「Abbrev」チェックボックスにチェックをいれた場合,省略表記方法でエクスポートする.「XMLbase」チェックボックスにチェックをいれると,XMLBase 宣言がRDF(S) 文書内に追加される.
  4. ファイル
    設定した条件(構文,データタイプ,オプション)で,RDF(S) 文書にエクスポートする.
  5. 画像
    「3. データタイプ」の「RDF」,「クラス」,「プロパティ」チェックボックスのうちどれか1 つを選択し,「画像」ボタンを押すと,選択されたエディタのデータグラフをpng 形式でファイルに保存することができる.
  6. 再読み込み
    設定した条件で最新のデータグラフを「8. ソース表示」に表示する.
  7. 取消し
    エクスポートを中止し,エクスポートダイアログを閉じる.
  8. ソース表示
    エクスポートされるRDF(S) 文書の内容が表示される.

設定ダイアログ

設定ダイアログでは,基本,ディレクトリ,プロキシ,メタクラス,レイアウト,レンダリングについて設定を行うことができる.

基本

設定ダイアログの「基本」項目( 図 45 )では,言語,UI 言語,出力エンコーディング,フォント,ベースURI,ログファイルの設定ができる.言語はラベル表示を行う際に優先して表示する言語を設定できる.UI 言語は,メニューなどに表示する言語を設定できる.言語は,ja(日本語),en(英語),zh(中国語)を選択できる.出力エンコーディングは,エクスポート時にRDF(S)文書を保存するファイルエンコーディングを設定する.フォントは,各エディタ内のノード内の文字列を表示する際のフォントを設定する.ベースURI には,エクスポート時の初期の名前空間URI を設定する.ログファイルには,MR3 使用中の各種ログを保存するファイルを設定する.

設定ダイアログ: 基本

設定ダイアログ: 基本

ディレクトリ

設定ダイアログの「ディレクトリ」項目( 図 46 )では,作業ディレクトリ,プラグインディレクトリ,リソースディレクトリを設定ができる.作業ディレクトリには,インポートダイアログにおいて,RDF(S)文書を含むフォルダを選択する際に最初に開くフォルダを設定する.プラグインディレクトリには, MR3 のプラグインが保存されているフォルダを設定する.リソースディレクトリは, MR3 のプロパティファイル(メニューなどに表示する言語ごとの設定ファイル)が保存されているフォルダを設定する.

設定ダイアログ: ディレクトリ

設定ダイアログ: ディレクトリ

プロキシ

設定ダイアログの「プロキシ」項目( 図 47 )では,プロキシサーバを利用している場合に,プロキシサーバのホスト名とポート番号の設定を行うことができる.インポートダイアログからURI を指定して,RDF(S)文書をインポートする場合に設定が必要となる場合がある.

設定ダイアログ: プロキシ

設定ダイアログ: プロキシ

メタクラス

設定ダイアログの「メタクラス」項目( 図 48 )では,「クラスクラス」および「プロパティクラス」の設定をすることができる.「クラスクラス」に設定したクラスをrdf:typeプロパティの値とするリソースを, MR3 はクラスとして認識し,クラスエディタにインポートすることができる.同様に,「プロパティクラス」に設定したクラスをrdf:type プロパティの値とするリソースを, MR3 はプロパティとして認識し,プロパティエディタにインポートすることができる.

初期状態では,「クラスクラス」にはrdfs:Class が設定されている.また,「プロパティクラス」には,rdf:Property が設定されている.owl:Class やowl:ObjectProperty をタイプとするリソースを,クラスまたはプロパティとしてMR3 にインポートしたい場合には, 図 48 の「Class Class」タブまたは「Property Class」タブで設定を行う

設定ダイアログ: メタクラス

設定ダイアログ: メタクラス

レイアウト

設定ダイアログの「レイアウト」項目( 図 49 )では,各エディタ内のデータグラフのレイアウト方法を設定する.

設定ダイアログ: レイアウト

設定ダイアログ: レイアウト

レンダリング

設定ダイアログの「レンダリング」項目( 図 50 )では,RDFリソース,RDFリテラル,RDFSクラス,RDFSプロパティの各ノードの色や,ノード選択時の色,エディタウィンドウの背景職をカスタマイズすることができる.「ノードに色をつける」チェックボックスのチェックをはずすと,すべてのノードが無色となる.「アンチエイリアス」チェックボックスにチェックをいれると各ノードの縁が滑らかに表示される.

設定ダイアログ: レンダリング

設定ダイアログ: レンダリング

拡張機能

「ツール」メニューの「拡張機能」を選択すると,図 51 に示すダイアログが表示される. 「拡張機能」には,設定ダイアログの「ディレクトリ」項目のプラグインディレクトリに指定したディレクトリに含まれる jarファイルを読み込んで,プラグインリストを表示する.プラグインを選択すると,説明が画面下部に表示され, 「実行」ボタンを押すと,プラグインが実行される.プラグイン作成方法については,プラグイン開発 参照いただきたい.

拡張機能

拡張機能

整合性検証

「ツール」メニューの「整合性検証」を選択すると,図 52 に示すダイアログが表示される. 「整合性検証」では,Jenaの org.apache.jena.reasoner.ValidityReport を利用し,リテラルのデータ型がプロパティの値域の定義に基いて定義されているかどうかなどを検証することができる.

整合性検証

整合性検証

プロジェクト情報

「ツール」メニューの「プロジェクト情報」を選択すると,図 53 に示すダイアログが表示される. 「プロジェクト情報」には,現在のプロジェクト名,インポート時間,モデルのリソース数,モデルのリテラル数,モデルのステートメント数, クラス数,プロパティ数,すべてのリソース数,すべてのリテラル数,すべてのステートメント数が表示される.

プロジェクト情報

プロジェクト情報

ログ・コンソール

「ツール」メニューの「ログ・コンソールを表示」を選択すると,図 54 に示すダイアログが表示される. ログ・コンソールには,標準出力と標準エラー出力への出力結果が確認できる.

ログ・コンソール

ログ・コンソール

MR3について

「ヘルプ」メニューの「MR3について」を選択すると,図 55 に示すダイアログが表示される.

MR3について

MR3について

メニュー

ファイルメニュー

  • ファイル->新規

    • MR3 のプロジェクトを新規に開く.現在の作成中のプロジェクトは,保存するか破棄するかを選択する.
  • ファイル->開く

    • MR3 のプロジェクトファイルを開く.
  • ファイル->保存

    • MR3 のプロジェクトファイルを保存する.
  • ファイル->名前をつけて保存

    • MR3 のプロジェクトファイルを別名で保存する.
  • ファイル->インポート

    • インポートダイアログを表示.
  • ファイル->エクスポート

    • エクスポートダイアログを表示.
  • ファイル->終了

    • プログラムを終了する.

編集メニュー

  • 編集->検索

    • リソース検索ダイアログを表示する.
  • 編集->選択->RDFエディタのノードをすべて選択

  • 編集->選択->クラスエディタのノードをすべて選択

  • 編集->選択->プロパティエディタのノードをすべて選択

表示メニュー

  • 表示->URI表示

    • 各エディタのノード内に表示されるラベルを,URI形式で表示する.名前空間テーブルで接頭辞の表示を有効にしている場合,名前空間を接頭辞に置き換えて表示する.
  • 表示->ID表示

    • 各エディタのノード内に表示されるラベルを,ID形式で表示する.
  • 表示->ラベル表示

    • 各エディタのノード内に表示されるラベルを,rdfs:labelで定義されたラベルで表示する.rdfs:labelが定義されていない場合には,URI形式で表示する.
  • 表示->リソースタイプの表示・非表示

    • RDFリソースのタイプ(矩形)の表示・非表示を行う.
  • 表示->ツールチップの表示・非表示

    • ツールチップの表示・非表示を行う.
  • 表示->グループ内ノードの選択許可

    • グループ化されている場合にその中のノードの選択可否を行う.
  • 表示->グラフレイアウト->RDF

    • RDFエディタの自動レイアウトを実行する
  • 表示->グラフレイアウト->クラス

    • クラスエディタの自動レイアウトを実行する
  • 表示->グラフレイアウト->プロパティ

    • プロパティエディタの自動レイアウトを実行する

ウィンドウメニュー

  • ウィンドウ->RDFエディタオーバービューを表示

    • RDFエディタの全体を表示する.表示されるウィンドウ内の赤色の四角をドラッグすることで,RDFエディタ内の移動を行うことができる.また,四角の右下部分をドラッグして,四角の大きさを変更することにより,拡大・縮小を行うことができる.大きくすると拡大し,小さくすると縮小する.
  • ウィンドウ->クラスエディタオーバービューを表示

    • クラスエディタの全体を表示する.機能は,RDFエディタと同様.
  • ウィンドウ->プロパティエディタオーバービューを表示

    • プロパティエディタの全体を表示する.機能は,RDFエディタと同様.
  • ウィンドウ->RDFエディタを前面に表示

  • ウィンドウ->クラスエディタを前面に表示

  • ウィンドウ->プロパティエディタを前面に表示

  • ウィンドウ->アトリビュートダイアログを表示

  • ウィンドウ->名前空間テーブルを表示

  • ウィンドウレイアウト->ウィンドウ再配置(C,P,R)

    • クラスエディタ,プロパティエディタ,RDFエディタを表示
  • ウィンドウレイアウト->ウィンドウ再配置(C,R)

    • クラスエディタとRDFエディタのみを表示
  • ウィンドウレイアウト->ウィンドウ再配置(P,R)

    • プロパティエディタとRDFエディタのみを表示

ツールメニュー

  • ツール->拡張機能

    • 拡張機能一覧を表示するダイアログが表示される
  • ツール->整合性検証

    • 整合性検証ダイアログを表示する
  • ツール->プロジェクト情報

    • プロジェクト情報ダイアログを表示する
  • ツール->ログコンソールを表示

    • MR3 の標準出力・標準エラー出力を表示するウィンドウを表示する.主にデバッグ用.
  • ツール->オプション

    • オプションダイアログを表示する

ヘルプメニュー

  • ヘルプ->MR3 について

    • MR3 のバージョン,HPのURL等を表示する

ツールバー

アイコン 機能
_images/new.png
MR3 のプロジェクトを新規に開く
_images/open.png
MR3 のプロジェクトファイルを開く.
_images/save.png
MR3 のプロジェクトファイルを保存する.
_images/saveas.png
MR3 のプロジェクトファイルを別名で保存する.
_images/import.png
インポートダイアログを表示する
_images/export.png
エクスポートダイアログを表示する
_images/find.png
リソース検索ダイアログを表示する
_images/rdf_editor1.png
RDFエディタを前面に表示する
_images/class_editor1.png
クラスエディタを前面に表示する
_images/property_editor1.png
プロパティエディタを前面に表示する
_images/attr_dialog.png
アトリビュートダイアログを前面に表示する
_images/namespace_table.png
名前空間テーブルを前面に表示する
_images/cpr.png
クラス,プロパティ,RDFエディタを表示する
_images/cr.png
クラス,RDFエディタを表示する
_images/pr.png
プロパティ,RDFエディタを表示する
_images/arrow_left.png
前を検索
_images/arrow_right.png
次を検索
_images/accept.png
整合性を検証する
_images/plugin.png
プラグイン管理ダイアログを表示する
_images/information.png
プロジェクトの情報を表示する
_images/log_console1.png
ログコンソールを表示する
_images/cog.png
設定ダイアログを表示する
_images/help.png
MR3 について表示する

ショートカットキー

全体で使えるショートカットキー

Ctrl-N
MR3 のプロジェクトを新規に開く.現在の作成中のプロジェクトは,保存するか破棄するかを選択する.
Ctrl-O
MR3 のプロジェクトファイルを開く.
Ctrl-S
MR3 のプロジェクトファイルを保存する.
Ctrl+Shift+S
MR3 のプロジェクトファイルを別名で保存する.
Ctrl+Q
メニューの終了のショートカット
Alt+R
RDFエディタを前面に表示
Alt+C
クラスエディタを前面に表示
Alt+P
プロパティエディタを前面に表示
Alt+A
アトリビュートダイアログを前面に表示
Alt+S
ソースダイアログを前面に表示
Alt+N
名前空間テーブルを前面に表示
Alt+F
リソース検索ダイアログを前面に表示

エディタ内で使えるショートカットキー

Ctrl-A
エディタ内のノードをすべて選択する
Delete
エディタ内の選択されたノードを削除する
Ctrl-C
エディタ内の選択されたノードをコピーする
Ctrl-X
エディタ内の選択されたノードをカットする
Ctrl-V
コピーまたは,カットされたノードをエディタにペーストする

チュートリアル

概要

本チュートリアルでは,RDF Primer の中で紹介されているRDF文書(Example 1: RDF/XML Describing Eric Miller)をMR3 1.0を用いて作成していく.MR3 を 用いてRDFコンテンツを作成する方法には,RDFSコンテンツを作成した後に(RDFSコンテンツの語彙を用いて)RDFコンテンツを作成する方法 (トップダウン)とRDFコンテンツから作成する方法(ボトムアップ)がある.トップダウンでは,あらかじめRDFSコンテンツをインポートすることで, インポートしたRDFSコンテンツ(語彙)を用いてRDFコンテンツの作成ができる.ボトムアップでは,RDFモデルを作成しながら,RDFモデルの作成 に必要なリソースのタイプやプロパティを抽出し,RDFSクラスやプロパティに反映することができる.本チュートリアルでは,MR3 を用いて,トップダウンとボトムアップの2通りの方法で,以下に示すサンプルRDF文書の作成を行う.本チュートリアルと同様のRDF文書作成動画は デモムービーのページ から見ることができる.また,最後に,RDFS文書の置換機能の実行例を示す.

Example 1: RDF/XML Describing Eric Miller

<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:contact="http://www.w3.org/2000/10/swap/pim/contact#">

  <contact:Person rdf:about="http://www.w3.org/People/EM/contact#me">
    <contact:fullName>Eric Miller</contact:fullName>
    <contact:mailbox rdf:resource="mailto:em@w3.org"/>
    <contact:personalTitle>Dr.</contact:personalTitle>
  </contact:Person>
</rdf:RDF>

RDFコンテンツの作成 (トップダウン)

1. RDFコンテンツ作成に利用する接頭辞と名前空間の登録

はじめに,RDFコンテンツ作成に必要な名前空間を名前空間テーブルに登録する.名前空間テーブルを表示するためには,ツールバーの nstable アイコンまたはウィンドウメニューの「名前空間テーブルを表示」を選択する.以下の図は,接頭辞を”contact”,対応する名前空間を”http: //www.w3.org/2000/10/swap/pim/contact#”として名前空間テーブルに登録した状態を示している.接頭辞テキスト フィールドと名前空間テキストフィールドにそれぞれ,登録したい接頭辞および名前空間を入力し,”追加”ボタンを押すと接頭辞と対応する名前空間が名前空間テーブルに登録される.名前空間テーブルに登録された接頭辞は,各要素(RDFリソース,RDFプロパティ,RDFSクラス,RDFSプロパティ)作成する際に用いられる.

_images/top-down-step1.png

2. RDFSクラスの挿入

RDFSクラスの挿入を行う.クラスエディタ内で右クリックをしてポップアップメニューを出す.ポップアップメニュー の中の「クラスの挿入」メニューを選択し,RDFSクラスの挿入を行う.サンプルRDF文書内では,contact:Personがhttp: //www.w3.org/People/EM/contact#meリソースのタイプとなっている.MR3 では,RDFリソースのタイプは,RDFSクラスから選択する.RDFSクラスは,クラスエディタ内で定義する.

_images/top-down-step2-1.png

「クラスの挿入」メニューを選択すると,以下のダイアログが表示される.「接頭辞コンボボックス」から名前空間テーブルに登録した接頭辞contactを選択し,「IDテキストフィールド」にPersonを入力する.「了解ボタン」をクリックするとクラスエディタ内に RDFSクラス(この場合,contact:Person)が挿入される.

_images/top-down-step2-2.png

3. RDFSプロパティの挿入

RDFSクラスと同様にExample 1文書内に含まれるRDFSプロパティ(contact:fullName,contact:mailbox,contact: personalTitle )も作成する.プロパティエディタ内で右クリックするとポップアップメニューが表示される.「プロパティの挿入」メニューを選択すると以下のダイアログが表示される.「了解ボタン」をクリックするとプロパティエディタ内にRDFSプロパティが挿入される.MR3 では,RDFプロパティは,RDFSプロパティから選択する.RDFSプロパティは,プロパティエディタ内で定義する.

_images/top-down-step3-1.png

contact:Personクラスとcontact:fullName,contact:mailbox,contact:personalTitleプロパティをMR3 で作成すると以下の図のようになる.

_images/top-down-step3-2.png

4. RDFリソースの挿入

次に,手順1から3までで,作成したRDFSクラス及びプロパティを用いてRDFコンテンツの作成を行う.まずは, RDFリソースを作成する.RDFリソースは,RDFエディタ内で定義する.RDFエディタ内で右クリックするとポップアップメニューが表示される.ポップアップメニュー内の「RDFリソースの挿入」メニューを選択し,RDFリソースの挿入を行う.

_images/top-down-step4-1.png

「RDFリソースの挿入」メニューを選択すると以下のダイアログが表示される.「リソースタイプコンボボックス」からリソースのタイプを選択する.リソースのタイプは,クラスエディタで作成されたRDFSクラスから選択できる.ここでは,contact:Personクラスをリソースのタイプとして選択する.また,「http://www.w3.org/People/EM/contact#me」をRDFリソーステキストフィールドに入力する.リソースのタイプとRDFリソースを入力し,「了解ボタン」をクリックするとRDFリソースがRDFエディタに挿入される.

_images/top-down-step4-2.png

同様に,mailto:em@w3.orgリソースを挿入する.

5. RDFリテラルの挿入

次に,「Eric Miller」及び「Dr.」リテラルを作成する.ポップアップメニューから「リテラルの挿入」メニューを選択すると「リテラルの挿入ダイアログ」が表示される.

_images/top-down-step5-1.png

以下の図は,「リテラルの挿入ダイアログ」を表している.「リテラルテキストエリア」に文字列を入力し,「了解ボタン」をクリックするとリテラルがRDFエディタに挿入される.

_images/top-down-step5-2.png

6. RDFプロパティの挿入

次に,RDFプロパティの挿入を行う.RDFプロパティを挿入するためには,「接続モード」に切り替える.「接続モード」に切り替えるためには,RDFエディタ内で右クリックをして,ポップアップメニューを表示し,「接続モード」メニューを選択する.または,RDFエディタのツールバーにある, connect アイコンをクリックする.次に,subjectにあたるリソースの上にカーソルを合わせる.青色の枠が表示される.その状態で,objectにあたるリソースまたはリテラルに向けてカーソルをドラッグし,同様に枠が表示された状態でドロップすることで,RDFプロパティが挿入される.作成されるRDFプロパ ティはmr3#nil(MR3 が提供する)となる.RDFプロパティを挿入する際に,あらかじめプロパティエディタにおいて,挿入したいプロパティを選択してある場合には,選択されたプロパティがRDFプロパティとして挿入される.ここでは,「http: //www.w3.org/People/EM/contact#me」リソースと「Eric Miller」リテラルの間に「contact:fullName」プロパティを挿入する.同様に,「Dr.」リテラルの間に「contact: personalTitle」プロパティを,「mailto:em@w3.org」リソースの間に「contact:mailbox」プロパティを挿入する.

_images/top-down-step6-1.png

RDFプロパティを編集するためには,アトリビュートダイアログを表示する.アトリビュートダイアログを表示するためには,ツールバーの attr-dialog アイコンをクリックするか,ポップアップメニューから「アトリビュートダイアログを表示」メニューを選択する.RDFプロパティ「contact: personalTitle」に変更するためには,「接頭辞コンボボックス」から接頭辞contactを選択し,「プロパティIDリスト」からID personalTitleを選択する.「適用ボタン」をクリックすると変更が反映される.

_images/top-down-step6-2.png

7. 作成したRDFコンテンツをRDF/XML形式でファイルに保存する

ここまでの作業で,以下の図のようなRDFSクラス,RDFSプロパティ,RDFモデルが作成されている.

_images/top-down-step7-1.png

作成したRDFコンテンツが,RDF/XML形式でどのように出力されるかを確認するには,エクスポートダイアログを表示する.エクスポートダイアログは,ファイルメニューのエクスポートを選択するか,ツールバーの|export|を選択する.構文として,RDF/XML(ラジオボタン)を選択する.データタイプとして,RDFチェックボックスを選択する.エクスポートダイアログ下部にある,テキストエリアに作成したRDFコンテンツがRDF/XML形式で出力される.

_images/top-down-step7-2.png

作成したRDFコンテンツをRDF/XML形式でファイルに出力したい場合には,エクスポートダイアログの「ファイルボタン」を選択する.保存ダイアログが表示されるため,適当なフォルダにRDFファイルを保存する.

RDFコンテンツの作成 (ボトムアップ)

1. RDFコンテンツ作成に利用する接頭辞と名前空間の登録

トップダウン手法の手順1と同様にRDFコンテンツ作成に利用する接頭辞と名前空間を登録する.

2. RDFリソースの挿入

トップダウン手法の手順4とほぼ同様の手順でRDFリソースを挿入する.

トップダウン手法との違いは,この時点では, http://www.w3.org/People/EM/contact#me リソースのタイプがクラスエディタで定義されていない点である.ボトムアップの手法では,RDFリソースを編集中にRDFSクラスを作成することができる.

アトリビュートダイアログを表示し,RDFリソース「http: //www.w3.org/People/EM/contact#me」を選択する.RDFリソースの属性がアトリビュートダイアログに表示される.左側に表示されるリストの中から「タイプ」を選択する.「接頭辞コンボボックス」からcontactを選択し,リソースタイプIDとしてPersonを入力する.RDFSクラスに指定したいクラスが定義されている場合には,「タイプ選択ボタン」をクリックすれば,クラスエディタからクラスを選択することができる.今回は,ボトムアップにRDFコンテンツ作成しているため,RDFSクラスにcontact:Personクラスが作成されておらず,選択することができない.指定したいリソースのタイプcontact:Personを入力した状態で,「適用するボタン」をクリックする.「定義されていません.クラス を作成しますか?」と尋ねるダイアログが表示されるので,「はいボタン」をクリックする.

_images/bottom-up-step2-1.png

以下の図のように,クラスエディタにcontact:Personクラスが作成される.

_images/bottom-up-step2-2.png

3. RDFリテラルの挿入

トップダウンの手順5と同様にRDFリテラルを挿入する.

4. RDFプロパティの挿入

トップダウン手法の手順6とほぼ同様にRDFプロパティを挿入する.

トップダウン手法との違いは,この時点では,RDFSプロパティがプロパティエディタに何も定義されていない点である.ボトムアップの手法では,RDFリソースを編集中にRDFSプロパティを作成することができる.

アトリビュートダイアログを表示し,編集したいRDFプロパティを選択する.「プロパティの接頭辞のみ表示チェックボックス」にチェックがされているとRDFSプロパティで定義されているプロパティのみを表示,選択することができる.今回は,RDFSプロパティに指定したいプロパティが定義されていないので,このチェックをはずす.「接頭辞コンボボックス」から名前空間テーブルに登録したすべての接頭辞を選択できるようになるので,contactを選択する.「プロパティID」リストには,RDFSプロパティで定義されているプロパティのID一覧が表示されるが,今回は定義されていないので表示されない.「IDテキストフィールド」にfullNameと入力し,「適用ボタン」をクリックする.「定義されていません.プロパティを作成しますか?」と尋ねるダイアログが表示されるので,「はいボタン」をクリックする.

_images/bottom-up-step4-1.png

以下の図のように,プロパティエディタにcontact:fullNameプロパティが作成される.

_images/bottom-up-step4-2.png

同様に,contact:mailBox, contact:personalTitleプロパティも作成する.

5. 作成したRDFコンテンツをRDF/XML形式でファイルに保存する

トップダウン手法の手順7とほぼ同様にRDF/XML形式でRDF文書をファイルに保存する.

RDFSの置換例

以下の図に示すように,インポートダイアログにおいて,「データタイプ」に「RDFS」,「インポート方法」に「置き換え」を選択して,実行するとRDFS の置換を行うことができる.以下の説明の中で,接頭辞animalは,http://example.com/animal#をあらわす.接頭辞mr3は, http://mr3.sourceforege.net#をあらわす.

_images/import_dialog_rdfs_replace.png

置換前

例として,以下のRDFs文書のRDFSの置換を行う.以下のRDFs文書には「mr3:動物」クラスのサブクラス に,「mr3:猫」クラスと「mr3:犬」クラスがある.また,RDFモデルには,「mr3:ポチ」(「mr3:犬」クラスのインスタンス)と「mr3:タマ」 (「mr3:猫」クラスのインスタンス)リソースが定義されており,「mr3:ポチ」と「mr3:タマ」には,「mr3:じゃれる」という関係がある.

変換前のRDFS

<?xml version="1.0"?>
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:mr3="http://mr3.sourceforge.net#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:animal="http://example.com/animal#"
    xml:base="http://mr3.sourceforge.net#">
    <rdfs:Class rdf:ID="犬">
        <rdfs:subClassOf>
        <rdfs:Class rdf:ID="動物"/>
        </rdfs:subClassOf>
    </rdfs:Class>
    <rdfs:Class rdf:ID="猫">
        <rdfs:subClassOf rdf:resource="#動物"/>
    </rdfs:Class>
    <rdf:Property rdf:ID="じゃれる"/>
</rdf:RDF>

変換前のRDF

<?xml version="1.0"?>
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:mr3="http://mr3.sourceforge.net#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:animal="http://example.com/animal#"
    xml:base="http://mr3.sourceforge.net#">
    <mr3:犬 rdf:ID="ポチ">
        <mr3:じゃれる>
            <mr3:猫 rdf:ID="タマ"/>
        </mr3:じゃれる>
    </mr3:犬>
</rdf:RDF>
_images/rdfs_replace_before.png

置換するクラス及びプロパティ

以下のRDFSを置換前のRDFSと置き換える.

置換するRDFS

<?xml version="1.0"?>
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:mr3="http://mr3.sourceforge.net#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:animal="http://example.com/animal#"
    xml:base="http://mr3.sourceforge.net#">
  <rdfs:Class rdf:about="http://example.com/animal#動物"/>
  <rdfs:Class rdf:about="http://example.com/animal#猫">
    <rdfs:subClassOf rdf:resource="http://example.com/animal#動物"/>
  </rdfs:Class>
  <rdfs:Class rdf:about="http://example.com/animal#犬">
    <rdfs:subClassOf rdf:resource="http://example.com/animal#動物"/>
  </rdfs:Class>
  <rdf:Property rdf:about="http://example.com/animal#じゃれる"/>
</rdf:RDF>

RDFS置換ダイアログ

RDFSの置換を実行するとRDFS置換ダイアログが表示される.RDFS置換ダイアログには,置換前と置換後のクラスとプロパティのリストが表示される.上,下のボタンを押して,置換前と置換後のクラス及びプロパティを同じ行に合わせることで,置換するクラス及びプロパティを指定することができる.ここでは,「mr3:動物」クラスを「animal:動物」クラスに,「mr3:犬」クラスを「animal:犬」クラスに,「mr3:猫」クラスを「animal:猫」クラスに置換する.また,「mr3:じゃれる」プロパティを「animal:じゃれる」プロパティに置換する.以下の図のようにして, 適用するボタンを押すと置換が行われる.置換前と置換後のリストの項目の初期位置は,以下の優先順で決められる.

  1. URIが同一の場合
  2. IDが同一の場合

1と2に該当するクラス及びプロパティがない場合には,NULLとなる.NULLまたは,置換前よりも置換後のクラス及びプロパティの数が少ない場合には,クラスは空に,プロパティは「mr3:nil」となる.

_images/rdfs_replace_dialog.png

置換後

置換後は,以下のようになる.RDFSを置換したことで,RDFモデルのリソースのタイプやプロパティの置換も同時に行われる.今回の例では,リソース「ポチ」のタイプが「mr3:犬」から「animal:犬」に,リソース「タマ」のタイプが「mr3:猫」から「animal:猫」に変更されている.また,ポチとタマの関係が「mr3:じゃれる」プロパティから「animal:じゃれる」プロパティに変更されている.

置換後のRDF

<?xml version="1.0"?>
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:mr3="http://mr3.sourceforge.net#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:animal="http://example.com/animal#"
    xml:base="http://mr3.sourceforge.net#">
  <animal:犬 rdf:ID="ポチ">
    <animal:じゃれる>
      <animal:猫 rdf:ID="タマ"/>
    </animal:じゃれる>
  </animal:犬>
</rdf:RDF>
_images/rdfs_replace_after.png

プラグイン開発

MR3 のプラグイン作成に関するクラス(net.sourceforge.mr3.plugin.MR3Pluginクラス)及びプラグインの作成方法について説明する.また,プラグインのサンプルを示す.

MR3 Pluginクラス

net.sourceforge.mr3.plugin.MR3Pluginクラス(以下,MR3Pluginクラス)は,abstract public void exec()抽象メソッドをもつ抽象クラスである.MR3 のプラグインを作成するには,MR3Pluginクラスを継承して,execメソッドをオーバーライドする.MR3Pluginクラスは,ユーティリティメソッドを提供する.プラグイン作成者は,MR3Pluginクラスが提供するユーティリティメソッドを用いることで,Jenaが提供するcom.hp.hpl.mesa.rdf.jena.model.Modelインタフェース(以下,Model)からMR3 のグラフへの変換とMR3 のグラフからJenaのModelを得ることが可能となる.以下に,ユーティリティメソッドを示す.(JavaDoc MR3Plugin)

protected JDesktopPane getDesktopPane()
JDesktopPaneを得る.内部ウィンドウを作成する際に用いる.
protected void replaceRDFModel(Model model)
Jenaが提供するModelを,MR3 のRDFグラフへ変換する.変換したRDFグラフを編集中のRDFグラフと置換する.
protected void mergeRDFModel(Model model)
Jenaが提供するModelを,MR3 のRDFグラフへ変換する.変換したRDFグラフを編集中のRDFグラフにマージする.
protected void mergeRDFSModel(Model model)
Jenaが提供するModelを,MR3 のRDFSグラフへ変換する.変換したRDFSグラフを編集中のRDFSグラフにマージする.
protected void replaceProjectModel(Model model)
Jenaが提供するModelを,MR3 のプロジェクトへ変換する.引数のModelは,MR3 のプロジェクトファイル.
protected Model getRDFModel()
MR3 のRDFグラフをJenaのModelに変換する.
protected JGraph getRDFGraph()
RDFエディタに描かれたグラフをorg.jgraph.JGraphオブジェクトとして得る.
protected JGraph getClassGraph()
クラスエディタに描かれたグラフをorg.jgraph.JGraphオブジェクトとして得る.
protected JGraph getPorpertyGraph()
プロパティエディタに描かれたグラフをorg.jgraph.JGraphオブジェクトとして得る.
protected Model getSelectedRDFModel()
選択されているMR3 のRDFグラフをJenaのModelに変換する.
protected Model getRDFSModel()
MR3 のRDFSグラフをJenaのModelに変換する.
protected Model getSelectedRDFSModel()
選択されているMR3 のRDFSグラフをJenaのModelに変換する.
protected Model getClassModel()
MR3 のクラスグラフをJenaのModelに変換する.
protected Model getSelectedClassModel()
選択されているMR3 のクラスグラフをJenaのModelに変換する.
protected Model getPropertyModel()
MR3 のプロパティグラフをJenaのModelに変換する.
protected Model getSelectedPropertyModel()
選択されているMR3 のプロパティグラフをJenaのModelに変換する.
protected Model getProjectModel()
プロジェクトをJenaのModelに変換する.

プラグイン作成方法

  1. MR3Pluginクラスのサブクラスを作り,public void exec()メソッドをオーバーライドする.
  2. マニフェストファイルに,プラグインクラス名とプラグイン名を以下のように記述し,プラグインクラスとマニフェストファイルをjarファイルでまとめる.(プラグインクラス名とプラグイン名は必須.creator, date, descriptionはオプション.)
Name: プラグインクラス名
plugin-name(or menu-name): プラグイン名
creator: 作者名
date: 更新日時
description: プラグインの説明
  1. 作成したjarファイルをMR3/pluginsディレクトリ(または,クラスパスの通ったディレクトリ)に置く.

ツールメニューの拡張機能を選択すると,プラグイン一覧を表示するダイアログが表示される.プラグイン一覧から実行したいプラグインを選択し,実行ボタンを押すと,プラグインクラスで実装したexecメソッドが実行される.

サンプルプラグイン

以下に,MR3 のプラグインの実例を示す.ここで示すプラグインは, MR3PluginSamples からダウンロードできる.

マニフェストファイル

Manifest-Version: 1.0

Name: net.sourceforge.mr3.plugins.samples.ReplaceRDFModelSample.class
menu-name: ReplaceRDFModelSample
creator: Takeshi Morita
date: 2004-01-24
description: Replace RDF Model Sample Program.

Name: net.sourceforge.mr3.plugins.samples.GetRDFModelSample.class
plugin-name: GetRDFModelSample
creator: Takeshi Morita
date: 2004-01-24
description: Get RDF Model Sample Program.

Name: net.sourceforge.mr3.plugins.samples.OpenProjectSample.class
plugin-name: OpenProjectSample
creator: Takeshi Morita
date: 2004-01-24
description: Open Project File Sample Program.

Name: net.sourceforge.mr3.plugins.samples.SelectNodesSample.class
plugin-name: SelectNodesSample
creator: Takeshi Morita
date: 2004-01-24
description: This plugin select mr3:a, mr3:b and mr3:c nodes.

Name: net.sourceforge.mr3.plugins.samples.GroupNodesSample.class
plugin-name: GroupNodesSample
creator: Takeshi Morita
date: 2003-12-23
description: This plugin group mr3:a, mr3:b and mr3:c nodes.

Name: org.semanticweb.mmm.mr3.owlPlugin.OWLImportPlugin.class
menu-name: OWLImportPlugin
creator: Takeshi Morita
date: 2004-01-24
description: This is owl import plugin.

索引