共通語彙基盤
DMD 仕様2.0 版
2016.10.3

内容
1.

はじめに .......................................................................................................................... 22.

概要 ................................................................................................................................. 23.

DMD の構造 .................................................................................................................... 23.1.

DMD ヘッダー ......................................................................................................... 33.1.1.

XML 版 ............................................................................................................. 3

3.1.2.

RDF 版.............................................................................................................. 63.2.

XML のデータモデルを記述するファイル群 .......................................................... 83.2.1.

XML 用語再定義スキーマ ................................................................................ 83.2.2.

XML データスキーマ ....................................................................................... 93.3.

RDF のデータモデルを記述するファイル群........................................................... 93.3.1.

RDF データモデル記述 .................................................................................... 93.4.

項目データ ..............................................................................................................113.5.

ドキュメント.......................................................................................................... 12

3.6.

サンプル ................................................................................................................. 12

3.7.

項目マッピング ...................................................................................................... 12

1

1. はじめにDMD(Data Model Description)は、共通語彙基盤の一部として、データ交換を行う当事者間、データ作成者同士、及び、データ作成者とデータ利用者との間でデータモデルを共有することを目的とし設計された、データモデルを記述するためのものである。本書は、DMD の仕様について記述する。

2. 概要
DMD は、データ構造の定義とデータの各項目に対する入力制限や使用可能な文字コレクションを規定することによりデータモデルを定義するものであり、コンピュータがデータを処理する際に有用な情報と、人がデータの内容を正しく理解できるようにするための情報をパッケージ化したものである。DMD は、DMD 自体を説明するものとして、表 1 に示すメタデータをもつ。
DMD のメタデータ
URL
作成日
最終更新日
説明
作成者
名称
ライセンス
バージョン
直前のバージョン
最新版
既定の文字コレクション

表 1

要素
DMD を取得することができる場所作成された日付
最後に更新された日付DMD の概要説明。詳細な説明はドキュメント内に記述される。
作成者の名称及び参照先となる URLDMD の名称
DMD のライセンス
DMD のバージョン
当該 DMD の 1 つ以前のバージョンのDMD への参照
当該 DMD の最新のバージョンの DMD
への参照
文字列を値とするデータ項目に使用可能な文字コレクションの既定値

DMD のメタデータ

既定の文字コレクションは、
JIS X 0221 附属書 A に規定される組番号によって記載する。
文字コレクションが２つ以上指定された場合は、その和集合を使用可能な文字のコレクションとする。

3. DMD の構造
DMD は zip 形式のファイルであり、「図 1 DMD の構造」に示すように、下記のファイルが含まれる。
DMD ヘッダー(XML 版及び RDF 版)【必須】

XML のデータモデルを記述するファイル群※ XML 用語再定義スキーマ【再定義をする場合は必須】

2

※ XML データスキーマ【必須】
RDF のデータモデルを記述するファイル群※ RDF データモデル記述【必須】

項目データ

ドキュメントサンプル



項目マッピング【必須】

図 1 DMD の構造
DMD ヘッダーXML 版及び RDF 版のファイル名は、それぞれ header.xml、header.ttl とする。その他のファイルのファイル名については本仕様では定めない。

3.1.

DMD ヘッダー

DMD ヘッダーは、DMD のメタデータ（表 2 を参照）、及び、DMD に含まれるファイル（表 3 を参照）に関する情報をもつ。
DMD ヘッダーは XML 版と RDF 版が用意され、それらは等価な内容をもつ。XML 版及び RDF 版の双方が DMD に含まれていなければならない。
3.1.1. XML 版
DMD ヘッダー XML 版は、http://imi.ipa.go.jp/ns/dmd に公開されるスキーマに従って、3

記述される。本節の最後にスキーマを示す。
ここで、DMD のメタデータとそれを記述するための XML 要素の対応は表 2 のようになる（表中では、xmlns:dmd="http://imi.ipa.go.jp/ns/dmd" のように名前空間が定義されているものとして記述してある）。
DMD のメタデータ
URL
作成日
最終更新日
説明
作成者
名称
ライセンス
バージョン
直前のバージョン
最新版
既定の文字コレクション

