...

LINQによるビューを用いたLODに対する問合せにおける 結合演算の

by user

on
Category: Documents
6

views

Report

Comments

Transcript

LINQによるビューを用いたLODに対する問合せにおける 結合演算の
DEIM Forum 2015 E3–3
LINQ によるビューを用いた LOD に対する問合せにおける
結合演算のサポート
和正†
熊本
天笠
俊之††
北川 博之††
† 筑波大学システム情報工学研究科コンピュータサイエンス専攻 〒 305–8573 茨城県つくば市天王台 1–1–1
†† 筑波大学システム情報工学域 〒 305–8573 茨城県つくば市天王台 1–1–1
E-mail: †[email protected], ††{amagasa,kitagawa}@cs.tsukuba.ac.jp
あらまし コンピュータによる処理を目的としたデータを Web 上で公開,共有,および利用するための方法に Linked
Open Data (LOD) がある.様々な種類のデータが LOD により公開されており,LOD を利用するアプリケーション
の開発が強く期待されている.しかし複雑なグラフ構造である LOD への問合せは容易ではなく,SPARQL という問
合せ言語の習得が必要になる.井上らは,これらの問題を解決するために,ビューを導入し,C#言語などから利用可
能な LINQ を介することで LOD に対する単純な問合せ(選択,射影,集約など)を容易に行うことができるシステ
ムを提案した. 本研究では,井上らのシステムを拡張し,結合演算をサポートする.
キーワード
Linked Open Data, RDF, SPARQL, JSON, LINQ
の知識を持たないユーザが LOD の利用を促進させることを目
1. は じ め に
的としている.
「制限なしで利用・再掲載可能であるべき」という考え方
井上らのシステムは,選択,射影,集約など,単純な問合せ
に基づいて作成されたデータを,オープンデータと呼ぶ.政
を LINQ で記述することができるが,結合演算に関しては未
府や行政などの公共機関が保有するデータをオープンデータ
サポートであった.そこで,本研究では,井上らの LINQ に
として外部へ公開する動きが,先進国を中心に推進されてい
よるビューを用いた問合せ手法を拡張し,結合演算をサポート
る.また, LOD [1] (Linked Open Data) はコンピュータ処
し,その問合せ最適化を目的とする.本稿では,初期の検討と
理に適したオープンデータを,ウェブ上で公開・共有するた
して,結合演算の実現方法について検討する.
めの方法である. LOD では, RDF (Resource Description
本稿の構成は以下の通りである,まず 2 節では,本論文に必
Framework) [2] を用いてリソース自身と他のリソースとの関
要な基本的事項について解説する.3 節では,本研究のベース
係を記述する. LOD では,異なる領域のデータを互いにリ
となる, LINQ によるビューを用いた問合せ手法について述べ
ンクさせることでデータ活用を促進する.国勢統計,地理空間
る.4 節では,これに対する拡張として,結合演算をサポート
情報などの情報をオープンデータとして公開した Data.gov や
する手法について述べる.最後に 5 節で,まとめと今後の展望
Data.uk.gov をはじめ,1,000 ドメインを超える膨大で多種多
について述べる.
(注 1)
様なデータが LOD として公開されている
.
しかし, LOD は多様なドメインから構成される複雑なグラ
2. 前 提 知 識
フ構造をもつ.さらに,複雑なグラフ構造への問合せを記述す
2. 1 RDF
るには, LOD ,RDF , SPARQL [3] (RDF への問合せ言語)
RDF (Resource Description Framework) [2] はリソース自
などを学習をしなければならず,その学習コストは高い.
これに対して,井上らは, LINQ によるビューを用いた LOD
身を表す属性と,リソース間の関係を記述するフレームワーク
であり,W3C で標準化されている.
に対する問合せ手法を提案した [4].井上らの提案した手法で
RDF では, URI (Universal Resource Identifier) によって
は,まず,公開対象の LOD をよく知る技術者が,それをどの
識別されるものをすべてリソースとして扱う.リソースには文
ような形式で公開したいかを JSON ビューの形式で記述する.
書,画像,人や場所,リソース間の関係も含まれる.RDF で
このようにして提供された JSON ビューに対して,ユーザは
は,リソースに対するメタデータを,トリプル(主語 (Subject)
LINQ 問合せ言語を利用して問合せを記述することで, LINQ
,述語 (Predicate) ,目的語 (Object) ) によって記述する.
使用者は LOD に対する専門的な知識を必要とせずに LOD へ
主語はメタデータを記述する対象のリソース,述語は主語
の問合せを行うことができる. LOD に対するビュー定義に関
に関する情報のプロパティを定義し,目的語は述語の対象とな
する研究には [6] などがあるが,井上らの研究は LOD , RDF
る値を格納する.主語と述語は URI で,目的語は URI また
はリテラル(文字列,数値...)で表現する.リスト 1 は RDF
(注 1):State of the LOD Cloud 2014,
http://linkeddatacatalog.dws.informatik.uni-mannheim.de/state/
で記述された「教員」,
「研究室」に関するデータセットの例
である.トリプル「Prof:Prof1 Lab:ID Lab:Lab1」は,主語が
Prof:Prof1 ,述語が Lab:ID ,目的語が Lab:Lab1 ということ
を表している.
「@prefix a b」は「以後 b を a と置き換える」と
PREFIX Prof: http://exampleProf.com/
Lab: http://exampleLab.com/
いう意味で,データを簡潔に書くのに役立つ.たとえば図 1 の
「Prof:Prof1」は「http://prof.test/Prof1」と等価である.1 は
グラフは RDF を視覚的表した図で,リソースは楕円,リテラ
Prof:
Name
@prefix Prof : < http :// prof . test / > .
Lab : ID
Prof : Name " K " .
Lab:
Lab1
Lab:ID
Prof:
Prof1
@prefix Lab : < http :// lab . test / > .
Prof : Prof1
Lab:
Lab1
“K”
ルは矩形で記述する.
Prof : Prof1
Lab Dataset
Prof Dataset
リスト 1 を視覚的に表現した RDF グラフの例である. RDF
Lab:
Name
“KDE”
Lab : Lab1 .
図 1 RDF で記述された「教員」,
「研究室」に関するデータセットの
Lab : Lab1
Lab : Name
" KDE " .
RDF グラフ
リスト 1 RDF で記述された「教員」,
「研究室」に関するデー
タセット
表 1 SPARQL クエリ文で使用する基本なキーワード
節
キーワード
接頭辞宣言
データセット定義
2. 2 SPARQL
RDF に対する問合せ言語として, SPARQL (SPARQL Pro-
探索対象のグラフ URI
FROM
結果節
SELECT
指定した変数の値を返す
クエリパタン
WHERE
グラフパタンの指定
FILTER
条件式
tocol and RDF Query Language) [3] がある, SPARQL は,
W3C によって標準化されており,近年広く用いられている.
意味
名前空間接頭辞宣言
PREFIX
クエリ演算子
SPARQL ではグラフパタンを記述することで,記述したグ
順序指定
ORDER BY
LIMIT
取得件数指定
ラフパタンにマッチする部分グラフを検索することができる.
SPARQL クエリ文で使用する基本的なキーワードは表 2. 2 の
PREFIX Prof : http :// exampleProf . com /
ようになっている. SELECT 句では ?x の形式で変数を宣言
PREFIX Lab : http :// exampleLab . com /
することができ, FROM 句では,探索対象のグラフ URI を指
定する. FROM 句は省略することも可能で,省略された場合,
SPARQL エンドポイントにデフォルトの URI が設定されてい
SELECT ? ProfName ? LabName
WHERE {
? ID Prof : Name ? ProfName .
? ID Prof : ID ? LabID .
ればそれを使用する. WHERE 句では検索したいグラフパタ
? LabID Lab : Name ? LabName .
ンをトリプルで定義する. FILTER 句では文字列などでの絞り
FILTER ( str (? ProfName ) = " K ") }
込み等が可能である.その他にも, ORDER BY 句で結果の順
序指定をしたり, LIMIT 句で取得件数の指定をすることもで
きる.リスト 2 は SPARQL クエリの例である.この SPARQL
クエリでは, WHERE 句で以下のようなグラフパタンを指定
リスト 2 「教員」「
,研究室」に関するデータセットから「教員の
名前と所属する研究室の名前」を問合せる SPARQL
クエリ
している.
「ある要素 ( ?ID と定義する) が主語, ?Prof:Name (
= http://exampleProf.com/Name ) という述語が述語, ?ID
2. 3 LINQ
以外のある要素 ( ?ProfName と定義する) が目的語」「 ?ID
LINQ (Language INtegrated Query) は Microsoft .NET
と ?ProfName 以外のある要素 ( ?LabID と定義する) が主語,
Framework で提供されるデータ操作機能である.LINQ の
Lab:Name が述語, ?ID と ?ProfName と ?LabID 以外のあ
利点として,以下のような点がある.(1) 簡潔で読みやすい(特
る要素 ( ?LabName と定義する) が目的語」
「 ?LabID が主語,
に複数条件をフィルター処理する場合),(2) 最小限のコードで
Lab:Name が述語, ?LabName が目的語」さらに, FITLER
強力なフィルタ処理,並び替え,グループ化などの機能を使用
句で, ?ProfName のリテラルが「K」のものだけを出力する
することができる.(3) 様々な情報源に対して統一的な構文で
ようにしており, SELECT 句で, ?ProfName と ?LabName
問合せ等の操作を行うことができるので,コードをほとんど変
だけを出力するようにしている.以上をまとめると,リスト 2
更することなく,他のデータソースに移植できる. (4) プログ
は「教員」,
「研究室」に関するデータセットから「教員の名前と
ラミング言語の構文として問合せが記述できるので,コンパイ
所属する研究室の名前」を問合せる SPARQL クエリといえる.
ル時に記述ミスを発見できる
リスト 1 のデータセットに対してこの SPARQL クエリを発行
.NET Framework 標準の機能では,文字列型や数値型のコレ
すると,”K” ( = ?ProfName ) と「”KDE” ( = ?LabName )
クション,リレーショナルデータベースのレコードや XML 文章
」が出力される.
の要素集合などに対して問合せを行うことができるが,独自に
アクセスすることができる.たとえば「LINQ to Twitter [17]」
や「Linq To Oracle [18]」などがある.本研究で作成している
プロバイダは「LINQ to RDF (With Views)」に相当する.
LINQ は,マイクロソフト系のプログラミング言語である
C#,F#,Visual Basic .NET などのプログラミング言語にと
どまらず,Java(Quaere,JaQue,JaQue),JavaScript(jLinq,
JSINQ,linq.js),PHP(PHPLinq),Python(Pylinq) などさま
ざまなプログラミング言語向けの実装が行われている.
ビュー
作成者
LINQを記述
プロバイダを実装することで,任意の情報源に LINQ の構文で
アプリ
ケーション
LINQ
使用者
LINQ問合せ
シ
ス
テ
ム
クエリ
トランスレータ
SPARQL問合せ
参照
ビュー
定義
SPARQL問合せ結果
SPARQL
エンドポイント
LINQ クエリ文で使用する基本的なキーワードを表 2. 3 に示
作成
LINQ
問合せ結果
LOD
す.リスト 3 はリスト 2 と同様に,
「教員」,
「研究室」に関する
データセット (profs, labs) に対して,
「教員の名前と所属する研
図 2 システムの概要図
究室の名前」を問合せる LINQ クエリの例である.
3. 1 システムの概要
var join = from prof in profs
join lab in labs
on prof [" labID "] equals lab [" ID "]
井上らによって提案されたシステム [4] の概要を図 2 に示す.
井上らのシステムでは,図中のクエリトランスレータを導入す
where prof [" Name "] == " K "
ることで,データ公開者など公開対象の LOD をよく知る技術
select new { ProfName = prof [" Name "] ,
者が,RDF データに対して JSON 形式のビューを提供するこ
LabName = lab [" Name "] };
とができる.一方アプリケーション作成者は,SPARQL エン
リスト 3 「教員」,
「研究室」に関するデータセットから「教員
の名前と所属する研究室の名前」を問合せる LINQ
ドポイントに対して記述された JSON ビューに対して,RDF
の構造を意識することなく LINQ による問合せ記述を行うこと
が可能となる.システムは以下のことを行う.
クエリ
(1) LINQ クエリから問合せ条件を抽出する.(2) 問合せ条件
とビュー定義を使用して SPARQL クエリを生成,問合せを行
2. 4 JSON
う.(3) 問合せ結果をビュー定義を使用して整形,LINQ 問合
JSON(JavaScript Object Notation)は,JavaScript 言語
せ結果として返す.
におけるオブジェクトの表記方法であり,JavaScript の標準化
本節では,まず,クエリトランスレータが参照するビュー定
団体でもある ECMA International で標準化されている [5].本
義について説明する.その後,上記の (1),(2),(3) について,
研究ではビュー定義に JSON スキーマを用いる.JSON におけ
各々説明する.
るスキーマ定義である JSON スキーマでは,JSON の構造を定
義ことができる.リスト 4 は,リスト 1 の「教員」,
「研究室」の
データセットに対して,ある教員の名前と研究室の名前を問い
合せたときに,問合せ結果として返される JSON の例である.
{ " results ": [
" ProfName " : " K " ,
" LabName ": " KDE " ] }
リスト 4 「results」というキーで「ProfName」,
「LabName」
の配列を持つ JSON 文字列
3. 2 ビュー定義
井上らの手法 [4] では,RDF データを JSON に見せる手段と
してビューを利用する.ビュー定義には,グラフ構造から必要
なデータが何かを SPARQL で記述した SPARQL テンプレー
ト,問合せ結果の JSON の構造を JSON スキーマで記述した
JSON テンプレートの 2 点をそれぞれ定義する.リスト 5 は,
ビュー定義の例である.
3. 3 システムの処理
3. LINQ によるビューを用いた LOD に対する
問合せ
本節では,本研究のベースとなる,井上らによって提案さ
れた LINQ によるビューを用いた問合せ手法 [4] について説明
する.
3. 3. 1 問合せ条件の抽出
SPARQL クエリの生成のため,LINQ クエリから条件を抽
出する.条件抽出部は (1) LINQ クエリから式木を構築 (2)
構築した式木を解釈して、問合せ条件を抽出,の 2 つから成る.
問合せ条件として抽出すべき条件は,射影の条件,選択の条
件である.詳しくは井上らの論文 [4] を参照されたい.
3. 3. 2 SPARQL の生成/問合せ
LINQ クエリから抽出した問合せ条件とビュー定義をもとに,
SPARQL クエリを作成し,SPARQL エンドポイントに問合せ
表 2 LINQ クエリの基本構文
キーワード
意味
変数 A を定義する.(変数の型は,select で指定されたものになる)
ローカルの範囲変数 A を定義し,B というデータソースから読み込む
データソースの型は IEnumerable,IEnumerable < T > ,または派生型 (たとえば IQueryable < T > )
ローカルの範囲変数 A を定義し,B というデータソースから読み込む
データソースの型は IEnumerable,IEnumerable< T >,または派生型 (たとえば IQueryable< T >)
var A
from A in B
join A in B
結合条件を指定する
on A equals B
where フィルタ条件
フィルタ条件を指定する
select new { A=B }
射影条件を指定する
結合演算を考慮したシステムの概要図を図 3 に示す.条件
SELECT ? ID ? Name ? LabID
WHERE { ? ID Prof : Name ? Name .
抽出部では,JOIN を含むクエリを解釈する.問合せ条件に加
? ID Lab : ID ? LabID .} AS JSON {
え,結合条件,最終的な射影に必要な要素を抽出する必要があ
{ " type ":" object " , " properties ":{
る.SPARQL 生成/問合せ部では,問合せ条件とビュー定義か
" results ": {
ら SPARQL クエリを生成し複数の問合せ先に問合せる必要が
" type ":" array " , " items ":{
ある.問合せ結果の整形/結合/射影部では,ビュー定義を使用
" type ":" object " , " properties ":{
して JSON を整形するだけでなく,条件抽出部で抽出した結合
? ID :
{ " type ":" string " } ,
? Name :
条件,射影に必要な要素を使用して,JSON を結合,最終的に
{ " type ":" string " } ,
? LabID :{ " type ":" string " } ,}}}}}
必要な要素のみを射影する必要がある.
リスト 5 図 1 の「教員」データセットに対するビュー定義例
LINQクエリから抽出される式木
lamda(profs,labs) =>
を行う.列挙された問合せ条件を順に読んでいき,要素が射影
Select(
Where(
の場合は変数が揃い次第射影する要素で SELECT 句の書換を
結合条件
行う.選択の場合は列挙された条件と要素を使用して FILTER
JOIN
(prof["LabID"]
== lab["ID"]
句を WHERE 句の末尾に書き加える.
3. 3. 3 問合せ結果の整形
SPARQL エンドポイントから取得した問合せ結果と,ビュー
定義(JSON テンプレート)を使用して,問合せ結果を整形し,
射影する要素
4. LINQ によるビューを用いた LOD に対する
問合せにおける結合演算のサポート
ViewURL
(http://
viewURL
Prof/)
prof["Name"]
Projection
(Name,LabID)
lab["Name"]
Selection
(Name=="K")
最終的な LINQ 問合せ結果(JSON)として返す.
Join(
prof.LabID
Profに対する
問合せ条件
lab.ID
)
lamda(prof) =>
Equal
getItem(Name)
Labに対する
問合せ条件
ViewURL
(http://
viewURL
Lab/)
Projection
(ID,Name)
"K"
)
lamda(prof,Lab) =>
getItem(Prof.Name)
getItem(Lab.Name)
)
図 4 システムが LINQ クエリから抽出するデータ構造の概念図
本節では,3 節で説明した井上らの手法 [4] に対し,結合演算
4. 2 システムの処理
をサポートする手法について述べる.
4. 1 結合演算のサポートのために拡張する部分
4. 2. 1 条 件 抽 出
条件抽出部は井上らの手法と同様に,LINQ クエリから式木
LINQ クエリから式木を構築する部分については,本研究の対
アプリ
ケーション
LINQ
使用者
LINQ問合せ
シ
ス
テ
ム
を構築し,構築した式木を解釈して,問合せ条件を抽出する.
ビュー
作成者
LINQを記述
条件
抽出部
問合せ結果の
整形/結合/
射影部
SPARQLクエリ
生成/問合せ部
SPARQL問合せ
象から外れるためここでは詳しく議論しないが,.NET の構文
LINQ
問合せ結果
作成
ビュー ビュー
定義A 定義B
を利用する.したがって拡張すべき部分は,式木の解釈部分で
ある.
システムから LINQ クエリから抽出する式木の図を,図 5 に
参照
SPARQL問合せ結果
SPARQL
エンドポイント
解析木を利用することで式木を得ることができるため,これ
LOD
図 3 結合演算を考慮したシステムの概要図
示す.この式木図の作成には,(注 2) のプログラムを使用した.
条件抽出部はまず式木から結合演算子の部分を探索し,式木
の子の要素を用いて (1) 結合条件の抽出, (2) ビューごとの問
合せ条件格納変数の確保, (3) 射影条件の書加えを行う.
(注 2):式木を WPF で GUI 表示, 未確認飛行 C,
http://ufcpp.net/study/csharp/sm treeview.html
まず,(1) では結合したいビューの名前と結合する要素の名
件とビュー定義を使用して SPARQL クエリを「教員」データ
前をそれぞれ抽出する.ここで抽出された変数は,後述する問
セットが格納されている SPARQL エンドポイントと「研究室」
合せ結果の結合部で使用される.次に,(2) でビューごとに問
データセットが格納されている SPARQL エンドポイントに各々
合せ条件格納変数を必要な数だけ確保し,各々の変数ごとに条
発行し,問合せ結果を得る.問合せ結果を得たら,ビュー定義
件を格納していく.井上らの手法は複数ビューを使用すること
を使用して求めたい JSON の形式に整形する.整形したら,結
を考慮していないため,ビューごとに問合せ条件を抽出するよ
合条件を使って JSON を結合する.最後に,結合された JSON
うにする.最後に,(3) で射影条件の書き加えを行う.井上ら
から,条件の抽出部で列挙しておいた射影したい要素のみを取
の実装では LINQ クエリの SELECT 句以下に記述された要素
り出し,LINQ 問合せ結果として返す.
だけしか射影の条件として格納しないが,結合する要素も結合
に必要な要素であるため,射影条件の書加えは式木の射影部分
を解釈する場合と同様に行う.
5. 関 連 研 究
5. 1 LOD,RDF に対するビューの導入
(1) ∼ (3) の条件抽出が終了次第,井上らの手法と同様に式
井上らの提案し,本稿で拡張した手法は,RDF の集合に対
木を探索し,射影,選択,集約の条件を抽出し,ビューごとの
してビューを導入しているが,RDF の集合に対するビューの
問合せ条件格納変数に格納する.
導入に関する研究は LOD の概念が登場する前から行われてい
4. 2. 2 SPARQL クエリの生成/問合せ
る [9] [10] [11] [13]. [9] および [10] は,現在の仕様とは異なる
条件抽出部は,SPARQL クエリ生成部に抽出した条件を渡
古い SPARQL を対象に,前者はスキーマレベルのビュー定義
す.このとき,SPARQL クエリ生成部には,ビューごとの問合
を提案している.後者は RDB に格納された RDF に対して集
せ条件格納変数を用いて呼び出される.すなわち,SPARQL ク
約演算を独自に開発したものである. [13] はセンサ等から得た
エリ生成部はビューの個数回それぞれ呼び出される.SPARQL
時系列 RDF データに高速に対して,アクセスするための一時
クエリ生成部は,渡された問合せ条件をもとに,ビュー定義を
的なビューの設計に関する研究であり,本手法が LOD を利用
使用して SPARQL クエリを生成し,SPARQL エンドポイント
しようとするアプリケーションに対して,複雑性を除去して利
に問合せを行う.SPARQL クエリ生成部の入出力の構造自体
用させる点で類似する.ただし SPARQL による問合せを想定
は変更がないため,SPARQL クエリ作成および問合せ自体は,
している.
井上らの手法 [4] と同様に行うことができる.
Le ら [12] や,Etcheverry ら [14] の研究は,LOD に対して
4. 2. 3 問合せ結果の整形/結合/射影
SPARQL クエリを用いてビュー定義を行う点で本研究と類似
SPARQL クエリ問合せ部が返却した問合せ結果をもとに,
するが,彼らの定義するビューは LOD への問合せを簡単化す
ビュー定義を用いて既存システムと同様に JSON 形式に整形
る目的の JSON ビューではなく,ビューの定義と研究の目的が
する.
異なる.
整形した後,条件抽出部で抽出した結合条件を使って結合す
RDB に格納されたデータに対して RDF としてアクセスする
る.この結合方法には,単純なネステッドループ結合や,ハッ
ためのビュー定義については数多くの研究が存在するが [8] [15].
シュ結合など様々な方法が考えられるが,どのような実装が最
これらの手法は仮想的な RDF 集合をビューとして作り出し,
適かに関しては,今後の課題としている.
SPARQL クエリを SQL に書き換えて問合せを行う.対象がリ
井上らの手法 [4] では,射影したい要素を問合せ条件に含め
るだけで,LINQ クエリの SELECT 句で取り出したい要素を
レーショナルデータである点が,本研究とは異なる.
5. 2 LINQ を用いた LOD へのアクセス
問合せることができた.しかし,本手法では結合のためだけに
[7] は.NET 言語向けのライブラリ “LINQ to RDF [16]” を用
用いる要素も取得してしまうため,条件抽出部で抽出した射影
いて, Web 上の LOD に対して LINQ 問合せによる SPARQL
すべき要素のみを結合結果から取り出し,LINQ 問合せ結果と
問合せを実現している.この手法では,アプリケーション開発
して返す.
者が LOD の内部構造を把握している必要がある.一方,本
4. 2. 4 結合演算を含む LINQ クエリを用いた問合せの例
研究ではビューを定義することで LOD のリソース集合を抽象
図 1 のような「教員」,
「研究室」に関するデータセットに対し
化し,アプリケーション開発者が特定のビューに対する LINQ
て,結合演算である JOIN 句を含むリスト 3 の「教員の名前と
問合せを記述するだけで,LOD のグラフ構造に関する知識がな
所属する研究室の名前」を問合せる LINQ クエリで,リスト 4
くても,LOD に対する問合せを行うことができる点が異なる.
の問合せ結果を得たい場合を考える.リスト 5 のようなビュー
5. 3 LINQ を用いた LOD へのアクセスに対する結合演
定義が「教員」データセットに対して定義されており,
「研究室」
データセットについても同様に予めビュー定義作成者によって
作成されているものとする.
システムは,まず LINQ クエリを式木に変換し,式木から問
算のサポート
.NET 言語向けのライブラリ “LINQ to RDF [16]” では 結
合演算はサポートされていない.
「LINQ to RDF」や「LINQ
to XML」など,マイクロソフトが標準で提供している LINQ
合せ条件,結合条件,最終的に射影したい要素を抽出する.式
プロバイダに関しては結合演算子 (join 句) を実装しているが,
木,各ビューに対する問合せ条件,結合条件,射影する要素の
井上らの研究で提案システムと構造が近い「LINQ to Twitter」
概念図を図 4 に示す.問合せ条件の抽出が終了次第,問合せ条
では結合演算のサポートは見られない.サポートしていない理
由の考察は今後の課題だが,実装の手間が掛かることが理由の
一つなのではないかと考える.
6. お わ り に
本稿では,ビューを用いた LINQ による LOD に対する問合
せ手法の拡張として,結合演算の実現手法の検討を行った.今
後は結合演算を含む問合せを本手法で行った場合と,直接エン
ドポイントに対して行った場合と,比較評価を行う予定である.
7. 謝
辞
この研究の一部は,文科省「実社会ビッグデータ利活用のた
めのデータ統合・解析技術の研究開発」による.(APA26010)
文
献
[1] Christian Bizer, Tom Heath, and Tim Berners-Lee. Linked
data - the story so far. Int. J. Semantic Web Information
Systems, 2009.
[2] Jeremy J. Carroll and Graham Klyne. Resource Description Framework (RDF): Concepts and Abstract
Syntax. W3C recommendation, W3C, February 2004.
http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/.
[3] Steven Harris and Andy Seaborne. SPARQL 1.1 Query
Language. W3C Recommendation, W3C, March 2013.
http://www.w3.org/TR/sparql11-query/.
[4] 井上 寛之, 天笠 俊之, 北川 博之. LINQ を用いた Linked Open
Data に対する問合せ, DEIM Forum 2014 D7–2
[5] ECMA International. Standard ECMA-262 - ECMAScript
Language Specification. 5.1 edition, June 2011.
[6] Exploiting the RDF-based Linked Data Web using .NET via
LINQ. http://virtuoso.openlinksw.com/whitepapers/rdf
%20linked%20data%20dotNET%20LINQ.html.
[7] Exploiting the RDF-based Linked Data Web using .NET via
LINQ. http://virtuoso.openlinksw.com/whitepapers/ rdf
[8] Christian Bizer. D2rq - treating non-rdf databases as virtual
RDF graphs. In In Proceedings of the 3rd International Semantic Web Conference (ISWC2004), 2004.
[9] Huajun Chen, Zhaohui Wu, and Yuxin Mao. Rdf-based
ontology view for relational schema mediation in semantic web. KES ’05, pages 873879, Berlin, Heidelberg, 2005.
Springer–Verlag.
[10] Yu Deng Edward Hung and V.S. Subrahmanian. Rdf aggregate queries and views. ICDE ’05, 2005.
[11] Franois Goasdou, Konstantinos Karanasos, Julien Leblay,
and Ioana Manolescu. View selection in semantic web
databases. Proc. VLDB Endow., 5(2):97-108, October 2011.
[12] Wangchao Le, Songyun Duan, Anastasios Kementsietsidis,
Feifei Li, and Min Wang. Rewriting queries on sparql views.
WWW ’11, pages 655-664, New York, NY, USA, 2011.
ACM.
[13] Geetha Manjunath, R Badrinath, Craig Sayers, and Venugopal K. S. Temporal views over rdf data. WWW ’
08, pages
11311132, New York, NY, USA, 2008. ACM.
[14] Lorena Etcheverry and Alejandro A. Vaisman. Views over
rdf datasets: A state-of-the-art and open challenges. CoRR,
abs/1211.0224, 2012.
[15] Richard Cyganiak, Souripriya Das, and Seema Sundara.
R2RML: RDB to RDF Mapping Language. W3C recommendation, W3C, September 2012.
[16] linqtordf, https://code.google.com/p/linqtordf/
[17] LINQ to Twitter, http://linqtotwitter.codeplex.com/
[18] Linq To Oracle, https://linqtooracle.codeplex.com/
図5
システムが LINQ クエリから抽出する式木
Fly UP