要約

  • RFC 5165 は ogc のURN空間と命名責任を定めたが、個々の名前が永遠に推奨状態に留まるとは定めなかった。
  • OGCの現在の登録手続きは submitted、valid、superseded、retired、invalid、experimental などを区別する。現在の解決結果は、過去の判断時点の状態を自動的には証明しない。

昨日まで有効だった定義が、今日になって後継に置き換わったとする。古い名前を消せば参照済みデータを読めない。古い名前を何も説明せず最新定義へ送れば、過去の計算を違う規則で再現してしまう。

永続性が必要なのは文字列だけではない。状態の履歴にも永続性が必要だ。

RFC 5165 は2008年のInformational文書で、OGCの正式なURN NIDを ogc とした。urn:ogc:{OGCresource}:{ResourceSpecificString} という構造を示し、OGC Naming Authorityが資源クラスと登録値を管理する。IANAの現行登録にも ogc は残っている。

ただし、NIDの継続と個別名の状態は別である。IANAの行はOGC空間の存在を示す。個々のCRS、仕様、サービス型がいつ有効で、誰が割り当て、何に置き換わったかはOGC側の登録記録が担う。

「現在取れる」は過去の適用証拠ではない

RFCは当時、運用中のOGC URN resolverがあると報告した。一方で、名前空間をResolution Discovery Systemに載せる必要はないとし、独立したvalidation mechanismも指定しなかった。割り当ての正当性はONAの手続きに依存していた。

後にOGCは、新しい公開永続識別子を原則としてHTTP URIで発行する方針へ移った。現在の手続きはHTTP URIとURNを等価な識別子として扱えると説明するが、HTTPはWeb基盤で解決でき、URNは場所や一つの解決方式を含意しない。

ここで、現在のHTTP応答を過去のURNの完全な代用品にしてはいけない。応答は現在のサーバ、リダイレクト、表現選択、キャッシュの結果である。過去の利用者が見た定義と同じかどうかは、版と状態の記録が必要だ。

今回取得したEPSG 4326と26986のOGC定義パスは、リダイレクト後にHTTP 200を返した。これは二つの観測であり、名前空間全体の可用性や歴史的同一性の証明ではない。

状態語は運用命令である

OGCの2021年手続きでは、申請中の項目はまだ受理されていない。受理されればvalidになる。supersededは後継があり、前任・後継の参照を持つ。retiredは推奨されないが、必ずしも後継があるわけではない。invalidは重大な誤りの判断を含む。experimentalは警告なしの変更や撤回があり得る。

これらを一つの active=false に潰すと判断材料が失われる。置換された定義は新規利用には不向きでも、旧データの復元に必要かもしれない。無効な定義は単に古いのではなく、誤りを含む可能性がある。退役は誤りと同義ではない。

状態は画面の装飾ではなく、クライアントが何をしてよいかを変える運用命令である。

個別登録と生成規則も分ける

Category Aはサービスから取得できる離散資源を指し、個々に登録される。Category Xは登録済み規則から構成され、個別に取得できる資源がない場合もある。後者に全件HTTPページを要求すれば誤警報になる。前者の取得不能を「規則で生成できるから問題ない」と扱えば、本当の障害を見逃す。

さらにRFC 5165は、未登録の実験値が衝突し得ることを明記した。文法が正しいだけでは正式名にならない。正規情報源は、見た目のパターンではなくOGC-NA registerである。

監査記録にはNID、クラス、発行・委任主体、利用時点の状態、前任/後継、URN/HTTPの等価根拠、応答時刻、取得内容、版、利用結果を残す必要がある。最新画面のスクリーンショット一枚では足りない。

情報源