Darwin Core Archiveとデータ構造
Contents
Darwin Core Archive
Darwin Core Archive (DwC-A) はDwC項目を用いて生物多様性データを格納、公開するための規格で、OBISとGBIFにおいてデータを公開するのに適したフォーマットです。このフォーマットについてはDarwin Core text guideに詳しい説明があります。Darwin Core ArchiveはCSV形式のデータテーブルを含むいくつかのテキストファイルで構成されています。
DwC-Aのデータモデルのコンセプトは、1つのコアとなるテーブルを持つ”star schema (星状構造) ”であり、出現記録やイベントが、その星のcore (中心) となります。extension tableはcore tableに状況に応じて関連付ける事ができます。extension tableと他のextension tableを関連付けることはできません (いわゆる”snowflake schema”を形成することはできません) 。coreとextension間の関係性は1対多であり、そのためcoreのレコードはゼロもしくは複数のextensionレコードを持ちえ、さらに、各extensionのレコードは必ず1つのcoreレコードに関連付けられていなくてはなりません。core tableとextension tableの定義はこちら。
データtableとはべつに、Darwin Core Archiveは2つのXML filesを含みます:1つはアーカイブとデータファイルの構造を記述したもの (meta.xml) 、もう一つはデータセットのメタデータを含むもの (eml.xml) です。

図: Darwin Core Archiveの構造
種の出現記録を越えて:ENV-DATAアプローチ
海洋生物調査の一部として収集されたデータは、生息地の特性値 (環境の物理的、化学的な値) 、生物的および生体測定的測定値 (体サイズ、個体数と現存量) 、そして、採集方法・観察方法・機材・サンプリング努力量の詳細を含みます。
過去、OBISはOccurrence Coreのみを扱い、付随的な測定値はDwC項目であるdynamicPropertiesにJSON形式で記入していました。この方法には重大な欠点がありました:構築・分解が難しいフォーマットであること、標準化された項目が無いこと、複数のレコードに共通する属性値を繰り返し用いなければいけないこと (例えば、サンプリング方法の場合を想像して下さい) 。このデータ整形の問題は測定値をMeasurementOrFacts extension table に移動することで解決できますが、重複や語彙の標準化については解決できません。
新しいEvent Coreが採用され公開されたことにより、入れ子状のイベント (航海、観測地点、採集物といった) と、測定値とを関連付けることが可能になりました。しかし、Darwin Core archiveの”star schema”は、Event Coreの観測値であるレコードとOccurrence extensionにおける出現記録であるレコードとを関連付けることを許容しませんでした。この理由から、既存のMeasurementOrFact extensionの拡張バージョンが作られました。
ExtendedMeasurementOrFact Extension (eMoF)
IODEパイロットプロジェクトExpanding OBIS with environmental data OBIS-ENV-DATAの一部として、OBISはカスタムExtendedMeasurementOrFact (またはeMoF extensionとも呼ぶ) を導入しました。これは、既存のMeasurementOrFactextensionを拡張し、4つの新規項目を付け加えたものです:
- occurrenceID
- measurementTypeID
- measurementValueID
- measurementUnitID
occurrenceIDは”star schema”の制限を回避するために用いられ、ExtendedMeasurementOrFact extensionの観測値レコードと、Occurrence extensionの出現記録レコードとを関連づけます。Darwin Core Archiveの基準を遵守するため、これらのレコードはEvent core tableにおけるイベントレコードに紐付いている必要があることに留意して下さい。この項目により、様々な測定値や測定項目 (下記参照) をイベントや出現記録に結びつけて格納することが可能になりました:
- 生物の定量的観測値 (例えば、個体数、質重量、%被度)
- 生物測定値 (例えば体長、体重)
- 標本に関する記述 (例えば、生/死、行動、侵入性)
- 物理環境測定値 (例えば、温度、塩濃度、酸素、底質粒度、生息場所の特徴)
- サンプリング活動に関する記述 (例えば、サンプリング機材、採集エリア、採集容量、メッシュサイズ)

