ちょっとしたメモ

Atomのcategory要素とURI参照

Last Callといいつつ6月7日にはまたID-9が出ていたりするAtomのシンジケーション書式仕様だが、ID-04から取り入れられていたcategory要素について、少し補足説明しておこう。

Atomでは、feed要素、entry要素ともにその「カテゴリー」を示すcategory要素を任意の数、持つことができる。これは、カテゴリーを示す分類名をterm属性(必須)で記述したうえで、必要に応じてそのスキーム(名前空間)のIRIscheme属性で加えてもよいというもの(さらにlabel属性も使える)。たとえば、あるウェブログ・エントリーが音楽について書かれていることを示すなら、次のような具合だ:

(例)

<category term="Music" scheme="http://xmlns.com/wordnet/1.6/" label="音楽"/>

これはなかなか面白い仕掛けになっている。dc:subjectで主題を示す時に、単語(リテラル)だけでは意味が曖昧になるので、できればURI参照を使いたいわけだが、ほとんどのケースでdc:subjectはリテラルとして用いられており、いきなりrdf:resource属性でURI参照を書いても通用しない可能性が高い。それで、dc:subjectには単語キーワード(URIのローカル名部分)を与え、foaf:topictaxo:topicを使ってURI参照を併記するという面倒なことになっていたりする。

category要素ではこれをtermschemeに分離することで、このあたりを柔軟に扱えるようにした。単語としてのキーワードしか思いつかない(適当なスキーム=語彙が思い当たらない)時はtermだけを与えておき、ちゃんとした体系があるならschemeを加えればいいわけだ。アプリケーションは、あらかじめschemeはオプションと分かっているから、混乱せずにカテゴリを処理することができるだろう。それに、schemetermを連結すれば、RDFのURI参照として利用できるのも具合がよろしい(スキームによってはそう単純ではないこともあるが)。

何でもかんでもURI参照と肩肘を張らず、できる範囲で明確な意味を与えていきましょうよというのは、最近よく目にする手法だし、受け入れられる素地も大きい。Atomでカテゴリを示すなら、検討する価値はあるだろう(schemeのURIは # もしくは / で終わらせて、termと直接連結してRDF URI参照を構成できるようになっていると、なお素晴らしい)。

関連メモ:
map - genre: meta. at