データソン
&ミニ・ハッカソン
LODチャレンジ実行委員会 関西支部長
/大阪大学 産業科学研究所
古崎 晃司
kozaki@ei.sanken.osaka-u.ac.jp
LOD Challenge Day KOBE
2015/09/12
利用するオープンデータ(例)
 「CSV形式」のファイルを利用します
 最初の1行に「データの項目」
2行目以降に各データが記入されているもの
 不要な行など,が入っているものは使えません
 利用できるオープンデータの例
 大阪市の「施設情報ポイントデータ(官公庁)」
(CC-BY:大阪市)
http://www.city.osaka.lg.jp/contents/wdu090/opendata/
mapnavoskdat_csv/mapnavoskdat_kankouchou.csv
 神戸市の「市役所・区役所」(CC-BY:神戸市)
http://www.city.kobe.lg.jp/information/opendata/img/inst
itution01_20141128.csv
 ハンズオンに利用するオープンデータ
 https://goo.gl/DHDqm0
2015/9/13 LOD Challenge Day KOBE 2015 2
LODを公開するための作業
 1.公開するLODを用意する
 CSV形式のオープンデータをRDF形式に変換する
 外部のLODへのリンクを追加する
 2.RDFファイルをサーバにアップする
 方法(1):Webサーバに「単一のファイル」として公開
 方法(2):RDFデータベース(トリプルストア)を用いて
