[Previous] [Up] [Next]

第4週 知識資源管理技術の基礎(3)
〜セマンティックWebの実践〜


1. RDFによるリソース記述

1.1 概要

RDF (Resource Description Framework) は、さまざまなリソースの属性や関係を、「主語」、「述語(またはプロパティ)」、「目的語(値)」という3つの要素の組み合わせ(トリプル)によって表現する方法である。

RDF の基本的な作法(RDF Core)に基づいて、領域依存の具体的な語彙を定義するため枠組みは、「RDF Schema」と呼ばれる。

図1 セマンティックWebの概念図
出所:http://www.w3.org/DesignIssues/diagrams/sw-stack-2005.png
現在RDF / RDF スキーマに基づいて、以下のような領域依存の語彙が提案されている。

RDF Schema
名前空間 xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"

RSS (RDF Site Summary / Rich Site Summary / Really Simple Syndication)
ブログなどの更新データ共有(シンジケーション)を実現するための語彙
名前空間  xmlns:rss="http://purl.org/rss/1.0/"

ATOM
シンジケーションを実現するための語彙。書き込みも統一された形式で扱える。
名前空間  xmlns="http://www.w3.org/2005/Atom"

Dublin Core
書籍などの著作物のメタデータを記述するための語彙
名前空間  xmlns:dc="http://purl.org/dc/elements/1.1/"

FOAF (Friend Of A Friend)
個人の属性と友人関係を記述するための語彙
名前空間  xmlns:foaf="http://xmlns.com/foaf/0.1/"

Review Vocabulary
著作物のレビュー記事を定義するための語彙
名前空間  xmlns:rev="http://www.purl.org/stuff/rev#""

