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

インストール

動作環境

MR3 は,Java言語で実装されています.実行するには,JRE (Java Runtime Environment) 11または,それ以上が必要です. ver. 2019.05_1 では,JRE11が組み込まれているため,別途JREをインストールする必要はありません.

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

  • MS Windows 10 + openjdk version "11.0.3" 2019-04-16
  • Mac OS 10.14.3 + openjdk version "11.0.3" 2019-04-16

インストール方法

  1. ダウンロードページ から以下のファイルをダウンロードしてください.
    • Windowsの場合は, mrcube-2019.05_1_win.zip
    • macosの場合は, mrcube-2019.05_1_mac.zip
  2. 圧縮ファイルを展開し,binフォルダの中にある mrcube.bat (Windowsの場合) または mrcube (macosの場合)を実行すると MR3 が起動します.

アンインストール方法

  • 圧縮ファイルを展開したフォルダを削除してください.

重要概念

モデルとオントロジー

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構文(Turtle, JSONLD, RDF/XML, 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:書籍schema:Book に変更した後の状態を表している.以下,RDF(S)コンテンツ管理機能の具体例を表す図中のRDFSにおける緑色の楕円はクラス,赤色の楕円はプロパティ,矢印はクラスの上位・下位関係を表す.矢印は,下位クラスから上位クラスに向かって伸びている.同様に,図中のRDFにおける楕円はRDFリソース,矢印はRDFプロパティ,楕円左上のラベルは,RDFリソースのタイプを表す. ex:学問のすゝめex:民情一新 は, ex:書籍 をタイプとするRDFリソースである.RDFSクラス ex:書籍schema:Book に変更すると, ex:書籍 に対応するRDFリソースのタイプにも自動的に変更が反映される.つまり,RDFリソース ex:学問のすゝめ および ex:民情一新 のタイプは, schema:Book に自動的に変更される.

RDFSクラスのURIの変更

RDFSクラスのURIの変更

注釈

名前空間接頭辞 ex の名前空間は, http://example.org/ である. 名前空間接頭辞 schema の名前空間は, http://schema.org/ である.

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:著者dc:creator に変更した後の状態を表している. ex:学問のすゝめ および ex:民情一新 は, ex:著者 プロパティをもつRDFリソースである.ユーザがRDFSプロパティ ex:著者dc:creator に変更すると, ex:著者 と対応するRDFプロパティにも変更が反映される.つまり,RDFリソース ex:学問のすゝめ および ex:民情一新 がもつプロパティ ex:著者dc:creator に自動的に変更される.

RDFSプロパティのURIの変更

RDFSプロパティのURIの変更

注釈

名前空間接頭辞 dc の名前空間は, http://purl.org/dc/elements/1.1/ である.

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

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

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

RDFSクラスの新規作成

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

注釈

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

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

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

RDFSプロパティの新規作成

図 12 では,RDFSプロパティ dc:creator が定義されていない状態で,ユーザがRDFリソース ex:民情一新 が持つプロパティ ex:著者dc:creator に変更している.ここでは,整合性を保つためにRDFSプロパティの新規作成をユーザが選択している.RDFSプロパティ dc:creator 新規に作成することによって,整合性を保つことができる.この場合,RDFリソース ex:学問のすゝめ が持つプロパティ 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:ObjectPropertyowl:DatatypeProperty をプロパティクラスとして設定した場合,RDF(S) コンテンツ構築支援ツールはOWLのクラスおよびプロパティを扱うことができる.RDF(S) コンテンツ構築支援ツールでは,初期クラスクラスとして rdfs:Class が,初期プロパティクラスとして rdf:Property が設定されている.

整合性チェック機能

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

注釈

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

ユーザマニュアル

MR3 のアーキテクチャ

図 14 にMR3 の実装アーキテクチャを示す.MR3 は,Java言語用いて実装している. MR3 では,RDFおよびRDFSデータグラフを視覚化するために JGraph を用いてグラフィカルモデラを実装している.また,MR3 は,セマンティックWeb コンテンツ(RDF,RDFS,OWLコンテンツ)のインポートとエクスポートを行うために, Apache Jena を用いてパーサとジェネレータを実装している.

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

MR3 の実装アーキテクチャ

MR3 のシステム構成図

図 15 にMR3 のシステム構成を示す. MR3 は,パーサ,ジェネレータ,RDF(S)コンテンツ管理,グラフィカルモデラから構成される.グラフィカルモデラは,主に,RDFエディタ,クラスエディタ,プロパティエディタから構成される.ユーザはグラフィカルモデラを介して,RDFおよびRDFSコンテンツを視覚的に編集することができる.MR3 の入力と出力はRDF(S)文書である.パーサはRDF(S)文書を解析して,Apache Jena のモデルオブジェクトに変換し,その後,RDF(S)コンテンツ管理を行うことができるようにMR3 の内部データに変換する.ジェネレータは, MR3 の内部データをApache 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/resource.png
RDFリソースを挿入する
_images/literal.png
RDFリテラルを挿入する
_images/copy.png
ノードをコピーする
_images/cut.png
ノードをカットする
_images/paste.png
ノードをペーストする
_images/delete.png
ノードを削除する
_images/undo.png
アンドゥ
_images/redo.png
リドゥ
_images/export_graph_img.png
RDFグラフを画像ファイルに保存する
_images/l_to_r_layout.png
RDFグラフの自動整列を実行する(左から右)
_images/open_resource.png
選択したRDFリソースを開く

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

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

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

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

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

ノードが選択された状態

ノードが選択された状態

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

RDFリソースの挿入
マウスの右クリックで指定した位置にRDFリソースを挿入する.
リテラルの挿入
マウスの右クリックで指定した位置にリテラルを挿入する.
リソースタイプの変換
RDFリソースのタイプをクラスエディタで選択しているクラスに変換する.
RDFからクラスへ変換
RDFリソースをRDFSクラスに変換する.
RDFからプロパティへ変換
RDFリソースをRDFSプロパティに変換する.
コピー
RDFリソース,プロパティ,リテラルをコピーする.
カット
RDFリソース,プロパティ,リテラルをカットする.
ペースト
RDFリソース,プロパティ,リテラルをペーストする.
削除
RDFリソース,プロパティ,リテラルを削除する.
属性ダイアログを表示
属性ダイアログを表示する

RDFリソースの属性編集

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

属性ダイアログ(RDFプロパティ)

属性ダイアログ(RDFプロパティ)

RDFリテラルの属性編集

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

属性ダイアログ(RDFリテラル)

属性ダイアログ(RDFリテラル)

クラスエディタ

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

クラスエディタ

クラスエディタ

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

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

アイコン 機能
_images/resource.png
RDFSクラスを挿入する
_images/copy.png
ノードをコピーする
_images/cut.png
ノードをカットする
_images/paste.png
ノードをペーストする
_images/delete.png
ノードを削除する
_images/undo.png
アンドゥ
_images/redo.png
リドゥ
_images/export_graph_img.png
クラスグラフを画像ファイルに保存する
_images/l_to_r_layout.png
RDFグラフの自動整列を実行(左から右)する
_images/u_to_d_layout.png
RDFグラフの自動整列を実行(上から下)する
_images/open_resource.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/resource.png
RDFSプロパティを挿入する
_images/copy.png
ノードをコピーする
_images/cut.png
ノードをカットする
_images/paste.png
ノードをペーストする
_images/delete.png
ノードを削除する
_images/undo.png
アンドゥ
_images/redo.png
リドゥ
_images/export_graph_img.png
プロパティグラフを画像ファイルに保存する
_images/l_to_r_layout.png
RDFグラフの自動整列を実行(左から右)
_images/u_to_d_layout.png
RDFグラフの自動整列を実行(上から下)
_images/open_resource.png
選択したRDFSプロパティを開く

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

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

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

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

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

ノードが選択された状態

ノードが選択された状態

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

プロパティの挿入
マウスの右クリックで指定した場所にプロパティを挿入する.他のクラスを選択した状態でプロパティの挿入を行うと,選択したプロパティのサブプロパティとして,新規プロパティが挿入される.
プロパティからRDFへ変換
RDFSプロパティからRDFリソースへ変換する.
プロパティからクラスへ変換
RDFSプロパティからRDFSクラスへ変換する.
コピー
プロパティとプロパティ間関係をコピーする.
カット
プロパティとプロパティ間関係をカットする.
ペースト
プロパティとプロパティ間関係をペーストする.
削除
プロパティとプロパティ間関係を削除する.
属性ダイアログを表示
属性ダイアログを表示する.

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

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

属性ダイアログ(RDFSプロパティの範囲)

属性ダイアログ(RDFSプロパティの範囲)

属性ダイアログ(RDFSプロパティのインスタンス)

属性ダイアログ(RDFSプロパティのインスタンス)

リソース検索ダイアログ

リソース検索ダイアログでは,RDFエディタ,クラスエディタ,プロパティエディタ内に定義されているRDF(S) 要素の検索を行うことができる. 図 39 にリソース検索ダイアログを示す.「キーワード」テキストフィールドに文字列を入力すると,RDFリソース,RDFSクラス,RDFSプロパティのURI,ラベル,コメントにその文字列が含まれる場合に,該当するリソース一覧が, 図 39 下部の「検索結果」リストに表示される.「検索結果」リストの項目を選択すると,選択したリソースを含むエディタ内のノードが選択され,属性ダイアログにそのリソースの属性が表示される.

リソース検索ダイアログ

リソース検索ダイアログ

名前空間テーブル

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

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

名前空間テーブル

名前空間テーブル

削除ダイアログ

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

削除ダイアログ

削除ダイアログ

インポートダイアログ

「ファイル」メニューの「開く」またはツールバーから open アイコンを選択すると,インポートダイアログが表示される.インポートダイアログでは,Turtle, JSONLD, N-Triples, RDF/XML 形式で記述されたRDF(S)文書またはMR^3プロジェクト形式のファイルを,MR3 にインポートすることができる. 図 42 にインポートダイアログのスクリーンショットを示す.インポートしたいファイルと「ファイルのタイプ」コンボボックスからファイルの形式を選択し,「開く」ボタンをクリックすると,選択したファイルをインポートすることができる.

インポートダイアログ

インポートダイアログ

「ファイルのタイプ」として「すべてのファイル」を選択した場合には,ファイルの拡張子によりファイルの形式が自動判別される.拡張子とファイルの形式の対応関係を以下に示す.

拡張子 ファイルの形式
ttl Turtle
jsonld JSONLD
n3 N-Triples
rdf RDF/XML
mr3 MR^3 プロジェクト

エクスポートダイアログ

「ファイル」メニューの「名前を付けて保存」またはツールバーから saveas アイコンを選択すると,エクスポートダイアログが表示される.エクスポートダイアログでは,MR3 で構築したRDF(S) データグラフをTurtle, JSONLD, N-Triples, RDF/XML 形式でファイルに保存することができる.また,MR^3プロジェクト形式でファイルを保存することもできる. 図 43 にエクスポートダイアログのスクリーンショットを示す.保存したいファイル名を入力し,「ファイルのタイプ」コンボボックスからファイルの形式を選択し,「保存」ボタンをクリックすると,ファイルを保存することができる.「ファイルのタイプ」として「すべてのファイル」を選択した場合には,ファイルの拡張子によりファイルの形式が自動判別される.

エクスポートダイアログ

エクスポートダイアログ

設定ダイアログ

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

基本

設定ダイアログの「基本」項目( 図 44 )では,「言語」,「UI 言語」,「ベースURI」,「作業ディレクトリ」,「プロキシ」の設定ができる.「言語」はラベル表示を行う際に優先して表示する言語を設定できる.「UI 言語」は,メニューなどに表示する言語を設定できる.言語は,ja(日本語),en(英語),zh(中国語)を選択できる.「ベースURI」 には,エクスポート時の初期の名前空間URI を設定する.「作業ディレクトリ」には,インポートダイアログにおいて,RDF(S)文書を含むフォルダを選択する際に最初に開くフォルダを設定する.「プロキシ」では,プロキシサーバを利用している場合に,プロキシサーバのホスト名とポート番号の設定を行うことができる.URI を指定して,RDF(S)文書をインポートする場合に設定が必要となる場合がある.

設定ダイアログ: 基本

設定ダイアログ: 基本

メタクラス

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

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

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

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

レイアウト

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

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

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

レンダリング

設定ダイアログの「レンダリング」項目( 図 47 )では,各エディタ内のデータグラフの構成要素(RDFリソース,RDFプロパティ,RDFリテラル,クラス,プロパティ,エディタ)についての色(文字表示色,背景色,背景選択色,線色,線選択色)を設定することができる.「白黒にする」チェックボックスにチェックをつけると全ての色と白黒に変更する.「アンチエイリアス」にチェックをつけると,ジャギー(ピクセルのギザギザ)を目立たなくさせることができる.「初期設定の色に戻す」ボタンを押すと,全ての要素の色を初期値に戻すことができる.

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

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

RDFソースコードビューア

「ツール」メニューの「RDFソースコードビューア」を選択すると, 図 48 に示すウィンドウが表示される.「RDFソースコードビューア」では,各エディタで構築したRDFモデルを指定した構文で出力することができる. Turtle, JSONLD, XML, N-Triples のいずれから構文は選択できる.

RDFソースコードビューア

RDFソースコードビューア

SPARQLクエリダイアログ

「ツール」メニューの「SPARQLクエリダイアログ」を選択すると,図 49 に示すダイアログが表示される. 「SPARQLクエリダイアログ」では,SPARQLのSELECTクエリを「SPARQLクエリ」テキストエリアに記入し,「クエリ実行」ボタンを押すと,「クエリ実行結果」に指定した変数の検索結果が表示される.リソースまたはリテラルを選択すると,各グラフ上の対応するリソースまたはリテラルが選択される.

SPARQLクエリダイアログ

SPARQLクエリダイアログ

整合性検証

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

整合性検証

整合性検証

プロジェクト情報

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

プロジェクト情報

プロジェクト情報

履歴管理

「ツール」メニューの「履歴管理」を選択すると,図 52 に示すダイアログが表示される. 「履歴管理」では,各エディタ上で行った操作履歴が表示され,復元したい履歴を選択し,「履歴を開く」ボタンを押すと,選択した時点の状態に各エディタの状態を復元することができる.

履歴管理

履歴管理

ログ・コンソール

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

ログ・コンソール

ログ・コンソール

MR^3について

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

MR3について

MR^3について

メニュー

ファイルメニュー

新規
MR3 のプロジェクトを新規に作成する.現在の作成中のプロジェクトは,保存するか破棄するかを選択する.
開く
RDFファイル(Turtle, XML, JSONLD, N-Triples形式)またはMR3 のプロジェクトファイルを開く.
保存
RDFファイル(Turtle, XML, JSONLD, N-Triples形式)またはMR3 のプロジェクトファイルを保存する.
名前をつけて保存
RDFファイル(Turtle, XML, JSONLD, N-Triples形式)またはMR3 のプロジェクトファイルを別名で保存する.
グラフを画像として保存 -> RDFグラフを画像として保存
RDFグラフをSVG, JPEG, PNGのいずれかの形式で画像ファイルとして保存する.
グラフを画像として保存 -> クラスグラフを画像として保存
クラスグラフをSVG, JPEG, PNGのいずれかの形式で画像ファイルとして保存する.
グラフを画像として保存 -> プロパティグラフを画像として保存
プロパティグラフをSVG, JPEG, PNGのいずれかの形式で画像ファイルとして保存する.
終了
プログラムを終了する.

表示メニュー

URI
各エディタのノード内に表示されるラベルを,URI形式で表示する.名前空間テーブルで接頭辞の表示を有効にしている場合,名前空間を接頭辞に置き換えて表示する.
ID
各エディタのノード内に表示されるラベルを,ID形式で表示する.
ラベル
各エディタのノード内に表示されるラベルを,rdfs:labelで定義されたラベルで表示する.rdfs:labelが定義されていない場合には,URI形式で表示する.
リソースタイプ
RDFリソースのタイプの表示・非表示を行う.
RDFプロパティ
RDFプロパティの表示・非表示を行う.
ツールチップ
ツールチップの表示・非表示を行う.
RDFグラフレイアウト(左から右)
RDFエディタの自動レイアウト(左から右)を実行する
クラスグラフレイアウト(左から右)
クラスエディタの自動レイアウト(左から右)を実行する
クラスグラフレイアウト(上から下)
クラスエディタの自動レイアウト(上から下)を実行する
プロパティグラフレイアウト(左から右)
プロパティエディタの自動レイアウト(左から右)を実行する
プロパティグラフレイアウト(上から下)
プロパティエディタの自動レイアウト(上から下)を実行する

ウィンドウメニュー

RDFエディタのオーバービュー
RDFエディタの全体を表示する.表示されるウィンドウ内の赤色の四角をドラッグすることで,RDFエディタ内の移動を行うことができる.また,四角の右下部分をドラッグして,四角の大きさを変更することにより,拡大・縮小を行うことができる.大きくすると拡大し,小さくすると縮小する.
クラスエディタのオーバービュー
クラスエディタの全体を表示する.機能は,RDFエディタと同様.
プロパティエディタのオーバービュー
プロパティエディタの全体を表示する.機能は,RDFエディタと同様.
属性ダイアログ
属性ダイアログを表示する.
名前空間テーブル
名前空間テーブルを表示する.
ウィンドウ再配置(C,P,R)
クラスエディタ,プロパティエディタ,RDFエディタを表示
ウィンドウ再配置(C,R)
クラスエディタとRDFエディタのみを表示
ウィンドウ再配置(P,R)
プロパティエディタとRDFエディタのみを表示

ツールメニュー

RDFソースコードビューア
RDFソースコードを表示するダイアログが表示される
検索
リソース検索ダイアログが表示される
SPARQLクエリダイアログ
SPARQLのSELECTクエリにより検索を行うためのダイアログが表示される
整合性検証
整合性検証ダイアログを表示する
プロジェクト情報
プロジェクト情報ダイアログを表示する
履歴管理
履歴管理ダイアログを表示する
ログ・コンソール
MR3 の標準出力・標準エラー出力を表示するウィンドウを表示する.主にデバッグ用.
オプション
オプションダイアログを表示する

ヘルプメニュー

MR^3 について
MR3 のバージョン,HPのURL等を表示する
MR^3 マニュアル
MR3 のマニュアルのページをウェブブラウザに表示する

ツールバー

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

ショートカットキー

Windowsの場合には「Ctrl」を,macosの場合には「Command」をショートカットキーに用いる.

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

ショートカットキー 説明
Ctrl + N | Command + N MR3 のプロジェクトを新規に開く.現在の作成中のプロジェクトは,保存するか破棄するかを選択する.
Ctrl + O | Command + O MR3 のプロジェクトファイルを開く.
Ctrl + S | Command + S MR3 のプロジェクトファイルを保存する.
Ctrl + Shift + S | Command + Shift + S MR3 のプロジェクトファイルを別名で保存する.
Ctrl + Q | Command + Q MR3 を終了する.
Ctrl + Shift + A | Command + Shift + A 属性ダイアログを前面に表示する.
Ctrl + Shift + N | Command + Shift + N 名前空間テーブルを前面に表示する.
Ctrl + 1 | Command + 1 ウィンドウ再配置(クラスエディタ,プロパティエディタ,RDFエディタ)を実行
Ctrl + 2 | Command + 2 ウィンドウ再配置(クラスエディタとRDFエディタ)を実行
Ctrl + 3 | Command + 3 ウィンドウ再配置(プロパティエディタとRDFエディタ)を実行
Ctrl + R | Command + R RDFソースコードビューアを表示する.
Ctrl + F | Command + F リソース検索ダイアログを表示する.
Ctrl + Shift + F | Command + Shift + F SPARQLクエリダイアログを表示する.
Ctrl + Shift + V | Command + Shift + V 整合性検証ダイアログを表示する.
Ctrl + Shift + M | Command + Shift + M プロジェクト情報を表示する.
Ctrl + Shift + H | Command + Shift + H 履歴管理ダイアログを表示する.
Ctrl + Shift + L | Command + Shift + L ログ・コンソールを表示する.
Ctrl + Shift + O | Command + Shift + O オプションダイアログを表示する.
F1 MR3 についてを表示する.

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

ショートカットキー 説明
Ctrl + I | Command + I リソースを挿入する.
Ctrl + L | Command + L RDFエディタ内でリテラルを挿入する.
Ctrl + A | Command + A エディタ内のノードをすべて選択する.
Delete エディタ内の選択されたノードを削除する.
Ctrl + C | Command + C エディタ内の選択されたノードをコピーする.
Ctrl + X | Command + X エディタ内の選択されたノードをカットする.
Ctrl + V | Command + V コピーまたは,カットされたノードをエディタにペーストする.

チュートリアル

概要

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

BASE   <http://example.org/>
PREFIX bob: <http://example.org/bob#>
PREFIX alice: <http://example.org/alice#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX schema: <http://schema.org/>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX wd: <http://www.wikidata.org/entity/>

bob:me
    a foaf:Person ;
    foaf:knows alice:me ;
    schema:birthDate "1990-07-04"^^xsd:date ;
    foaf:topic_interest wd:Q12418 .

wd:Q12418
    dcterms:title "Mona Lisa" ;
    dcterms:creator <http://dbpedia.org/resource/Leonardo_da_Vinci> .

<http://data.europeana.eu/item/04802/243FA8618938F4117025F17A8B813C5F9AA4D619>
    dcterms:subject wd:Q12418 .

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

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

はじめに,RDFコンテンツ作成に必要な名前空間を名前空間テーブルに登録する.名前空間テーブルを表示するためには,ツールバーの nstable アイコンまたはウィンドウメニューの「名前空間テーブルを表示」を選択する.以下の図は,以下に示す名前空間接頭辞と名前空間の対応関係を名前空間テーブルに登録した状態を示している.名前空間接頭辞 mr3, rdf, rdfs, owl は,初期状態で登録されている.

接頭辞 名前空間
mr3 http://mrcube.org#
rdf http://www.w3.org/1999/02/22-rdf-syntax-ns#
rdfs http://www.w3.org/2000/01/rdf-schema#
owl http://www.w3.org/2002/07/owl#
foaf http://xmlns.com/foaf/0.1/
schema http://schema.org/
dcterms http://purl.org/dc/terms/
wd http://www.wikidata.org/entity/
bob http://example.org/bob#
alice http://example.org/alice#

「接頭辞」テキストフィールドと「名前空間」テキストフィールドにそれぞれ,登録したい接頭辞および名前空間を入力し,「追加」ボタンを押すと接頭辞と対応する名前空間が名前空間テーブルに登録される.名前空間テーブルに登録された接頭辞は,各要素(RDFリソース,RDFプロパティ,RDFSクラス,RDFSプロパティ)作成する際に用いられる.

_images/top-down-step1.png

2. RDFSクラスの挿入

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

_images/top-down-step2-1.png

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

_images/top-down-step2-2.png

3. RDFSプロパティの挿入

RDFSクラスと同様にRDFSプロパティ(foaf:knows, schema:birthDate, foaf:topic_interest, dcterms:title, dcterms:creator, dcterms:subject) も作成する.プロパティエディタ内で右クリックするとポップアップメニューが表示される.「プロパティの挿入」メニューを選択すると以下のダイアログが表示される.「了解」ボタンをクリックするとプロパティエディタ内にRDFSプロパティが挿入される.MR3 では,RDFプロパティは,RDFSプロパティから選択する.RDFSプロパティは,プロパティエディタ内で定義する.

_images/top-down-step3-1.png

RDFSクラス foaf:Person とRDFSプロパティ foaf:knows, schema:birthDate, foaf:topic_interest, dcterms:title, dcterms:creator, dcterms:subject を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クラスから選択できる.ここでは,foaf:Person クラスをリソースのタイプとして選択する.また,http://example.org/bob#me をRDFリソーステキストフィールドに入力する.リソースのタイプとRDFリソースを入力し,「了解」ボタンをクリックするとRDFリソースがRDFエディタに挿入される.

_images/top-down-step4-2.png

同様に,alice:me, wd:Q12418, http://dbpedia.org/resource/Leonardo_da_Vinci, http://data.europeana.eu/item/04802/243FA8618938F4117025F17A8B813C5F9AA4D619 RDFリソースを挿入する.リソースのタイプは空欄を指定する.

5. RDFリテラルの挿入

次に,"1990-07-04"^^xsd:date"Mona Lisa" リテラルを作成する.RDFエディタ上で右クリックをして,ポップアップメニューから「リテラルの挿入」メニューを選択すると「リテラルの挿入」ダイアログが表示される.

_images/top-down-step5-1.png

以下の図は,「リテラルの挿入」ダイアログを表している.「リテラル」テキストエリアに文字列を入力し,「了解」ボタンをクリックするとリテラルがRDFエディタに挿入される.「データタイプ」チェックボックスにチェックを入れると,リテラルのデータ型が選択できる.ここでは,"1990-07-04" リテラルのデータ型として「http://www.w3.org/2001/XMLSchema#date」(xsd:date)を選択する.

_images/top-down-step5-2.png

6. RDFプロパティの挿入

次に,RDFプロパティの挿入を行う.RDFプロパティを挿入するためには,主語リソースの中心にカーソルを合わせる.カーソルが矢印から十字に変わった状態で, 目的語リソースまたはリテラルの中心に向けてカーソルをドラッグし,同様にカーソルが十字に変わった状態でドロップすることで,RDFプロパティが挿入される.作成されるRDFプロパティは mr3#nil (MR3 が提供する)となる.RDFプロパティを挿入する際に,あらかじめプロパティエディタにおいて,挿入したいプロパティを選択してある場合には,選択されたプロパティがRDFプロパティとして挿入される.ここでは,bob:me リソースと alice:me リソースの間に foaf:knows プロパティ,bob:me リソースと "1990-07-04" リテラルの間に shema:birthDate プロパティ,bob:me リソースと wd:Q12418 リソースの間に foaf:topic_interest プロパティ,wd:Q12418 リソースと http://dbpedia.org/resource/Leonardo_da_Vinci リソースの間に dcterms:creator プロパティ,wd:Q12418 リソースと "Mona Lisa" リテラルの間に dcterms:title プロパティ,http://data.europeana.eu/item/04802/243FA8618938F4117025F17A8B813C5F9AA4D619 リソース と wd:Q12418 リソースとの間に dcterms:subject プロパティを挿入する.

_images/top-down-step6-1.png

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

_images/top-down-step6-2.png

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

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

_images/top-down-step7-1.png

作成したRDFコンテンツが,どのように出力されるかを確認するには,RDFソースコードビューアを表示する.RDFソースコードビューアは,ツールメニューのRDFソースコードビューアを選択するか,ツールバーの rdf_source_code_viewer を選択する.ラジオボタンから構文として,TurtleJSONLDXMLN-Triples の形式が選択できる.ボタンを選択すると,指定した構文でRDFソースコードが表示される.

_images/top-down-step7-2.png

作成したRDFコンテンツをファイルに出力したい場合には,ファイルメニューの「名前を付けて保存」ボタンを選択する.「保存」ダイアログが表示されるため,保存したいフォルダを選択し,「ファイルのタイプ」からエクスポートしたいRDFの形式を選択し,「保存」ボタンを押すと,RDFコンテンツが指定した形式でファイルに保存される.ここでは,「Turtle(*.ttl)」を選択してTurtle形式でファイルを保存する.

_images/top-down-step7-3.png

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

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

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

2. RDFリソースの挿入

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

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

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

_images/bottom-up-step2-1.png

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

_images/bottom-up-step2-2.png

3. RDFリテラルの挿入

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

4. RDFプロパティの挿入

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

トップダウン手法との違いは,この時点では,RDFSプロパティがプロパティエディタに定義されていない点である.ボトムアップの手法では,RDFリソースを編集中にRDFSプロパティを作成していく.ここでは,bob:mealice:me の間に foaf:knows プロパティを作成する例を説明する.

属性ダイアログを表示し,bob:mealice:me の間に張られたRDFプロパティを選択する.「接頭辞」コンボボックスから foaf を選択する.「プロパティID」リストには,RDFSプロパティで定義されているプロパティのID一覧が表示されるが,今回は定義されていないため表示されない.「ID」テキストフィールドに knows と入力し,「適用」ボタンをクリックする.「プロパティが定義されていません.プロパティを作成しますか?」と尋ねるダイアログが表示されるため,「はい」ボタンをクリックする.

_images/bottom-up-step4-1.png

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

_images/bottom-up-step4-2.png

同様に,schema:birthDate , foaf:topic_interest , dcterms:title , dcterms:creator , dcterms:subject プロパティも作成する.

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

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

索引