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

XLWrapについてのご紹介