DMD(Data Model Description)について

2016年11月18日公開
2016年11月18日最終更新

Data Model Description (以下、DMD)は、その名の通りデータモデルを説明するためのパッケージです。

DMD 仕様

データとデータを利用するアプリケーションの関係は、図1のように乾電池と乾電池で動作する懐中電灯の関係に似ています。単二電池で動作する懐中電灯には単一電池や単三電池は入りませんが、単二電池であれば、異なる会社が作った乾電池であっても同じように使うことができます。これは、単二電池の大きさ、形、電気的特性などを決めた国際規格があり、乾電池と懐中電灯の双方がその規格に合わせて作られているからです。また、懐中電灯の取扱説明書に「単二電池」と書いておけば、電池の形状や大きさを細かく指定する必要もありませんし、懐中電灯を利用する人も簡単に電池を購入することができます。

共通語彙基盤において、この乾電池の規格に相当するものがDMDです。DMDはデータモデル、つまりデータの構造や項目、各項目の値の範囲や書式などを説明するものです。DMDを利用すれば、乾電池の場合と同様に、あるDMDに合わせて作られたアプリケーションは、そのDMDに合わせて作られたデータであれば異なる自治体や会社によって作られたデータであっても利用できるようになります。また、DMDに基づいて作成したデータであれば、データを公開する人も、データを利用するアプリケーションを作成する人も、公開するデータやアプリケーションが利用できるデータについて、特定のDMDを示すだけで項目ごとに詳細な値の範囲などを記述する必要はなくなります。

図1: DMDによるデータモデルの共有
図1: DMDによるデータモデルの共有

1.DMDの役割と内容

DMDの重要な役割は、データの構造を共有することによって、データを作成する度にデータ構造や公開形式を考える必要をなくすとともに、データの構造を統一することによってデータの相互運用性や利用価値を高めることです。図2に示すように、DMDを活用してデータ構造を共有することによって、データ作成者は新たにデータ項目やデータ構造を検討したり、公開形式について考える必要がなくなります。また、データを利用するアプリケーションを開発する際、特定のデータ専用にアプリケーションを作成したり、複数のデータを利用するためにデータの変換を行うなどの必要がなくなり、DMDに指定されたデータ構造に合わせてアプリケーションを作成することによって、そのDMDに従って作成された全てのデータを扱うことができるようになります。

DMDには、もう一つ重要な役割があります。それは、DMDは人間とコンピューターの間を取りもつ役目も担っています。

一般的に、コンピューターなどが利用し易いデータ構造やそれを記述するための書式は人間にとって分かりやすいものではありません。逆に、人間にとって分かりやすい形式のデータは、必ずしもコンピューターにとって分かりやすいものではありません。しかし、最終的にデータを利用するやデータを作成するのは人間ですが、データを有効に活用するためにはコンピューターによって複数のデータを一つにまとめたり、大量のデータから必要なデータを検索するなどの処理が必要になります。そのため、一つのデータであっても、アプリケーションソフトウェア、データ作成者、アプリケーション開発者(データ利用者)の全てがそれぞれ扱いやすい形式でデータを扱うことができることが求められます。

DMDでは、人間とコンピューターの双方にとって扱いやすいようにするため、人間に分かりやすい形式での表現(データ項目の一覧、ドキュメントなど)とコンピューターにとって分かりやすい形式(データ構造)の双方をもち、さらに、それらを対応付けるための情報(構造とデータ項目の一覧との対応関係)をもっています。

図2: DMDの内容
図2: DMDの内容

このことによって、データの集約や検索などコンピューターによる処理によって有効に活用できるデータを作成する場合であっても、データを作成する人は、コンピューター向けの複雑なデータ構造を理解する必要はなくなり、表計算ソフトウェアなど使い慣れたツールによってデータを作成できるようになります。

DMDは複数のファイルで構成され、以下の情報が含まれています。

  • DMDの作成者、ライセンス、バージョンやDMDに含まれるファイルの一覧など、DMD自体のメタ情報
    DMD自体を整理したり、検索するための情報です。
  • データ構造(データスキーマ)
    コンピュータ向けのデータ構造の記述です。データ交換に適した形式や Linked Open Data(LOD)としてデータを公開するために適した形式などに対応しています。
  • データ項目の一覧
    主に、人間向けの情報で複雑なデータ構造を理解する必要なく、表形式のデータとして扱うことができるようにするための情報です。
  • 各項目に対する値の範囲や書式などの制約条件
    各項目の値の範囲や書式などを記述した情報です。人間向けには説明文書のなかに記述され、コンピューター向けには主にデータ構造とともに記述されています。
  • 構造とデータ項目の一覧との対応関係
    人間向けのデータ項目の一覧とコンピューター向けのデータ構造の対応関係の情報です。多くの場合、DMDの作成ツールやデータ形式の変換ツールなどのツール類が利用するものであって、データ作成者が意識する必要はありません。
  • DMDの利用者に向けた説明文書
    人間向けにデータの構造や各項目の意味や値の制限などを説明した文書です。データ利用者に向けた各項目の説明に加えて、データを利用するアプリケーションの開発者などに向けたデータ構造の説明も含まれます。
  • サンプル
    主に、データを利用するアプリケーションを開発する人に向けた、DMDに従って作成されたデータのサンプルです。
図3: DMDの内容
図3: DMDの内容

2. DMDの利用

必要なデータモデルの数は非常に多いため、残念ながら、乾電池の規格のようにあらかじめ用意しておくというわけにはいきません。そこで、データ公開者やアプリケーション開発者が作成したDMDを共有することが必要になります。

同じ目的のデータは、できる限り同じDMDに基いて作成する方が、簡単にデータを作成することができますし、作成・公開したデータも広く有効に活用されるようになります。目的にあったDMDが見つかれば、そのDMDを利用することで簡単にデータを作成することができますので、どのような項目が必要なのかを考える必要はありません。

すでに表形式のデータがある場合、DMDの方が自分のデータより項目が多いかもしれません。それが必須項目でなければ、無理に埋める必要はありません。しかし、その項目のデータも提供できないか考えてみると良いかもしれません。このようにDMDに基づいて作成されたデータはCSVなどの表形式だけでなく、LODに適したRDF形式のデータとして公開することもできるようになります。

データを利用するアプリケーションを作成する場合には、DMDに含まれているデータ構造を参照します。