404

Archive

XML の名前空間はどうしよう

手書きで RSS 配信なぞし始めてみたものだから(2004/12/03 参照)、ついでに頓挫していた XML をかじるとかそういった趣旨のことを再開してみたりしている。で、俺様ルールの XML で書いて整形して割と惰性で更新し続けている 一覧表 があって(利用者がいるかどうかは不明)、いっそのことこれも RDF っぽく記述してみたらそれなりに後々、RDF を手軽に扱える編集ツールが現れたときに楽ができるんじゃないの、的な。

(というか、RDF ってこういう使い方で合ってますか?単数/複数のリソースがどういうものかを端的に記述するものだと解釈しているのですが如何せん読解力が致命的で思考力が絶望的であるため物凄い適当な可能性があります。というか名前空間を利用するだけなら RDF でなくても良かったりしますかひょっとして。持て余しまくり。)

で、結局俺様ルールで RDF を書くことになるわけだけれど(あまり進歩がない?)、名前空間の宣言とかしてみるか、という段階になってひょんなことから知ったお話があって。

識別子としての役割だけを持っていればいい URI に http 経由でアクセスすると何か該当するリソースがあるのはおかしいんじゃないか、という話のようなんですが。

多くの場合、名前空間を示すURIにhttp:スキームが使われているため、何かを取り出せるという印象があるのですが、これは基本的にはその名のとおり「ID」の役割を果たすものと理解してください。

どうなんだろう。実際には http でアクセスしても何もない方がいいんだろうか。Identity Crisis で検索してみても、ノイズが多すぎて関連性のある話題が見つけられない。あるいは多くの人にとってどうでもいい問題なのか、それとも当たり前すぎて今さら言及するべき問題でもないのか。どうなんだ。

そもそもどうして名前空間をどうのこうのしなきゃいけないことになったのか、というのは、要するに 200~300 の単一の(連続していない)文章をコンテンツとしてリストアップするという人が(多分)あまりいなくて、さらにそれを XML を用いてなるべく適切にマークアップしようという人もあまりいなくて、つまりは該当する語彙が見つけられなかったわけだけれども、よく考えたら Dublin Core と MusicBrainzmm:sortName みたいなものがあれば十分イケるのではないかと思った。けれど MusicBrainz は音楽に関するメタデータなので不可だと思った。

全然関係ないけど、rdf:Seqrdf:Bag の扱いは ul 要素と ol 要素の扱い以上に混乱すると思った。

それに加えて、さらに関係ないけど、XML に関しては code 要素でマークアップするのに HTML はそうでもない辺り、無意識のうちに気持ち悪い基準をいつの間にか作り上げていて驚いた。どういうことだ。

他所の文章

For example, almost all beginners to RDF go through a sort of "identity crisis" phase, where they confuse people with their names, and documents with their titles. For example, it is common to see statements such as:-

 dc:creator "Bob" .

However, Bob is just a literal string, so how can a literal string write a document? What the author really means is:-

 dc:creator _:b .
_:b foaf:name "Bob" .

例えば dc:creator を "Bob" とすることは RDF 入門者にとってよくある例であるけれど、"Bob" なんてのはただの文字列であるのにどうやってそれが文書を作成するのか?本当に言いたいのは dc:creatorfoaf:name において "Bob" とされる人のことではないですか?と。そういうことだそうです。Identity Crisis って何なんだろう(XML.com の原文は長すぎて読めていない状況)(問題解決の糸口は目の前にあるのにダメ人間ゆえ以下略)。

Comments

北村

一介の素人の意見ですが……
・名前空間を利用するだけなら、どんなXMLでも構わないと思います。XHTMLでも名前空間が使用されているように。例えば、XHTML文書にSVGマークアップを混在させて、画像埋め込み文書を作ったりもできます。
・名前空間URIの先には何かがあっても無くてもどちらでもよいと思います。実際に使われている名前空間URI(XHTML, RSS 1.0, Dublin Core等々)をのぞいてみると、何らかのリソースが置いてあることが多いようです。
実のところ"identity crisis"の話をまだちゃんと読めてないので、後者はやや自信が無いところではありますが。

イソムラ

名前空間というものがどういうものか、というところからおさらいしなければいけない気もしているのですが、何かしら関連するリソースが置いてあっても(今のところ)問題はなさそうですね。今回のケースなら一覧表そのものの URI を名前空間にしても大丈夫かなぁと思っていたりもしますが("identity crisis uri" で検索したらかなり上位に表示されるようになった……)。

結局俺様ルールの XML になるのは避けられなさそうですが、DC なんかの既存の名前空間は有効活用したいです。

cho45(砂糖)

XML の名前空間は ID であればいいですが、RDF/XML の名前空間 URI にはスキーマが関連付けられている必要があるっぽいです。
つまり展開した修飾されない名前 (http://foo/vocab#title とか) にアクセスすると その名前についての情報が得られるみたいな感じです。そんな関係で RDF の語彙の名前空間 URI の語尾には # が付いてたりするみたいです。

イソムラ

「RDF の名前空間にはどうして # が付いてるんでしょうか。これって新しいトリビアになりませんか?」とかのレベルで物凄いくだらないことをちょうど考えていたところでした。でも Dublin Core の名前空間には付いてないなぁとか思ったらリダイレクト。こういうものなんですね。

RDF にすると記述も複雑になるっぽいな……妥協するか……(最初から努力してない)

Post a comment

TrackBack

このエントリーへのトラックバック URI
http://www.junkwork.net/movabletype/mt-tb.cgi/49

Powered by Movable Type 3.2-ja-2

Last modified : 2006-05-12T18:57:39+09:00