第 2 章 コンテンツ提示へのセマンティック Web 技術の応用
4.5 LOD プラットフォーム
53
図-4.4.4 フィードバックデータ確認用クエリ 表-4.4.1 フィードバックデータ確認用クエリ結果
4.3 項,4.4 項で示したデータモデルおよびデータ処理モデルを図-4.4.5 に示す.データ 入力ユーザーX が入力したトリプルデータ(S-P-O)と,トリプルインスタンス(SPO)
は,ハッシュ化により間接的にリンクされている状態にあるため,外部アプリケーション APP での利用実績をデータ入力ユーザーX にフィードバックすることが可能である.
図-4.4.5 フィードバックのためのデータモデル・データ処理
54
ォームを利用するアプリケーションとして,観光に関連する街の情報を登録できるアプリ ケーションをプロトタイプとして開発した.
4.5.1. データアーキテクチャ
本研究が提案するデータモデルにより,LOD としてトリプルデータを公開するだけでな く,そのトリプルデータをインスタンス化してデータ制作者情報を付加することや外部ア プリケーションでの利用実績等をフィードバックできる.さらに LOD として公開している データに,データ制作者情報や利用実績等を直接付与する必要がないことも特⾧であるこ とは上述の通りである.つまり,LOD として公開するデータと,データ制作者情報や利用 実績等の付加情報を分けて保持することができる.そのため,LOD としてデータを公開す るだけでなく,LOD データのメタ情報を公開する構造を提案する.本データモデルを LOD として利用する際のデータアーキテクチャを図-4.5.1 に示す.図-4.5.1 に示す通り,LOD と して公開するオープンデータレイヤーと,トリプルデータのメタ情報を公開するためのメ タデータレイヤーで構成される. LOD データのメタ情報(制作者など)を確認するために 必要となるハッシュ関数やその SPARQL クエリや,フィードバックをするための SPARQL クエリは,事前に公開しておく必要がある.これは,データは LOD として公開する際に必 要となるアクセス方法やデータ構造などを,LOD 利用者に通知しておく作業と類似したス テップである.なお,図中のトリプルデータのメタ情報の取得は,図-4.4.4 に示したような トリプルデータとハッシュ化されたインスタンスを FILTER により抽出するクエリにより 可能である.また,図中のトリプルデータに対するフィードバックは,図-4.4.3 のクエリに より実現できる.本項で示すデータアーキテクチャを,データの登録や参照時に利用するた めのシステムアーキテクチャについて次項で詳述する.
55
図-4.5.1 データアーキテクチャ
4.5.2. システムアーキテクチャ
本項では,上述したデータアーキテクチャを利用するための,システムアーキテクチャ について示す.外部アプリケーションから,図-4.5.1 に示すデータアーキテクチャ上の,オ ープンデータレイヤーと,メタデータレイヤーのデータを直接登録及び参照することも可 能ではあるが,クエリが見えてしまうというセキュリティ観点や,LOD 利用アプリの効率 的な開発を実現するため,データ登録機能と,データ参照機能を API 経由で利用可能とす るシステムアーキテクチャを提案する(図-4.5.2).つまり,外部アプリケーションから,登 録したい,もしくは参照したいデータをパラメータとして,データ登録機能やデータ参照機 能用の API に渡すことで,API サーバーが SPARQL クエリに変換して,RDF ストアのオ ープンデータレイヤーとメタデータレイヤーにアクセスする構成となる.登録用と参照用 の API を分けて構成するため,これらの API を利用するアプリケーションも 2 種類開発す ることができる.それは,データ登録アプリケーションとデータ参照アプリケーションであ り,図-4.3.4 に示すクエリと,図-4.4.3 に示したクエリを利用するアプリケーションを分け ることを意味する.データ登録用 API では,クライアントである Web アプリケーションか ら,スポット名や緯度・経度情報やカメラ画像を引数として POST コマンドにより受け付 ける.その際,クライアントアプリケーションからは,図-4.3.4 に示すパラメータを引数と して API サーバーに送信する.API サーバーでは,図-4.3.3 の SPARQL 文を生成し,後段 にある RDF ストアに送信する.データ参照用 API も同様に,図-4.4.3 のパラメータを引数
RDFストア
トリプルデータ
外部アプリケーション トリプルデータメタ
・トリプルデータのメタ情報の取得
・トリプルデータに対するフィードバック メタ
デー タレ イヤ ー
オー プン デー タレ イヤ ー
・LODへの通常アクセス
【メタ情報】
・トリプルデータの制作者
・トリプルデータの作成日時など
【フィードバック】
・利用回数
・コメントなど
56
として POST コマンドにより受け付け,SPARQL 文を生成し RDF ストアに送信する.図-4.5.2 では,データ登録時の API データ例と,API サーバーで変換されて生成される SPARQL 文例を示す.外部アプリケーションであるデータ登録アプリケーションから,データ制作者 情報(“http://nagasakipj.or.jp#USER_A”)と,スポット ID(“http://nagasakipj.or.
jp#SPOT_001”),スポット名称(“丸山公園”)が API に渡された後,SPARQL 文が生成さ れ「?s ?p ?o」がオープンデータレイヤーのトリプルデータとして蓄積されるだけでなく,
「?user ?produce ?spo」というメタデータレイヤーのデータも登録される.
図-4.5.2 システムアーキテクチャ
APIサーバー
(node.js)
RDFストア
(fuseki)
データ登録用 データ参照用
②REST API
(SPARQL文)
④REST API
(SPARQL文)
データ参照 アプリケーション
(Webブラウザ)
データ登録 アプリケーション
(Webブラウザ)
トリプルデータ トリプルデータメタ
デー タベ ース レイ ヤー
API
レイ ヤー
INSERT{
?s ?p ?o.
?user ?produce ?spo. } WHERE
{
BIND(URI("http://nagasakipj.or.jp#SPOT_001") as ?s).
BIND(URI("http://nagasakipj.or.jp#name") as ?p).
BIND(STR("http://丸山公園") as ?o_origin).
BIND(IF(contains(?o_origin,"http"), URI(?o_origin),STR(?o_origin)) AS ?o)
BIND(CONCAT(STR(?p),STR(?o)) as ?po).
BIND(URI(CONCAT(STR(?s),SHA1(?po))) as ?spo).
BIND(URI("http://nagasakipj.or.jp#USER_A") as ?user).
BIND(URI("http://nagasakipj.or.jp#produce") as ?produce).
}
resister_data={
"user_id":”USER_A”,
“spot_id”:”SPOT_001”,
“spot_name”:“丸山公園”,
"lat":lat,
"lng":lng, }
外部 アプ リケ ーシ ョン SPARQL文(例)
APIデータ例
①REST API
(スポット名、位置情報、カメラ画像など) ③REST API
(フィードバック情報など)
57
データ登録アプリケーションは,さらに,図-4.4.4 に示すフィードバックデータ確認クエリ により,データ入力ユーザーが登録したデータに対するフィードバックを確認可能である.
4.5.3. データ登録アプリケーションの試作
登録する街の情報は,観光地や公園といったスポット情報であり,その内容は位置情報や ジャンルなどが考えられる.また登録するデータは,テキストデータだけとは限らず,画像 や動画なども考えられる.効率的なデータ入力のためには,標準的に実装されている Web ブラウザで入力でき,かつ,モバイルデバイスの状態(ロケーション情報など)を活用する ことが重要である.本項では,図-4.5.2 のデータ登録用 API を利用できるデータ登録アプ リケーションを紹介する.図-4.5.3 に,スポット情報を登録する画面を示す.
Web ブラウザから,カメラ起動や,GPS データの取得などを可能としている.また,入 力データをデータ登録用 API 経由で RDF ストアに登録することができる.さらに,図-4.5.3 に示すータ登録アプリケーションでは,4.5.4 項で述べるデータ参照アプリケーションから のフィードバックデータを確認する画面もある.
図-4.5.3 データ登録アプリケーション・スポット登録画面
58
4.5.4. データ参照アプリケーションの試作
本項では,LOD を利用する外部アプリケーションから,トリプルデータに直接フィード バックできるかを検証するため,外部アプリケーションを想定したデータ参照アプリケー ションも開発したので本項で紹介する.図-4.5.2 に示すシステムアーキテクチャのデータ参 照アプリケーションに該当する.上述した通り,フィードバック用のデータを連携するため の述語は,柔軟に設定できる.図-4.5.4 に示すデータ参照アプリケーションでは,登録され た街の情報を一覧できるだけでなく,「いいね」を押すことやコメントを入力可能である.
押された「いいね」の回数やコメントは,図-4.4.3 に示したクエリにより,図-4.5.2 のデー タ参照用 API を経由して RDF ストアにフィードバックデータとして登録することができ る.
図-4.5.4 参照アプリケーションでのフィードバック例
4.5.5. データフィードバックの確認
図-4.5.5 に,データ登録アプリケーションでの,登録済スポットデータの確認画面を示す.
外部アプリケーションからのフィードバックがある場合は,その内容を確認することがで きる.図-4.5.5 が示すように,図-4.5.4 の参照用アプリケーションにて「いいね」が押下さ れ,また,コメント登録された後,その内容がフィードバックされていることがわかる.
59
図-4.5.5 登録済スポット情報確認画面