2013/08/09

[Open Data][Linked Data]概念および公開方法

ここ最近オープンデータという言葉を聞くようになり、少し調べたところイギリスやフランス政府などのオープンデータはLinked Dataといった形式で公開されています。日本政府でもオープンデータ推進(この辺)を唄っているので、今後流行ってきそうなのでLinked Dataの概念について調べてみました。
Linked Data(Open Data)の概念
  • 基本的にはWeb上でデータを共有し、再利用するためのデータ
  • WebAPI(RDF形式)で提供する。一般的にはXMLやJSONなどの構造化データ形式が各プログラム言語も対応しているため普及しているが、Webの視点では分散したデータをつなぐ場合に適していない。(複数の公開データを紐付けて必要な項目のみ値を抽出したり、検索エンジンがクロールを行ったりする場合に適していない)
  • HTML形式は人間が目で見るデータに対して、機械(PCなどのデバイス)が利用するための形式としてRDFが採用されている
    (Webにあるハイパーリンクによって一つの文書からグローバルな情報を紐付けるように、RDFを使ってデータ源がグローバルなデータ空間につながる)


Linked Dataの基本原則
  • あらゆる事物にURIをつける事
  • 誰でも事物の内容が確認できるように、URIはHTTP経由で参照できる事
  • URIを参照したときは、標準(W3C)の技術(RDFやSPARQL等)を使用して関係する有用な情報を利用できるようにする事
  • より多くの事物を発見できるように、他のURIへのリンクを含める事


Linked Data(Open Data)の公開する段階(Time Berners-Leeの5つの格付け)
1.データがオープンライセンスで公開されている(形式は何でも良い)
2.データが機械可読な構造化データとして公開されている
3.データが独自でない形式で公開されている(例:エクセルではなくCSV)
4.事物を同定するのにW3Cのオープン標準(RDFやSPARQL)を用いて人々がそれにリンクできる
5.他の人々のデータへの外部リンクを持つ


Linked Data(Open Data)の公開方法
Webは人間だけでなく機械(PCなどのデバイス)が利用できる情報空間であることを目指している。人間がアクセスしてきた場合はHTMLを戻し、機械(PCなどのデバイス)がからのアクセスはRDFを戻す。この仕組みをコンテントネゴシエーションと呼ばれるHTTP技術で実現する
303 URI
リクエストヘッダーのAcceptにapplication/xml+rdf、text/htmlをセットしてサーバに送信し、サーバ側で識別後、Httpレスポンスのステータスコードを303にセットしクライアント側でリダイレクトを行う
ハッシュURI
URIがハッシュ記号(#)をによってベースの部分と区別される特別な部分を含むことができる性質を利用している。(両方のデータをダウンロードしてクライアント側でハッシュ記号で識別を行う)


RDFのデータモデル
データを記述する際にリソースを主語・述語・目的語の三つ組の構造体で記述する。これは一般的にトリプル(Triple)と呼ばれる。(例:マイケルの、ニックネームは、マイキーです)
RDFトリプルには、リテラル型トリプルとRDFリンクの2種類が原則
リテラル型トリプル
目的語が文字列や数字、または日付などのリテラルであるRDFトリプルであり、リソースに関するプロパティの記述に使う。
RDFリンク
他のリソース刊との関係を記述し、3つのURIを参照して構成される。


RDFの種類(シリアル化形式)
RDF/XML
W3Cによって標準化された規格であり、WebにLinked Dataを公開する際に広く使われている
RDFa
HTML文書の中でRDFトリプルを扱えるシリアル化の規格

Turtle
プレーンテキスト形式でシリアル化されたRDFデータ(名前空間のPrefixや略記法を使えるので人間の読み書きが必要な時に向いている)

N-Triples
Turtleのサブセットで、名前空間のPrefixとステートメントを簡略化して記述する略記法を省いたもの

RDF/JSON
RDFをJSONにシリアル化するための仕組みを指しておりTails仕様が幅広く利用されている

こちらはオープンデータを活用して税金を試算するWebアプリ(横浜版)です
http://yokohama.spending.jp/
※qiitaに技術仕様もありました
http://qiita.com/hal_sk/items/38c186efbd272ef59121

0 件のコメント:

コメントを投稿