1. ホーム
  2. Web プログラミング
  3. XML/RSS
  4. XMLの基礎知識

リンクデータ入門 - RDF応用編

2022-01-04 01:52:44
はじめに
セマンティックウェブは、データをアプリケーションに縛り付けるだけでなく、共有することを可能にするデータのウェブである。
しかし、セマンティックWebは、単にデータをインターネット上に置くだけでなく、そのデータを人や機械が読み解くことを容易にするために、データと実物の間につながりを持たせ、つながりを生み出す試みでもあるのです。
セマンティック・ウェブは、単にデータをウェブ上に置くだけのものではありません。人間や機械がデータのウェブを探索できるように、リンクを作ることです。
--リンクされたデータ設計の問題点 . ティム・バーナーズ-リー
Linked Dataは、RDFデータモデルを使用し、インスタンスとクラスデータを公開、展開するセマンティックウェブ表現の最初の実用的な形態であり、データエンティティにURI(Uniform Resource Identifiers)を付けて、HTTPプロトコルを通じて公開、アクセスできるようにし、人間とコンピューターの理解に役立つ相互接続性、相互関連性、文脈情報を強調する 。
リンクデータは、RDFデータモデルを使用してインスタンスやクラスデータを公開・展開するためのベストプラクティスのセットであり、統一資源識別子(The approach exposes the data for access via HTTP protocol while emphasizing data interconnections, interrelationships and context useful to both human and machine agents)を使用する。
--リンク先データFAQ . M.K. Bergman
セマンティックWebは、長期的な目標やビジョンとなるような、あらゆる困難が伴う大規模な事業であるため、リレーショナルデータは、実現可能で実用的な活動のクラスであり、現在のセマンティックWeb実装にとって最も実現性の高いソリューションの1つとなっています。
RDFの特徴
RDF(Resource Description Framework)は、XML(Extensible Markup Language)の派生版として、Linked Dataの基本となるデータモデルである。Tim Berners-Leeは、その設計に際して以下の2つの問題に直面した。
-学習しやすく、普及しやすく、標準化に適した言語を設計するには?
-離散データの入口と出口をどのように設計するか?
この2つの問題を解決するために、RDFには以下のような特徴があります。
-基本言語としてXMLを使用
-URIを実在するものの名前として使用する
-HTTPのURIを使って、ネットワーク上のデータを名前で見つける方法を知らせる(つまり、個別のデータエントリーポイントを作る)
-他のURIへのリンクを含み、人々がそのURIを通してより有用なものを見つけられるようにする(すなわち、個別のデータの出口を作る)。
-データをトリプル(3つ組)で保存する
実はRDFにはXML言語を使わないバージョンもあり、これは主に初期バージョンのことを指している。
簡単なRDFの例
コピーコード コードは以下の通りです。

<?xml version="1.0"? >
<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.w3.org/">
<dc:title>World Wide Web Consortium</dc:title>
</rdf:Description>
</rdf:RDF>

このRDFの例をW3CのRDF検証サービスに通すと、次のようなリストが得られます。
データモデルのトリプル 
<テーブル 番号 件名 述語 対象物 1 http://www.w3.org/ http://purl.org/dc/elements/1.1/title ワールド・ワイド・ウェブ・コンソーシアム。
これは何なんだ?
RDFデータモデルの基本的な表現単位であるトリプル。いわゆるトリプルは 主語 - 述語 - 目的語です。
トリプルストアは、文字列(文字の並び)の三重集合から構築されるIDを保存および取得するように設計されています。これらの三重集合は、RDF 標準が提示する定義にほぼ対応する主語-述語-目的語の関係を表します。
--トリプルストア . ジャック・ラッシャー
データ自体が大きくリンクされていないリレーショナルデータとは異なり(これもデータネットワークのように大きなデータでは実現不可能)、データは人間のような宣言文(Statement)を使って保存される、たとえば
-トムは男だ。
-トムは赤い家に住んでいます。
-トムはリリと結婚した。
三段論法は、データを蓄積する表現としても強力な可能性を秘めており、人間が長期的にこの形式の恩恵を受けることは明らかである。もちろん上のような表現は人間には優しいが、機械にはあまり優しくない。なぜなら、このような述語は少なくとも機械には、オブジェクトに対する修飾がうまくできないからである。だから、次のようにパターンを書くべきだ。
-トム(Tom) 性(Gender) 男(Male)
-トム(Tom) 家(house) 赤い(red)。
-トム(Tom)妻(wife)リリ(Lili)。
タイトルに戻りますが、これは何でしょう?を表現しています。
1. http://www.w3.org (この文が、対象が何であるかを記述していることを示す。HTTP URIは実物をマッピングするので、それがどんな実物であるかを記述していると見なすことができる)
2. http://purl.org/dc/elements/1.1/title (一般的にオブジェクトのタイプを示すサブジェクトの属性。例えば、dc:title はダブリンコアでリソースの名前を示すために使用されます。)
3. ワールド・ワイド・ウェブ・コンソーシアム(ゲスト)
他の人はどうやってRDFを取得しているのですか?
下図は、その様子を表したものです。

-最初にHTTP URIが要求されます。
-通常のブラウザのHTTPリクエストヘッダは、text/html, application/xhtml+xml typeなので、サーバーは一般的なhtml/xhtmlドキュメントを返します。
-しかし、セマンティックブラウザの場合、HTTPリクエストヘッダはapplication/rdf+xmlタイプなので、サーバーは303リダイレクトを行い、対応するRDFファイルを取得します。
つまり、HTTP URIに対して、documentとdataという2つの表現が返されることになる。これは、人間が読むことのできるドキュメントと、機械が読むことのできるデータの、2種類のネットワークを作ることになります。