
2026/06/27 0:15
Tim Berners-Lee の URL シンタックスで製品化されなかった Matrix URIs(1996 年)
RSS: https://news.ycombinator.com/rss
要約▶
日本語訳:
Tim Berners-Lee の 1996 年における「Matrix URIs」案は、URL パラメータを厳格な階層構造ではなく非順序行列として扱うことで、標準的なウェブリンクに対する革命的な代替手段を提供する。セミコロン構文を用いるこのシステムでは、マップのスケールや座標など特定の属性のみを変更し、アドレスの他の部分は変更せずに済む。例えば、「
//moremaps.com/map/color;lat=50」というリンクの場合、各属性が一度だけ定義されている限り、ロケーションやスケールは不変のまま色だけを切り替えることが可能となる。しかし、このアイデアは、ウェブデータを木構造から次元行列形式へ転換するという優れた設計を持ちながらも、純粋に理論的な段階にとどまっている。1997 年 1 月時点で、セミコロンで始まる相対 URIs を解析できる主要なブラウザはいなかった。さらに、欠落した属性は特別な削除構文がないまま空文字列としてデフォルト値となるが、Berners-Lee はこれを潜在的に「乱雑だと」考えていた。したがって、広範な採用には巨大な障壁が存在する:業界全体の大規模な混乱と、ブラウザにおけるウェブリンクの処理方法に関する普遍的なアップデートが必要だからだ。そのような技術的危機による標準の強制がない限り、この革新的アプローチは今日の実際のユーザーエクスペリエンスに影響を与えることなく、未使用の概念として留まると予想される。本文
ティム・バーナーズ=リー氏によるマトリックス URI の提言(1996 年)
文書概要と背景
- 日付: 1996 年 12 月 19 日作成、2001 年に分離・再整備。
- 性質: 個人的な見解に基づくドラフト段階の文章です。
- 完全な校正は未整備ですが、本質的な考え方は既に存在します。
- 用語の使用: 「公理」や「定理」といった厳格な数学用語が、あえて安易に用いられています。
- 経緯: この文書は、当初のウェブ仕様には含まれなかったマトリクス URI の解析機能を実現するためのものであり、2001 年に
から独立しました。Axioms.html
デザイン課題とセミコロンの役割
URI の階層システムは多くのものがありますが、それを理解するための比喩としてプログラミング言語のコマンド構文を取り上げます。
- 権限階層の比喩: コマンドへのパラメータ列挙(オプションや省略可能な要素)は、階層的な URL パス(スラッシュ区切り)と同様です。
- 行列空間モデル: スラッシュが「木構造」を表現するなら、セミコロン (;) は名前の同等の重要性を持つパラメータ集合、つまり行列空間を表現するのに適しています。
- 「近く」へのナビゲーションは、行列の次元(パラメータ)を変化させることで実現されます。
- URL における「a=b;」の位置: これは後に追加された機能で、当初の必要だったのは階層構造への修飾子の付与でした。
複合形と比喩の継続性
手続き呼び出しの比喩は複合形においても成立します:
- まず URI の階層的な部分(名前空間)を参照。
- 次に、セミコロンで区切られた修飾子(パラメータ)として位置情報を指定。
具体的な URL 例:
//moremaps.com/map/color;lat=50;long=20;scale=32000
- 各パラメータには名前があり、省略された場合はデフォルト値が適用されます(例:緯度・経度・縮尺)。
マトリックス URI の解析に関する課題
相対 URL(基盤となる URI に加算する部分)の解釈方法について議論されます。
現状と問題点
- 利便性の必要性: 同様の地図を異なる縮尺で表示するには、
といった相対指定が理想的です。;scale=64000 - 実装の欠如: 1997 年時点では、この構文はコミュニティ内で十分に定義されず、実際に実装されていませんでした。
- 順序の論理: 同じパラメータ集合を異なる順序で記述しても同じ意味を持つため、原則としてパラメータの順序は無視できるべきです。
相対 URL の解釈ルールの提案
セミコロン (
;) で始まる相対 URI は、基盤となる URL とは異なる属性値集合を受け取るものとして扱われます。
必須条件
以下を満たす解釈が求められます:
- 一意性: 属性は一度だけ出現すべきです(削除構文がない限り)。
- 削除の明確化: 属性を削除するための構文が必要であり、**「存在せず (削除済み)」と「値が空文字列」**を区別できることが望ましい。
- 順序无关性: 属性の出現順序は重要ではありません。
解釈例表(ベース URI: //moremaps.com/us/ma/cambridge
)
//moremaps.com/us/ma/cambridge| 相対 URI (追加部分) | 解釈されるべき最終的なパラメータ状態 | 備考 |
|---|---|---|
| scale=50000, roads=main | デフォルトの roads 設定維持(例) |
| roads=main, scale=50000 | 順序を変えても同じ意味 |
| スケールのみ追加 () | 既存パラメータは維持 |
| 縮尺を 25000 に変更 () | 他のパラメータ維持 |
| スケール維持 () | roads パラメータが空になる(削除ではなく値の指定) |
| スケール維持 () | 同上(明確化のための構文) |
| 新規パラメータ追加 () | 既存のパラメータも保持 |
注記: この仕様は、相対的なマトリクス URI が一般に実装されていないため、現時点では理論的な考察としての位置づけです。1996 年の時点では導入価値があったものの、現在のブラウザ技術とは明確に依存できません。