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) をもとに作成)
Dublin Core Metadate Initiative が提唱する、書籍、音楽作品、Webページなどの著作物のメタデータ記述のための語彙。
基本データ要素として、タイトル、作成者、主題など、15種類の提案されている。
プロパティ 概要 title タイトル creator 作成者(人または組織) subject 扱われている主題・トピック description 内容説明 publisher 提供者(人または組織) contributor 協力者 date 日付 type リソース内容のカテゴリ format リソースのフォーマット identifier 識別子(ISBN、URIなど) source リソースが参照しているの language 言語 relation 関連リソース coverage 地理的・意味的な対象範囲 rights 権利
例えば、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 グラフで表すと以下のようになる。
Dublin Core の基本要素に対する32の「拡張プロパティ」が提案されてている。例えば、 基本要素だけでは「著作物の更新日」といった情報を表現できないため、date という基本 要素に、modified などを加える拡張を行っている。
FOAF (Friend Of A Friend) は、人の属性と、その友人関係を記述するための語彙である。
クラス 概要 Person 人クラス
プロパティ 概要 mbox メールアドレス(mailto:アドレスという形式で記述) name 名前 homepage ホームページのアドレス
例えば、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 グラフで表すと以下のようになる。
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 グラフで表すと以下のようになる。
さらに、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表現を生成する。
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 グラフで表すと以下のようになる。