<urn:x-suika-fam-cx:> 名前空間

The <urn:x-suika-fam-cx:> Namespace

西瓜計画管理部登録名係技術文書(案) 2005年6月22日

この版
<http://suika.fam.cx/admin/assign/urn-work>
最新の正式版
<http://suika.fam.cx/admin/assign/urn>
最新の作業原案
<http://suika.fam.cx/admin/assign/urn-work>
前の版
<http://suika.fam.cx/admin/assign/urn-20050519>
<urn:x-suika-fam-cx:admin:27>
<http://suika.fam.cx/admin/doc.ad/n0027>
編集者
わかば (西瓜計画管理部) <w@suika.fam.cx>

概要

この文書は、 URN <urn:x-suika-fam-cx:> 名前空間を定義し、その下位空間の割当てについて説明します。

この文書の状態

この章は公表の時点でのこの文書の状態を説明しています。 他の文書がこの文書を上書きするかもしれません。

この文書は作業原案です。この文書は決して安定したものと捉えられるべきではなく、 どのような目的であっても引用規格として参照するべきではありません。 この文書はいつ他の文書によって更新されたり、廃止されたりするかもわかりません。 この文書を作業中だとせずに引用するのは不適切です。

この文書は西瓜計画管理部登録番号係が作成しています。この文書に関する御意見等がございましたら、 <sana@suika.fam.cx> までお送り下さい。頂きました御意見等は公表することがあります

はじめに

URI scheme urn: [URN]名前によって資源を識別する方法です。 この scheme を使った URI の構文は名前空間識別子 (NID) と素片識別子とその間の名前空間定義の部分に分けることができ、 名前空間定義の部分の構文と意味は名前空間識別子ごとの定義で決まります。

西瓜計画管理部では以前から x-suika-fam-cx という名前空間識別子のもと、名前空間定義の部分の構文を決定し、 識別子や識別子空間の割当てを行ってきました。 この文書はこれまでの決定を集成したものであり、 構文、等価性、意味、割当と委譲について説明しています。

表記法

この文書では、 RFC 2119 [KEYWORD] で定義された用語 しなければなりません (MUST), してはなりません (MUST NOT), するべきです (SHOULD), するべきではありません (SHOULD NOT), して構いません (MAY) を日本語で強調して使います。

構文の規定では、 ABNF [ABNF] を使います。但し、 URI は文字列であって必ずしもビット列ではないので、 終端はビット列ではなく文字であると考えます [URI 2.]

構文

この章では、 urn:x-suika-fam-cx: (大文字または小文字の任意の組合せ。) で始まる URI の構文を規定します。すべての urn:x-suika-fam-cx: から始まる URI は、この構文に適合しなければなりません。 また、この構文に適合する URI はすべて URI の一般構文 [URI] および urn: scheme の構文 [URN] にも適合するはずです。もしそれらの構文とここで定義する構文とで矛盾があれば、 それらの構文の規定が優先します。

suika-urn
= "urn:x-suika-fam-cx:" sub-nid sub-nid-specific ["#" fragment]
sub-nid
= suika-urn-atom
sub-nid-specific
= *(":" suika-urn-segment) [":"]
suika-urn-atom
= 1*(ALPHA / DIGIT / "-" / pct-encoded)
suika-urn-segment
= 1*(ALPHA / DIGIT / "-" / "_" / "." / pct-encoded)

但し、 pct-encodedfragmentURI 一般構文の仕様書 [URI] で、 ALPHADIGITRFC 2234 [ABNF] で定義されています。

素片識別子 (fragment の部分) は資源の表現の媒体型によって決定されます [URI] から、 この文書では規定しません。

Scheme 名である urn と、名前空間識別子である x-suika-fam-cx は、大文字・小文字のどの組合せで綴っても構いませんが、すべて小文字で書くべきです

suika-urn-atom では、一般に大文字・小文字を区別します。但し、 sub-nid によって特に規定がある場合はこの限りではありません。 なお、 sub-nid 自体では大文字・小文字を区別します

一般に、非予約な文字はそのまま記述しても、 百分率符号化しても常に等価です [URI 2.3.]。 しかし、非予約な文字を百分率符号化するべきではありません

