2004年07月07日

RDFの書式を修正しました(ライブドアMAP トラックバックのRSS)

Posted by nene2001 at 04:30 / Tag(Edit): / 0 Comments: Post / View / 1 TrackBack / Google Maps このエントリーを含むはてなブックマーク

http://kokogiko.net/ldm.f
で公開しているライブドアMAP トラックバックのRSSですが、RDF的に書式がおかしいところがあったので、修正しました。

当初、五反田周辺で半径6kmのRSSだと、五反田(北緯35.62583度、東経139.71695度)あたりを中心として、3の8乗mのオーダ内、という事で、geoボキャブラリgeo-onionボキャブラリを流用して

<channel rdf:about="...">
<go:within_3_power_8_metres>
<geo:Point>
<geo:lat>35.62583
<geo:long>139.71695
</geo:Point>
</go:within_3_power_8_metres>
<!--その他の要素-->
</channel>

といった感じの記述にしていたのですが、これだと「このRSS自体」が五反田周辺で半径6km以内に存在する事になってしまうようです。
実際には、「このRSSが取り扱っている話題」が五反田周辺で半径6km以内に存在するわけなので、これではおかしいと言う事のようです。

それならどう記述するかだけど、基本の考え方は、どのようなモデルにするかという事を先立って考える事。
今回の場合、xml-users メーリングリストで教えてくださった方の分析例を挙げると、(以下、適宜引用)
>このRSS の トピック は ある範囲A(について)である
>ある範囲A の 半径6km以内 には 位置Bがある
>位置B の 緯度 は 35.62583である
>位置B の 経度 は 139.71695である
というモデルが考えられ、これをRDFに直すと、

<channel rdf:about="...">
<foaf:topic>
<rdf:Description> <!-- 範囲Aの匿名リソース -->
<go:within_3_power_8_metres>
<geo:Point> <!-- 位置Bの匿名リソース -->
<geo:lat>35.62583
<geo:long>139.71695
</geo:Point>
</go:within_3_power_8_metres>
</rdf:Description>
</foaf:topic>
<!-- そのほか -->
</channel>

といった形になる。
でもって匿名リソースであるrdf:Description要素は省略できるので、最終的には
<channel rdf:about="...">
<foaf:topic>
<go:within_3_power_8_metres>
<geo:Point> <!-- 位置Bの匿名リソース -->
<geo:lat>35.62583
<geo:long>139.71695
</geo:Point>
</go:within_3_power_8_metres>
</foaf:topic>
</channel>

といった形が正しいみたいで、実際そのように変更しました。

ここで、同じ匿名リソースであっても、rdf:Descriptionは省略できてもgeo:Pointは省略できません。
というか、してはいけない事はないのだけれど、rdf:Descriptionは省略しても形式だけの問題で意味の欠落はないのだけど、geo:Pointは、

<geo:Point>...</geo:Point>


<rdf:Description><rdf:type rdf:resource="http://www.w3.org/2003/01/geo/wgs84_pos#Point"/>...</rdf:Description>

と同値なので、省略するとデータ型に関する意味的な欠落が生じてしまう、という事みたい。

また、このモデルでは、直感的には位置Bが範囲Aの外に出てしまう可能性を感じてしまいますが、既存のgeo-onionのプロパティでは二点間の距離しか定義できないので、不十分であればgeo-onionをベースに新しいボキャブラリを作るのもアリ、という事のようです。
あんまりそこまで大それた事をする気もないので、「範囲A内の全ての点に対して」半径6km以内と解釈すれば内包以外にありえないですし、今回はこの書式でいこうと思います。

ちなみに、今回はchannel要素への位置情報の付加でしたが、個々のエントリに位置を付加する場合の考え方についても教えていただきました。
が、あまりこっちで引用し過ぎてもアレなので、興味のある方はxml-usersメーリングリストの過去ログページへどうぞ。
私も今回のRSSでは個別エントリへの位置付加はできないので見合わせてますが、将来的にアンテナ奪取のRSS等も出したいと思っているので、その際は教えてもらったモデルに従って記述したいと思ってます。

#ちなみに、全然話は変わるんですけど、PerlモジュールのXML::RSSって、便利なんだけど要素の重層化ができないみたいですね…。
#今回のRSS発行でも、foaf:topic配下の要素は、全部テキストとしてデータに突っ込んだ後、出力時に&lt;にエスケープされた<を正規表現で置き換えてやってるんですが…。
#一般的なRSSの使われ方からすれば仕方ないのかも知れないですが、RSS1.0はRDFとしての側面も持っている事を考えれば、重層化もあり得るわけなので対応して欲しかったなと。

Posted with ecto

Related query words in Google & Yahoo
Related Books from Amazon
Trackback to this entry
TrackBack URL :
Trackbacks
[rdf] RDFとかRSSとかAtomとか
Excerpt: いろいろ検索していたら一地域について書かれているエントリを集めたRSS ...
Weblog: weavin' in the vanguard
Tracked: 2004年07月09日 02:08
Comments
コメントはありません。
Post a comment












Remember personal info? 
2004年07月
Su Mo Tu We Th Fr Sa
        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

About Me

Navigation

Search
Google
Web
kokogiko.net
Archives
Recent Entries
Recent Comments
Recent Trackbacks
Generic Viagra(Generic Viagra)
Google MapsライセンスとgoSVGによるオープンソースGIS生き残り戦略
Adobe もクラウドをはじめた!各社のクラウドサービスの特徴は?(ラボブログ)
Amazon EC2のランニングコストはそんなに安くなかった
「ここギコ!」の人が涙も出ないような状況になっていることについて(僕だけが幸せになればいいのに。)
人員がクラスタ化できている職場と言うのはうらやましい そろそろ限界です
GoogleMapsと連動したいならPostGISの他にmysqlという選択肢も出てきた あとジオメディアサミット関西も(ここギコ!)
GoogleMapsと連動したいなら幾何データ型よりPostGIS
GoogleMapsと連動したいならPostGISの他にmysqlという選択肢も出てきた あとジオメディアサミット関西も(ここギコ!)
「ジオメディアサミット関西」が開催されます。
GoogleMapsと連動したいならPostGISの他にmysqlという選択肢も出てきた あとジオメディアサミット関西も(ここギコ!)
MySQL4.1以降での空間情報の扱い方
なんか天から2兆円降ってくるらしいので みんな思い思いのところに募金なり寄付するのはどうか(ここギコ!)
「冷静に」「熱く」「マジ反論」でこの内容はある意味すごい
「亡びつつある日本の言語」と「日本語」、そして「普遍語」につらつら思うこと(ここギコ!)
国連人権委、アイヌ・琉球文化の保護を日本に勧告
「亡びつつある日本の言語」と「日本語」、そして「普遍語」につらつら思うこと(ここギコ!)
政治と祭祀が不可分と考えるなら、全ての祭祀を引き受けるのが筋
「亡びつつある日本の言語」と「日本語」、そして「普遍語」につらつら思うこと(ここギコ!)
Googleさんの技術でアイヌ語訳ができないだろうか
Hatena bookmarked
My del.icio.us

Banners

Syndication
Powered by
Get it!!