公開
2015/9/13 LOD Challenge Day KOBE 2015 3
既存データをRDF化する方
法
 RDFデータを作成するツールを使用
 Open Refine(http://openrefine.org/)+
RDF Refine(http://refine.deri.ie/)
 データを整備・公開するための多様な機能をサポート
 Linked Data(http://linkdata.org/)
 テーブルデータをRDFに変換して公開することができるサイト
 SparqlEPCU(http://lodcu.cs.chubu.ac.jp/SparqlEPCU/)
 LODの作成・活用のための支援サイト
 CSVファイルをRDFとしての公開する機能もあり
 StatLD(http://satolab.tiu.ac.jp/statld/)
 統計Linked Dataの活用を中心としたツールを公開
 一般のLinked Dataの作成にも使用可能
 独自のプログラム用でRDFデータを作成
2015/9/13 4
LODチャレンジ2011
アプリケーション部門最優秀賞
LODチャレンジ2012
アプリケーション部門最優秀賞
LOD Challenge Day KOBE 2015
本日,利用するツール
 CSV2LOD~RDF変換支援ツール~
 今回のイベントのために,鋭意作成!
 プロトタイプなので,ご意見大歓迎!
 なんでもリンク
 任意のSPARQL Endpointを利用して,LOD間の
リンクを作る為のツール
 第5回LODハッカソン関西/インターナショナル・
オープンデータデイ大阪(2015年2月の成果
2015/9/13 LOD Challenge Day KOBE 2015 5
ツール開発の動機
 Linked Dataの基本原則に沿ったLODを,誰でも,(ある程度)
簡単に作成できるツールを提供したい
 元データ(CSV)の編集を,極力,減らしたい
 データが更新されたら,すぐに再変換したい
 →元データと変換情報のテンプレートは別ファイルに
 足りない機能があれば,気軽に拡張したい
 小規模なプログラムで開発+オープンソース化により改変を自由に
 初心者から上級者まで使いやすいものを
 汎用性の高いテンプレート(Turtleライクな形式)により,複雑なRDFモデル
にも対応
 初心者向けには,語彙選択支援など,簡単にテンプレートが作れる
 動作環境
 インストール不要,かつ,ネットがなくても使える→JavaScritptのみで開発
 IE8にも,できれば対応したかったが…(現時点は×)
2015/9/13 LOD Challenge Day KOBE 2015 6
使用するツール①
CSV2LOD~RDF変換支援ツール
~
2015/9/13 LOD Challenge Day KOBE 2015 7
http://lodosaka.jp/tool/CSV2LOD/
使用するツール②
なんでもリンク
2015/9/13 LOD Challenge Day KOBE 2015 8
http://link.lodosaka.jp/
CSV2LODの作業手順
 作業の手順
1. 元データ(CSV形式)を選択して読み込む
2. RDFが出力される(今回はTurtle形式のみ)
 Webサーバーに公開(こちらで作業します)
 RDFデータベースに登録(皆さんで作業)
3. 公開したLODで簡単なアプリを作ってみる
 ハンズオンの段取り
 1回目は,同じデータで一通りの使い方を説明
 2回目以降,各自,異なるデータを選んでLOD化
 https://goo.gl/DHDqm0 に作業するデータを記入
2015/9/13 LOD Challenge Day KOBE 2015 9
CSVファイルの読み込み
1. 「ファイルを選択」ボタンで,あらかじめ用意し
ておいたCSVファイルを選択する
2. 「CSVファイル読み込み・プレビュー」ボタンを
押し,正しく読み込めることを確認する
2015/9/13 LOD Challenge Day KOBE 2015 10
CSVのプレビュー結果
(例)
2015/9/13 LOD Challenge Day KOBE 2015 11
CSVファイル読み込み時の注意
 文字コードは自動判定されます
 USBに格納しているオープンデータについては動作
確認済み
 ファイルサイズが大きい(200KB以上?)と読
み込めない場合があります
 テキストエディタ等で開いて,「テキストボックスに入
力」の欄にコピー&ペースとして読み込むと,ある程
度のサイズのデータでも読み込めます.
 「ファイルを選択」がうまく動かないとき
 「テキストボックスに入力」を利用して下さい
2015/9/13 LOD Challenge Day KOBE 2015 12
テンプレート作成①
メタデータの入力
 変換するデータに関する基本情報を入力する
2015/9/13 LOD Challenge Day KOBE 2015 13
ベースIRI
:作成するRDFデータでIDに用いるIRI
(URI)の設定
ライセンス情報
今日のハンズオンでは
 ベースIRI
 http://data.lodosaka.jp/lodc-
kobe2015/kobe/institution01_20141128 のように
http://data.lodosaka.jp/lodc-kobe2015/ +
自治体名/+本ファイル名(.csvは除く) とする
 オプションは「一つのファイルで公開(#)」を選択
 ライセンス
 今回利用するデータは,すべてCC-BYで公開されて
いるものなの,下記のように選択・入力する
 クレジットで表示すべき名前:自治体名,作業者
 ライセンスは,クリエイティブ・コモンズ(CC)の「CC-BY」
2015/9/13 LOD Challenge Day KOBE 2015 14
ベースIRI(URI)とは,
 ベースIRIとは,
 RDFにおいてIDとするIRIを決める際に基準とするIRI
 例)DBpedia Japaneseの場合は
http://ja.dbpedia.org/resource/大阪府
↑この部分に相当
 RDFファイルでは,Prefixがついていないリソース
(データ)のIRIは,行頭にベースIRIが付加されるもの
と扱われる
 例)ベースIRIがhttp://test.data/とすると
そのRDFファイルで<1>というリソースのIRIは
<http://test.data/1>となる
 ※Turtle形式の@baseには,#のIRIは使えない.
2015/9/13 LOD Challenge Day KOBE 2015 15
ベースIRI(URI)の決め方
 各データへはベースIRIによって決まるIRIでア
クセスされるので,
 データの公開者が管理している(できる)IRI
 データを公開する際に用いるIRI(URL)
を用いることが望ましい
 # と / の使い分けは,一般に,
 1つRDFファイルでデータを公開するときは
http://test/data#001 のように#を
 データサイズが大きく,RDFデータベースを用いて
公開するときは
http://test/data/001 のように/を使うことが多い
2015/9/13 LOD Challenge Day KOBE 2015 16
テンプレート作成②
プロパティ(語彙)の設定
2015/9/13 LOD Challenge Day KOBE 2015 17
「プロパティ選択表示」ボタンを押すと,
RDF変換で用いる語彙の候補が推薦される
推薦に用いる
語彙の選択
推薦された語彙
CSVの1行目
の項目名
語彙選択の考え方
 ID列
 CSVファイル内で「一意のID」となる項目があれば,「ID列」として選択する
 なければ「IDを自動付与」を選択する
 プロパティ
 適切な語彙が推薦されていたら選択
 それ以外の語彙を利用する場合は「その他」の欄に入力
 「推薦に用いる語彙」の一覧にあるprefixは利用可能
 それ以外の場合は,語彙のIRIをすべて記載
→よく使われる語彙の一覧は次スライド参照.
 CSVの項目名を利用するときは「bp:項目名」を選択する
 bp: は「ベースIRI+/property#」を表すprefix
 データ型は,できれば適切なものを選択する
※プロパティを複数選択することも可
→複数の語彙に対応したいときに利用(例:共通語彙基盤+Schema.org)
2015/9/13 LOD Challenge Day KOBE 2015 18
共通語彙
Schema.org http://schema.org/docs/schemas.html
Schema.org(日本語訳サイト) http://schema-ja.appspot.com/
共通語彙基盤(IMI) http://imi.ipa.go.jp/
Linked Open Vocabularies (LOV)
http://lov.okfn.org/dataset/lov/
DBPedia
http://mappings.dbpedia.org/index.php/Main_Page
Dublin Core
http://dublincore.org/documents/dcmi-terms/
→解説 http://www.kanzaki.com/docs/sw/dublin-core.html
Friend of a Friend (FOAF)
http://xmlns.com/foaf/spec/
→解説 http://www.kanzaki.com/docs/sw/foaf.html
2015/9/13 LOD Challenge Day KOBE 2015 19
語彙の推薦について
 現状では,推薦できる語彙は「ごく一部」のも
のに限られています
 共通語彙基盤には未対応です.
 今後,対応する語彙は順次増やす予定です
2015/9/13 LOD Challenge Day KOBE 2015 20
RDFファイルへの変換
2015/9/13 LOD Challenge Day KOBE 2015 21
• 「テンプレート生成/更新」:設定した情報に基づい
てCSVをRDFに変換するテンプレートを作成する
• 「テンプレートのダウンロード」で,作成したテンプ
レートをダウンロードして再利用できる
• 「CSV→RDFの変換実行」で,CSVファイルをRDF
に変換する
RDFファイルへの変換結果
2015/9/13 LOD Challenge Day KOBE 2015 22
 変換結果は下記のように表示される
 「ファイル名」を入力し「RDFファイルのダウンロード」ボタンで
RDFをダウンロードできる
 うまくダウロードできない場合は,コピー&ペーストを利用する
保存したRDFテンプレートの利
用
 ダウンロードした「RDF変換テンプレート」を読み込んで利
用することも可能
 同じ形式のCSVファイルが複数ある場合に有効
 設定画面へは反映されないため「テンプレート生成/更新」ボ
タンを押すと,読み込んだテンプレートが破棄されるので注意
 テンプレートは,直接,画面上で編集することも可能
 読み込んだテンプレートの修正や,設定からは生成できない
複雑なRDF変換用のテンプレートを生成するのに利用できる
2015/9/13 LOD Challenge Day KOBE 2015 23
LOD公開①:Webサイト
 作成したRDFファイルをWebサイトで公開する
 今回は,イベント用のWebサイトに公開
 公開するURLは,
http://data.lodosaka.jp/lodc-kobe2015/自治体名/
※自治体名は以下のいずれか
kobe, hyogo, osaka-city, osaka-pref, nara-city,
wakayama-pref
 アップする前に,RDFのファイル名がベースIRIで指
定したもの+.ttlになるように修正しておく
例)http://data.lodosaka.jp/lodc-kobe2015/kobe/
institution01_20141128 ならば
institution01_20141128.ttl
2015/9/13 LOD Challenge Day KOBE 2015 24
LOD公開①:Webサイト
1. FTPクライアントへログイン
 https://webftp.heteml.jp/ を利用
 ユーザー名: ※試したい方はメールでお問い合わせ下さい
 パスワード: →kozaki@ei.sanken.osaka-u.ac.jp
 FTPクライアントを利用する場合は
 ホスト名(アドレス) ftp187.heteml.jp
 ※FTPS 接続 の場合は ssl187.heteml.jp (推奨)
2. FTPでアップロード
 「ファイルを選択」ボタン
→作成したRDF(****.ttl)を選択してアップロード
※上書き時には,「上書き」にチェック
2015/9/13 LOD Challenge Day KOBE 2015 25
LODの閲覧
 ①Webブラウザでの閲覧
 WebブラウザのURL欄に
 http://data.lodosaka.jp/lodc-
kobe2015/kobe/institution01_20141128#1
 のように,IRIを入れるとWebブラウザで閲覧可能
 ②LODブラウザでの閲覧
 下記のLODブラウザのIRIの欄に入力する
 Quick and Dirty RDF browser
※日本語IRIは文字化けする
http://graphite.ecs.soton.ac.uk/browser/
 (Yet Another) Linked Data Browser
※フォーマットでTurtleを選択する必要あり
http://www.kanzaki.com/works/2014/pub/ld-browser
2015/9/13 LOD Challenge Day KOBE 2015 26
Webサーバの設定
 Webサーバの.htaccesファイルで
 RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !.[^/.]+$
RewriteRule .* %{REQUEST_URI}.ttl [L,R]
 といったURLのRewriteルールを書くことで,
 …/ファイル名#001 → …/ファイル名.ttl#001
という書き換えを行っている
 厳密な設定については,
Best Practice Recipes for Publishing RDF Vocabularies
http://www.w3.org/TR/swbp-vocab-pub/
等の資料を参照
2015/9/13 LOD Challenge Day KOBE 2015 27
LODの公開②
DBへのRDFデータの登録
 DBにアクセス(本イベント限定のテスト用)
 http://lod.hozo.jp/repositories/lodosaka
 ※アプリ作成時には,これがSPARQL EndpointのURLとなる.
 ログインする
 ID:****,PW:*****
 試したい方はメールでお問い合わせ下さい
→kozaki@ei.sanken.osaka-u.ac.jp
 ※ClassicViewを利用する
 Import RDF
 from an uploaded file,Fileを選択,形式はTurtle
でRDFファイルを登録
※後日,アプリ開発に利用される場合は,
-SPARQL EPCUを利用
-db.lodc.jpにアップ予定なので,そちらを利用
2015/9/13 28LOD Challenge Day KOBE 2015
RDFデータのダウンロード・公開
DBへのRDFデータの登録
2015/9/13 29
RDFを格納するGraph名の指定
Context:欄に
<http://data.lodosaka.jp/lodc-kobe2015/kobe/institution01_20141128.ttl>
のように、WebサーバーにアップしたURLを入力する
LOD Challenge Day KOBE 2015
DBへ登録したRDFデータの確
認
2015/9/13 LOD Challenge Day KOBE 2015 30
Query > new
でクエリ入力画面へ
SELECT ?s ?p ?o
FROM <http://data.lodosaka.jp/lodc-
kobe2015/kobe/institution01_20141128.ttl>
WHERE {
?s ?p ?o .
}LIMIT 100
といったクエリで,データの中身を確認できる
Contextに
入れたURL
外部LODとのリンク
1. なんでもリンクにアクセス
2. オープンデータ(CSV)を開き「名称」に相当する列をコ
ピー
3. なんでもリンクの入力欄にペースト
 「SPARQLエンドポイント」欄に記入すれば,任意のエンドポイ
ントを利用可能
 DBpedia Japaneseが遅いときは,こちらを利用
http://lod.hozo.jp/repositories/dbpedia_jp_label
4. DBpediaのデータと一致するデータの一覧が表示され
る(最初の10件)
5. 「ダウンロード」ボタンで結果をダウンロード
2015/9/13 LOD Challenge Day KOBE 2015 31
外部LODとのリンク
5. エクセル等で開き(文字コードの関係で開き方
に工夫がいるかも),元のオープンデータにマッ
ピング情報をコピー&ペースト
 項目名は「参照」としておくと良い
6. CSV2LODでオープンデータをRDFに変換
 マッピング情報には「rdfs:seeAlso」を使う
2015/9/13 LOD Challenge Day KOBE 2015 32
簡単な可視化アプリ
 Leaflet Simple SPARQL (by上田洋さん)
 緯度経度を含む情報を,OpenStreetMap上に表示する.
 ソースコード&解説
https://github.com/uedayou/leaflet-simple-sparql
 サンプル
http://uedayou.net/lodchallenge/map-sample-osaka-city/
 使えるデータ
 rdfs:label(名前),geo:lat(緯度), geo:long(経度)を含む
データ
 →CSV2LODで変換する際に,これらの語彙を選択しておく.
 RDFに変換した後は,RDF-DBにアップして,SPARQLクエリが
使えるようにしておく.
2015/9/13 LOD Challenge Day KOBE 2015 33
可視化の手順
1. プログラムのダウンロード
 https://github.com/uedayou/leaflet-simple-sparql
から「Download ZIP」でソースファイルをダウンロードする
2. 設定ファイルの書き換え
 「config.js」を開き,以下の2箇所を書き換えて保存する
var endpoint = "http://lod.hozo.jp/repositories/lodosaka";
var query = (function () {/*
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
select *
FROM <http://data.lodosaka.jp/lodc-kobe2015/**********>
where {
?uri rdfs:label ?title;
geo:lat ?lat;
3. プログラムの実行
 index.htmlを開く
2015/9/13 LOD Challenge Day KOBE 2015 34
SPARQLエンドポイントのURL
RDF-DBにアップロードするときに,Contextと
して指定したURL(GRAPH名)
その他のSPARQLを使ったアプ
リ
 SPARQLクエリを書き換えるだけで、いろんな可視化が
できるツールの紹介
• 上田洋さんが作成されたSPARQLアプリ(※)
http://uedayou.net/sparql-mashup/#app
• d3sparql.js http://biohackathon.org/d3sparql/
• Sgvizler http://dev.data2000.no/sgvizler/
 SPARQLを利用したプログラム入門
• JavaScriptを使ったSPARQL利用のミニマムサンプル
http://lodosaka.jp/simple_sparql_2.html
→可視化部分は「自分で自由に作成」
2015/9/13 35LOD Challenge Day KOBE 2015
参考資料
2015/9/13 LOD Challenge Day KOBE 2015 36
SPARQLによるRDFの検索
 SPARQL
 RDFデータに対するクエリ言語
 「指定したグラフ構造」に一致するトリプルを検索する
 最も基本的な検索
select *
where {
?s ?p ?o .
}
LIMIT 100 ←取得する数の制限
←検索するグラフのパターン
←返す要素(*は全て)
この例では「任意のトリプルの組み合わせ」
このパターンを変
えることで,欲しい
データを取得する
372015/9/13
「.」(ピリオド)
を忘れない
LOD Challenge Day KOBE 2015
簡単なクエリ例
 すべてのデータを取得
 select * where {?s ?p ?o} LIMIT 100
 ?s と?pの組み合わせを取得
 select distinct ?s ?p where {?s ?p ?o} LIMIT 100
 プロパティを指定して取得
 select * where {?s
<http://schema.org/description> ?o} LIMIT 100
2015/9/13 LOD Challenge Day KOBE 2015 38
シートにクエリ例を用意しています
SPARQLの検索例①
 「東京都を主語(Subject)に含む」トリプルの述語(?p)
と目的語(?o)を取得する
select distinct ?p ?o
where {
<http://ja.dbpedia.org/resource/東京都> ?p ?o .
}
LIMIT 100
「東京都」を表すURI
DBpedia Japanese
http://ja.dbpedia.org/sparql
での検索結果
↑同じパターンは除外する
392015/9/13 LOD Challenge Day KOBE 2015
SPARQLの検索例②
 「ラベルが“大阪”と一致する」トリプルの主語(?s)
select distinct ?s where {
?s <http://www.w3.org/2000/01/rdf-schema#label> "大阪"@ja .
}LIMIT 100
リテラルの指定
(※データの言語指定も含
めて一致が判定される)
DBpedia Japanese
http://ja.dbpedia.org/sparql
での検索結果
402015/9/13 LOD Challenge Day KOBE 2015
SPARQLの検索例③
 「ラベルに“大阪”を含む」トリプルの主語(?s)
select distinct ?s where {
?s <http://www.w3.org/2000/01/rdf-schema#label> ?o
FILTER(regex(str(?o), "大阪")) .
}LIMIT 100
「文字列が含む」データでの絞り込み
DBpedia Japanese
http://ja.dbpedia.org/sparql
での検索結果
412015/9/13 LOD Challenge Day KOBE 2015
SPARQLの検索例④
 「ラベルが“大阪”と一致する」トリプルの主語(?s)
につながっている述語(?p)と目的語(?o)
select distinct ?p ?o where {
?s <http://www.w3.org/2000/01/rdf-schema#label> "大阪"@ja .
?s ?p ?o.
}LIMIT 100
パターンを続けて書くと「AND条件」になる
※この例では,?p ?oを限定していないが…
DBpedia Japanese
http://ja.dbpedia.org/sparql
での検索結果
422015/9/13 LOD Challenge Day KOBE 2015
SPARQLの省略表現①
 PREFIXの利用
select distinct ?p ?o where {
?s <http://www.w3.org/2000/01/rdf-schema#label> "大阪"@ja .
?s ?p ?o.
}LIMIT 100
432015/9/13
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
select distinct ?p ?o where {
?s rdfs:label "大阪"@ja .
?s ?p ?o.
}LIMIT 100
LOD Challenge Day KOBE 2015
SPARQLの省略表現②
 主語が同じ時の省略表現
442015/9/13
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
select distinct ?p ?o where {
?s rdfs:label "大阪"@ja .
?s ?p ?o.
}LIMIT 100
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
select distinct ?p ?o where {
?s rdfs:label "大阪"@ja ;
?p ?o.
}LIMIT 100
LOD Challenge Day KOBE 2015
SPARQLの便利な検索機能
 SPARQLでマッシュアップ-LOD活用のための技
術紹介(by Hiroshi Ueda)
http://www.slideshare.net/uedayou/sparqllod
p.85~
 DBpedia Japaneseを対象としてクエリサンプル
https://goo.gl/f9lSEQ
2015/9/13 45LOD Challenge Day KOBE 2015

CSVファイルをLODとして公開するデータソン