Uniform Resource Name(URN)とは
Uniform Resource Name(URN, 統一資源名)は、`urn` スキームを使用する Uniform Resource Identifier (URI) の一種です。URNは、識別するリソースへのアクセス可能性を保証するものではありません。URNはリソースの名前として機能し、
Uniform Resource Locator(URL)はリソースの場所を示すものとして機能します。両方ともURIであり、一つのURIが名前と場所の両方を表すこともあります。
URNの機能要件は RFC 1737 で定義されており、インターネット情報アーキテクチャの一部として、URN、Uniform Resource Characteristic(URC)、URLの三要素で構成されています。
- - URN: リソースを識別するために使用されます。
- - URC: リソースに関するメタ情報を提供します。
- - URL: リソースの位置を示し、アクセスするために使用されます。
URNの文法
RFC 2141 (1997年5月発行)では、URNの文法をBackus-Naur Form(BNF)で以下のように定義しています。
::= "urn:" ":"
- - ``: 名前空間識別子(Namespace Identifier)
- - ``: 名前空間固有文字列(Namespace Specific String)
先頭の `urn:` は小文字でなければなりません。名前空間識別子は、名前空間固有文字列の解釈方法を決定します。
URLとの比較
URNは個人の名前のようなものであり、URLは個人の住所のようなものと例えられます。URNはリソースの識別子を定義し、URLはそのリソースを探す方法を提供します。これは「what(何)」と「where(どこ)」の関係と言えます。
URNは書籍を一意に識別するISBNに例えられることがあります。ISBNをURNとしてエンコードすることも可能です。例えば、ある書籍について議論する場合、その書籍のURNを知っていれば、その書籍について読んだかどうか、面白いかどうかなどを議論できます。しかし、実際にその書籍を読むためには、その書籍がある場所(例えば、図書館の書架、自宅の本棚など)を知る必要があります。したがって、URNとURLは補完的な関係にあります。
例えば、「RFC 3187」について議論する場合、以下のように表現できます。
`urn:ietf:rfc:3187` (URN) は `https://datatracker.ietf.org/doc/html/rfc3187.html` (URL) にあります。
URNの例
以下に、URNの具体的な例を挙げます。
- - `urn:ISBN:0451450523`: 書籍「The Last Unicorn」のURN(ISBNを使用)
- - `urn:isan:0000-0000-9E59-0000-O-0000-0000-2`: 映画「スパイダーマン」のURN(国際標準視聴覚番号を使用)
- - `urn:issn:0167-6423`: 科学雑誌「Science of Computer Programming」のURN(ISSNを使用)
- - `urn:ietf:rfc:2648`: IETFの RFC 2648 のURN
- - `urn:mpeg:mpeg7:schema:2001`: MPEG-7ビデオメタデータのデフォルト名前空間ルール
- - `urn:oid:2.16.840`: アメリカ合衆国を示すOIDに対応したURN
- - `urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66`: UUID version 1 を使ったURN
- - `urn:uci:I001+SBSi-B10000083052`: SBS放送のドラマ「Snow Flower」を指す Universal Content Identifier ID (RFC 4179)
標準的でない使用法
以下の例は、公式に登録された名前空間を使用しておらず、RFC 2141およびRFC 3406に照らすと不正なURNです。
- - `urn:www.agxml.org:schemas:all:2:0`: スキーマ「Agricultural Markup Language 2.0 for Grain and Oilseed Business」の非標準URN
- - `urn:sha1:YNCKHTQCWBTRNJIV4WNAE52SJUQCZO5C`: マーティン・ルーサー・キング・ジュニアの演説「I Have a Dream」のMP3ファイルを、SHA-1ハッシュをBase32でエンコードした非標準URN
- - `urn:tree:tiger:BL5OM7M75DWHAXMFZFJ23MU3LVMRXKFO6HTGUTY`: 上記と同じMP3ファイルをTigerハッシュ木でエンコードした非標準URN
- - `urn:sici:1046-8188(199501)13:1%3C69:FTTHBI%3E2.0.TX;2-4`: 雑誌「ACM Transactions on Information Systems」の特定記事をパーセントエンコードしたSICIコード
これらの非標準的なURNは、特定のアプリケーションやコンテキストで使用されることがあります。
まとめ
URNは、リソースを識別するための重要なメカニズムであり、URLと組み合わせて使用することで、インターネット上のリソースを効率的に管理し、アクセスすることが可能になります。URNは、リソースの場所に関わらず、一意に識別できる名前を提供する点がURLと大きく異なります。