クールなURIは変わらないという Tim卿 が書いた文書がある。まあまともなLOD界隈の人間なら読んだことはあるだろうし、どっちかっていうと支持していると思う。例えば、拡張子なしのURIにしろみたいなのは良い指針だと思うし、それを実現するのに大した技術もいらないだろう。Content Negotiation だって大した技術はいらないはずなのだが、自治体が公開しているRDFの現状と課題という論文によれば、51の自治体のうち一つの自治体も満たしてない唯一の基準(of 11基準)だったそうだ。まあ、これに関してはLinkData.orgみたいなプラットフォームが対応すればいい話であって、自治体の人たちが実装するもんでもないとは思うけどね。
何が言いたいかっていうと、
- 技術的に簡単だと思っていることでも実践されるのには工夫がいる
- 技術以外の部分での阻害要因を軽視しすぎるな
という2つのことだ。さて、Cool な URI を設計するのはそんなに簡単なのだろうか。いくつかの問題点を暴いていこう。
「ドメイン維持料が支払えない場合を除いて、その名前を保有し続けることを妨げるものはありません。」
0から自分でLODを構築するなんてことは大変だ。だから、サービスを使う。じゃあ、そのサービスが終わったらドメインはだいたい終わる。LODのサービスなんだからドメイン維持しろ、サービス維持しろ?んなこと言えるわけないじゃないか。公的機関だからってドメイン維持できるとは限らない。統合したり廃止されたり、いろいろあるんだ。
「そうしたいのはやまやまだけど、いいツールがないんです。」
18年経ってこれがまだ言えるってのは大問題だ。けれど真実だ。じゃあ、そのツールに求められる機能って何なんだろうか。Apache 一強の時代から、nginx が台頭してきたり、アプリケーションはそれぞれのプログラムごとのサーバを立てるようになったり、サーバ周りは変化が激しい。だが、それに伴って Cool URI を保証する環境というのはあまり進化したとは言い難い。むしろ Apache の設定ファイルのような一元管理が一般的でなくなったり、プログラムがURIを決定する部分が多くなった分、後退していたりさえするのではないか。
一方で、JekyllのようなStaticでシンプルなCMSが流行るようになったのは Cool URI を実現するのに向いている気はする。
今の環境で何が必要とされているのかさえ、実はよくわからない。
「URIが2年経っても、20年経っても、200年経ってもきちんと働くように設定することは、ウェブマスターの義務です」
http://www.pathfinder.com/money/moneydaily/latest/ という「良い」とされているアドレスもいまではリダイレクトされまくって、https://www.magazinereadermall.com/storefront/ という全然別のアドレスに飛ばされている。http://www.w3.org/1998/12/01/chairs はパスワードが要求されるので中身はわからないが、ちゃんと「W3Cの委員長会議の議事録」を指し続けているのかな。20年ってウェブにとっては長すぎるんだよ。理由?それは技術的な理由というより社会的な理由だろうね。それは社会が「悪い」んだ?Cool URI が社会を支配するほどの力を持っていないというだけだよ。
「トピックスと件名による分類」
分類というのは変わる可能性があると書いている。これはつまり、URIに構造を持たせること自体が良くないということだ。確かにURI同士の関係はRDFで書けるのだからパス名に反映させる必要はない。じゃあ、全部フラットに置けばいいかというと、それでは管理者が混乱する。
「そしてあなたのURIは変化しないようにできるし、そうすべきだということです」
ある程度できるだろうし、そうすべきだろうが、変わることも想定すべきだし、変化に対応する仕組みも作るべきだ。
(追記する)
実例から考える
1: 鳴門市のホームページ
鳴門市ドイツ館| 観光施設 |鳴門市うずしお観光協会から貼られている、http://www.city.naruto.tokushima.jp/contents/germanhouse/
はリンク切れしている。http://www.city.naruto.tokushima.jp/manabu/kanko/daiku/germanhouse/
が対応する新しいURIなのだが、どう考えても前のURIの方がCoolだ。「manabu/kanko/daiku/」という変わりうるカテゴリー体系をURIに含めることは悪手だ。/contents
による管理をやめたわけではないようだ → inurl:"www.city.naruto.tokushima.jp/contents/" - Google 検索
永続性を考えた URI はコンテントネゴシエーション含め 303 で実装するとか、サーバの設定ファイルで転送を制御するのが賢いだろう。そこの部分が Apache にも Nginx にもサポートとして欠けている。つまりは .htaccess や httpd.conf に相当するものの GUI 管理ツールだ。
その他参考: