Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
36
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

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

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/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
36
Help us understand the problem. What are the problem?