ちょっとしたメモ

W3Cの新しいXSLTサービスとGRDDL

W3CのオンラインXSLTサービスが新しくなって、文字コードの扱いが改善された。以前はUTF-8以外の文字コードは即座にJavaの例外を引き起こしていたのだが、今回はShift_JISでもEUC-JPでもちゃんと処理できている。これによって、日本語XHTMLページからGRDDLRDFを容易に抽出できるようになる、はずだ。

XHTML文書からRDFを抽出するには、たとえば当サイトの汎用XSLT(xh2rdf.xsl)をこのオンラインサービスで適用すればよい。整形式を満たしている文書なら、タイトルや見出しがメタデータとして取り出され、要約やキーワード、作者の連絡先があればそれも含めたRDFが得られる。

さらに、head要素のプロファイルとしてhttp://purl.org/net/ns/metaprofを記述していれば、W3CのGRDDL demoページから直接RDF抽出を行うこともできる。GRDDLやRDFに関してはほとんど何も知らなくても、プロファイルを加えるだけでメタデータが提供できてしまうというわけだ。

microformatsを使っているなら、XFNからRDFを抽出するとか、Extracting vCards from hCard markupといったアプローチで、それぞれ適切なXSLTを用意すれば(見つけてくれば)それでOK。まさに小文字のセマンティック・ウェブだね。

ところで、W3Cの新しいXSLTサービスは、文字コードの判定にHTTPヘッダのcharsetパラメータを用いている模様だ。これが指定されていないと、RDFの抽出(XSLTの適用)はできるが、日本語はへんてこな実体参照に置き換えられてしまう(iso-2022-jp文書の場合は、抽出もできずエラーになってしまう)。出力がUTF-8なのだから、charsetがないときは入力もUTF-8と見なして欲しい気もするが、RFC 2616の3.7.1ではtext型メディアタイプのcharsetのデフォルトはiso-8859-1と定められているから仕方のないことか。

charsetはさておき、かくも有望なサービスが登場してくれたわけだが、実際にいくつかのページで実験してみると、XHTMLを謳っていながらも整形式になっていないケースが多く、残念ながらかなりの割合でエラーになった。ウェブログのテンプレートに手を加えるときに、空要素のタグを/>で 閉じていなかったり、&を実体参照にしないでそのまま記述しているケースが目立つ。こういうミスを検知して修正を促してくれるといった思慮深いウェブログツールが欲しいところだ。

せっかくXHTMLを採用するのなら、整形式になっているかどうかは確認するようにしよう。それだけで、ウェブページから得られる情報はずっとリッチになるはずなのだ。

関連メモ:
genre: rdf, xslt. at