« 2007年11月 | メイン | 2008年1月 »

メタデータの埋め込み

 SVG Map形式の地図データにメタデータを埋め込みたいという要望があります。地図に意味情報(セマンティクス)を持たせ、その意味情報を用いた検索や解析などの処理をコンピュータで行うことが可能になるためです。 これらの処理は、一般にGISで行われている処理に相当します。
#もちろんGISの最も特徴的な処理は「図化」すなわち地図表現することなのは言うまでもありません

 ここで、SVG Mapコンテンツへの埋め込まれるメタデータの意味としては、SVG Mapコンテンツのドキュメント全体に対するメタデータと、ドキュメント中の個々の図形要素に対するメタデータの二つが挙げられるでしょう。前者のメタデータの埋め込みは、RDF/XMLによって記述された情報を<svg>ルート要素直下に置かれた<metadata>要素に入れる という手法が、例えば地理的な座標参照系の記述方法などで採られています。
 一方、後者のメタデータに関しては、W3C ESW Wiki:GeoMetadataOverSvgにあるように、前者と同様の方法(ただし、個々の図形要素を指定するためにxlinkを用いる。)に対して、図形要素に直接属性を埋め込むことによる、より簡易な方法は有効と考えられます。(なお、この方法はSVGの勧告仕様に違反していません)

 この方法は、RDF/XMLの記法に準拠しておらず、複雑なデータ構造を直接記述できないものの、データ格納効率と作業性の面で優れています。データ格納効率に関しては端折ります(別途詳説予定)が、作業性に関して以下のメリットが指摘できます。

  • 図形要素とメタデータが文書中で分離していないため、処理段階において分離した情報を結合する処理が不要
  • 個々の図形要素に不特定のデータ構造(<metadata>子要素以下のメタデータ構造)が挿入されることを想定しなくて良いため、処理性能の最適化が容易
  • テキストエディタなどの簡易な手段を用いて、直接埋め込まれたメタデータを元にして個々の図形にスタイルを設定することが可能(もちろんXSLTを用いることも可能)

また、microformatsや、GRDDLなど、近年このような簡易な方法でコンテンツにメタデータを埋め込む手法の有用性が認知されています。

 以上の理由により、SVG Mapコンソーシアムでは、この簡易な方法によるメタデータの埋め込みをサポートすることにします。

個々の図形要素へのメタデータの埋め込み仕様

  • 各図形要素に、メタデータを属性として付加することができる。
  • 相当するRDFによるデータ構造は以下の通り
     <図形要素名 id="ID" 属性="属性値" .../>
     =
     [ID]:(主語) -- 属性:(述語) --> [属性値]:(目的語)
    なお、[ID]:(主語) -- rdf:type:(述語) --> [図形要素名]:(目的語)も同時に言明されるでしょう。
  • 付加される属性は、それぞれSVGと異なるネームスペースを持ち、正しくネームスペースが宣言されている必要がある。
  • ネームスペースを複数宣言することによって、複数の語彙に基づく属性を埋め込むこともできる。
  • 属性値としてリテラル(文字列・数値など)とリソース(URL,URI)を用いることができる。値の制限は、ネームスペース宣言において指定されるスキーマ(RDF Schemaを想定)によって行われるものとする。
  • カンマ","区切りを用いて、一種類の属性に複数の属性値を持たせることができる。
  • 埋め込まれる図形要素には、id属性が付与されていることが好ましい。(付与されていない場合、RDFによるデータ構造では、匿名ノードとして扱われる)

記述例:
 <svg  xmlns="http://www.w3.org/2000/svg"
     xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:foaf="http://xmlns.com/foaf/0.1/"
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
  <path id="t1"
      foaf:nick="おービル"
      rdf:type="http://www.w3.org/2003/01/geo/wgs84_pos#SpatialThing"
      dc:title="OOX商会ビル"
      stroke="green" d="....." />
 </svg>