表 2

要素
dmd:URI
dmd:CreationDate
dmd:LastModificationDate
dmd:Description
dmd:Publisher
dmd:Name
dmd:License
dmd:Version
dmd:Previous
dmd:Latest
dmd:CharCollection

DMD のメタデータを記述する XML 要素

DMD に含めるファイルは、Component 要素を用いて記述する。本仕様で求めるファイ
ルの種類と Type 属性の値の関係を表 3 に示す。
ファイルの種類
DMD ヘッダー
XML データスキーマ
XMK 用語再定義スキーマ
RDF データモデル記述
項目データ
ドキュメントサンプル
項目マッピング

表 3Type 属性の値
headerschemaredefine-schema
data-shapeitem-data
document
samplemapping

ファイルの種類と Type 属性の値

DMD ヘッダー XML 版のスキーマ<?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"targetNamespace="http://imi.ipa.go.jp/ns/dmd"
xmlns:dmd="http://imi.ipa.go.jp/ns/dmd"><xsd:import namespace="http://www.w3.org/XML/1998/namespace"schemaLocation="IMI-xml-lang.xsd"/><xsd:element name="DMD"><xsd:complexType><xsd:sequence><xsd:element ref="dmd:URI" minOccurs="0" maxOccurs="1"/><xsd:element ref="dmd:Name" minOccurs="1" maxOccurs="unbounded"/><xsd:element ref="dmd:CreationDate" minOccurs="1" maxOccurs="1"/><xsd:element ref="dmd:LastModificationDate" minOccurs="1" maxOccurs="1"/><xsd:element ref="dmd:Description" minOccurs="1" maxOccurs="unbounded"/><xsd:element ref="dmd:Publisher" minOccurs="1" maxOccurs="1"/>4

<xsd:element ref="dmd:License" minOccurs="1" maxOccurs="1"/><xsd:element ref="dmd:Version" minOccurs="1" maxOccurs="1"/><xsd:element ref="dmd:Previous" minOccurs="0" maxOccurs="1"/><xsd:element ref="dmd:Latest" minOccurs="0" maxOccurs="1"/><xsd:element ref="dmd:CharCollection" minOccurs="0"
maxOccurs="unbounded"/><xsd:element ref="dmd:Component" minOccurs="0" maxOccurs="unbounded"/></xsd:sequence></xsd:complexType></xsd:element><xsd:element name="URI" type="xsd:anyURI"/><xsd:element name="Name" type="dmd:StringWithXmlLang"/><xsd:element name="CreationDate" type="xsd:date"/><xsd:element name="LastModificationDate" type="xsd:date"/><xsd:element name="Description" type="dmd:StringWithXmlLang"/><xsd:element name="Version" type="xsd:string"/><xsd:element name="Previous" type="xsd:anyURI"/><xsd:element name="Latest" type="xsd:anyURI"/><xsd:element name="CharCollection" type="xsd:integer"/><xsd:element name="Publisher"><xsd:complexType><xsd:sequence><xsd:element ref="dmd:URI" minOccurs="0" maxOccurs="1"/><xsd:element ref="dmd:Name" minOccurs="1" maxOccurs="unbounded"/></xsd:sequence></xsd:complexType></xsd:element><xsd:element name="Component"><xsd:complexType><xsd:sequence><xsd:element ref="dmd:Description" minOccurs="1" maxOccurs="unbounded"/><xsd:element ref="dmd:License" minOccurs="0" maxOccurs="1"/></xsd:sequence><xsd:attribute name="file" type="xsd:anyURI"/><xsd:attribute name="media-type" type="xsd:string"/><xsd:attribute name="type"><xsd:simpleType><xsd:restriction base="xsd:string"><xsd:enumeration value="header"/><xsd:enumeration value="schema"/><xsd:enumeration value="redefine-schema"/><xsd:enumeration value="data-shape"/><xsd:enumeration value="item-data"/><xsd:enumeration value="document"/><xsd:enumeration value="sample"/><xsd:enumeration value="mapping"/></xsd:restriction></xsd:simpleType></xsd:attribute></xsd:complexType></xsd:element><xsd:element name="License"><xsd:complexType><xsd:sequence><xsd:element ref="dmd:URI" minOccurs="0" maxOccurs="1"/><xsd:element ref="dmd:Name" minOccurs="1" maxOccurs="1"/></xsd:sequence></xsd:complexType></xsd:element><xsd:complexType name="StringWithXmlLang"><xsd:simpleContent>5

