rdf
linkeddata
CSV
LinkedOpenData
オープンデータ

5つ星オープンデータソン作業手順

More than 1 year has passed since last update.

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つ星オープンデータとも呼ばれ、オープンデータの中でも最も良いオープンデータとされています。

5つ星オープンデータ

★:(どんな形式でも良いので) あなたのデータをオープンライセンスでWeb上に公開しましょう
★★:データを構造化データとして公開しましょう (例: 表のスキャン画像よりもExcel)
★★★:非独占の形式を使いましょう (例: ExcelよりもCSV)
★★★★:物事を示すのにURIを使いましょう,そうすることで他の人々があなたのデータにリンクすることができます
★★★★★:あなたのデータのコンテキストを提供するために他のデータへリンクしましょう

5つ星オープンデータソンでは、これらに準拠するため以下を満たすデータを作ります。

  1. 既存のCSVデータをRDFデータに変換する
  2. RDFデータ内のID(=URI)をWebブラウザで開くと、そのデータが閲覧できるようにする
  3. 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」列)を項目名を含めずにコピーしてください。

160822-03.jpg

3. なんでもリンクにデータをペースト

コピーした内容を入力フォームに貼り付けてください。

160822-04.jpg

4. DBpediaのデータを検索・ダウンロード

入力フォームにデータを貼り付けたら、「割当実行」ボタンを押します。検索結果が入力フォームの下にテーブルとして表示されます。「ダウンロード」ボタンを押すと、CSVファイルとして結果をダウンロードできます。

160822-05.jpg

5. DBpediaへのリンクを元のCSVデータに反映

4でダウンロードした検索結果のCSVファイルをGoogle Sheets、Excel等で開き、最後の行をコピーします。

160822-06.jpg

コピーした内容を、名称をコピーしたCSVデータの最後の列にコピーします。最後の列の項目名は「参照」としてください。

160822-07.jpg

最後に、CSVデータを保存してください。
このデータをRDFへ変換します。

CSVデータをRDFデータに変換

Linked Open Dataとして公開するには、CSVデータをRDFデータに変換する必要があります。
CSVをRDFに変換するツールはいくつかありますが、高槻市のデータソンではCSV2LODを使いました。

CSV2LODは以下の手順で使用します。

1. 元データ(CSV形式)を選択して読込

1.1「ファイルを選択」ボタンを押してCSVファイルを選択

160821-01.jpg

1.2「CSVファイル読み込み・プレビュー」ボタンを押して正しく読み込めることを確認

160821-02.jpg

2. 変換に必要な情報を入力

2.1. URIに関する基本情報の入力

160821-03.jpg

設定 説明
ベースIRI http://data.lodosaka.jp/takatsuki/ファイル名
とする(拡張子はつけない)
ファイル名は,練習では「作業者の名前(例:kozaki)」
例えば:「http://data.lodosaka.jp/takatsuki/kozaki
オプションは「1つのファイルで公開(#)」を選択
実際のベースIRIに使用するファイル名はデータを示す名前にしたほうが良いですが、
データソンでは複数の同じデータがアップロードされるので、作業者の名前としています。
ライセンス 高槻市のオープンデータ(サンプルデータ)は,
すべてCC-BYで公開されているものなの,下記のように選択・入力する
クレジットで表示すべき名前:高槻市,作業者
ライセンスは,クリエイティブ・コモンズ(CC)の「CC-BY」

2.2. 利用するプロパティ(関係の名称)を指定

160821-04.jpg

設定 説明
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変換用のテンプレートを生成

160821-05.jpg

4. CSVをRDFに変換・RDFファイルをダウンロード

160821-06.jpg

変換結果は上記のように表示されます。

「ファイル名」を入力し「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ファイルをダウンロードしておいてください。

160823-01.jpg

高槻市データソンでは,data.lodosaka.jp というドメインを用意しました。
そのドメインでアクセスできるWebサーバの /takatsuki ディレクトリがSimpleLODIのルートディレクトリ(index.phpSimpleLODI.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

160822-02.jpg

テキストフォームにURIを入力して送信ボタンを押してください。

160822-01.jpg

このようなテーブルが表示され、作成したデータが閲覧できれば確認完了です。

注意

ここで扱うデータの文字コードは全て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/