OGC WMSの問題点

 などで指摘されているように、OGCWMS(=ISO19128)は、サーバに多くの計算機資源を必要とする実装が求められる高負荷な仕様といえるでしょう。利用者側でサーバーに負荷をかける使い方を慎むといっても、不特定多数が利用するWWWではそれはかなり困難と思われます。

08/07/25更新:NASAのOnEarthは、このWMSの問題点に気付き、独自の拡張仕様を作っていることがわかりました。しかし結局利用者側でサーバーに負荷をかける使い方を慎むためのヒントを与えているに過ぎず、それにもかかわらず更なるWMSメタデータ記述言語の肥大化をも招いており、無理を重ねた仕様と言わざるを得ません。

 上記の記事の中でも複数指摘されている通り、静的なデータによって実現できるものには、あえてWMSを使わずに済ますのが妥当な解決方法の一つと考えられます。
そしてSVG Mapは、このような静的なデータでも伸縮スクロール自在な地図やハイパーレイヤリング(Web Mapサービスの相互運用)が実現できます。
#もっとも、OGC WMSの仕様では複数のサーバからのデータを重ね合わせる仕様自体は規定されていないのですが・・

 ISO TC211(実質はOGC)が規定した地図サービスのための仕様がWMSだけなので、あらゆる地図サービスはOGC WMSでなければならないという(受動的・妄信的な)考え方をせず、相互運用を可能にするWeb Mapサービスを現実的なコストで運用するのに必要なアーキテクチャを新たに標準として提案していくことが重要だとSVG Mapコンソーシアムは考え、その候補としてSVG Map Profileを策定しています。そして、昨日公開したシステムのように、SVG MapはWMSと相容れないものでもなく、むしろその問題点や不十分な点を補完するメカニズムとして機能させることもできるプラットホームです。

地すべり地形分布図データベースと電子国土SVGの重ね合わせシステム

防災科学技術研究所が公開している、地すべり地形分布図データベースを電子国土SVGデータと重ね合わせて表示するシステムを公開します。

SVG Map ToolkitがインストールされたPCで以下のURLにアクセスしてください。
http://www.svg-map.org/svg/wmsGw/CJ_BOSAI.svg

補足:
 このシステムは、OGCのWMS仕様で提供されている地図サービスをSVG Mapとして扱えるようにするサーバを設置することで、SVG Mapのハイパーレイヤリング機能を用いて、先に公開された電子国土SVGデータなどとの重ねあわせを実現しています。