<xsd:extension base="xsd:string"><xsd:attribute ref="xml:lang"/></xsd:extension></xsd:simpleContent></xsd:complexType></xsd:schema>

図 2

DMD ヘッダー（XML 版）のスキーマ

3.1.2. RDF 版
DMD ヘッダー（RDF 版）は下に示す形式で記述される。また、ヘッダーは Turtle 形式で記述するものとする。
DMD ヘッダー（RDF 版）では、表 4 に示す語彙を用いる。
DMD ヘッダー（RDF 版）で用いる語彙
http://www.w3.org/2002/07/owl#
http://www.w3.org/1999/02/22-rdf-syntax-ns#
http://www.w3.org/2000/01/rdf-schema#
http://www.w3.org/2001/XMLSchema#
http://purl.org/dc/terms/
http://www.w3.org/ns/adms#
http://www.w3.org/ns/dcat#
http://imi.ipa.go.jp/ns/dmd#

表 4

本仕様で用いるプレフィックス
owl:
rdf:
rdfs:
xsd:
dcterms:
adms:
dcat:
dmd:

DMD ヘッダーで使用される語彙一覧

DMD ヘッダーにおいて、DMD は、adms:Asset クラスのインスタンスとして表現され、プロパティとして DMD のメタデータとファイルの一覧をもつ。
DMD のメタデータは表 5 に示す述語を用いて記述される。
DMD のメタデータ
作成日
最終更新日
説明
作成者
名称
ライセンス
バージョン
直前のバージョン
最新版
既定の文字コレクション

表 5述語
dcterms:issued
dcterms:modified
dcterms:description
dcterms:publisher
dcterms:title
dcterms:license
owl:versionInfo
adms:previous
adms:last
dmd:charCollection

DMD のメタデータと述語

ファイルの一覧は、dcat:distribution により記述される。スキーマの所在地は、データモデルの決定に合わせて指定方法を決定する。
各ファイルは、 adms:AssetDistribution

クラスのインスタンスとして表現され、それ6

ぞれ、dcterms:type によりファイル形式が指定される。
例 1

DMD ヘッダー（RDF 版）の例

この例では、DMD ヘッダー（RDF 版）が header.ttl として作成されている。
@prefix owl: <http://www.w3.org/2002/07/owl#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.
@prefix dcterms: <http://purl.org/dc/terms/>.
@prefix adms: <http://www.w3.org/ns/adms#>.
@prefix dcat: <http://www.w3.org/ns/dcat#>.
@prefix dmd: <http://imi.ipa.go.jp/ns/dmd#>.
<http://example.org/imins/00068574/> a adms:Asset ;dcterms:type dmd:DataModelDescription ; # クラスではなく dcterms:type で DMD であることを表現する
dcterms:issued "2015-09-01"^^xsd:date ;dcterms:modified "2015-10-22"^^xsd:date ;dcterms:description "犯罪発生情報を表現するための DMD"@ja ;dcterms:publisher <http://example.org/user/0123456789> ;dcterms:title "犯罪発生情報 DMD"@ja ;dcterms:license <http://creativecommons.org/licenses/by/3.0/> ;owl:versionInfo "1.0.0" ;adms:previous <http://example.org/imins/00068573/> ;adms:last <http://example.org/imins/00068575/> ;dcat:distribution <header.ttl> ;dcat:distribution <crime.xsd> ;dcat:distribution <redefine.xsd> ;dcat:distribution <crime-shacl.ttl> ;dcat:distribution <item-data.json> ;dcat:distribution <document.pdf> ;dcat:distribution <document.docx> ;dcat:distribution <sample.jsonld> ;dcat:distribution <mapping-info.json> ;dmd:charCollection "258"^^xsd:integer.
## DMD ヘッダー
<header.ttl> a adms:AssetDistribution ;dcterms:type dmd:Header .
## XML のデータモデルを記述するファイル群(XML スキーマ)<redefine.xsd> a adms:AssetDistribution ;dcterms:type dmd:XMLSchema .
<crime.xsd> a adms:AssetDistribution ;dcterms:type dmd:XMLRedefineSchema .
## RDF のデータモデルを記述するファイル群### RDF データシェイプ<crime-shacl.ttl> a adms:AssetDistribution ;dcterms:type dmd:RDFDataShape .
### 項目データ<item-data.json> a adms:AssetDistribution ;dcterms:type dmd:ItemData .
## ドキュメント
<document.pdf> a adms:AssetDistribution ;7

