[salesforce][OpenData][LinkedData] オープンデータの試行運用が開始されました
昨日、2013年6月10日10:00より総務省が統計データにおけるAPI機能の試行運用を開始しました。これで日本のオープンデータ施策も大きな1歩を踏み出しました(先週金曜日にテレビ東京のワールドビジネスサテライトでも特集されてましたね)
今回の試行運用で提供される機能は以下の5つの機能です。
- 統計表情報取得(GET)
- 統計表の情報(統計表ID、調査名、統計表名、調査年月等)を提供する機能
- 検索キーワード等を指定することで、絞込みが可能
- メタ情報取得(GET)
- 統計表(統計表ID)に含まれるメタ情報(集計事項、地域事項、分類事項等)を提供する機能
- 統計データ取得(GET)
- 統計表(統計表ID)に収録されている統計データ(数値データ)を提供する機能
- 必要に応じて、データセット、メタ情報による絞込みを行うことができる
- 提供するデータが大量の場合は、分割して提供される
- データセット登録(POST)
- 統計データ取得時の絞り込み条件を登録する機能
- 統計データ取得時にデータセットの取得条件をさらに絞り込むことも可能
- 登録したデータセットは他のユーザに公開することも可能
- データセット参照(GET)
- 登録されたデータセットの情報を参照する機能
早速、次世代統計利用システム(無料)にアカウントを登録して利用者登録をしました。実際にAPIを利用するには以下の画像のようにアプリケーション毎にアプリケーション設定をする必要があります。
アプリケーションの名称とURLを入力して発行を押すとappIdが発行されます。APIアクセスはappIdを用います。データセットの登録以外はGETでXML/JSONデータを取得するのみとなるでしょう。
また今のところ目的からして認証/認可が必要なことはないので特にサンプルコードをご紹介することもありません。こちらのPDFにAPI仕様がまとめられていますので他のWeb APIと同じように使います。
以下、妄想ベースですが今考えられるsalesforceで利用するパターンを挙げておきます。
- 単純にVisualforce上でJavascript+JSONにてオープンデータをリストまたはグラフ表示する
- Apexにてオブジェクトデータとオープンデータを取得/加工しVisualforce Chartingでリストまたはグラフ表示する
- Apex(あるいはBatch Apex)にてオープンデータを取得しオブジェクトへ登録しレポート/ダッシュボードで表示する
ただ、実は今回のWeb APIはオープンデータの可能性の表面的なものでしかありません。オープンデータの本質は「つながるデータ」と表されるLinkedDataです。つまりデータを公開する側が「LinkedData形式」で公開してこそ利便性が上がるのです。
オープンデータはつまるところ、公開する側は自身が保有するデータのみを公開しデータを利用する側は複数の公開先から必要なデータを柔軟ににチョイスできることが理想ですが、一般に普及しているWeb API方式で全て賄おうとすると利用者側に複数の公開先からデータをかき集めてマージする実装が伴い大きな負担が生じます。
LinkedDataはデータの識別子としてURIを使用しRDFなどのフォーマットで記述します。その中には他のLinkedDataで公開されたデータへのリンク(URI)を持つ構造となっています。つまり自身のデータを表す上で必要な他者のデータはHTMLと同じようにリンクを貼れるわけです。現在、以下のようにDBPediaを中心にLinkedData網が拡がっています。
また、SPARQL(スパークル)というRDFクエリ言語でLinkedData網をSQLのように検索することができます。したがってSPARQLを動的且つ柔軟に扱いWeb API利用者が必要とするあらゆる角度や軸のデータを生成するプロキシのようなサービスやプラットフォーム(と、その提供ベンダー)が考えられます。既に富士通研究所やインフォコムが提供発表しています。
最後にオープンデータはなにも政府やその関連機関に限った話ではありません。エンタープライズでもコンシューマでも勿論どこまで公開できるかという議論はあるにせよ公開する意義はWeb同様、必ず存在するでしょう。お互いに公開することで全体が恩恵を受けること、それが「オープン」の恩恵です。
現在のCMSやブログ、SNSで気軽に個人も企業も情報を公開することが当たり前になったように将来データも気軽に公開し当たり前のように利用する時代が来る気がします。