非予約な文字以外は、構文的な意味を持つ場合 (例えば suika-urn 内の COLON) を除き、百分率符号化しなければなりません。 非 ASCII 文字は UTF-8 [ISO 10646] で符号化してから百分率符号化しなければなりません

2005年5月19日版までは非予約な文字のうち LOW LINEFULL STOP の使用を一切認めていませんでしたが、現在の版では使用できます。 同じく非予約な文字である TILDE は、百分率符号化しなければなりません。

URN の構文 [URN] が改訂されれば、 この文書の将来の版で百分率符号化していない TILDE の使用を認めるかもしれません。

ASCII 文字は正規化などの問題があるため、 可能な限り避けた方がよいです。 この文書の将来の版では何らかの制限や指針を加えるかもしれません。

以前は suika-urn の末尾の COLON無視しなければならないとされていましたが、 新しい応用は無視してはなりません。 しかし、 COLON の有無だけが異なる2つの URI に異なる意味を与えてはなりません (一方は未定義であっても構いません)。

正規化と比較

URI に対しては様々な等価性が定義できます [URI 6.]

単純文字列比較

最も簡単なのは単純な文字列としての比較 [URI 6.2.1.] です。この比較方法では、2つの URI を構成する文字を比較し、まったく同じであれば等価、 そうでなければ異なるとします。

urn:x-suika-fam-cx: URI は単純な名前として使われることが多いと考えられますから、 ほとんどの場合はこの方法で比較がなされることとなるでしょう。 ですから、できるだけ常に正準形に正規化された URI を使用するべきです

等価性特性

何らかの正規化を行った上で行う比較 (あるいは何らかの違いを無視した比較) には色々な方法があります。 ここではその正規化の性質とその名前 (等価性特性) を定義します。

名前
非予約文字の百分率符号化
Percent‐encoded Unreserved Characters
識別子
<http://suika.fam.cx/~wakaba/archive/2005/5/equiv-percent>
等価性
非予約文字を百分率符号化したものは、 非予約文字そのものと等価。
正準形
非予約文字そのものによる表現 [URI 6.2.2.2.]
名前
百分率符号化十六進字母
Cases in Percent‐encoded Triplets
識別子
<http://suika.fam.cx/~wakaba/archive/2005/5/equiv-percent-digit>
等価性
百分率符号化した結果における小文字は、大文字と等価。
正準形
大文字 [URI 6.2.2.2.]
名前
URI Scheme
Cases in URI Scheme Names
識別子
<http://suika.fam.cx/~wakaba/archive/2005/5/equiv-scheme>
等価性
scheme において、大文字は小文字と等価。
正準形
小文字 [URI 6.2.2.1.]
名前
URN 名前空間識別子
Cases in URN NIDs
識別子
<http://suika.fam.cx/~wakaba/archive/2005/5/equiv-urn-nid>
等価性
URN の名前空間識別子において、 大文字と小文字は等価。
正準形
小文字。

解決

ある URI が直接取出し (retrieve) できない場合において、その URI の代わりに取出しを行うことでその URI から取出しを行ったとみなしても良いと考えられる別の URI が存在する時、これを解決 URI といいます。 解決 URI は、元の URI とある文脈において同等と考え得る一次解決 URI と、 同等ではないものの代わりとし得ることがある二次解決 URIに分けることができます。

urn:x-suika-fam-cx: に属する URI には、解決 URI一次二次に関わらず任意個定義できます。

解決 URI を定義する場合は、 RDF/XML を基にした解決 URI の表 [URIMAP] を提供するべきですこの辺の規定をもう少しきちんとする必要があります。 URIMAP の仕様書も必要です。

西瓜 Webでは数年前に解決器が運用されていましたが、 現在諸事情により停止しています [N2L]

割当

<urn:x-suika-fam-cx:> の構文における sub-nid の値は、西瓜計画管理部登録名係で管理します。登録済み sub-nid の一覧 [LIST] をご覧下さい。

新規登録・登録内容の変更

新しい sub-nid の登録や既存の sub-nid の登録内容の変更は、 次の手続きにより行います。

  1. 登録雛形を埋めて、電子メイルで <sana@suika.fam.cx> へ、 または電子ニュースsuika.admin (NNTP / HTTP) までお送り下さい。
  2. 電子メイルでお送り頂いた場合は、担当者が電子ニュースに転送します。
  3. 最低2日の評価期間中に技術的、その他の問題を検討します。
  4. 評価の結果特に問題が無ければ、あるいは評価期間中の修正を経て、 担当者は登録簿 [LIST] を更新します。 登録簿と登録雛形は、 Web やその他適当な媒体で公開します。

登録内容の変更の場合、非互換な変更を行うことはできません。 また、一旦登録したものを削除することはできません。 使用しないことにする時は、状態を非推奨として下さい。

登録の条件

他の URI で表せないこと
他の URI scheme, urn: の他の名前空間, あるいは別の <urn:x-suika-fam-cx:> URI で表せるものに割当てを行うべきではありません

UUID には <urn:uuid:> を使うべきであり、新たに割当てを行うべきではありません。

一次定義文書が存在しないこと
一次定義文書が存在する場合は、新たに割当てを行うべきではありません。 代わりに、取出し可能な場所に配置し、その取出しプロトコルに対応する URI を使用するべきです。

XML 名前空間名として使用する URI は、例えば HTTP で取出し可能な場所に名前空間文書 (人間可読な説明文や DTD など) を配置し、その http: URI を使用するべきです。

RDF 語彙は、 RDF/XML などによる表現を例えば HTTP で取出し可能な場所に配置し、 その場所によって決まる http: URI を使用するべきです。

ある名前空間を使わない XML の語彙があり、 その語彙を管理している組織が今後も名前空間 URI を定義しそうにない場合、 <urn:x-suika-fam-cx:> URI を割当てても構いません。 名前空間定義文書の代わりに使えそうな資源が公式に提供されていれば、 それを一次解決 URI に指定するべきです。非公式に提供されていれば、 それを二次解決 URI に指定するべきです。

実際には、この例の場合は <urn:x-suika-fam-cx:> 名前空間直下にではなく、 <urn:x-suika-fam-cx:markup:> [LIST-MARKUP] に登録するべきです。

この条件は2005年1月19日版で追加されました。 それ以前に登録された URI の中にはこれに反するものもあります。それらに関しては、 この条件を満たさないことだけを理由に登録を取消したり非推奨としたりすることはありません。

権利上問題が無いこと
権利等の問題があるものを割当ててはなりません。例えば、 著作権上問題があるプログラムの断片を使用することはできません。 また、商標権的に問題となり得る名前を使用してはなりません。

登録雛形

sub-nid の登録の際には次の雛形を埋めて提出する必要があります。

sub-nid
(urn:x-suika-fam-cx: の直後に来る文字列です。)
版番号
(最初の登録では 1 とし、 以後修正がある毎に1ずつ増やしていきます。 必要があれば飛ばしても構いません。)
登録日
(提案 (登録) 者は提出時には空欄としておきます。 登録担当者は登録時に日付を挿入します。)
登録者
(登録者の名前と連絡先です。 連絡先はインターネットの電子メイルのアドレスにするべきです。)
構文と意味
(sub-nid-specific の部分の構文と意味です。規定の方法は自由ですが、 曖昧なく定義しなければなりません。 構文は可能な組合せをすべて列挙するか、 または ABNF [ABNF] を使用するのが望ましいです。西瓜 Webにある文書を参照しても構いません。)
識別子の固有性
(識別子の固有性に関する考察です。 異なる意味を持つ同じ識別子が同時に存在してしまうことは防ぐべきです。)
識別子の永続性
(識別子の永続性に関する考察です。 ある識別子が一旦割当てられた後は、その識別子を別のものに割当ててはなりません。 使用を中止する時はそのことを明記して保留しなければなりません。)
識別子割当手続き
(識別子の割当ての方法についての規定です。)
識別子解決処理
(識別子の解決の方法についての規定です。)
識別子の等価性
(識別子の等価性についての規定です。)

権利等に関して

著作権等の問題がある URI<urn:x-suika-fam-cx:> のもとに作成してはなりません

割当てられた、あるいは下位で委譲された <urn:x-suika-fam-cx:> URI は、 原則としてどなたでも自由に使用して構いません。

登録済み sub-nid の変更権は、登録者と西瓜計画管理部登録名係の両者が有します。

引用規格

