2016年8月に自治体のオープンデータを5つ星オープンデータ・Linked Data4原則に準拠したLinked Open Data、へ変換するデータソン「オープンデータをLOD化するデータソン in 高槻」を開催しました。
ここでは、そのデータソンの手順をまとめました。
5つ星オープンデータとは
Linked Open Data(LOD)は、
- あらゆるデータの識別子としてURIを使用する。
- 識別子には(URNや他のスキームではなく)HTTP URIを使用し、参照やアクセスを可能にする。
- URIにアクセスされた際には有用な情報を標準的なフォーマット(RDFなど)で提供する。
- データには他の情報源における関連情報へのリンクを含め、ウェブ上の情報発見を支援する。
(Wikipedia:Linked Open Dataより引用)
の4つを満たしているものとされています。
この4つの原則(Linked Data4原則)を満たすデータは**5つ星オープンデータ**とも呼ばれ、オープンデータの中でも最も良いオープンデータとされています。
★:(どんな形式でも良いので) あなたのデータをオープンライセンスでWeb上に公開しましょう
★★:データを構造化データとして公開しましょう (例: 表のスキャン画像よりもExcel)
★★★:非独占の形式を使いましょう (例: ExcelよりもCSV)
★★★★:物事を示すのにURIを使いましょう,そうすることで他の人々があなたのデータにリンクすることができます
★★★★★:あなたのデータのコンテキストを提供するために他のデータへリンクしましょう
5つ星オープンデータソンでは、これらに準拠するため以下を満たすデータを作ります。
- 既存のCSVデータをRDFデータに変換する
- RDFデータ内のID(=URI)をWebブラウザで開くと、そのデータが閲覧できるようにする
- RDFデータ内にWebブラウザでデータが閲覧可能な別のID(=URI)へのリンクを含める
利用ツール
「5つ星オープンデータソン」では、以下のツールを使いました。
- CSV形式のデータをRDFに変換する「CSV2LOD」
- http://lodosaka.jp/tool/CSV2LOD/
- オープンデータに外部のLODへのリンクを追加する「なんでもリンク」
- http://link.lodosaka.jp/
- DBpediaのようにLinked Open Data(LOD)を公開する「Simple LODI」
- https://github.com/uedayou/simplelodi
※ CSV2LOD、なんでもリンクはGoogle Chromeで開くことをお勧めします。
※ CSV2LOD、なんでもリンクで作成したRDFデータは必ず文字エンコードをUTF8で保存してください。
5つ星オープンデータソンに必要な環境
5つ星オープンデータとして公開するには
- PHP(5.4以上)が動くWebサーバ(PHPが利用可能なレンタルサーバで可)
- 自分が管理するドメイン(レンタルサーバに既に割り当てられているサブドメインでも可)
が必要です。
高槻市で行ったデータソンでは、
- data.lodosaka.jp ドメイン
- hetemlのレンタルサーバ
を準備しました。
さくらインターネットのレンタルサーバでも動作確認をしています。
また、以下の説明では、data.lodosaka.jp の takatsuki ディレクトリから作成データを閲覧にするように設定します。
データソン作業手順
高槻市データソンの具体的な作業手順です。
データソンでは、自治体(高槻市)が公開するCSVデータを5つ星オープンデータ(Linked Open Data)に変換する作業を行いました。
CSVデータを確認
高槻市の公開するデータのサンプルとして、以下のデータを使いました。
http://data.lodosaka.jp/takatsuki/takatsuki_sample.csv
このCSVファイルをローカルに保存します。
次に、Google SheetsかExcelでCSVファイルを開きます。
※ Google Sheetsでは「File」->「Open」->「Upload」の手順で開くことができます。
※ Excelでは、「UTF-8」のファイルを開く際には,注意が必要です。
表として開いたら、形式に問題がないかを確認してください。
確認事項|
1行目が項目、2行目以降がデータ(値)になっているか?|
1行目の項目と2行目以降にずれがないか?|
不要な行がないか?|
CSVデータを外のデータとリンク
5つ星オープンデータにするには
★★★★★:あなたのデータのコンテキストを提供するために他のデータへリンクしましょう
を満たす必要があります。これを簡単に満たすことができるツールが「なんでもリンク」です。なんでもリンクはDBpediaの同一データを簡単に探すことのできるWebサービスです。
なんでもリンクは以下のように使います。
(高槻市のサンプルデータの場合)
1. なんでもリンクを開く
http://link.lodosaka.jp/ をWebブラウザで開いてください。
2. CSVデータ の「名称」に相当する列をコピー
Google Sheets やExcel等でCSVを開き、データの名称の列(サンプルデータでは「label」列)を項目名を含めずにコピーしてください。
3. なんでもリンクにデータをペースト
コピーした内容を入力フォームに貼り付けてください。
4. DBpediaのデータを検索・ダウンロード
入力フォームにデータを貼り付けたら、「割当実行」ボタンを押します。検索結果が入力フォームの下にテーブルとして表示されます。「ダウンロード」ボタンを押すと、CSVファイルとして結果をダウンロードできます。
5. DBpediaへのリンクを元のCSVデータに反映
4でダウンロードした検索結果のCSVファイルをGoogle Sheets、Excel等で開き、最後の行をコピーします。
コピーした内容を、名称をコピーしたCSVデータの最後の列にコピーします。最後の列の項目名は「参照」としてください。
最後に、CSVデータを保存してください。
このデータをRDFへ変換します。
CSVデータをRDFデータに変換
Linked Open Dataとして公開するには、CSVデータをRDFデータに変換する必要があります。
CSVをRDFに変換するツールはいくつかありますが、高槻市のデータソンでは**CSV2LOD**を使いました。
CSV2LODは以下の手順で使用します。
1. 元データ(CSV形式)を選択して読込
1.1「ファイルを選択」ボタンを押してCSVファイルを選択
1.2「CSVファイル読み込み・プレビュー」ボタンを押して正しく読み込めることを確認
2. 変換に必要な情報を入力
2.1. URIに関する基本情報の入力
設定 | 説明 |
---|---|
ベースIRI | 「http://data.lodosaka.jp/takatsuki/ファイル名 」とする(拡張子はつけない) ファイル名は,練習では「作業者の名前(例:kozaki)」 例えば:「 http://data.lodosaka.jp/takatsuki/kozaki 」オプションは「1つのファイルで公開(#)」を選択 ※ 実際のベースIRIに使用するファイル名はデータを示す名前にしたほうが良いですが、 データソンでは複数の同じデータがアップロードされるので、作業者の名前としています。 |
ライセンス | 高槻市のオープンデータ(サンプルデータ)は, すべてCC-BYで公開されているものなの,下記のように選択・入力する クレジットで表示すべき名前:高槻市,作業者 ライセンスは,クリエイティブ・コモンズ(CC)の「CC-BY」 |
2.2. 利用するプロパティ(関係の名称)を指定
設定 | 説明 |
---|---|
ID列 | CSVファイル内で「一意のID」となる項目があれば,「ID列」として選択する。なければ「IDを自動付与」を選択する |
プロパティ | 適切な語彙が推薦されていたら選択 サンプルデータを使っている場合は、下記のサンプルデータでのプロパティ設定に 従って選択・入力してください それ以外の場合は、プロパティの設定方法を参照してください |
2.2.1. サンプルデータでのプロパティ設定
項目名 | プロパティ名 |
---|---|
名称 | rdfs:label |
説明 | rdfs:comment |
Webサイト | foaf:homepage |
緯度 | geo:lat |
経度 | geo:long |
参照 | rdfs:seeAlso |
2.2.2. プロパティの設定方法
「推薦に用いる語彙」に適切なものがあれば、選択します。なければ、語彙を利用する場合は「その他」の欄に入力します。
「推薦に用いる語彙」の一覧にあるprefix(rdfs:labelのような表記)が利用可能です。
それ以外の場合は,語彙のURI(URL)として入力してください。
CSVの項目名を利用するときは「bp:項目名」を選択してください。
※ bp: は{ベースIRI}/property#
を表すprefixで、URIは、{ベースIRI}/property#{項目名}
になります。
データ型は,できれば適切なものを選択してください。
同じデータに複数のプロパティを選択することも可能です。複数の語彙に対応したいときに利用してください(例:共通語彙基盤+Schema.org)
2.2.3. よく使われる語彙の一覧
サイト名 | URL |
---|---|
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 |
3. RDF変換用のテンプレートを生成
4. CSVをRDFに変換・RDFファイルをダウンロード
変換結果は上記のように表示されます。
「ファイル名」を入力し「RDFファイルのダウンロード」ボタンでRDFをダウンロードしてください。
※ 高槻市データソンでは、ファイル名は{作業者名(練習時)}+.ttl
としてもらいました。
Google Chrome以外はダウンロードできない場合があります。ダウンロードできないときは、コピー&ペーストを利用してください。
RDFデータをLinked DataとしてWebに公開
重要:Linked DataとしてWebに公開する前に、RDFファイルを文字エンコードUTF8で保存しなおしてください。
RDFデータをLinked Data化するために、SimpleLODIを使います。このプログラムを使うと、作成したRDF(Turtle)データをHTMLやJSONなどさまざまなフォーマットでWeb上に公開することができます。
あらかじめ、SimpleLODIのページからZipファイルをダウンロードしておいてください。
高槻市データソンでは,data.lodosaka.jp というドメインを用意しました。
そのドメインでアクセスできるWebサーバの /takatsuki ディレクトリがSimpleLODIのルートディレクトリ(index.php
やSimpleLODI.php
がtakatsukiディレクトリにある)となるようにSimpleLODIのZipファイルを展開しました。
SimpleLODI では、dataディレクトリにRDFファイルを格納します。高槻市データソンの場合、/takatsuki/data ディレクトリにデータソンで作成したRDFファイルを入れます。
そうすると、
http://data.lodosaka.jp/takatsuki/kozaki
※ kozaki.ttl ファイルを/takatsuki/data ディレクトリにコピーした場合
でアクセスできます。
詳細は、SimpleLODIのGitHub、または、Qiitaの解説ページを参照してください。
ここまでできれば、以下の5つ星オープンデータの要件を全て満たすことができます。
★:(どんな形式でも良いので) あなたのデータをオープンライセンスでWeb上に公開しましょう
★★:データを構造化データとして公開しましょう (例: 表のスキャン画像よりもExcel)
★★★:非独占の形式を使いましょう (例: ExcelよりもCSV)
★★★★:物事を示すのにURIを使いましょう,そうすることで他の人々があなたのデータにリンクすることができます
★★★★★:あなたのデータのコンテキストを提供するために他のデータへリンクしましょう
作成した5つ星オープンデータを閲覧
これまでの作業が完了すれば
http://data.lodosaka.jp/takatsuki/拡張子なしファイル名
※ kozaki.ttl をコピーした場合はhttp://data.lodosaka.jp/takatsuki/kozaki
をWebブラウザで閲覧可能です。
また、コンテントネゴシエーションでJSONやXMLなどさまざまなファイル形式でRDFデータがダウンロードも可能です。
作成したデータがLinked Dataとなっているかどうかは、Linked Data Browserを使えば確認できます。
- (Yet Another) Linked Data Browser
- http://www.kanzaki.com/works/2014/pub/ld-browser
テキストフォームにURIを入力して送信ボタンを押してください。
このようなテーブルが表示され、作成したデータが閲覧できれば確認完了です。
注意
ここで扱うデータの文字コードは全てUTF8であることが前提です。
途中Shift_JIS等他の文字コードとなった場合は、必ずUTF8で再保存してください。
SimpleLODIでは、10KB以上のTurtleファイルを扱うと、表示に時間がかかることがあります。
Turtleファイルが10KBを超える場合は、1つのCSVファイルを複数に分割してからRDF変換をする(複数のRDFファイルを作成)か、RDF/XMLに変換して拡張子を.xml としてdataディレクトリにコピーしてください。
参考資料
当日の資料です。
- オープンデータをLOD化するデータソン in 高槻
-
http://www.slideshare.net/KoujiKozaki/lod-in-65240942
高槻市ハッカソンは、LODチャレンジ関西支部の運営で開催しました。
また、アーバンデータチャレンジとの共催イベントでした。
LODチャレンジ関西支部のWebサイトです。
- LODハッカソン関西
- http://wp.lodosaka.jp/
LODチャレンジの公式サイトです。
- LODチャレンジ
- http://lodc.jp/
アーバンデータチャレンジの公式サイト
- アーバンデータチャレンジ
- http://urbandata-challenge.jp/