図:OBIS-ENV-DATA formatの概略。サンプリングパラメータ、環境測定値、出現記録はeventIDを用いてイベントに紐付けられます (実線) 。生物的測定値は、ExtendedMeasurementOrFacts extensionにおける新規occurrenceIDを用いて出現記録に紐付けられます (破線)。
MeasurementOrFactの語彙
MeasurementOrFact項目 ( measurementType・measurementValue・measurementUnit ) は全く制約がなく、フリーテキストを格納することができます。フリーテキストは未だ定義されていない情報や複雑な情報を取り扱える利点もある一方で、必然的に発生するセマンティックな不均一性 (綴りや語彙の不均一性) が、データ統合や分析の際の重大な課題となります。よって、OBISは測定の種類、測定値、測定単位を標準化するために3つの新規項目を加えました:measurementTypeID、measurementValueID、measurementUnitID。ここで、measurementValueIDは標準化された測定数値のための項目ではないことに留意して下さい。この3つの新しい項目はURIを参照することにより標準化された語彙類を格納します。OBISは国際的に認知されたNERC Vocabulary Serverの使用を推奨します。このVocabulary ServerはBritish Oceanographic Data Centre(BODC)によって開発されました。また語彙の検索は以下から可能です:
https://www.bodc.ac.uk/resources/vocabularies/vocabulary_search/。
measurementTypeID
- BODC Parameter Usage Vocabulary (P01)
- OBISサンプリング機材や方法に関する様々 (Q01)
measurementValueID
- サンプリング機材やセンサ類 (SeaVoX Device Catalogue)
- サンプリング機材カテゴリ (SeaDataNet device categories)
- 船舶類 (ICES Platform Codes)
- 生活史段階
- 使用されたサンプリング手順に関する論文やマニュアル類
- DOI
- IOC’s Ocean Best Practices repositoryにおける出版物の取り扱い:http://hdl.handle.net/11329/304
MeasurementUnitID
いつEvent Coreを使うべきか
- データセットが物理環境測定値もしくは、サンプル全体に関係する生物学的測定値 (単一の標本に関する測定値ではなく) を含むとき。
- どのように生物サンプルが取得され、処理されたのかについての詳細がわかっているとき。それらの詳細はeMoFと新たに整備されたQ01 vocabularyを用いて記述されます。
Event CoreはOccurrence ExtensionとeMoFとの組み合わせで用いなければなりません。
いつOccurrence Coreを使うべきか
- どのようにデータが取得されたか、あるいは、どのようにサンプルが処理されたかの情報が無いとき。
- 物理環境測定値が取得されていないもしくはデータとして提供されていないとき。
- 生物学的測定が個々の標本について実施されている(標本毎に生物出現記録が作られている)とき。
- 大抵は博物館コレクション・文献に基づく引用表記的出現記録・個々の目視観察記録である場合があてはまる。
Occurrence Coreで整備されたデータセットでは生物的測定値のためにeMoF extensionを用いることができます。
推奨される文献
- De Pooter et al. 2017. Toward a new data standard for combined marine biological and environmental datasets - expanding OBIS beyond species occurrences. Biodiversity Data Journal 5: e10989. hdl.handle.net/10.3897/BDJ.5.e10989
ENV-DATA: 大型藻類のデータを用いた実践例
この節では、大型藻類の仮想調査のデータセットをENV-DATAアプローチを用いてDwC形式に変換します。すなわち、Occurrence extensionとExtendedMeasurementOrFact extensionが付随するEvent coreを用います。