ABNF
RFC 2234, Augmented BNF for Syntax Specifications: ABNF, D. Crocker, P. Overell, IETF, 1997年11月, <urn:ietf:rfc:2234>
ISO 10646
ISO/IEC 10646:2003, Information Technology ― Universal Multiple‐Octet Coded Character Set (UCS), ISO/IEC, 2003年12月。
KEYWORD
RFC 2119, Key words for use in RFCs to Indicate Requirement Levels, S. Bradner, IETF, BCP 14, 1997年3月, <urn:ietf:rfc:2119>
LIST
登録済み <urn:x-suika-fam-cx:> sub-nid の一覧, 西瓜計画管理部登録名係, <http://suika.fam.cx/admin/assign/urn-x-suika-fam-cx> (最新版)。
RFC 3406
RFC 3406, Uniform Resource Names (URN) Namespace Definition Mechanisms, L. Daigle, et al., IETF, BCP 66, 2002年10月, <urn:ietf:rfc:3406>
URI
RFC 3986, Uniform Resource Identifier (URI): Generic Syntax, T. Berners‐Lee, et al., IETF, STD 66, 2005年1月, <urn:ietf:rfc:3986>
URN
RFC 2141, URN Syntax, R. Moats, IETF, 1997年5月, <urn:ietf:rfc:2141>

参考文献

IANAREG
URN Namespaces, IANA, <http://www.iana.org/assignments/urn-namespaces>
LIST-MARKUP
登録済み <urn:x-suika-fam-cx:markup:> URI の一覧, 西瓜計画管理部登録名係, <http://suika.fam.cx/admin/assign/urn-x-suika-fam-cx-markup> (最新版)。
N2L
RFC 2169 A Trivial Convention for using HTTP in URN Resolution に基づく URN 解決器, <http://suika.fam.cx/uri-res/N2L>
N2L-AJAX
西瓜 URN 解決器 (Ajax 版), <http://suika.fam.cx/uri-res/2005/ajax>

URN 名前空間識別子定義雛形

この文書で定義した <urn:x-suika-fam-cx:> 名前空間は IANA に登録 [IANAREG] されていないものですが、 IANA に登録する際に使用する雛形 [RFC 3406] を埋めたものを次に示します。

名前空間識別子
x-suika-fam-cx
版情報
版番号: 5
日付: YYYY-MM-DD
名前空間定義者
名前
西瓜計画管理部登録番号係
担当者
わかば
電子メイル: w@suika.fam.cx
構造
構文の章で規定しています。
関連補助文書
この文書と登録簿 [LIST]
識別子固有性
名前空間識別子 x-suika-fam-cx は 実験用のための x- 接頭辞を使用し、 残りの部分は DNS の名前に基づいています。 余程のことがない限り、そして西瓜計画DNS の名前 suika.fam.cx を確保している限りにおいては、 第3者の識別子と衝突することはないと考えられます。
sub-nid はこの文書で登録手続きを規定しています。 手続きに従って sub-nid が使用される限り、 この部分の固有性は保障されます。
更に、残りの部分は sub-nid ごとに規定されます。 ですから、使用する sub-nid によって識別子の全体としての固有性が決定されます。
識別子永続性
識別子固有性の項で述べたことが永続性についても言えます。
この文書は、 sub-nid ごとに規定される部分の規定に対して永続性を保証することを求めています。
識別子割当処理
割当の章で規定しています。
識別子解決処理
解決の章で規定しています。
字句等価性規則
正規化と比較の章で規定しています。
URN 構文適合性
特記事項なし。
検証機構
規定なし。
適用範囲
大域。

非推奨の等価性特性

この附属書では、 以前の規定との互換性のための等価性特性を定義します。 ここで定義する等価性特性は非推奨とします。

名前
末尾の COLON
Trailing COLONs
識別子
<http://suika.fam.cx/gate/2005/sw/urn%3Ax-suika-fam-cx#anchor-6>
等価性
urn:x-suika-fam-cx: で始まる URI (これ自体を含みません。) において、末尾に COLON が1つ含まれても1つも含まれなくても等価。
注意
この等価性は、以前の規定との互換性のためにここに定義しますが、 新しい応用では使用してはなりません

以前の版からの変更点

この附属書では、 以前の版の規定からの変更点を簡単に説明します。

2005年5月19日版からの変更点