ちょっとしたメモ

RDFicalとGeoボキャブラリ

4月7日の#swigでのオンライン・ミーティングで、RDFicalical:geoプロパティを使って位置情報geo:lat/geo:long)を記述する方法を明確にしたいという議題を出しておいたら、RDFicalスキーマの定義方法を巡って意外に議論が難航。結論が出ないまま、5月のミーティングに持ち越しとなってしまった。

iCalendarの仕様であるRFC 2445では、GEOプロパティは「セミコロンで区切った2つのFloat値」を持つと定めている。これをそのままRDF Schemaに写し取ると、RDFicalでは <ical:geo>35.678;139.770</ical:geo> という記述をすることになり、geo:ボキャブラリを用いることができない。一方、3月25日改訂のスキーマを見ると、ical:geoはowl:ObjectPropertyと定義されている。つまり次のようにgeo:を組み込むことが可能るというわけだ。

<ical:geo rdf:parseType="Resource">
 <geo:lat>35.678</geo:lat>
 <geo:long>139.770</geo:long>
</ical:geo>

ミーティングでこれらを確認するために、RDFical and related vocabulariesというメモを書いて、OKだよね、というつもりでいたところ、スキーマの作者であるDan Connollyが「あれはスキーマのバグだった」と言う。RDFicalのスキーマはRFC 2445を忠実に反映させる原則で、プログラムで生成するからGEOだけを違う扱いにするのはうまくないと主張するのだ。

さらに、RFC 2445のGeoでいう「global position」は、GeoボキャブラリのWGS84とは必ずしも一致しないとか、RDFicalの名前空間を複数に分けるとかいう話まで飛びだして、議論は混乱気味。大方は何とかGeoボキャブラリを使いたいという意見を示すもののDan Connollyは納得せず、5月に再度ミーティングとなった次第。疲れるミーティングだった…。詳細は#swigの4月7日のログを参照。

関連メモ: