404

Archive

XML の(脳内)仕様を考える

XML の名前空間はどうしよう の続きといえば続き。名前空間命名にいつまでもモタモタしていたところでメリットは何もないので、さっさと中身を作ったりその準備に取り掛かったりすることにした。ので、いろいろと脳内仕様を決めてみたりする。した。決めてみた。

せっかくだから適度に汎用性を持って文書のリストを作れるものにしよう、とかいうことで、じゃそんな感じにぼちぼちとアレしますか(適当)。

Document List 概要
要素名定義親要素子要素
※ 仕様は仮のものです。
list文書のリスト。ルートになる要素。document 要素を並べる。info 要素とか作ってリスト作成者の情報を入れた方が良さげなんだろうか。なしdocument
documentひとつの文書を表す。Dublin Core の relation で関連する文書を表す、とか。listtitle, category, sortNumber
title文書の題名(≒ dc:title)。documentsortName
author文書の著者。creator の方が適切?リソースはテキストに限るのなら author ですか。documentsortName, sortNumber
category文書の分類(≒ dc:subject?)。documentcategoryName, sortNumber
categoryName文書の分類の項目名。category 周辺がいかにも間に合わせくさいので要検討。categorysortName
sortName文書リストの並べ替えに使う名前。MusicBrainz の sortName に該当?title, author, categoryNameなし
sortNumber文書リストの並べ替えに使う番号。rdf:Seq を使えばいいのか。とりあえず。document, author, categoryなし

名前空間は こんな感じ で、一応経緯か(脳内)仕様かそんなものを置いてみることにする予定的な。プログラムのプの字もスクリプトのスの字も理解していないものだから、そういった利便性というものに対して一切配慮できていない(できない)のが非常に「それは何か意味があるのですか」的なことではあるのだけれど、何事もやってみてからというのが信条であるので、というのは今思い付いたのだけれど、まぁとりあえずやってみるかということであるので、やってみました。

さて、いろいろアレしますか。しますよ。

RDF/XML 的にめちゃくちゃな仕様です
RDF/XML を全然理解してない状態であったためです。というわけで、ちゃんと仕様理解してから再度考える、ということになります。なりました。
というか RDF/XML なんですか
多分そういう方向に持っていくことになるんじゃないかなぁという雰囲気がしていなくもないですよね。ですよねって。

というか一番の問題は RDF/XML を理解していないことではなくて、XML に対する理解が浅いことか。RDF/XML構文の簡単な説明 熟読します。

とりあえずこんな感じに。

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	 xmlns:dc="http://purl.org/dc/elements/1.1/"
	 xmlns:dl="http://www.junkwork.net/xml/DocumentList#"
	 xmlns:dlsort="http://www.junkwork.net/xml/DocumentListSort#">
	<dl:Document rdf:about="http://www.junkwork.net/stories/same/001">
		<dl:title rdf:parseType="Resource">
			<dc:title>別れ話</dc:title>
			<dlsort:sortName>わかればなし</dlsort:sortName>
		</dl:title>
		<dl:author rdf:parseType="Resource">
			<dc:creator>イソムラ</dc:creator>
			<dlsort:sortName>いそむら</dlsort:sortName>
		</dl:author>
		<dl:category rdf:parseType="Resource">
			<dlsort:categoryName>Same Old Story</dlsort:categoryName>
			<dlsort:sortNumber>001</dlsort:sortNumber>
		</dl:category>
	</dl:Document>
</rdf:RDF>

要するにソート用にいくつか加えればそれでいいんじゃん的な結果に。

Document List 概要・改
要素名定義親要素子要素
Dublin Core や FOAF による拡張必須。
Document文書一単位を表す要素。ルートtitle, author, category
title文書の名前を表す要素。Documentdc:title, sortName, sortNumber
author文書作成者を表す要素。Documentdc:creator, sortName, sortNumber
category文書の分類を表す要素。DocumentcategoryName, sortNumber
categoryName分類の名称。categoryなし
sortName並べ替えに使用する名前。title, authorなし
sortNumber並べ替えに使用する番号。title, author, categoryなし

title、author、category は rdf:parseType="Resource"(リソースパース型プロパティ要素)で並べ替え用の要素を子に持ちますよ、とか(もちろん並べ替え用の要素を使用しなければ、例えば author をリテラルプロパティ要素として表してしまうのであればこの限りではないけれども)。並べ替え用の要素は 別の名前空間 を宣言してそっちへ放り込みました、と。より希薄な仕様が二つ生まれた、とかそういうことですよ。ね。しかも並べ替え用の名前空間が主目的であって(以下略)

<rdf:Description rdf:about="http://www.junkwork.net/stories/same/001">
	<dc:title>別れ話</dc:title>
	<dl:sortName>わかればなし</dl:sortName>
	<dl:categoryName>Same Old Story</dl:categoryName>
	<dl:sortNumber>001</dl:sortNumber>
	<dc:date>2001-01-30</dc:date>
	<dc:identifier>http://www.junkwork.net/stories/same/001</dc:identifier&
gt;
</rdf:Description>

試しにリストを作成してみたら(物凄い適当に作成したにも関わらず) 120KB 超とかいうアホみたいなファイルができあがって、しかも XSLT での変換がやたらと面倒くさくなったものだから、ソート用の要素以外はもうこんな感じでいいやなんて具合に削ったらむしろこっちの方が良かった。

つまりどういうことかって、自分が何をしたくて何をしているのかよく考えろということだった。ソート用の要素があればそれだけで満足だったんだな。くっそう。

Post a comment

TrackBack

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

Powered by Movable Type 3.2-ja-2

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