村尾:〒550-0004 大阪市西区靭本町 1-10-10 日本アイ・ビー・エム株式会社 GIS 事業推進 Tel: 06-6449-2910 Fax:06-6445-7381 E-mail:[email protected]
符号化法と
GML
村尾 吉章
Considerations for applying the standards for encoding, including GML
Yoshiaki MURAO
Abstract: For data exchanges, the encoding specification is one of the most important issues. The concept of the encoding for geographic information is standardized by ISO 19118. And then, ISO 19118, 19136 and 19139 provide encoding specifications for each. This paper describes differences of them and indicates some considerations for selections and implementations of them.
Keywords:
符号化(encoding),GML(Geography Markup Language),地理情 報標準(the standards for geographic information)1. はじめに
ISO 19100(本稿では,19100
番台の国際規格群 をまとめて「ISO 19100」と呼ぶ)は,地理空間デ ータに関するさまざまな局面を細分化し,それぞれ の部分に対して標準化された仕様を規定し提供して いる.その中で,実際に地理空間データを作成し利 用者に届けるための物理データ形式を規定する「符 号化」(単体で呼ぶ場合は「符号化法」とも言う)は,地理空間データ作成者にとっても,利用者にとって も,実装システムを構築する上で最も重要な仕様を 提供する規定となる.本稿は,ISO 19100において 定義されている符号化の考え方を解説し,また,当 国際規格群の中で複数提供されている符号化規則の それぞれの特徴を述べて,実際に符号化法を利用す る上での指針を与えるものである.
2. 符号化とは
一般に,符号化(encoding)とは,ある情報の内 容を何らかの記号形式に変換することである.ISO
19100
では,応用スキーマによってデータ構造が定義された地理空間データ等の各インスタンスを,そ の定義にしたがったシステム可読な形式に変換する ことを符号化と呼ぶ.符号化された地理空間データ は,地理空間データ提供者にとって作成・提供すべ きデータであり,地理空間データ利用者にとれば,
読み込むべきデータに他ならない.
符号化処理において情報欠落がなければ,その結 果としてのデータ形式が異なっても情報の意味は変 化しない.したがって,符号化仕様が目的や用途に 応じて複数存在することは容認される.そのことか ら,特定の符号化仕様を選択して符号化を実施する ことは,一種の「サービス」として位置づけられる.
ISO 19100
では,「ISO 19118:2005 地理情報-符 号化(Geographic Information - Encoding)」1) が,サービスとしての符号化の基本概念とその仕組 みを規定している.ここで規格番号に“:2005”が 付加されているのは,参照するこの規格が2005
年 発行のものであることを示している.3. ISO 19118 における符号化の考え方
ISO 19118:2005
は,符号化に関する規定を提供 する.その規格書本体では,符号化の基本概念を定 義し,附属書A(参考)で XML
を使用した場合の 符号化規則を提供している.本章では,その本体で 定義されている符号化の基本概念を解説する.3.1 データ交換のしくみ
ISO 19118:2005
規格書の本体では,地理空間デ ータの交換のための符号化を対象として,そのしく みと基本仕様を規定している.ここでデータ交換と 呼んでいるのは,ファイルを交換することによる方 法も,データ転送サービスなどを呼び出して相互交 換する方法も含んでいる.地理空間データのデータ構造を定義する応用スキ ーマから共通データ形式を導き出すことができれば,
それを交換形式としてデータ交換が可能となること から,その導出仕様を符号化仕様として定義するこ とを目的とすればよいことになる.
図1は,データ交換のしくみを示している.
図1 ISO 19118によるデータ交換のしくみ
3.2 符号化サービスと符号化規則
図1にあるように,「符号化サービス」はデータ変 換を実施する際に,応用スキーマを入力としている.
地理空間データ提供者側(システムA)は正方向の 処理,すなわち「符号化(encode)」を実施して,
自システムの形式のデータを応用スキーマから導出 された共通データ形式に変換する.このとき,当然 ながら,変換前のデータが,応用スキーマに対応し た各種情報は保持していることが必要である.
一方,利用者側(システムB)は逆方向の処理,
すなわち「復合化(decode)」を実施して,その共 通データ形式のデータを,自システムで理解可能な 形式に変換する.
この符号化サービスの内容をもう少し詳細に見る と,図2のように構成される.
図2 符号化サービスと符号化規則
図2のように,符号化サービスの中には2つの符 号化規則が含まれる.ひとつはスキーマ変換規則で あり,もうひとつはインスタンス変換規則である.
スキーマ変換規則は,応用スキーマの定義情報を 入力とし,その内容にしたがって,データ構造を記 述するためのスキーマを生成する.これは,XML を目的形式とした場合には,XML スキーマ文書ま たは
DTD
を意味することになる.ただし,ISO19118:2005
本体の規定段階では,まだデータ形式に ついて具体的には言及していないので,一般的な言 い方にとどめている.インスタンス変換規則は,実際にデータ交換対象 である地理空間データ,すなわち応用スキーマとし て定義されたクラスのインスタンス群について,共 通形式のデータに変換する.このとき,変換元のデ ータ形式はシステムに依存することになるので,規 格上はインスタンス・モデルを定義して,それとの 間での変換を想定している.
これらスキーマ変換規則とインスタンス変換規則 を含んだ符号化サービスは,図3のようにインター フェースとして3つの操作を定義している.
図3 符号化サービスのクラス定義 システム B
システム A
データ転送 サービス
データ転送 サービス 交換
ファイル
交換 ファイル 符号化
サービス
符号化 サービス 応用スキーマ
変換前 データ
変換後 データ
符号化サービス 応用スキーマ
アプリケーション データ
インスタンス モデル スキーマ
モデル スキーマ
変換規則
インスタンス 変換規則
データ構造 スキーマ
符号化 データ
対応 対応 対応
3.3 オブジェクト ID
符号化されたインスタンスは,個々に識別可能で あることが必要とされるため,それぞれがオブジェ クト
ID
をもつ.オブジェクトID
には,idとuuid
があって,id
は交換データセット内でユニークな値,uuid
は,アプリケーション範囲のすべてのデータ内 でユニークな値となる.既にデータベース内にある オブジェクトに対する更新情報だけを送信するため にはuuid
が必要となる.なお,id,uuidについては 同じ概念であれば別の仕様を定義してもよい.ISO 19118:2005
本体では,上記の他にも,交換 メタデータ情報(ExchangeMetadata)の構成,更 新メカニズム,使用する文字コードなどが規定され ているが,本稿でのこれらの内容の解説は省略する.4. ISO 19100 が提供する符号化規則の概要
ISO 19118:2005
本体は,符号化の基本的概念を 規定するものではあるが,実際のデータ形式は,さ まざまな環境の中で要件に応じた選択がなされるも のとなることから,具体的なデータ形式を対象とし た符号化規則は提示していない.一方,データ形式に
XML
を選択した場合の符号 化規則について,ISO 19100
の中で3つの仕様が提 供されている.これらは,すべてISO 19118:2005
本体の基本概念に準拠したものであり,スキーマ変 換規則ではXML
スキーマファイルの生成を前提と している.本章では,これら3つの符号化規則の特 徴を比較しつつ解説する.なお,具体的に符号化された結果を説明するため,
ごく単純なクラスを1つだけ定義した応用スキーマ を図4のように準備する.以下で符号化規則を説明 する際,この目標点クラスおよびそのインスタンス が符号化された例をそれぞれの仕様において例示す る.
目標点
+ 位置 : GM_Point + 地点名: CharacterString
図4 サンプル応用スキーマ
また,以降の項におけるそれぞれのコード例にお
いて,名前空間を適切に設定する必要があるが説明 は省略する.
4.1 ISO 19118 附属書 A による符号化規則
ISO 19118:2005
は,附属書A
(参考)としてXML
を使用した場合の符号化規則を提供している.この符号化規則の特徴は,UML クラス図で定義 された各クラスに対する汎用的な符号化規則を提供 しており,かつ,それを
ISO 19100
仕様群にも適用 する点にある.また,その出自からも当然のことな がら,ISO 19118
本体の規定に完全に準拠した仕様 である.このスキーマ変換規則に従って図4の応用スキー マを変換した例をリスト4-1に示す.
目標点クラスは,
IM_Object
を継承して定義され る.属性のデータ型は,そのまま指定することがで きる.この附属書
A
のインスタンス変換規則に従って,図4の応用スキーマにもとづいた
XML
データを生 成した例をリスト4-2に示す.各
XML
データは,クラス名,属性名をタグ名と することが基本となり,タグ名の変換テーブルが用<xs:element name="目標点" type="目標点“
substitutionGroup="iso:IM_Object" />
<xs:complexType name="目標点">
<xs:complexContext>
<xs:extension base="iso:IM_Object">
<xs:sequence>
<xs:element name="地点名" type="iso:CharacterString"/>
<xs:element name="位置" type="iso:GM_Point"/>
</xs:sequence>
</xs:extension>
</xs:complexContext>
</xs:complexType>
リスト4-1
リスト4-2
<目標点id="M001" uuid="mesh1234.M001">
<地点名>ABC地点</地点名>
<位置id="M001P">
<iso:position>
<iso:CRS uuidref="jgd2000.bl"/>
<iso:coordinate>36.12345 135.12345</iso:coordinate>
</iso:position>
</位置>
</目標点>
意されればそれぞれ別名に変換される.各オブジェ クトには
id
が付与されなければならず,必要であれ ばuuid
を付加してもよい.他のオブジェクトを参照する際は,同一データセ ットであれば
idref
を,データセット外であればuuidref
を用いて,該当オブジェクトIDを指定する.「位置」属性のデータ型はGM_Pointであるため,
ISO 19107
4) で定義されたGM_Point
のクラス図 について,同じ符号化規則が適用されてXML
デー タに展開される.先にも述べたように,この附属書Aによる符号化 規則は,UML クラス図が定義されていれば,汎用 的に符号化が可能である点に大きな特徴がある.今 後,新しい仕様が規格化されたり,現在の仕様に対 する変更があっても,符号化規則は一定のまま対応 可能である.ただしこれには短所もあり,汎用的符 号化規則を貫くことから,XML データとしては冗 長度が高くなり,ファイルが大きくなってしまう.
一方,
ISO 19118
本体の規定に完全に準拠してい ることから,ExchangeMetadata
を作成でき交換デ ータセットに関する十分な記述が可能である.また,更新メカニズムを含んでおり,データベースの更新 を含む本格的業務システムにも適用可能である.
なお,現在
ISO 19118
の改定作業が進められてお り,その一環として附属書の構成を他の規格と合わ せる必要から,現在の附属書A
は,その内容のまま 附属書C
に移すことが検討されている.4.2 ISO 19136 (GML)による符号化規則
ISO 19136:2007
2) は, OGC(Open GeospatialConsortium, Inc.)が開発した符号化規則である GML(Geography Markup Language)を ISO
19100
の各規格との整合をとるように改訂し,国際規格化したものであり,ISO 19118:2005 本体に準 拠した地理空間データのための符号化規則を規定し ている.
このスキーマ変換規則に従って図4の応用スキー マを変換した例をリスト4-3に示す.
目標点クラスは,AbstractFeature を継承して定 義される.その点は,4.1の附属書
A
符号化規則と 大差はない.一方,ISO 19100提供の符号化に関係するほぼすべてのクラスについて,対応する型名が 定義されており,この例のように
CharacaterString
であれば,XMLのString
型を,GM_Pointであれ ば,GML
が提供するPointProperty
型を設定する.この
ISO 19136
のインスタンス変換規則に従っ て図4の応用スキーマにもとづいたXML
データを 生成した例をリスト4-4に示す.XML
データは,応用スキーマで定義された部分 については,クラス名,属性名をタグ名とすること が基本であり,その点は4.1
と同じである.しかし,
ISO 19100
が提供するクラスについては 大幅に異なっており,それぞれのクラスに対してXML
データとして適した符号化形式が個別に定義 されている.リスト4-2と比較するとタグ名や構 成がかなり異なっていることがわかる.したがって,生成された
XML
データは4.1
のそれに比べて効率 よく理解しやすい形式となっている.ここに示した例では
GM_Pointによる点データの
表現であるため大きな変化はみられないが,線,面 のデータになると,両者の違いはかなり大きなもの となり,GML
のほうが効率的でわかりやすいXML
データ形式になる.<xs:element name="目標点" type="目標点Type"
substitutionGroup="gml:AbstractFeature" />
<xs:complexType name="目標点Type">
<xs:complexContext>
<xs:extension base="gml:AbstractFeatureType">
<xs:sequence>
<xs:element name="地点名" type="xs:String"/>
<xs:element name="位置"
type="gml:PointPropertyType"/>
</xs:sequence>
</xs:extension>
</xs:complexContext>
</xs:complexType>
<目標点gml:id="M001">
<地点名>ABC地点</地点名>
<位置>
<gml:Point gml:id="M001P" srsName="jgd2000.bl">
<gml:pos>36.1234 135.1234</gml:pos>
</gml:Point>
</位置>
</目標点>
リスト4-3
リスト4-4
他方,この
ISO 19136
でISO 19100
において符 号化に関係するほぼすべてのクラスについてのXML
変換規則を定義していることから,規格更新 時の追随性などに懸念点があることは否めない.オブジェクト
ID
としてid
を設定するがuuid
の 定義はない.データセットを超えてオブジェクトを 参照する際には,xlinkによるuri
参照を行う.また,
ExchangeMetadata
は定義されていないが,データセット内容を記述するタグは提供されている.
更新メカニズムについては定義されていない.
なお,
ISO 19136
を参照する際には,「GML
スキ ーマ」という用語に注意する必要がある.GML で は,XML
スキーマによって記述されたXML
文書構 造の定義が,ISO 19100
内で一般に使用されている「応用スキーマ」とば別に存在しており,これを
GML
スキーマと呼ぶ.応用スキーマからスキーマ 変換規則によってXML
スキーマ定義文書を作成す ることは,応用スキーマからGML
スキーマに対し てスキーマ変換していることになる.4.3 ISO 19139 による符号化規則
ISO 19139:2007
3) は,ISO 19115 5) で定義され たメタデータに関するXML
符号化規則を提供する.メタデータを構成する各データ項目は,ISO
19115
においてUML
クラス図によって定義されて いることから,ここでもUML
クラス図に対する汎 用的な符号化規則がISO 19118:2005
本体に準拠し たものとして提供されている.このスキーマ変換規則に従って図4の応用スキー マを変換した例をリスト4-5に示す.
目標点クラスは,
AbstractObject
を継承して定義 される.その点は,4.1の附属書A
符号化規則およ び4.2 GML
と大差はない.このスキーマ変換規則では
ISO 19100
が定義す るクラスについては,一見,規格で定義されたクラ ス名のデータ型を参照しているかに見えるが,その 実体としての定義は4.2
のGML
での定義を参照し ている.したがって,ISO 19139のインスタンス変 換規則に従って図4の応用スキーマにもとづいたXML
データを生成したリスト4-6の例に見える ように,「位置」属性の展開内容は,4.2によるもの と同じ内容となる.このインスタンス変換規則では,それぞれのデー タ型名のタグを出力する点に特徴がある.例えば,
「地点名」属性のデータは応用スキーマにおいて
CharacterString
型として定義されているため,そ の型名のタグを出力してからデータを出力している.この符号化の方式は,継承関係の下位型とそうでな い型が混在した場合にわかりやすい符号化規則であ り,メタデータ・クラス図の特性にかなっている.
また,この方式の場合,
4.1
よりさらに冗長なXML
タグ構成となってしまうが,その点も符号化の対象 がメタデータであって,さほど大量のデータとなら ない点を考慮している.ISO 19139
は,本来の符号化対象がメタデータで あることから,オブジェクトごとへのid
付与が必須 ではないなど,地理空間データの符号化規則として は十分な仕様とは言えない.ExchangeMetadata
や 更新メカニズムも想定されていない.<xs:element name="目標点" type="目標点_Type"/>
<xs:complexType name="目標点_Type">
<xs:complexContext>
<xs:extension base="gmd:AbstractObject_Type">
<xs:sequence>
<xs:element name="地点名"
type="gco:CharacterString"/>
<xs:element name="位置"
type="gss:GM_Point_PropertyType"/>
</xs:sequence>
</xs:extension>
</xs:complexContext>
</xs:complexType>
<目標点gml:id="M001">
<地点名>
<gco:CharacterString>ABC地点</gco:CharacterString>
</地点名>
<位置>
<gml:Point gml:id="M001P" srsName="jgd2000.bl">
<gml:pos>36.1234 135.1234</gml:pos>
</gml:Point>
</位置>
</目標点>
リスト4-5
リスト4-6
5. 符号化法の利用
5.1 符号化法の選択と実装における考慮点
前章での比較により,
ISO 19100
が提供する3つ の符号化規則によって生成されるXML
データ形式 は汎用的なものであり,インスタンスレベルの概略 仕様は,ほぼ同じであることが理解いただけたであ ろう.しかしその中で,仕様の性質上,地理空間デ ータを対象とした符号化規則としてISO 19139
を 選択することは妥当でないといえる.ISO 19118
附属書A
とISO 19136(GML)の比
較では,前者は参考仕様,後者は規定であることか ら,今後,一般的にはISO 19136
の利用をまず優先 的に検討することが望ましい.特に,データサイズ を少しでも小さくしたい場合には,ISO 19136
を選 択したほうがよい.一方,更新メカニズムを伴うか否か,GML が提 供していない
ISO 19100
標準規格の利用の有無,今 後の規格の改定への対応,既存データの仕様,プロ グラム資産,既存スキル等を考慮して,条件が合え ばISO 19118 附属書A
を選択することもありうる.特に,これが統一した符号化規則である点は,シス テム構築上のメリットもある.
生成される
XMLファイルでの両者の違いは, ISO
19100
が提供するクラス/データ型を展開する部分である.
ISO 19136
ではGML
スキーマをベースに した個別の展開となり,ISO 19118 附属書A
はク ラス図をベースにした汎用的な展開となる点は,そ れぞれを選択し実装する上で考慮すべきである.5.2 符号化法が利用される局面
データ交換を中心に,符号化法が利用される局面 を考えると,次のように,基本的にシステム間で地 理空間データの授受がある場合である.
i)
ファイルによるデータ交換ii)
サービスとしてのデータ配信・受信(WFS:Web Feature Serviceを含む)
iii)
長期にわたるデータ蓄積iv)
データベース更新のための差分データ交換 しかし,これらのシステム化を本格的に検討する 際には,まず応用スキーマで構造が定義された地理 空間データを作成・管理するシステムが必要である.システム内にそのようなデータが準備されて初めて ファイルによるデータ交換や,データ配信サービス が可能となる.
そのシステムにとってのデータ実装方法について は自由に検討すればよいが,まず第1ステップとし て
ISO 19100
が提供する符号化法を直接利用する 方法が考えられる.応用スキーマを正しく理解し処 理するシステムにとって,標準に準拠した仕様をシ ステムの基本部分でサポートできることが必要であ るし,今後求められることとなるだろう.そして,そのシステムにとってみれば,これら符 号化規則の違いは小さな差異であって,選択肢とし て提供することに問題は生じない.
6. おわりに
符号化の詳細な仕様を実際に必要とするのは,デ ータ変換を実施するソフトウェアである.もし,
GIS
パッケージがISO 19100
にもとづいたデータ形式 を受け入れて直接データ変換機能を提供してくれれ ば,大多数のユーザーは,GML なり,ISO 19118 附属書A
なり,仕様の名称を確認するだけでこと足 りる.昨年度より,基盤地図情報が
ISO
標準形式で提供 されるようになり,しかも今後はデータ更新の仕組 みも取り込まれようとしている.多くのGIS
パッケ ージによるこの符号化法のサポートが,早期に実現 することを期待したい.参考文献
1) ISO 19118:2005, Geographic Information - Encoding, ISO.
2) ISO 19136:2007, Geographic Information - Geography Markup Language
(GML),ISO.
3) ISO/TS 19139:2007, Geographic Information
-Metadata-XML schema implementation,