DMDを作って見よう、パート2
第３回勉強会2019-03-20
独立行政法人 情報処理推進機構
社会基盤センター産業プラットフォーム部
データ活用推進グループ

1

IMI共通語彙基盤の利活用イメージから、想定する対象者
Modelの設計者

コア語彙の設計者

Dataの提供者

Mappingの作成者
DMD
ModelMapping…

必要スキル：分類学・標準化
利用ツール: 語彙作成

必要スキル：IMI技術仕様の網羅的知識
利用ツール：語彙作成・コード作成・DMD作成

IMIスキル： コア語彙・IMI技術仕様の一部(構造化項目名記法など)
利用ツール：DMD作成・データ形式変換

IMIスキル： IMIツールの利用
利用ツール：データ形式変換

公開データ

アプリケーションの閲覧・利用者
IMIスキル： 不要
適用ツール： なし

利用アプリケーションの作成・提供者
IMIスキル： コア語彙・IMI技術仕様の一部(DMD仕様、語彙記法など）
利用ツール：DMD検証・データ検証・データ形式変換
2

IMI技術仕様の関係で理解して欲しいポイント
DMD作成支援ツールのサポート範囲

構造化データへの簡易的な変換をする!!

DMD(データモデル記述)仕様

IMI語彙記法IMI共通語彙基盤ではRDF、XML等、多様な形式・フォーマットで利用可能な語彙を提供することを目的としている。このため、語彙自体は特定の利用形式に依存しない中立的な形式で記述する必要がある。IMI語彙記法は、これを実現するための記法である。
IMI語彙記法では語彙の中の用語の定義を行う。IMI語彙記法で定義された語彙はRDFやXMLなど必要な形式に変換することができる。

マッピングファイル仕様
マッピングファイルは、DMD（「DMD仕様書」参照）が定めるデータモデルにおいて値が入る項目と、その代表的なラベルを１対１に結び付けるファイルであり、ユーザーへの表示や、データ入力用のCSVファイルを生成する際、及び、そのCSVファイルから構造化データへの簡易的な変換などに利用される。

構造化項目名記法
使用文字規則の記法

今日はここ
3

第一部

つまづきやすいポイント

IMIツールにおける、マッピングファイルの構造化項
目名記法でのグループ名と固定値制約について
DMD作成支援ツールで、既存のDMDを編集したら固定値制約の記述が無くなった!

4

構造化項目名記法で示された例

5構造化項目名記法で示された例から作成されたDMD
https://imi.go.jp/dmd/

https://imi.go.jp/dmd/0000017/0000017.zip
IMIツール・DMD作成支援で使えるURL

6

IMIツール・データ形式変換で、構造化データにしてみる

URL指定を選択して、入力欄にDMDのURLを入力「表形式をアップロード」は、画面を下にスクロール (次ページ)
7

EXCELデータを貼付け

マッピング情報が展開されます

構造化データとマッピングファイルが出力されます8適正な構造化データとなっている結果を見ることが出来ます。
構造化データの最下行あたりをみるとic:種別で説明が書かれています。
これは、構造化項目名記法の固定値制約の指定を使って記述しています。

マッピングファイル9

グループ名の指定と固定値制約について
下記の例では、 ic:記述プロパティにグループ名を指定して加えています。
しかし、グループ名指定はインスタンスに反映されないため、構造化項目名記法の固定値制約の指定を使って記述しています。
"搬入可能なトラックの大きさ": "ic:施設型>ic:記述[搬入可能なトラックの大きさ]{ic:種別='侵入可能なトラックの大きさ'}>ic:説明","対象となる町会・自治会": "ic:施設型>ic:記述[対象となる町会・自治会]{ic:種別='対象となる町内会・自治会'}>ic:説明",

このような場合、ic:種別は最上位のic:概念型に持っていますので、どの階層位置でも明示的に固定値の設定などに使うことが出来ます。
10

IMIツール・DMD作成支援ツールとマッピングファイルの関係
DMD作成支援ツールは、IMI語彙記法をもとにしたデータモデル作成を支援する機能として実装しています。
第１回勉強会資料から∴ DMD作成支援
ツールでは、簡易的にマッピングファイルを生成しているため、構造化項目名記法の固定値制約を設定することができません。

11

IMIツール・DMD作成支援ツールで編集してみます。

https://imi.go.jp/dmd/0000017/0000017.zipIMIツール・DMD作成支援で使えるURL

12

次へ、次へ、で最終画面に進みます。

マッピングファイルは、自動生成されるため固定値制約を記述できません。
※もととなったDMDに記述されていた固定値制約は編集時に解釈されないため残りません。
13

では、どうやってマッピングファイルを編集すれば良いのか?
テキストエディタで編集(開く)

ダウンロードしたDMD(ZIPファイル)を解凍

1
2

テキストエディタで編集(貼付け)

ブラウザ(Firefox等)で開き、生データをコピー
Windowsなどの改行(CRLF)に対応する方法※IE10などで文字化けしている場合は、次ページ参照ください314

※windows IE10 などで文字化けしている場合エンコードをUNICODE(UTF-8)で再表示するなどの対応が必要な場合があります。

15

では、どうやってマッピングファイルを編集すれば良いのか?
テキストエディタで編集・保存
注意点※UTF-8 で記述しなくてはなりません。
※日本語などのファイル名は、UTF-8にする必要があります。
"搬入可能なトラックの大きさ": "ic:施設型>ic:記述[搬入可能なトラックの大きさ]{ic:種別='侵入可能なトラックの大きさ'}>ic:説明","対象となる町会・自治会": "ic:施設型>ic:記述[対象となる町会・自治会]{ic:種別='対象となる町内会・自治会'}>ic:説明",

編集後、再度ZIP化

Windows7や10などでサードパーティなどのzipツールが無い場合、次ページを参照ください

完成DMD

16

※windows 7や10 などでzipファイルを操作する方法

zipの外へファイルを切り取ります。

1
マウスクリックすると、zip内のファイルを見ることが出来ます。

2

3
datamodel.txtを編集後zipへコピーすることで、zip内に入れることができます。

17

では、どうやってマッピングファイルを編集すれば良いのか?

DMD検証ツールで見てみます

正しいDMDです。

18

第二部

推奨データセットからDMDを作る

すでに構造化項目名記法で示されたデータセットから、データモデルはどうやって作成すれば良いのでしょうか?
推奨データセットには、参考情報で共通語彙基盤欄で示されているが使い方がわからない!!

19

IMIで「つながるデータ」とは何かを知ろう！
https://docs.google.com/presentation/d/1SN-NI-oNN1MbXy1KVyvgEwoDoSpOskpNz5_9wzFH5X4/edit?usp=sharing!
20https://cio.go.jp/policy-opendata

21

展開方法を例として示させていただきます!

構造化データへの簡易的な変換例

22

「推奨データセット 指定緊急避難場所一覧 」をもとにDMDを作成してみます。
参考情報・共通語彙基盤の欄

ここから、DMDを作ってみましょう23項目名と共通語彙基盤の列をコピーしてメモ帳へ展開

24

参考情報・共通語彙基盤の欄から、【マッピングファイル】の【構造化項目名】で使える記述へ書き換え
書き換えのポイント•

①②

•
•

クラス名とプロパティに名前空間のPrefixを付ける
全角記号を半角にする
余分なもの（コメントなど）を取り除く

マッピングファイルの構造化項目名③

書き換えの手順① ルートクラス名に型と “ic:” を付ける④② > のうしろに “ic:” を付ける
③ @ のうしろに “ic:” を付ける
④ 全角記号を半角に（=,>,’,[,] など)⑤ (注・・)をとる④25

