Contenu connexe
Similaire à XLWrapについてのご紹介
Similaire à XLWrapについてのご紹介 (20)
Plus de Ohsawa Goodfellow
Plus de Ohsawa Goodfellow (11)
XLWrapについてのご紹介
- 1. XLWrap に関するご紹介
筑波大学大学院 システム情報工学研究科
コンピュータサイエンス専攻 北川データ工学研究室
大澤 昇平
この資料に関するお問合せ:shohei.ohsawa@kde.cs.tsukuba.ac.jp
2011/1/22 1
- 2. アジェンダ
XLWrapの全体像・機能
• 概要:XLWrap とは
• マッピングルール
• サポートしている機能
• HTTPフロントエンド
XLWrapのマッピングルールの記述
• 目標
• マッピングルールの内容
• 手順
• 実行結果
まとめ・デモ・質疑応答
2
- 3. アジェンダ
XLWrapの全体像・機能
• 概要:XLWrap とは
• マッピングルール
• サポートしている機能
• HTTPフロントエンド
XLWrapのマッピングルールの記述
• 目標
• マッピングルールの内容
• 手順
• 実行結果
まとめ・デモ・質疑応答
3
- 4. 概要: XLWrap とは
• XLWrap とは、スプレッドシートで表現されているデータを RDFグラフに変換するソフト
ウェアです。
• HTTP サーバが内蔵されているため、SPARQLエンドポイントとして機能する他、リモート
にあるスプレッドシートへのアクセスが可能であるため、ウェブ上に公開されている
Excel ファイルなどを、シームレスにラッピングすることができます。
XLWrapサーバのバックエンド
マッピングルール
マッピング
マッピング
(運営者が記述)
ルール
ルール
スプレッドシート
マッピング XLWrapデータ 変換 変換された 格納
(Excel,マッピング トリプルストア
ルールCSV)
OOCalc,
ルール 変換器 RDFグラフ (Jena)
XLWrapサーバの HTTP フロントエンド
問合せ 問合せ
SPARQL
運営者用ダッシュボード Snorqlブラウザ
エンドポイント
4
- 5. マッピングルール 1/2
• XLWrap では、ユーザが手動でマッピングルールを記述します。マッピングルールは、原則的に各スプ
レッドシートに対し、一つ記述します。
• マッピングルールでは、変換先RDFグラフにおいて、各リソース/リテラルの値が、変換元スプレッドシート
のどのセルに対応するかを記述していきます。
名前空間についても、マッピ
変換先RDFグラフ
ングルール内で定義できます 398
ex:itemsSold
ex:Austria_Product1
ex:revenue 9154.00 ノードの値が必ずセ
ルと対応している必
このように、複数セルの値 ex:category 要はありません
を結合することもできます “laptop PC”
変換元スプレッドシート
5
- 6. マッピングルール 2/2
• XLWrapでは、マッピングルールにおいて、「変換の繰り返し」を定義することができます。
• マッピングルールでは、変換元スプレッドシートを「行」「列」「シート」を軸に持つ三次元の
データと捉え、それぞれの軸についての繰り返し方法を定義します。
Sheet1
変換元スプレッドシート
Sheet2
行の繰り返し
列の繰り返し
シートの繰り返し
6
- 7. サポートしている機能
• サポートしているスプレッドシートの形式:Excel, OpenOffice Calc, CSV
• 名前空間
– 変換先RDFグラフの定義に、名前空間を使うことができます
• コンスタント・グラフ
– 変換先RDFグラフの定義に、入力元のExcelデータの値によらない、コンスタントなグラフを加
えることができます。
• セル値の演算
– 算術演算(+, -, *, /)
– 文字列の結合演算
– 比較演算(<, >, 等)
– 論理演算(&&, ||)
– URL エンコード
– DBPedia へのマッピング
• 例: A1=“Australia” の場合、DBP_LOCATION(A1) と書くと、dbpedia:Australia と等価な意味になる
– ユーザ定義関数
7
- 8. HTTPフロントエンド 1/3
• XLWrap には、HTTPフロントエンドとして、「SPARQLエンドポイント」 「Snorqlブラウ
ザ」 「運営者用ダッシュボード」などの機能が搭載されています。
運営者用ダッシュボード(トップページ)
XLWrapを起動し、http://localhost:8900/
(デフォルト設定)へアクセスしたときに表
示されるページ。SPARQLエンドポイント、
Snorqlブラウザへのリンクなどが見える。
8
- 9. HTTPフロントエンド 2/3
運営者用ダッシュボード(ステータス情報)
スプレッドシートが正しく変換されると、
Wrapped spreadsheets in cache という項目
に表示される。
9
- 10. HTTPフロントエンド 3/3
Snorqlブラウザ
写真は変換済みのRDFグラフに対し、すべ
てのトリプルを出力するような問合せを実
行したもの。
10
- 11. アジェンダ
XLWrapの全体像・機能
• 概要:XLWrap とは
• マッピングルール
• サポートしている機能
• HTTPフロントエンド
XLWrapのマッピングルールの記述
• 目標
• マッピングルールの内容
• 手順
• 実行結果
まとめ・デモ・質疑応答
11
- 12. 目標 1/2
Excel データ
統計局 日本の統計 第1章 国土・気象 1-1 国土状況 より
http://www.stat.go.jp/data/nihon/01.htm
http://www.stat.go.jp/data/nihon/zuhyou/01syo/n0100100.xls (直リンク)
このような Excel のデータを、
12
- 13. 目標 2/2
RDFデータ(一部)
jpstat:value 83,457
jpstat:Region 0.2208
jpstat:percentage
rdf:type jpstat:area 509
jpstat:total
jpstat:small 14
jpstat:Region_北海道
jpstat:middle 2
jpstat:islan ds jpstat:large
6
jpstat:tiny
487
このように変換するのが目標です。
13
- 14. マッピングルールの内容
tohkei1.trig 接頭辞
1 @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . 31
2 @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax- 32 :Region { テンプレートグラフ
ns#> . 33 [ xl:uri "'http://www.stat.go.jp/rdf#Region_' &
3 @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . REMOVE_WHITESPACE(A9)"^^xl:Expr ] a jpstat:Region ;
4 @prefix owl: <http://www.w3.org/2002/07/owl#> . 34 jpstat:area [ jpstat:value "C9"^^xl:Expr;
5 @prefix foaf: <http://xmlns.com/foaf/0.1/> . jpstat:percentage "D9 / 100"^^xl:Expr];
6 @prefix ex: <http://example.org/> . 35 jpstat:islands [
7 @prefix dc: <http://purl.org/dc/elements/1.1/> . 36 jpstat:total "E9"^^xl:Expr;
8 37 jpstat:tiny "E9 - F9 - G9 - H9"^^xl:Expr;
9 @prefix xl: <http://purl.org/NET/xlwrap#> . 38 jpstat:small "F9"^^xl:Expr;
10 @prefix jpstat: <http://www.stat.go.jp/rdf#> . 39 jpstat:middle "G9"^^xl:Expr;
11 40 jpstat:large "H9"^^xl:Expr
12 41 ].
13 { [] a xl:Mapping ; メタ情報 42 }
14 xl:offline "false"^^xsd:boolean ;
15 記述の手順
16 xl:template [
17 xl:fileName "mappings/files/n0100100.xls" ;
18 xl:sheetNumber "0" ;
接頭辞の記述
19 xl:templateGraph :Region ;
20 xl:transform [
21 a rdf:Seq ; 繰り返し メタ情報の記述
22 rdf:_1 [
23 a xl:RowShift ;
24 xl:restriction "A9:H9" ;
25 xl:breakCondition "ALLEMPTY(A9:H9)" ; テンプレートグラフの記述
26 xl:steps "1" ;
27 ] ;
28 ]
29 ] . 繰り返しの記述
30 }
14
- 15. 手順:接頭辞の記述
接頭辞の記述
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix ex: <http://example.org/> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
XLWrap 用の接頭辞
(XLWrap 内で既定)
@prefix xl: <http://purl.org/NET/xlwrap#> .
@prefix jpstat: <http://www.stat.go.jp/rdf#> . 統計局用の接頭辞
(私が決定)
15
- 16. 手順:メタ情報の記述
メタ情報の記述
{ [] a xl:Mapping ;
xl:offline "false"^^xsd:boolean ;
xl:template [
xl:fileName "mappings/files/n0100100.xls" ; ファイル名
xl:sheetNumber "0" ; シート番号
xl:templateGraph :Region ; テンプレートグラフの名前
xl:transform [ (テンプレートグラフにつ
a rdf:Seq ; いては次のページで解
ここの中身(繰り返しの記
説)
述)に関しては p.19 で解説
]
] .
}
16
- 17. 手順:テンプレートグラフの記述 1/2
jpstat:value 83,457
jpstat:Region 0.2208
変換先RDFグラフ
jpstat:percentage
rdf:type jpstat:area 509
jpstat:total
jpstat:small 14
jpstat:Region_北海道
jpstat:middle 2
jpstat:islan ds jpstat:large
6
jpstat:tiny
487 (=509 - 14 - 2 - 6)
変換元Excelシート
17
- 18. 手順:テンプレートグラフの記述 2/2
:Region {
[ xl:uri "'http://www.stat.go.jp/rdf#Region_' & REMOVE_WHITESPACE(A9)"^^xl:Expr ]
a jpstat:Region ;
マッピングルール
jpstat:area [ jpstat:value "C9"^^xl:Expr; jpstat:percentage "D9 / 100"^^xl:Expr];
jpstat:islands [
jpstat:total "E9"^^xl:Expr;
jpstat:small "F9"^^xl:Expr;
jpstat:middle "G9"^^xl:Expr;
jpstat:large "H9"^^xl:Expr
jpstat:tiny "E9 - F9 - G9 - H9"^^xl:Expr;
].
}
変換元Excelシート
18
- 19. 手順:繰り返しの記述
xl:transform [
a rdf:Seq ;
rdf:_1 [
マッピングルール
a xl:RowShift ; RowShiftが適用される
xl:restriction "A9:H9" ; 最初の範囲
xl:breakCondition "ALLEMPTY(A9:H9)" ; 停止条件
xl:steps "1" ;
] ;
]
変換元Excelシート
RowShift
(停止条件)
すべてのセルが
空だったら停止
- 22. アジェンダ
XLWrapの全体像・機能
• 概要:XLWrap とは
• マッピングルール
• サポートしている機能
• HTTPフロントエンド
XLWrapのマッピングルールの記述
• 目標
• マッピングルールの内容
• 手順
• 実行結果
まとめ・デモ・質疑応答
22