図: 単一調査地における複数のゾーン・複数の方形区・異なる種類のトランセクトからなる大型藻類調査の例
最初に、調査イベントを抽出し、時間・場所・深度といった属性値を適切なレベルに配置することによりEvent Coreテーブルを作ります。異なるレベルに配置されたイベントはeventIDとparentEventIDを用いることで、その関係性を記述します。調査地が特定の場所として固定されているので、decimalLongitudeとdecimalLatitudeの値は、最上位のイベントレベルに格納します。調査地内の異なる深度帯をゾーンとしているので、minimumDepthInMetersとmaximumDepthInMetersをそれぞれのゾーンのイベントレベルに格納します。最後に、すべてのサンプリングを同一日に実施しなかったので、eventDateをそれぞれの方形区やトランセクトのイベントレベルに格納します。
eventID | parentEventID | eventDate | decimalLongitude | decimalLatitude | minimumDepthInMeters | maximumDepthInMeters |
---|---|---|---|---|---|---|
site_1 | 54.7943 | 16.9425 | ||||
zone_1 | site_1 | 0 | 0 | |||
zone_2 | site_1 | 0 | 5 | |||
zone_3 | site_1 | 5 | 10 | |||
quadrat_1 | zone_1 | 2019-01-02 | ||||
transect_1 | zone_2 | 2019-01-03 | ||||
transect_2 | zone_3 | 2019-01-04 |
次に、Occurrence extensionテーブルを作ります。このテーブルには、学名とscientificNameIDに入れるべきWorld Register of Marine Speciesへのリンクが含まれます。このテーブルの最初の列はEvent Coreテーブルにおけるイベントを参照します (緑色にハイライトされたquadrat_1を参照) 。
id | occurrenceID | scientificName | scientificNameID |
---|---|---|---|
quadrat_1 | occ_1 | Ulva rigida | urn:lsid:marinespecies.org:taxname:145990 |
quadrat_1 | occ_2 | Ulva lactuca | urn:lsid:marinespecies.org:taxname:145984 |
transect_1 | occ_3 | Plantae | urn:lsid:marinespecies.org:taxname:3 |
transect_1 | occ_4 | Plantae | urn:lsid:marinespecies.org:taxname:3 |
transect_2 | occ_5 | Gracilaria | urn:lsid:marinespecies.org:taxname:144188 |
transect_2 | occ_6 | Laurencia | urn:lsid:marinespecies.org:taxname:143914 |
最後に、MeasurementOrFact extensionテーブルがあります。このテーブルはゾーン (海岸の高さ) 、方形区 (表面積) 、トランセクト (表面積・測線長) 、出現記録 (%被度・機能群名称) の属性値を含みます。出現ポイントの属性値はOccurrence extension tableとoccurrenceID列を用いて紐付けられます(青と橙色にハイライトされたocc_1とocc_2を参照)。NERC vocabulary termsとはべつに、大型藻類の機能分類群名としてCATAMI vocabularyも参照していることに留意して下さい。
id | occurrenceID | measurementType | measurementTypeID | measurementValue | measurementValueID | measurementUnit | measurementUnitID | ||
---|---|---|---|---|---|---|---|---|---|
zone_1 | shore height | ? | high | ? | |||||
quadrat_1 | surface area | P01/current/AREABEDS | 0.25 | m2 | P06/current/UMSQ | ||||
quadrat_1 | occ_1 | cover | P01/current/SDBIOL10 | 24 | percent | P06/current/UPCT | |||
quadrat_1 | occ_2 | cover | P01/current/SDBIOL10 | 56 | percent | P06/current/UPCT | |||
transect_1 | surface area | P01/current/AREABEDS | 60 | m2 | P06/current/UMSQ | ||||
transect_1 | length | P01/current/LENTRACK | 30 | m | P06/current/ULAA | ||||
transect_1 | occ_3 | functional group | ? | sheet-like red | CATAMI:80300925 | ||||
transect_1 | occ_4 | functional group | ? | filamentous brown | CATAMI:80300931 | ||||
transect_1 | occ_3 | cover | P01/current/SDBIOL10 | 8 | percent | P06/current/UPCT | |||
transect_1 | occ_4 | cover | P01/current/SDBIOL10 | 24 | percent | P06/current/UPCT | |||
transect_2 | occ_5 | cover | P01/current/SDBIOL10 | 4 | percent | P06/current/UPCT | |||
transect_2 | occ_6 | cover | P01/current/SDBIOL10 | 16 | percent | P06/current/UPCT |