BH11.11/コケ

提供:TogoWiki

移動: 案内, 検索

極地研の南極で採取したコケのサンプルについて、データがエクセルの表で届いているのでDB化・RDF化したい。(加藤・山本 → 片山・西澤)

データ

 % tsv2csv.rb antmoss_search_list.txt | lv -Ou8 | perl -pe 's/^(\d+)/$1\/$1/' > antmoss_search_list.csv

クレンジングを行なって元データを CSV に変換

 % du -sh antmoss_search_list.csv
     13M	antmoss_search_list.csv
 % wc -l antmoss_search_list.csv
     56591 antmoss_search_list.csv

13MB, 5万+エントリのデータ

 % head antmoss_search_list.csv
 Number registered,Date Collected,Latitude,Longitude,Class,Sub Class,Order,Family,Genus,Specific Epithet,Variety,Floral Region,Floral Subsection,Locality,Sporophyte,Altitude,Collector,Determiner,Herbarium housed
 19761002-0001,1961/02/10,54d 17m 0s S,36d 31m 0s W,[Musci],Bryidae,Grimmiales,Grimmiaceae,Racomitrium,austro-georgicum Par.,"",Am 6,South Georgia,"Stream from Hodges Glacier to Gull Lake, Cumberland East Bay.   GR 130 124","partial shade, beside stream, moist, rock",107 m,S.W.Greene (1862),"",NIPR
 19761002-0002,1961/02/02,54d 4m 0s S,37d 9m 0s W,[Musci],Bryidae,Grimmiales,Grimmiaceae,Racomitrium,heterostichoides Card.,"",Am 6,South Georgia,"Immediately east of end of whaling station plan, North shore of North Bay, Prince Olav Harbour.   GR 090 148","partial shade, sea-shore, moist, rock",30 m,S.W.Greene (1657),"",NIPR

画像ファイルの ID、採取場所、種名、緯度経度 などが情報として含まれているようだ

TogoDB

http://togodb2.dbcls.jp/ にアップロードして RDF/XML, Turtle に変換する → 進行状況 https://skitch.com/toshiakikatayama/gk4hq/togodb-data-release-list

今回出会った問題点:

  • TSV は CSV に変換してからアップロードする必要がある
  • taxonomy の Class カラムは Ruby の予約語 class とかぶるのでリネームする必要がある
  • Rails の規約上 moss というデータベース名を使うと Mo クラスになってしまって妙なエラーがでるので DB 名を変えざるを得ない
  • UTF-8 に変換しておかないと RDB へのインポート時に落ちる
  • 1カラム目の画像IDである 19761002-0001 を http://lod.ac/antmoss/images/19761002/19761002-0001.jpg にリンクするため、ディレクトリ名をデータに含める必要がある
  • → 画像にリンクするには prefix: <a href="http://lod.ac/antmoss/images/{number_registered}.jpg"> suffix: </a> とするか prefix: <img src="http://lod.ac/antmoss/images/{number_registered}.jpg" height=100>
    などとする。しかし prefix と suffix を分ける意味はあまりないので、管理画面にはテキストボックス1つあればよさそう。

今回気がついた課題:

  • インポートの際に各カラムのデータ型を推定する部分が全データをチェックする仕様だと遅い(ので最初の1000行だけを見るとかに変更したい)
  • 日付データがどのフォーマットで書かれていたら date や time 型として認識されるのかわからない
  • 緯度経度や高度など単位を持つデータを DB 化するときに高度 123m など m がついていると integer として range 検索できずもったいない
  • 緯度経度情報を google map にマッピングしたい → TogoDB2 の外部ウェブページへの埋め込み機能を利用して、JSON を取得し Java Script でデータを Google Map に渡すハックをユーザ側ですればできるかも
  • RDB にインポートするボタンがわかりにくい
  • RDB にインポートが完了したら管理画面に移行したい
  • 管理画面のユーザ追加で http://openid.dbcls.jp/user/ まではデフォルト値として入っていて欲しい
  • データベース名の制限、カラム名の制限などがユーザには分かりにくい

今後の要望:

  • DBのメタデータ:データベースの各エントリのタイプを指定したい
  • カラムのメタデータ:カラム毎に RDF のプロパティ(URI)を指定したい
  • さらに、複数のプロパティ (rdf:label, dc:titleなど)を追加できるようにしたい
  • そのときに、foaf: などを選択すると prefix.cc から http://xmlns.com/foaf/0.1/ を補完して欲しい(http://prefix.cc/foaf 参照)
  • そして、foaf: で有効な property 名を↑URLから取得できる OWL をパースして提示・補完できるとよい → この機能は DBCLS, TogoDB でやるよりは Semantic Web 界の問題として prefix.cc もしくはそれをラッピングする新しいサービスとして外部機関に API を作って公開してもらいたい

TogoWS

BH11.11 の会期中に西澤さんに http://togows.dbcls.jp/convert/csv.ttlhttp://togows.dbcls.jp/convert/csv.rdfxml を作って頂いた。

 % head -1000 antmoss_search_list.csv > antmoss_search_list.csv.head
 % wget --post-file antmoss_search_list.csv.head http://togows.dbcls.jp/convert/csv.ttl
 % wget --post-file antmoss_search_list.csv.head http://togows.dbcls.jp/convert/csv.rdfxml

いちおうこれだけでどんな CSV ファイルでも RDF 化できる。

現状の制約:

  • predicate を生成するのにカラム名が必須であるため、1行目はヘッダ行である必要がある
  • ファイルの中身を post するのでファイル名を渡すことが出来ず DB 名(データセット名)を指定する方法がない(ため、現状では適当なハッシュ値を生成して利用している)
  • http://togows.dbcls.jp/convert/csv.ttl/dbname のように URI にオプションをつけることで指定するのがよい?

現状の問題点:

  • RDF/XML では predicate がカラム名から適切に生成されないことがある(Turtle と使っているルーチンは同じなので RDF ライブラリの問題なのか謎→調査中)