#地すべり地形分布図データベースはWMSのインターフェースを持っています。(
参照

 SVG Mapは、<image>要素を用いることで、外部の地図データ(ベクタでもラスタでも)を参照することができます。(参考1)(参考2
 そこで、WMSのサービスを参照するためのURLを<image>要素のxlink:hrefに設定し、正しく空間参照系メタデータを記述することによって、WMSのラスターデータを参照するSVG Mapのコンテナデータを生成することができます。なお、空間参照系メタデータは、WMSのサービスへのリクエストパラメータから逆算することができます。
 このようなコンテナデータを生成するサーバを設置することで、WMS仕様で提供されている地図サービスをSVG Mapとして扱えるようになる訳です。
#WMSのサーバからデータを取得して再加工するようなゲートウェイではなく、WMSのサーバを参照するコンテナデータを生成するだけのサーバです。(そのため処理は軽く、静的なシステムに仕立てることも容易)今回実装したサーバには、他にもいくつかの特徴的な機能が含まれているのですが、それについては別途詳説します。

SVG Map Toolkit 0.3.0 Released

SVG Map Toolkitの0.3.0がリリースされました。

ダウンロードは、今までと同じhttp://blog.svg-map.com/2007/09/svgmaptoolkit.htmlから。

この版では、以下のような変更が加えられています:

  • 有効期限が2008年2月29日に延長されています
  • バグフィックス
  • 性能の改善

The SVG MAP consortium is pleased to announce the SVG Map Toolkit 0.3.0 release.

The latest release is now available here:
http://blog.svg-map.com/2007/09/svg_map_toolkit.html

Highlights are :

  • the expiration date is extended to 2008-02-29.
  • bug fixes
  • performance improvement

タイリングされた地図データ - 補足

タイリングされた地図データの解説では、簡単化のためにすべてのタイルは等しいサイズとしていました。しかし、SVG Mapでは、タイルの配置はコンテナファイルのimage要素のx,y,width,height属性によって任意に指定できます。したがって、個々のタイルが等しいサイズである必要はありません。もちろんタイルのサイズがたとえば日本の1次メッシュや2次メッシュなどと一致している必要もありません。(もちろんそのようなタイルを配置してもかまいません。)

下の図は、Tiny SVG Base Map contentで使用されている、日本の海岸線データのタイル分割の様子です。そのコンテナのURLはhttp://www.svg-map.org/svg/basemaps/GMapJpz/jpCoast.dbf.svgzです。Tiny SVG Base Map contentのコンテンツは全て静的なファイルですので、ソースコードをご覧いただけば分割の仕組みが理解できると思います。
#静的なファイルで伸縮スクロール自在な地図サービスを構築できることはSVG Mapの特徴のひとつとなっています。これについては後日詳説します。

Rtile

フリーズーム地図を実現する拡張機能

 SVGは、描画の劣化なく伸縮自在なグラフィックスデータですが、同じデータを伸縮するだけですので、伸縮に伴って情報量が変わるわけではありません。一方、電子地図アプリケーションでは、一般に伸縮に伴って表示される情報量を変化させる機能が提供されています。

 この機能を実現する汎用的な手法として、表示倍率に応じて個々の図形要素の表示非表示を制御できる機能が考えられます。SVGでも一時Ver.1.2の検討段階で、これを実現する仕様が検討(出典)されましたが、今のところペンディングになっています。SVG Mapコンソーシアムでは、この機能はWeb地図サービスにおいて必須と考え、SVG Map Profileとして拡張することにしました。

拡張する属性 : figure-visibility
 図形要素に対し、表示縮尺に応じた表示・非表示制御を行うためのパラメータを設定する属性
 対象となる親要素、Basic Shapes, Path, Text, <use>, <g>, <image>, <animation>

書式 : figure-visibility="[最小縮尺],[最大縮尺]"
 表示縮尺が[最小縮尺]から[最大縮尺] の間にあるとき、その図形が表示
 #表示縮尺の定義:
  100×(ある図形の画面の座標系での長さ/その図形のSVGコンテンツ座標系での長さ)[%]

名前空間 : SVG Map Profileとして拡張する仕様は、Namespaces in XML仕様を用いて、SVGデータに埋め込みます。
 SVG Map ProfileのためのネームスペースURL : http://purl.org/svgmap/profile
 推奨する接頭語 : go

例:
 <svg ... xmlns:go="http://purl.org/svgmap/profile">
  ....
  <circle cy="100" cy="100" go:figure-visibility="100,200"/>
 </svg>
 等倍から2倍表示の間はcircle図形が表示される
Figvis

表示倍率に応じて動的に地図を読み込むシステム

タイリングされた地図のコンテナで記載したビューアの実装要求仕様2を本拡張機能に基づき拡張し、表示倍率に応じて動的に地図データを読み込むメカニズムを実現します。

ビューアの実装要求仕様
 
<image>(または<animation>)要素に本属性を設置した場合、縮尺に応じて動的に地図データを取得する地図サービスを構築できるものとします。
該当する<image>要素が表示すべき倍率範囲に入った場合に、その<image>要素が参照しているデータを動的に取得するロジックを少なくとも実装していなければならないこととします。

例: Tiny SVG Base Map Content で紹介されている世界地図から電子国土データまでをフリーズーム&フリースクロールできる地図データ(http://www.svg-map.org/svg/basemaps/worldMapZ.svg)を参照ください。

検索

注目エントリー

2008年7月

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

最近のトラックバック