2007年 09月 17日

GRDDL, http://purl.org/net/ns/metaprof

自分で XSLT かくのも profile かくのも面倒だし、既に完成度の高いものがあるのでそれをつかう。
http://www.kanzaki.com/parts/xh2rdf.xsl で変換する。

XSLT よんだり http://www.w3.org/2007/08/grddl/ で実際に変換したりしながら、RDF のグラフがちゃんと生成される XHTML を書いてみる。

基本的にてきとーに microformats と同じように書けばいいけど、プロパティ定義じゃなくてインスタンス定義 (なんていうんだっけ。正確にいうと rdf:type 付き rdf:Description ?) の書きかたでまよった。例えば、cc:Work なリソース定義を XHTML 内に書くときどうすればいいのかなぁ、XSLT で RDF スキーマよんでるわけじゃないだろうしなぁ、というアレだけど、クラスは大文字から始まるのは慣習 (でいいんだよね) になっているので、大文字からはじまる場合はインスタンス定義とみなして、その子孫要素のそれっぽいのをそのインスタンスのプロパティにしてくれるみたいだ。

<div class="cc.Work">
	<p class="image"><img src="/images/washer-logo.png" alt="logo" /></p>
	<p>
		<span class="dc.title">ロゴ</span><a href="http://creativecommons.org/licenses/by/3.0/deed.ja" class="cc.license">Creative Commons by</a>

		のもとに配布されるもので、
		原著者 (<span class="dc.creater">佐藤広央</span>) のクレジットとライセンスを入れさえすれば、例え商用であっても利用可能です。
		詳しくは Creative Commons のサイトを参照ください。
	</p>
</div>

しかし a 要素と例外処理がしてある cite 要素以外の場合は rdf:about を生成できないっぽい。うーん。XSLT 書きかえるのはいいけど、いまいちいいアイデアがないなぁ……

http://www.w3.org/2007/08/grddl/?docAddr=http%3A%2F%2Fwasher-in-the-rye.com%2F&output=textxml

Turtle でだすと日本語が \uxxxx の形になってしまう。http://www.w3.org/2007/08/grddl/?docAddr=http%3A%2F%2Fwasher-in-the-rye.com%2F&output=turtleplain

Turtle のほうが断然読みやすいだけにこれはもったいない……

http://www.kanzaki.com/works/2005/rap/graph-check で可視化してみた。

dtstart dtend のグラフってこれでいいのかな

libxml ruby

XML::Parser.default_load_external_dtd = false

なんかいやっても、なんかいやっても

p XML::Parser.default_load_external_dtd #=> true

さぁあやるかーっておもったらいきなりハマった……カタログつくっても、オレオレDTDとか使ってるとまた HTTP アクセス発生しまくるだろうしなぁ……

DTD を正規表現でとっぱらうというアイデア