マッピングファイルの構造化項目名からDMDを作ってみる
勉強会向けに、実装例を示した参考情報です。

26

DMDExpress_v0.6A.xlsmをマクロを有効にして開く
これを改善したいと思ったとき押して見てください。

Mappingシートで、作成した“マッピングファイルの構造化項目名”を項目名の下位置からすべて貼付け

初回は、「このダイアログを閉じてExcelシートの編集をする」からはじめます。

27

貼付けが完了したら、保存してExcelを一度閉じます。
1. 保存

2. 閉じる3. 初回は”何もせずにそのまま終了”
28

DMDExpress_v0.6A.xlsmを開く1. 「項目とデータを取り込む」で、入力データシートを取り込みます。
指定緊急避難場所_DEMO入力データ.xlsx

2. “取り込みは完了しました”が出たら、
3. 「このダイアログを閉じてExcelシートを編集する」でシートへ
29

Formatシートにデータが展開されています。
コメントで、構造化項目名が表示されます。

30

構造化データへの簡易的な変換用DMDの作成出力
1. 閉じる

2.”DMDを作成して終了”でもExcelシートと同じパスの位置に、指定のファイル名のDMDが作成されます。
31

DMD検証ツールで検証してみます。

これらの定義は警告が出ていますので、実装では更に考慮することが必要な定義となっています。

