チュートリアル

概要

本チュートリアルでは,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