dcterms:type dmd:Documentation .
<document.docx> a adms:AssetDistribution ;dcterms:type dmd:Documentation .
## サンプル<sample.ttl> a adms:AssetDistribution ;dcterms:type dmd:Sample .
## 項目マッピング<mapping-info.json> a adms:AssetDistribution ;dcterms:type dmd:Mapping .

XML のデータモデルを記述するファイル群

3.2.

XML のデータに対応するデータモデルは、
1 つ以上の IMI 語彙の用語を再定義（redefine）した XML スキーマ（用語再定義スキーマ）及び再定義した用語を使用しデータモデルを定義した XML スキーマ（データスキーマ）の２つ以上の XML スキーマファイルによって定義される。
データ入力者に対して、項目毎にそこに許される文字コレクションに係る情報を伝えることができるようにすることが求められる
3.2.1. XML 用語再定義スキーマ
使用するプロパティの選択、プロパティの値の制限及び各プロパティの出現回数などを変更して IMI 語彙のクラス用語を再定義する XML スキーマ。
この例では、場所型の住所プロパティを必須項目に変更している。
例 2

XML 用語再定義スキーマの例<?xml version="1.0" encoding="utf-8"?><xsd:schema
targetNamespace="http://imi.ipa.go.jp/ns/core/2"
xmlns:ic="http://imi.ipa.go.jp/ns/core/2"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"><xsd:redefine schemaLocation="Core231.xsd"><xsd:group name="場所型-固有要素グループ"><xsd:sequence><xsd:element ref="ic:名称" minOccurs="0" maxOccurs="unbounded"/><xsd:element ref="ic:通称" minOccurs="0" maxOccurs="unbounded"/><xsd:element ref="ic:地理識別子" minOccurs="0" maxOccurs="1"/><xsd:element ref="ic:住所" minOccurs="1" maxOccurs="1"/><xsd:element ref="ic:地理座標" minOccurs="0" maxOccurs="1"/></xsd:sequence></xsd:group></xsd:redefine></xsd:schema>83.2.2. XML データスキーマ
データモデルを定義するための XML スキーマ。型の拡張（extension）によるプロパテ
ィの追加及び型の制約（restriction）によるプロパティの選択を行う。ルートノードは特定の型を０個以上無制限に含むことができる要素とし、その名称は任意とする。
例 3

