✖
なんかよくわからないけど、唐突に怒られたくなった。Mなのだろうか。いやちがう。ぜんぜんちがう。
怒られるまえに訴状が届くような世の中になったら嫌だなと思うのでした。
なんかよくわからないけど、唐突に怒られたくなった。Mなのだろうか。いやちがう。ぜんぜんちがう。
怒られるまえに訴状が届くような世の中になったら嫌だなと思うのでした。
ああなんか、いやだなぁ……
今日の TODO:
メールがきた。
余計な引き落としされないかは月末に確認しないとなぁ。
他人の subscribe を強制的に解除する脆弱性がほしい。「あ、あれ。いつのまにかあがってこないな」っておもったら、購読解除されてるっていう
なんか用語が正しくない気がするけど、あとで調べる。(とかいって調べないんだろうなぁ……)
なにをやりたいかっていうと
<div class="foaf.maker">
<address class="foaf.Person">
by <a href="http://www.lowreal.net/" class="foaf.website">
<img src="http://www.lowreal.net/images/lowreal.net-logo-white1.gif" alt="lowreal.net"/>
</a>
<span class="foaf.name">佐藤広央</span>
<a href="mailto:cho45@lowreal.net" class="foaf.mbox">cho45@lowreal.net</a>
</address>
</div>っていう断片は、
<http://xmlns.com/foaf/0.1/maker> [
a <http://xmlns.com/foaf/0.1/Person>;
<http://xmlns.com/foaf/0.1/website> <http://www.lowreal.net/>;
<http://xmlns.com/foaf/0.1/name> "佐藤広央";
<http://xmlns.com/foaf/0.1/mbox> <mailto:cho45@lowreal.net>
] .として欲しいわけですよ。
でも xh2rdf.xsl は、@href がなければプロパティノードをリテラル扱いして文字列にしてしまうので、うまくいかない。
XSLT は一個修正するといろんなところで影響でそうであんま書きかえたくないんだけど、以下のようなパッチを書いてみた。
--- xh2rdf.xsl.orig 2007-09-18 01:49:17.000000000 +0900
+++ xh2rdf.xsl 2007-09-18 01:54:56.000000000 +0900
@@ -1,4 +1,3 @@
-<?xml-stylesheet href="/parts/xsltdoc.xsl" type="text/xsl" media="screen"?>
<!DOCTYPE xsl:stylesheet [
<!ENTITY classnames "concat('|',@class,'|')">
<!ENTITY localnames "concat('|',local-name(),'|')">
@@ -725,7 +724,19 @@
<xsl:if test="@xml:lang">
<xsl:attribute name="xml:lang"><xsl:value-of select="@xml:lang"/></xsl:attribute>
</xsl:if>
+ <xsl:variable name="propclass" select=".//h:*[
+ contains(&blockelt;, &localnames;) and
+ contains('ABCDEFGHIJKLMNOPQRSTUVWXYZ', substring(@class,substring-after(@class, '.'),1))]"/>
<xsl:choose>
+ <!--@ __ typed node in child element (子要素にクラスっぽいのがあればそれをプロパティの値に。
+ ただし複数の @class には対応していない) -->
+ <xsl:when test="$propclass">
+ <xsl:for-each select="$propclass"> <!-- カレントノードの変更 -->
+ <xsl:call-template name="gen-class-elt">
+ <xsl:with-param name="c" select="@class"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:when>
<!--@ __ if no @href, a literal property (@hrefがないときはリテラルプロパティ、@hrefがあれば、さらにノード要素/属性も生成する。). -->
<xsl:when test="not(@href)">
<xsl:call-template name="get-label"/>これで一応少くとも上で書いたような XHTML は期待する RDF にできた。
自分のところに XSLT おきたくなかったのに、結局読んでると書きかえたくなる罠。GPL って再配布するときどうすればいいんだっけ……条項添付したりしないといけないよなぁ。あとこの XSLT 自体にもメタデータがあって、ライセンス明示があるんだけど、GPL って書きかえた場合なんか署名に修正が必要なんだっけ……
実際こんな変態的な埋め込みするくらいなら、
<a href="foaf への URI" class="foaf.maker">...</a>
とだけ書いて、リンク先に foaf を書いたほうがいいよなぁ。でも一個先にあるのはまたリクエスト増えていやな感じもする。
表現は、何か一方向にしかない表現が正しいわけじゃない。表現行為の効果、自分の求めているものが最大になるような表現をするのが正しいと思う。

RDF/XML への変換までをできるようにしてみた。(あんま実益がないけど)
http://coderepos.org/share/browser/lang/javascript/userchrome/grddl.uc.js
chrome 内からだと XHR はドメイン超えれる (そりゃ、どこ基準なのか謎いからそうなのだろうけど)。でも、セキュリティエラーはでる。
自分で 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 のグラフってこれでいいのかな
XML::Parser.default_load_external_dtd = false
なんかいやっても、なんかいやっても
p XML::Parser.default_load_external_dtd #=> true
さぁあやるかーっておもったらいきなりハマった……カタログつくっても、オレオレDTDとか使ってるとまた HTTP アクセス発生しまくるだろうしなぁ……
DTD を正規表現でとっぱらうというアイデア
Shibuya.js は不安だった発表が割とうまくいってよかった (といってもgdgdなんだけど)。5分の時間のみつもりは難しい……ぴったりで落ち着いてやるのはすごいなぁ……ライブコーディングに飛び入りで参加したけど、ネタがぜんぜんでてこなくて困った。
それはともかく、id:km37 さんに会えたのがよかった。セクハラされた。記念せくはら。想像以上に想像通りの人だった。
昼まで寝る。
実際のところ、帰ってきて冷静に考えてみればみるほど、いろいろ、細かく気付くことはあって、たぶん外からはわからない、失敗したという感覚がある。いまのところは、大丈夫ということにしておいてくれるけれど、ちょっとずれてしまったときに、たぶんそういうのは、直接ふってくるものだから、できるだけもっと、気をつかわなければならない。
つぎはない。もっと純粋なネタをやるべきだったな。でもって、だんだん範囲が狭くなっていくんだな。無難で安全にできるならそれにこしたことはない。それは正しい。今回でだめだったら、だめだろう。もっと冷静になれ。
結局いままで寝てた