OWL (Web Ontology Language)
リソースに関する概念的・定性的な情報を定義するための語彙
名前空間  xmlns:owl ="http://www.w3.org/2002/07/owl#"
参考:Web 1.0 と 2.0 の比較( O'Relly(2005) をもとに作成)

1.2 Dublin Core

(1) 基本要素

Dublin Core Metadate Initiative が提唱する、書籍、音楽作品、Webページなどの著作物のメタデータ記述のための語彙。
基本データ要素として、タイトル、作成者、主題など、15種類の提案されている。

プロパティ概要
titleタイトル
creator作成者(人または組織)
subject扱われている主題・トピック
description内容説明
publisher提供者(人または組織)
contributor協力者
date日付
typeリソース内容のカテゴリ
formatリソースのフォーマット
identifier識別子(ISBN、URIなど)
sourceリソースが参照しているの
language言語
relation関連リソース
coverage地理的・意味的な対象範囲
rights権利

(2) 定義例

例えば、Dublin Core の語彙を使うことで、

「http://www.unchiku.com は、2006年9月1日に、稲葉光行がつくった」

という知識は、以下のような RDF/XML 表現で表される。

<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/">
 <rdf:Description rdf:about="http://www.unchiku.com/">
  <dc:creator>稲葉光行</dc:creator>
  <dc:date>2006-09-01</dc:date>
 </rdf:Description>
</rdf:RDF>

これを RDF グラフで表すと以下のようになる。

(3) 拡張プロパティ

Dublin Core の基本要素に対する32の「拡張プロパティ」が提案されてている。例えば、 基本要素だけでは「著作物の更新日」といった情報を表現できないため、date という基本 要素に、modified などを加える拡張を行っている。

1.3 FOAF

(1) 概要

FOAF (Friend Of A Friend) は、人の属性と、その友人関係を記述するための語彙である。

クラス概要
Person人クラス
プロパティ概要
mboxメールアドレス(mailto:アドレスという形式で記述)
name名前
homepageホームページのアドレス

(2) 定義例1

例えば、FOAF の語彙を使うことで、「稲葉光行」という個人は、以下のような RDF/XML 表現で表される。

<rdf:RDF
      xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
      xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
      xmlns:foaf="http://xmlns.com/foaf/0.1/">
 <foaf:Person>
  <foaf:mbox rdf:resource="mailto:inabauer@unchiku.com"/>
  <foaf:name>稲葉光行</foaf:name>
  <foaf:homepage rdf:resource="http://www.unchiku.com/"/>
 </foaf:Person>
</rdf:RDF>

これを RDF グラフで表すと以下のようになる。

(3) 定義例2

FOAFを用いて知人関係を記述する場合は、foaf:knows を用いる。

<rdf:RDF
      xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
      xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
      xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <foaf:Person>
    <foaf:mbox rdf:resource="mailto:inabauer@unchiku.com"/>
      <foaf:knows>
      <foaf:Person>
          <foaf:mbox rdf:resource="mailto:gwbush@unchiku.com"/>
        </foaf:Person>
      </foaf:knows>
      <foaf:knows>
        <foaf:Person>
          <foaf:mbox rdf:resource="mailto:obama@unchiku.com"/>
        </foaf:Person>
     </foaf:knows>
  </foaf:Person>
</rdf:RDF>

これを RDF グラフで表すと以下のようになる。

(4) 複数の語彙を組み合わせた定義の例

さらに、FOAF と Dublin Core を組み合わせて、以下のような RDF/XML を 記述することもできる。

<rdf:RDF
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
 xmlns:foaf="http://xmlns.com/foaf/0.1/">
<rdf:Description rdf:about="http://www.unchiku.com/">
 <dc:creator>
  <foaf:Person>
   <foaf:mbox rdf:resource="mailto:inabauer@unchiku.com"/>
   <foaf:name>稲葉光行</foaf:name>
  </foaf:Person>
 </dc:creator>
 <dc:date>2006-09-01</dc:date>
</rdf:Description>
</rdf:RDF>

これを RDF グラフで表すと以下のようになる。

参考:以下のページは、フォームへの入力データから FOAF の RDF/XML表現を生成する。

1.4 Review Vocabulary

Review Vocabulary は、(上記の語彙に比べれば普及度は低いが)、ブログ、CD、書籍、ソフトウェアなどに対するレビューを共有するための語彙である。以下に主な語彙を示す。

クラス概要
Reviewレビュー情報
Feedbackレビューに対するフィードバック
Commentコメント本文
プロパティ概要
hasReviewレビュー対象へのリンク
rating評価点(数字)
reviewerレビューした人

Review Vocaburalyと FOAF の語彙を組み合わせた例(評価者1名)を以下に示す。

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:dc="http://purl.org/dc/elements/1.1/"
         xmlns:rev="http://www.purl.org/stuff/rev#"
         xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <rdf:Description rdf:about="http://movie.org/#ikiru">
      <dc:title>生きる</dc:title>
      <dc:creator>黒澤明</dc:creator>
      <rev:hasReview>
          <rev:Review>
              <rev:rating>9</rev:rating>
                <rev:reviewer>
                  <foaf:Person>
                      <foaf:name>西園寺銀閣</foaf:name>
                  </foaf:Person>
              </rev:reviewer>
          </rev:Review>
      </rev:hasReview>
   </rdf:Description>
</rdf:RDF>

これを RDF グラフで表すと以下のようになる。

以下は、評価者2名の例である。

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:dc="http://purl.org/dc/elements/1.1/"
         xmlns:rev="http://www.purl.org/stuff/rev#"
         xmlns:foaf="http://xmlns.com/foaf/0.1/">
  <rdf:Description rdf:about="http://movie.org/#ikiru">
      <dc:title>生きる</dc:title>
      <dc:creator>黒澤明</dc:creator>
      <rev:hasReview>
          <rev:Review>
              <rev:rating>9</rev:rating>
                <rev:reviewer>
                  <foaf:Person>
                      <foaf:name>西園寺銀閣</foaf:name>
                  </foaf:Person>
              </rev:reviewer>
          </rev:Review>
      </rev:hasReview>
      <rev:hasReview>
          <rev:Review>
              <rev:rating>3</rev:rating>
                <rev:reviewer>
                  <foaf:Person>
                      <foaf:name>中川大九郎</foaf:name>
                  </foaf:Person>
              </rev:reviewer>
          </rev:Review>
      </rev:hasReview>
  </rdf:Description>
</rdf:RDF>

これを RDF グラフで表すと以下のようになる。


2. 複数の語彙を組み合わせたリソース記述

2.1 リソース記述の実習

  1. Dublin Core を用いて、自分が「好きな映画」を記述する。
  2. FOAF を用いて、自分自身の情報を記述する。
  3. Review Vocabulary を用いて、「好きな映画」の評価を記述する。
  4. 上の3つの定義を接続する。

2.2 記述の組み合わせ操作(≒クエリーの発行)

  1. 各自の定義を組み合わせる。
  2. 自分の知人の rating 値を元に、自分の知人が好きな映画を見付ける。

第2部:事例紹介


  1. 神崎著、セマンティック・ウェブのためのRDF/OWL入門、森北出版
  2. 斎藤・荻野監、セマンティックWeb入門、オーム社
  3. 曽根原・岸上・赤植著、メタデータ技術とセマンティックウェブ、電機大出版局
  4. 溝口編、オントロジー構築入門、オーム社
  5. Review Vocabulary, http://danja.talis.com/xmlns/rev_2007-11-09/index.html
  6. FOAF-a-Matic, http://www.ldodds.com/foaf/foaf-a-matic

[Previous] [Up] [Next]
Mitsuyuki Inaba (inabam@sps.&#\ 114;itsumei.ac.jp)
Last modified: Mon Jul 13 12:54:16 JST 2009