XML データスキーマの例<?xml version="1.0" encoding="utf-8"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"targetNamespace="http://example.org/imins/00068574/"
xmlns:ex2="http://example.org/imins/00068574/"
xmlns:ex="http://imi.ipa.go.jp/ns/司法ドメイン"
xmlns:ic="http://imi.ipa.go.jp/ns/core/2"><xsd:import namespace="http://imi.ipa.go.jp/ns/core/2"
schemaLocation="redefine.xsd"/><xsd:import namespace="http://imi.ipa.go.jp/ns/司法ドメイン"
schemaLocation="IMI-司法ドメイン用語.xsd"/><xsd:element name="犯罪発生情報リスト"><xsd:complexType><xsd:sequence><xsd:element ref="ex2:犯罪発生情報" minOccurs="0" maxOccurs="unbounded"/></xsd:sequence></xsd:complexType></xsd:element><xsd:element name="犯罪発生情報" type="ex2:犯罪発生情報型"/><xsd:complexType name="犯罪発生情報型"><xsd:annotation><xsd:documentation xml:lang="ja">犯罪発生情報を表現するためのデータ型</xsd:documentation></xsd:annotation><xsd:complexContent><xsd:extension base="ic:事物型"><xsd:sequence><xsd:element ref="ex2:犯罪" minOccurs="0" maxOccurs="unbounded"/><xsd:element ref="ex2:発生箇所" minOccurs="0" maxOccurs="unbounded"/><xsd:element ref="ex2:発生日時" minOccurs="0" maxOccurs="unbounded"/><xsd:element ref="ex2:被害者" minOccurs="0" maxOccurs="unbounded"/></xsd:sequence></xsd:extension></xsd:complexContent></xsd:complexType><xsd:element name="犯罪" type="ex:犯罪型"/><xsd:element name="発生箇所" type="ic:場所型"/><xsd:element name="発生日時" type="ex:司法日時型"/><xsd:element name="被害者" type="ex:司法人型"/></xsd:schema>

3.3.

RDF のデータモデルを記述するファイル群

3.3.1. RDF データモデル記述
使用するプロパティの選択、プロパティの値の制限及び各プロパティの出現回数を指定9する制約記述である。
上記の制約は、Shapes Constraint Language (SHACL)(http://www.w3.org/TR/2016/WD-shacl-20160530/)の規定に基づき記述する。
次に、その記述例を示す。
例 4

RDF データモデルの記述例@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.
@prefix sh: <http://www.w3.org/ns/shacl#>.
@prefix ic: <http://imi.ipa.go.jp/ns/core/rdf#>.
@base <http://example.org/shape/place>.
<#MAIN> a sh:Shape ;sh:scopeClass ic:場所型 ;sh:constraint [sh:nodeKind sh:IRI] ;sh:property [rdfs:label "名称" ;sh:predicate ic:名称 ;sh:minCount 1 ;sh:maxCount 1 ;sh:shape <#名称>] ;sh:property [rdfs:label "地理座標" ;sh:predicate ic:地理座標 ;sh:maxCount 1 ;sh:shape <#座標>] ;sh:property [rdfs:label "住所" ;sh:predicate ic:住所 ;sh:minCount 1 ;sh:maxCount 1 ;sh:shape <#住所>].
<#名称> a sh:Shape ;sh:property [rdfs:label "表記" ;sh:predicate ic:表記 ;sh:maxCount 1 ;sh:datatype xsd:string] ;sh:property [rdfs:label "カナ表記" ;sh:predicate ic:カナ表記 ;sh:maxCount 1 ;sh:datatype xsd:string].
<#座標> a sh:Shape ;sh:property [rdfs:label "緯度" ;10

sh:predicate ic:緯度 ;sh:minCount 1 ;sh:maxCount 1 ;sh:datatype xsd:string] ;sh:property [rdfs:label "経度" ;sh:predicate ic:経度 ;sh:minCount 1 ;sh:maxCount 1 ;sh:datatype xsd:string].
<#住所> a sh:Shape ;sh:property [rdfs:label "表記" ;sh:predicate ic:表記 ;sh:minCount 1 ;sh:maxCount 1 ;sh:datatype xsd:string
].

項目データ

3.4.