32

データ形式変換の結果データからみる課題
ic:関与の役割がカーディナリティ (0..1)の制限があるため、グループ指定して回避を試みる。

意味不明なのでic:種別で”災害種別xx”を固定値制約で入れてみる。

33

Mappingファイルの改善版
改善内容を反映
NO
ic:施設型>ic:ID>ic:識別値
名称
ic:施設型>ic:名称>ic:表記
名称_カナ
ic:施設型>ic:名称>ic:カナ表記
住所
ic:施設型>ic:住所>ic:表記
方書
ic:施設型>ic:住所>ic:方書
緯度
ic:施設型>ic:地理座標>ic:緯度
経度
ic:施設型>ic:地理座標>ic:経度
標高
ic:施設型>ic:地理座標>ic:測地高度>ic:数値
電話番号
ic:施設型>ic:連絡先>ic:電話番号
内線番号
ic:施設型>ic:連絡先>ic:内線番号
市区町村コード
ic:施設型>ic:関与[市区町村コード]{ic:役割='設置主体'}>ic:関与者{@ic:組織型}>ic:ID>ic:識別値
都道府県名
ic:施設型>ic:関与[都道府県名]{ic:役割='設置主体'}>ic:関与者{@ic:組織型}>ic:住所>ic:都道府県
市区町村名
ic:施設型>ic:関与[市区町村名]{ic:役割='設置主体'}>ic:関与者{@ic:組織型}>ic:住所>ic:市区町村
洪水
ic:施設型>ic:種別コード[災害種別_洪水]{ic:種別='災害種別_洪水'}>ic:識別値
土砂災害
ic:施設型>ic:種別コード[災害種別_崖崩れ、土石流及び地滑り]{ic:種別='災害種別_崖崩れ、土石流及び地滑り'}>ic:識別値
高潮
ic:施設型>ic:種別コード[災害種別_高潮]{ic:種別='災害種別_高潮'}>ic:識別値
地震
ic:施設型>ic:種別コード[災害種別_地震]{ic:種別='災害種別_地震'}>ic:識別値
津波
ic:施設型>ic:種別コード[災害種別_津波]{ic:種別='災害種別_津波'}>ic:識別値
大規模な火事ic:施設型>ic:種別コード[災害種別_大規模な火事]{ic:種別='災害種別_高潮'}>ic:識別値
内水氾濫
ic:施設型>ic:種別コード[災害種別_内水氾濫]{ic:種別='災害種別_大規模な火事'}>ic:識別値
火山現象
ic:施設型>ic:種別コード[災害種別_火山現象]{ic:種別='災害種別_火山現象'}>ic:識別値
指定避難所との重複 ic:施設型>ic:種別コード[指定避難所との重複]{ic:種別='指定避難所との重複'}>ic:識別値
収容人数
ic:施設型>ic:記述{ic:種別='想定収容人数'}>ic:説明
対象となる町会・自治会
ic:施設型>ic:関与[対象となる町会・自治会]{ic:役割='対象となる町会・自治会'}>ic:関与者{@ic:組織型}>ic:名称>ic:表記
URL
ic:施設型>ic:参照>ic:参照先
備考
ic:施設型>ic:備考

Mappingシート
34

DMD検証ツールとデータ形式変換で検証してみます。

作成されたDMDは正常となり、データ形式変換で出た結果も意味の分かる内容になっています。

35お疲れさまでした。

36