5. URN 名前空間
URN 名前空間は、3 つの制約に従う名前の集合です。各名前は (1) 一意であり、(2) 一貫した方法で割り当てられ、(3) 共通の定義に従って割り当てられます。
-
「一意性」の制約とは、URN 名前空間内の名前が複数のリソースに割り当てられることがなく、異なるリソースに再割り当てされることもないことを意味します (URN 名前空間内で割り当てられた URN によって識別される種類の「リソース」について)。これは、名前自体が非推奨となったり廃止されたりした場合でも当てはまります。
-
「一貫した割り当て」の制約とは、URN 名前空間内の名前が、組織によって割り当てられるか、常に従われるプロセスまたはアルゴリズムに従って作成されることを意味します。
-
「共通の定義」の制約とは、URN 名前空間内の名前の構文、およびそれらを割り当てまたは作成するプロセスについて明確な定義があることを意味します。
URN 名前空間は、URN の世界的な一意性を確実にし、任意で、URN 名前空間内で割り当てられる URN の構造に関する手がかりを提供するために、特定の NID によって識別されます。
世界的な一意性に関して、名前の集合ごとに異なる NID を使用することにより、異なるリソースに対して 2 つの URN が同じになることがないことが保証されます。なぜなら、各集合は各名前を一意に割り当てることが要求されるからです。しかし、単一のリソースに複数の URN が割り当てられてもかまいません (MAY)。それは同じ URN 名前空間内であっても (URN 名前空間がそれを許す場合)、異なる URN 名前空間内であってもよく、また同様の目的のためであっても異なる目的のためであってもかまいません。(例えば、出版社が電子出版物に ISBN [RFC3187] を割り当て、その出版物が後に国立図書館が運営するデジタル長期保存アーカイブに取り込まれた場合、図書館はその出版物に全国書誌番号 (NBN) [RFC3188] を割り当てるかもしれません。その結果、同じ本を参照する 2 つの URN が生じます。)URI 構文 [RFC3986] によって課される制約など他の制約に従うことを条件として、URN スキームの規則は、非 URN 識別子システムで規定された名前を URN として扱う際に、その通常かつ自然な形式を保持できるようにすることを意図しています。
URN 名前空間内で割り当てられる名前の構造に関して、名前付け構造 (ひいては名前の集合) の開発は、名前を定義するコミュニティの要件、名前がどのように割り当てられ使用されるかなどに依存します。これらの問題は、非 URN 識別子システムや特定の URN 名前空間を定義するコミュニティに固有のものであるため、URN 構文および URN 名前空間の一般規則の範囲を超えています (例えば、"ISBN" URN 名前空間 [RFC3187] および "ISSN" URN 名前空間 [RFC3044] の場合の書誌・出版コミュニティ、または "XMPP" URN 名前空間 [RFC4854] の場合の Extensible Messaging and Presence Protocol [RFC6120] の拡張の開発者など)。
コロン文字 (":") は "urn" と NID を、また NID と NSS を分離するために使用されるため、URN 全体がコロン文字によって構造化されていると考えたくなり、コロンが URN の NSS 部分内に構造や階層を作り出していると想定したくなります。そのような構造は特定の NID 仕様によって規定されることはあり得ますが、暗黙の構造は存在しません。次のような URN では
urn:example:apple:pear:plum:cherry
NSS 文字列は全体として "apple🍐plum:cherry" であり、その NSS 文字列内のコロン文字には、"example" 名前空間の仕様にそのような意味が記述されていない限り、特定の意味はありません。
URN 名前空間は、URN の性質により、特定の権利と責任を継承します。特に次のとおりです。
-
リソースの永続的な識別と、共通の定義に従った名前の一意な割り当てを提供することにより、適切に管理された URN 名前空間の一般原則を支持します。
-
任意で、[RFC2483] に記述されているような世界的な登録サービスに登録できます。
URN 名前空間には、フォーマルとインフォーマルの 2 つの種類があります。これらは、期待されるサービスの水準、URN 名前空間を定義するために必要な情報、および登録の手順によって区別されます。これまでに登録された URN 名前空間の大多数がフォーマルであるため、本書はフォーマルな URN 名前空間に焦点を当てます。
5.1. フォーマルな URN 名前空間
フォーマルな URN 名前空間は、インターネット上のユーザーの一部の集合に利益をもたらします。特に、インターネットに接続されていないコミュニティやネットワークによってのみ使用されるフォーマルな URN 名前空間は意味をなしません。例えば、一般のインターネットユーザーに開かれていない独自のネットワークやサービスの使用を実質的に強制する URN 名前空間は不適切でしょう。意図されているのは、その URN 名前空間内で割り当てられた URN を積極的に使用するかもしれないコミュニティが小さくても、その URN 名前空間内の名前の潜在的な使用がインターネット上のあらゆるユーザーに開かれているということです。フォーマルな URN 名前空間は、一部の側面が完全に開かれていない場合でも適切であることがあります。例えば、URN 名前空間は、その URN 名前空間内での URN の割り当てのために、有料の、私的に管理された、または独自のレジストリを利用する場合があります。しかし、それでも、関連するサービスが名前を公開している場合には、一部のインターネットユーザーに利益をもたらすかもしれません。
フォーマルな URN 名前空間内で URN を割り当てようとする組織は、以下の基準を満たすべきです (SHOULD)。
-
組織的な安定性と、URN 名前空間を長期間維持する能力。そのような証拠がない場合、組織が URN 名前空間を維持できなくなったときに、その URN 名前空間がどのように存続可能であり続けられるかが明確であるべきです。
-
URN の割り当てに関する能力。これは永続性の可能性を高めます (例えば、衝突の可能性を最小限にするため)。
-
既存の URN を再割り当てせず、古い URN が引き続き有効であり続けることを許容するという確約 (例えば、URN の割り当て先が割り当て組織のメンバーや顧客でなくなった場合、割り当て先や名付けられた実体に関するさまざまな情報がたまたま変更された場合、あるいは割り当て先や名付けられた実体自体がもはや存在しない場合であっても。これらすべての場合において、URN は依然として有効です)。
フォーマルな URN 名前空間は、以下の制約 (既に規定された構文規則に加えて) を条件として、特定の NID を確立します。
-
既に登録されている NID であってはなりません (MUST NOT)。
-
"urn-" で始まってはなりません (MUST NOT) (これはインフォーマルな URN 名前空間のために予約されています)。
-
3 文字以上でなければならず (MUST)、ALPHA ALPHA "-"、すなわち 2 つの英字の後に 1 つのハイフンが続く任意の文字列で始まってはなりません (MUST NOT)。そのような文字列は、URN 名前空間の最終的な国別登録のために、ISO alpha-2 国コード [ISO.3166-1] に基づく NID として使用される可能性のために予約されています (ただし、そのような国コードベースの URN 名前空間に対する責任の配分に関する規則の定義と適用範囲は本書の範囲外です)。結果として、"xn--" という文字列、または 2 つの英字の後に 2 つのハイフンが続くその他の任意の文字列で始まってはなりません (MUST NOT)。そのような文字列は、将来における DNS A-label および類似の文字列の表現の可能性のために予約されています [RFC5890]。
-
"X-" という文字列で始まってはなりません (MUST NOT)。これは、[RFC3406] によって以前に許可されていた実験的な URN 名前空間と混同または衝突しないようにするためです。
新しい NID を検討する申請者およびレビュアーは、それらが意味論的な含意を持ち、したがって衝突の原因となり得ることに留意すべきです。国 (ISO 3166-1 alpha-3 コードを含む) の識別子として、または国の権限の下で登録されたものとして解釈され得る文字列、および既存の URI スキーム、非 URN 識別子システム、または商標との関連を示唆し得る文字列には、特に注意を払うべきです。ただし、従来の方針に従い、特定の文字列の「所有権」に関する紛争は関係当事者間の不一致であり、管轄権を有する裁判所の命令に応じる場合を除き、IANA も IETF もそのような紛争に関与しません。
5.2. インフォーマルな URN 名前空間
インフォーマルな URN 名前空間は、関連するすべての権利と責任を伴う、一人前の URN 名前空間です。インフォーマルな URN 名前空間は、NID を割り当てるプロセスにおいてフォーマルな URN 名前空間と異なります。インフォーマルな URN 名前空間では、登録者は NID を指定せず、代わりに IANA が "urn-" という文字列の後に 1 つ以上の数字を続けた NID (例えば "urn-7") を割り当てます。ここで数字は、インフォーマルな URN 名前空間に割り当てられた正の整数のシーケンスの中で次に利用可能な番号からなります。したがって、インフォーマルな URN 名前空間識別子の構文は次のとおりです。
InformalNamespaceName = "urn-" Number
Number = DigitNonZero 0*Digit
DigitNonZero = "1"/ "2" / "3" / "4"/ "5"
/ "6" / "7" / "8" / "9"
Digit = "0" / DigitNonZero
<Number> に対する唯一の制限は、(1) 厳密に ASCII の数字のみで構成されること、(2) 先頭にゼロを持たないこと、(3) NID が URN 構文に対して定義された長さの制限を超える原因にならないことです (2 節を参照)。