この作品は、開始からしばらくは百合だったのに、主人公(晶)は男にうつつを抜かすわ、恋人(まゆ)は中国の僻地をさまようわ、まゆには無関係な重要な役(昂)が目立つわで、いったんは脱落した私である。
が、久しぶりに読んでみると、昂が死んでいた。これは吉兆である。残った柏木はまゆの父親なので、まゆと柏木の対決でオチをつける変化が残ったからだ。
刑務所を出所したまゆを晶が出迎える――というラストはさすがにもう期待していないが、まゆと晶で最後にもう一山ありそうだ。
(もう誰も覚えていないかもしれないが、まゆは母親を殺している)
「自称犬の調教師」というのはかなりメジャーな肩書きのようで、Googleでは455件と出る。
私としては、この手の不思議な肩書きのひとつに、「元スターリニスト」を加えたい。
ゴルバチョフからナベツネまで、いまも世界中に数千万人が生きていると思われるこの人々は、あまり認知されていないようだ。Googleでex-stalinistは1120件。ヨーロッパや日本と比べてアメリカには少ないからだろうか。しかし今から100年後、元スターリニストの精神は、重要な研究テーマになるだろう。
元スターリニストがみな共通して持っている、あの独特の痛ましさを、どう言えばいいのか。思いつくかぎり最悪の意味で「大人になる」ということを経験した(通過儀礼!)とでも言おうか。自己犠牲が否定される物語は美しく、感動を呼ぶ。では、自己でない犠牲が否定される物語は。それも、莫大な犠牲を出したあとに否定される物語は。
間違ったハシゴを登ってしまったのは、おそらく彼らの罪ではない。が、そのために彼らは、死ぬまで宙吊りにされつづけることになった。
宙吊りの運命に耐えられない者は、幻想上の足場を持ち上げて、「我々の生きる大地はここだ」と叫ぶ。ソルジェニーツィンが、「革命前のロシア」を持ち上げて、そうしているように。ゴルバチョフは宙吊りに耐えられる稀な人間だが、おそらくはそのために、しゃべるのをやめられなかった。彼を飛行機にたとえれば、言葉と理念はプロペラだったのだ。
「地面なんてもともと幻想だ、元スターリニストはそれを失っただけだ」というのは真実だろう。しかし、元スターリニストの痛ましさを見るにつけ、思う――真実を喝破することと、それを体験することは、まったくの別物だ。
「マフィアといっても、本家イタリアンマフィアのような結束の固いピラミッド型のものではなく、緩やかなネットワークです」は、少々わかりにくいので付け加えたい。これは、ロシアで言われる意味での「マフィア」だ。
ロシアで言う「マフィア」とは、「結託して違法行為を行い利益を得る人間関係のネットワーク」くらいの意味だ。たとえば、公共事業の入札で談合があれば、ロシア式には「建設業界の談合マフィアが動いた」と表現される。警察が裏金をつくれば、「警察内で裏金マフィアが活動していた」と言われる。これがロシア式マフィアの概念である。
日本の感覚では、犯罪組織以外で行われた組織犯罪は、「談合」「裏金作り」のように、その行為によって呼ばれる。ところがロシア式マフィアの概念は、行為ではなく、組織に焦点を当てる。その組織というのも、上下関係のない横のネットワークだけのもの(たとえば談合がそうであるように)を含む。
ソ連時代にはすでにあった概念のようなので、おそらく党のアジプロ部門の誰かが考え出したのだろう。すべてを指導しようとした党の態度が、よく表れている。
世界中のキーボードがみなDVORAK配列である世界は、存在しうる。その世界は、この世界より少しだけよいところのはずだ。しかし、よりよい世界だからといって、このQWERTY世界がいまからDVORAK世界に移行してゆくと信じるのは、ウルトラ・トロツキストだけだろう。
もしメール1通を送信するたびに1円かかるとしたら、スパムメールは不可能になる。一日100通のスパムに襲われる世界より、有料メール世界のほうが、はるかによい世界だ。電話をみても郵便をみても、プッシュ型配信は送信者がコストを負担すべきだという主張は、万人の支持を受けるはずだ。しかし有料メール世界は決して訪れない。電子メール以外の「プッシュ型」技術はすべて死に絶えた。
DVORAK世界も、有料メール世界も、世界中の人々がみんなで足並を揃えて、少しずつ犠牲を払うことでしか実現できない。たとえすべての人が、払った犠牲の百倍の利益を得るとしても、足並は決して揃わない。DVORAK世界と有料メール世界は、存在可能な世界だが、移行不可能な世界なのだ。この世に革命が存在するのは、移行不可能と思えた世界をたぐりよせるためだが、有料メール世界をたぐりよせられる革命など想像することさえできない。
Referer Houndの「フラグメント」という発想にインパクトがあるのは、移行可能世界としての逆リンクWebを実現するものだからだ。
もし、リンク元のリンク要素にGUIDをつければ、Referer Houndよりもずっとうまく逆リンクWebを実現できる。しかしこれは、「世界中の人々がみんなで足並を揃えて」の極端な例だ。「世界中の人々」が「少しずつ犠牲」を払ってくれなければ、動きさえしない。
逆リンクWebを実現する技術として、いままで少しでもまともに動いたのはTrackBackだけだ。blogツール間に限定するという割り切りが、成功の鍵であり限界でもある。TrackBackの限界はいずれ詳しく論じたい。とりあえず、「世界中の人々」のつきあいが悪いことだけは確かだ。
Referer Houndは、「世界中の人々」に対してなにも求めない。Webサイトの運営者が作業するだけで、それは動く。動くだけでなく、ただちにWebサイトの価値を高める。
とはいえ、Webサイトの価値を高める方法は数多い。文章の見出しを工夫する、データ量を減らして表示を速くする、検索をつける、など。こうした手段が尽くされていないサイトがほとんどなのに、なぜReferer Houndだけがサイト運営者を動かせるのか? 答は2つある。
第一に、Referer Houndをつけて楽しいのは、なによりもまず運営者本人だからだ。
運営者は、自分の文章を他人の目で読んだりしないし、自分のサイトの遅さよりも見栄えを気にする。だから、そんなところを改善しても、運営者にとっては楽しくもなんともない。しかしReferer Houndは高度なアクセス解析でもある。アクセス解析に関心がある運営者は、見出しのつけかたを気にする運営者より、はるかに多い。アクセス解析は楽しいからだ。
第二に、Referer Houndは目立つ。
よい見出しや表示の速さは目立たないので、その重要性に気づくことも少ない。目立つものがいかに速く広まるかは、かつてろくでもないFlashやフレームが大流行したのを見てもわかる。
というわけで、普及上の障害があるとすればおそらく、スパムとユーザビリティだけだ。
もしかするとReferer Houndには、電子メールのように、スパム攻撃に対する本質的な脆弱性が潜んでいるかもしれない。また、フレームのように、ユーザビリティ上の本質的な欠陥があるかもしれない。もし、どちらの障害もなければ――Webの全面は変わるだろう。
古代ヨーロッパの人間が、初めて鐙を見たとき、なにを想像しただろう。歩兵に対する騎兵の絶対優位、築城のメリットの増大、さらには蒙古の襲来を見て取っただろうか。まさか。
「Referer HoundがWebを変える」と言っても、鐙から中世ヨーロッパをイメージするのと同じで、わかれというほうが無理だ。ここで詳しく解説してゆきたい。
まずは、一次的な効果から。
TVは、視聴者がなにもしなくても情報を垂れ流してくるが、Webはそうではない。能動的にリンクをたどったり検索したりしなければ、なんの情報もやってこない。では、人が能動的に情報を求めるときには、どんな情報を求めるか。
漠然と「なにか面白い情報」などというものを求めて行動する人は少ない。まず特定のテーマがあり、そのテーマに関する情報を求める――それがWeb上での通常の行動パターンだ。
さて、blogである。
もしblogをずっと一つのテーマだけで書きつづけたら、それはblogというよりニュースサイトになる。この世のすべてのblogがニュースサイトだとしたら、人間という生物はきわめて合理的だということになるが、事実はそうではない。自分がその日思ったことを書きたい、そしてそれを人に読んでもらいたいという欲求は、合理性をたやすく蹴散らす。
blogに、自分がその日思ったことを書く。すると、そのblogには統一されたテーマがないので、情報を求める人の関心を呼べなくなる。Googleからの読者を待つだけのblogのできあがりだ。
もし、Googleが猛烈に賢かったら?
検索結果にノイズが混じる文字列ではなく、抽象的なテーマで検索できたとしたら? クローリングなどというノロマな仕組みではなく、blogが更新されると同時に登録されるとしたら? 更新直後のblogを上位に表示してくれるとしたら?
もしGoogleがそんなものだったなら、Googleからの読者を待つだけのblogにも、今よりずっと多くの読者が来るはずだ。
Referer Houndがそれを実現する。
もちろん、テーマの種類はある程度限られる。たとえば「年金問題」というテーマではReferer Houndはうまく機能しないだろう。Referer Hound後の世界でも、こうした巨大なテーマは、マスコミやGoogleの領域だ。また、あまりに小さいテーマでも、Referer Houndは役に立たない。「我が家のペット」というテーマに関心を抱くのは本人だけだ。
Referer Houndは、両者の中間にあるテーマで機能する。フィガロはまさにReferer Houndが機能する大きさのテーマだ。
以上により、Referer Hound後の世界を現在の世界と比べると、まず2つの点で異なる。
1. 無名の雑多なblogがよく読まれる
2. 中規模のテーマの流通が盛ん
これが、Referer Houndの一次的効果である。
1の効果は、無名blog作者の幸福とやる気を増進させるだけだろうか? 後日に続く。
私はよく小説のあとがきで、登場人物の名前などの由来を解説する。しかしフィガロでは、あとがきの書きようもないので、ここで書いてゆきたい。
まず、「フィガロ」の由来について。これは、モーツァルトのオペラ『フィガロの結婚』に由来している。
かなり込み入った話なので、全体像を説明すると長くなる。アルマヴィーヴァ伯爵夫妻と、伯爵家の小姓であるケルビーノ、この3人に絞って説明しよう。
ケルビーノというのは頭の軽い奴で、女癖も悪い。そのために伯爵の怒りを買い、クビになりかけるが、なんとか軍隊送りで許してもらう。しかし軍隊では女に色目を使うこともできない。失意のケルビーノは、かねてから憧れていた伯爵夫人に、別れの挨拶を述べにゆく。このときにケルビーノが歌うのが、'Voi che sapete che cosa e amor'、通称『ヴォイ・ケ』である。「恋とはどんなものなのか、知っていらっしゃるご婦人方、どうぞ、僕の胸のうちをご覧ください」という具合に、純情ぶって恋を歌っている。
さて、女性声優が少年の声をあてるように、オペラでも女性歌手が少年の役を演じる。ケルビーノも演じるのはメゾソプラノの女性歌手だ。さらにケルビーノは、この歌の直後に、わけあって女装させられる。というわけで、このシーンは、女性から女性への告白という色合いを帯びている。翻訳にもその色合いを取り入れて、'Voi che sapete che cosa e amor'という題を、『恋とはどんなものかしら』と訳すことが多い。
この訳題をもじって、『姉とはどんなものかしら』と思った瞬間――フィガロはフィガロという名前になったのである。
Referer Houndの技術上の核心は、「フラグメント」という発想にある。
リンク部分の周辺から抽出した情報によって、リンクの同一性を判断する――たったそれだけのことだが、クレオパトラの鼻のように、Webの全面を変えてしまうインパクトを秘めた発想であると自負している。
鍵となる発想である以上、Referer Houndの改良とは、フラグメントの改良にほかならない。
まず、フラグメントをどのように抽出するかが問題となる。現在の実装では、href属性をもつ要素の先頭の前後からそれぞれ100文字のテキストを取っている。これは大いに改良の余地がある。HTMLに含まれる区切り情報を活用していないからだ。
次に、同一性判断のアルゴリズムが問題となる。フラグメントをどのように抽出しても、一個のblogエントリと常に完全に重なり合うことは期待できないので、完全一致ではまずい。類似性を評価する必要がある。
おそらく、文字列以外の情報でフラグメントを構成することもできるはずだが、私はそういう凝ったアプローチに期待していない。以下では、フラグメントは文字列であると仮定して話を進める。
文字列間の類似性を評価するというと、育ちのよい向きはLevenstein距離(編集距離)を思い出されるだろうが、これは使えない。なぜか?
フラグメントは、意味的にリンクと結びついた部分(同一性成分)とそうでない部分(ノイズ成分)の2つからなる。通常のblogエントリの構造からいって、同一性成分は連続して存在し、その前後にノイズ成分があると想定される。が、Levenstein距離はこのような連続性を評価できない。
こういう問題の研究はいくらでもあるので、フラグメントを改良しようとする人はかならずそちらを参照されたい。
私は典型的なブリコラージュを行った。まず元の文字列を、文字コードが5で割り切れる文字のところで分割する。分割処理した文字列同士について、diffのアルゴリズムによって差分を計算する。差分の長さと元の文字列の長さの比が、類似度(の逆)である。
Referer Houndの実装上、最大の難関はおそらく、リンク元のHTMLの処理である。
まず、encodingを処理するのが難しい。このことは以前書いた。現在の実装では、
1. レスポンスヘッダのcharsetを見る
2. レスポンスヘッダにcharsetが指定されていない場合、日本語を前提としてテキストから推測する
3. パーサにcharsetを渡す
4. パーサがmeta要素のcharsetを見る
5. meta要素のcharsetが解釈不能である場合、渡されたcharsetを用いる
という具合になっている。
HTMLParserは粘りのきくパーサを目指しているらしく、実際かなりのものだが、meta要素のcharsetが解釈不能だと例外を投げる。IEのパーサの粘りは尋常ではなく、おかげで現実世界のHTMLにはすさまじいものがある。もしIEがFirefoxのように簡単に落ちてくれたなら、この世はもう少しよいところになるだろう。
私はPerlやPHPのことはまるで知らないので、どんなHTMLパーサがあるかわからない。Referer Houndを実装するプラットフォームを選ぶときは、利用できるHTMLパーサの能力をまず確かめるべきである。この点で、IEが使えるASP.NETは有利だ。
リンクを探すときに、JavaScriptによるリンクのことを忘れてはならない。現在の実装では、script要素内でURLらしき文字列リテラルを探して照合している。
現在のReferer Houndの実装は実験的なものであり、私以外の人間がこれを改良しようとするのは時間の無駄である。もし、複数のアプリケーションサーバを用いるような大規模な運用や、プログラマでない者が配備できるような簡単なパッケージを目指すなら、必ずゼロから書き直さなければならない。
Referer Houndを書き直す人々の助けになるよう、私が設計・実装にあたって下した判断について、ここに書きとめておく。
まず、アクセスを捕捉する方法について。
現在の実装では、サーブレットフィルタを用いて捕捉している。これに対して、HTTPサーバのログを解析するプログラムをcronなどで定期起動する方法もある。
後者を用いれば、そもそもサーブレットである必要がない。PHPかなにかで実装すれば、掲示板やアクセスカウンタのように簡単に配備できるようになるだろう。私が前者を選んだのは、趣味の問題(ポーリングが嫌い)でもあるが、静的生成したリンク元一覧をSSIでincludeするという方法を思いつかなかったからでもある。私はWeb系にまったく土地勘がないのだ。
後日に続く。
発見とは、新しい大陸を見つけることではなく、物事を新しい視点から眺めることである――と言ったのは誰だったか。
私はWebというものを、新しい視点から眺めてみたいと思った。その結果がReferer Houndである。
Referer Houndがなにを意味するのか、私はまだ知らない。というよりも、それを知るために私はReferer Houndを作った。
もし知ってしまえば、きっとたいしたことはないのだろう。が、私はいま幸福な夢想にひたっている。10年以上も前、百合の未来を確信したときと同じく、「ここには未来がある」と確信しているからだ。
読者諸氏にもこの未来を分かち合っていただければ幸いである。
http://www.rioworks.co.jp/memory3.html
なにはともあれ、「落下試験(150 cmの高さから10回落下)」のところをご覧いただきたい。
グレゴリオ暦で生活しておられる皆様、新年あけましておめでとうございます。本年も西在家香織派をよろしくお引き立てください。