項目データは 3.2 及び 3.3 で示されたデータモデルにおいて値となる項目について、項目ごとのメタデータを記述したものであり、各項目は名称及び文字コレクションなどの情報により構成される。
項目データは、JSON 形式のファイルであり、全体は”itemList” メンバーのみをもつオブジェクトとして表現される。”itemList”メンバーは項目の配列とする。各項目はオブジェクトであり、一つの”name” メンバー及び０個以上の”charCollectionList”メンバーをもつ。
“name”メンバーは名称を指定する。
”charCollectionList”メンバーは、項目の値型が xsd:string 及び、その拡張型の場合に、その項目に使用できる文字のコレクションを指定する。”charCollectionList”メンバーは、値型が xsd:string 又は、その拡張型でない項目に指定された場合は無視される。また、”charCollectionList”メンバーは省略可能であり、省略した場合には DMD ヘッダーに指定された既定の文字コレクションに制限される。”charCollectionList”メンバーの値はJIS X 0221 附属書 A に規定される組番号の配列とする。文字コレクションが２つ以上指定された場合は、その和集合を使用可能な文字のコレクションとする。
項目データの例を次に示す。
例 5

項目データの例{“itemList” : [{ "name": "ID" },{ "name": "名前", "charCollectionList": [256, 258] },{ "name": "緯度" },{ "name": "経度" },{ "name": "所在地", "charCollectionList": [256, 258] }]11}ドキュメント3.5.

DMD には複数のドキュメント含めることができる。また、DMD に含めるドキュメントは任意の形式で作成することができる。
ドキュメントでは、当該 DMD の目的や想定される利用シーンなどに関して簡潔に説明すること。データモデルがもつ各データ項目について、その概要やデータの書式、値の制限、使用する文字コレクションなど、データ作成時に留意すべき事項について詳述する。
また、当該 DMD に対応する表形式のデータを作成する場合のサンプルなども含める。
サンプル

3.6.

当該 DMD が定義するデータモデルに従って作成されたデータのサンプル。
項目マッピング

3.7.

項目マッピングは項目データの各項目と当該 DMD で定義されたデータモデルとの対応
関係をMetadata

Vocabulary

forTabularData(http://www.w3.org/TR/tabular-metadata/)の規定にしたがってメタデータとして記述した
JSON 形式のファイルである。記述にあたっては、3.4 の項目データの各項目の名称を順番に並べた表形式データを DMD で定義されるデータモデルに則ったデータへ対応づけるためのメタデータとする。例えば、例 5 の項目データに対しては、次のような表形式データを対象としたメタデータとして記述する。
例 6

マッピングメタデータの対象表形式データの例

ID,名前,緯度,経度,所在地,次に項目マッピングの例を示す。この例は、場所型の一部のプロパティを選択したものをデータモデルとした DMD の場合である。また、対象表形式データは、現在の場所にplace.csv というファイル名で保存されていると仮定している。
例 7

項目マッピングの例{"@context": [ "http://www.w3.org/ns/csvw", { "@language": "ja" } ],"url": "./place.csv","tableSchema": {"columns": [{"name": "place","titles": "ID","aboutUrl": "http://example.org/{place}","propertyUrl": "rdf:type","valueUrl": "http://imi.ipa.go.jp/ns/core/rdf#場所型"},

12{"name": "name","titles": "名前","aboutUrl": "genid:name{place}","propertyUrl": "http://imi.ipa.go.jp/ns/core/rdf#表記"},{"name": "lat","titles": "緯度","aboutUrl": "genid:geo{place}","propertyUrl": "http://imi.ipa.go.jp/ns/core/rdf#緯度"},{"name": "long","titles": "経度","aboutUrl": "genid:geo{place}","propertyUrl": "http://imi.ipa.go.jp/ns/core/rdf#経度"},{"name": "addr","titles": "所在地","aboutUrl": "genid:addr{place}","propertyUrl": "http://imi.ipa.go.jp/ns/core/rdf#表記"},{"virtual": true,"aboutUrl": "http://example.org/{place}","propertyUrl": "http://imi.ipa.go.jp/ns/core/rdf#名称","valueUrl": "genid:name{place}"},{"virtual": true,"aboutUrl": "http://example.org/{place}","propertyUrl": "http://imi.ipa.go.jp/ns/core/rdf#地理座標","valueUrl": "genid:geo{place}"},{"virtual": true,"aboutUrl": "http://example.org/{place}","propertyUrl": "http://imi.ipa.go.jp/ns/core/rdf#住所","valueUrl": "genid:addr{place}"}]}}13