- From: Yuzo Matsuzawa <yuzo@indigo.co.jp>
- Date: Wed, 28 Jan 2009 22:32:00 +0900
- To: W3C SVG IG Japan <public-svg-ig-jp@w3.org>
インディゴの松澤と申します。 # 過去議事で「インディゴ松田」となっているのが私かと思います 金曜日にあらためて自己紹介させていただきます さて、これは過去に高木さんとも議論した内容なのですが、 SVG IG 向きの課題かと思いますので、展開いたします。 ◇事の発端 7.15 Geographic coordinate systems http://www.w3.org/TR/SVGMobile12/coords.html#GeographicCoordinates CRS のサンプル事例 07_19.svg、07_20.svg、07_21.svg の 掲載されているセクションなのですが、 実はここで掲載されている 07_20.svg と 07_21.svg の中の RDF は、 RDF validator (http://www.w3.org/RDF/Validator/)をパスしません。 → この二つは、そもそも RDF風に書かれていないので、以下では触れません 07_19.svg の中の RDF は、validator はパスするのですが、 その RDF グラフは何かおかしいのです。 ◇何が問題か? == 典型的な CRS のRDF == <svg...> <metadata> <rdf:Description rdf:about="#"> <crs:CoordinateReferenceSystem rdf:resource="http://purl.org/crs/84" svg:transform="matrix(a,b,c,d,e,f)"/> </rdf:Description> </metadata> <g>...</g> </svg> このとき、この RDF は以下の2つのトリプルを構成します > > 主語 : # > > 述語 : crs:CoordinateReferenceSystem > > 目的語: http://purl.org/crs/84 > > 主語 : http://purl.org/crs/84 > > 述語 : svg:transform > > 目的語: matrix(a,b,c,d,e,f) svg:transform="matrix(a,b,c,d,e,f)" というものは、 SVG ドキュメントの座標系に固有の値と考えるのが普通ですが、 RDF 的には、「http://purl.org/crs/84」という測地系のプロパティと なっています。 このケースでは問題は深刻ではないですが、 以下のケースでは意味が消失します。 == 2つの CRS 定義を持つRDF == <?xml version="1.0"?> <svg...> <metadata...> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:crs="http://www.ogc.org/crs" xmlns:svg="http://www.w3.org/svg"> <rdf:Description rdf:about="#canvas1"> <crs:CoordinateReferenceSystem rdf:resource="http://purl.org/crs/84" svg:transform="matrix(a1,b1,c1,d1,e1,f1)"/> </rdf:Description> <rdf:Description rdf:about="#canvas2"> <crs:CoordinateReferenceSystem rdf:resource="http://purl.org/crs/84" svg:transform="matrix(a2,b2,c2,d2,e2,f2)"/> </rdf:Description> </rdf:RDF> </metadata> <g xml:id="canvas1">...</g> <g xml:id="canvas2">...</g> </svg> この例では、 SVG の中に複数の地理座標があると考えてください。 たとえば、天気予報のように、本土と沖縄がひとつの画面に収まっているが、 本土部分と沖縄部分は違う CRS を持つようなケースです。 また、地図本体は CRS の影響下におきたいが、凡例などは影響外におきたい、 といったケースなど、Fragment に対する CRS の設定は 具体的な利用シーンが考えられます。 この RDF を Validator にかけると、 > > 主語 : #canvas1 > > 述語 : crs:CoordinateReferenceSystem > > 目的語: http://purl.org/crs/84 > > 主語 : #canvas2 > > 述語 : crs:CoordinateReferenceSystem > > 目的語: http://purl.org/crs/84 > > 主語 : http://purl.org/crs/84 > > 述語 : svg:transform > > 目的語: matrix(a1,b1,c1,d1,e1,f1) > > 主語 : http://purl.org/crs/84 > > 述語 : svg:transform > > 目的語: matrix(a2,b2,c2,d2,e2,f2) という4つのトリプルができあがり、 もともとの #canvas1, #canvas2 から svg:transfom への関係性が消失、 http://purl.org/crs/84 が二つの svg:transform を持つ、というように コンフリクトしたグラフが形成されていることがわかります。 ◇問題提起 ここで挙げたように、現在 SVGTiny1.2(SVG1.1も含む) で紹介されている CRS の記述方法は、RDF としてみた場合には問題があると考えています。 1. svg:transform を中心として、 RDF 的な文脈から周辺のクラス・語彙の定義を整理すべきでは 2. 非RDFの記法を考える場合にも、Fragment に対して複数の CRS を 設定できる方法を検討したい 以上です。 -- Yuzo Matsuzawa <yuzo@indigo.co.jp>
Received on Thursday, 29 January 2009 08:41:09 UTC