履歴もしくは日誌
2005 年 1 月の履歴(もしくは日誌)
2005 年 1 月
更新情報:
- 「Links / 折り畳み自転車など」を更新.
- 「履歴もしくは日誌」の仕掛けを改良して Trackback 関係の機能をいくつか追加.
- 「SwPhotoAlbum / 画像アルバム」の間違いを修正.
1 月 9 日
画像メタデータと,はてなフォトライフの RSS
blog.bulknews.net の Hatena XML Namespaceという記事で,はてなフォトライフというサービスがあって RSS を配信しているという事を知りました.それは RDF である RSS 1.0 でした.画像を Weblog のようなもので扱い,そのメタデータを RSS 形式にまとめるという課題には興味があったので,はてなフォトライフの RSS にも興味を持ちました.
でもはてなフォトライフの RSS を見てみると,RDF としてはあまり良く無いものでした.ぼくが期待していたものとの違いを説明してみます.
まず Weblog での画像のメタデータで表現したいものを考えます.
- HTML である記事の URI
- JPEG などの画像の URI
- 小さい画像(サムネイル)の URI
この三つが基本でしょう.これらの関係は,記事の主題はある画像であり,その画像のサムネイルが別の画像となります.
主語 | 述語 | 目的語 |
---|---|---|
ある記事の | 主題は | ある画像 |
ある画像の | サムネイルは | 別のある画像 |
ある記事とかある画像に具体的な URI を付加してみます.「主題は」とか「サムネイルは」といった語彙は,FOAF のなかにあるのでそれを使ってみましょう.
主語 | 述語 | 目的語 |
---|---|---|
ある記事 http://onohiroki.cycling.jp/comp-DSCN2312.html の |
http://xmlns.com/foaf/0.1/topic (主題)は |
ある画像 http://onohiroki.cycling.jp/PhotoAlbum/2003-07-30_nobeyama/image/DSCN2312.jpg |
ある画像 http://onohiroki.cycling.jp/PhotoAlbum/2003-07-30_nobeyama/image/DSCN2312.jpg の |
http://xmlns.com/foaf/0.1/thumbnail (サムネイル)は |
別のある画像 http://onohiroki.cycling.jp/PhotoAlbum/2003-07-30_nobeyama/thumbnail/DSCN2312.jpg |
この関係を RDF/XML で書くと以下のようになります.
<?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <rdf:Description rdf:about="http://onohiroki.cycling.jp/comp-DSCN2312.html"> <foaf:topic> <foaf:Image rdf:about="http://onohiroki.cycling.jp/PhotoAlbum/2003-07-30_nobeyama/image/DSCN2312.jpg"> <foaf:thumbnail rdf:resource="http://onohiroki.cycling.jp/PhotoAlbum/2003-07-30_nobeyama/thumbnail/DSCN2312.jpg" /> </foaf:Image> </foaf:topic> </rdf:Description> </rdf:RDF> [以下間違い:<?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <rdf:Description rdf:about="http://onohiroki.cycling.jp/comp-DSCN2312.html"> <foaf:topic rdf:resource="http://onohiroki.cycling.jp/PhotoAlbum/2003-07-30_nobeyama/image/DSCN2312.jpg"> <foaf:thumbnail rdf:resource="http://onohiroki.cycling.jp/PhotoAlbum/2003-07-30_nobeyama/thumbnail/DSCN2312.jpg" /> </foaf:topic> </rdf:Description> </rdf:RDF>]
これを RSS 1.0 に適合させると RSS での item は,以下のようになります.
<item rdf:about="http://onohiroki.cycling.jp/comp-DSCN2312.html"> <link>http://onohiroki.cycling.jp/comp-DSCN2312.html</link> <title>ニッコウキスゲ</title> <foaf:topic> <foaf:Image rdf:about="http://onohiroki.cycling.jp/PhotoAlbum/2003-07-30_nobeyama/image/DSCN2312.jpg"> <foaf:thumbnail rdf:resource="http://onohiroki.cycling.jp/PhotoAlbum/2003-07-30_nobeyama/thumbnail/DSCN2312.jpg" /> </foaf:Image> </foaf:topic> </item> [以下間違い:<item rdf:about="http://onohiroki.cycling.jp/comp-DSCN2312.html"> <link>http://onohiroki.cycling.jp/comp-DSCN2312.html</link> <title>ニッコウキスゲ</title> <foaf:topic rdf:resource="http://onohiroki.cycling.jp/PhotoAlbum/2003-07-30_nobeyama/image/DSCN2312.jpg"> <foaf:thumbnail rdf:resource="http://onohiroki.cycling.jp/PhotoAlbum/2003-07-30_nobeyama/thumbnail/DSCN2312.jpg" /> </foaf:topic> </item>]
これまでは記事に注目してメタデータを考えて来ましたが,画像そのものに注目して,記事は画像の説明であるという見方で書き換えるとこうなります.
<item rdf:about="http://onohiroki.cycling.jp/PhotoAlbum/2003-07-30_nobeyama/image/DSCN2312.jpg"> <link>http://onohiroki.cycling.jp/comp-DSCN2312.html</link> <title>ニッコウキスゲ</title> <foaf:page rdf:resource="http://onohiroki.cycling.jp/comp-DSCN2312.html" /> <foaf:thumbnail rdf:resource="http://onohiroki.cycling.jp/PhotoAlbum/2003-07-30_nobeyama/thumbnail/DSCN2312.jpg" /> </item>
ひとつの記事にひとつの画像なら,このように画像についてのメタデータを記述したほうが,簡潔で良いのではないかと思います.
では,はてなフォトライフではどうなっているでしょう? まねして書いてみるとこんな感じです.
<item rdf:about="http://onohiroki.cycling.jp/comp-DSCN2312.html"> <title>ニッコウキスゲ</title> <link>http://onohiroki.cycling.jp/comp-DSCN2312.html</link> <hatena:imageurl> http://onohiroki.cycling.jp/PhotoAlbum/2003-07-30_nobeyama/image/DSCN2312.jpg </hatena:imageurl> <hatena:imageurlsmall> http://onohiroki.cycling.jp/PhotoAlbum/2003-07-30_nobeyama/thumbnail/DSCN2312.jpg </hatena:imageurlsmall> </item>
ここでは「xmlns:hatena="http://www.hatena.ne.jp/info/xmlns"」と独自の名前空間を定義して hatena という接頭辞を使っています.
まず RDF であるはずなのに,rdf:resourceを使わず,たんなるリテラルとして URI を記述
してしまっています.画像そのものと画像のサムネイルとの関係がどうなっているのかも,これでは分からないですね.RSS 2.0 などの RDF でないものならこれでも十分ですが.FOAF の語彙をを利用すれば明確に記述できるのですから,へたに独自のものなんて定義しないで FOAF を利用したら良かったと思います.
ぼくは RSS 1.0 が普及したほうがおもしろいと思うのですが,RDF を理解しようと思わないなら RSS 1.0 を無理して使わないで RSS 2.0 を使った方が良いのではないでしょうか.
あと,名前空間の定義もあやしいですよね.これは RDF の話でなく XML 名前空間の話です.
「xmlns:hatena="http://www.hatena.ne.jp/info/xmlns/"」でも
「xmlns:hatena="http://www.hatena.ne.jp/info/xmlns#"」でもなく
「xmlns:hatena="http://www.hatena.ne.jp/info/xmlns"」となっているのです.
「xmlns:hatena="http://www.hatena.ne.jp/info/xmlns#"」としておけば,「hatena:imageurl」は「http://www.hatena.ne.jp/info/xmlns#imageurl」ってなるのですが,
「xmlns:hatena="http://www.hatena.ne.jp/info/xmlns"」の場合は,「hatena:imageurl」はどうなるのでしょう? 意図してこうしているのか単なる間違いなのか分かりません.
ぼくが RSS 1.0 による画像のメタデータ作成を試したものが「SwPhotoAlbum / 画像アルバム」なんですが,今回見直してみたらあちこちに間違いがありました.さてどうしたものか.
間違いがあったので修正しました.
Trackback URI http://onohiroki.cycling.jp/tb/tb.cgi/weblog_d20050109n2 TrackBack