/
427.txt
258 lines (188 loc) · 12.1 KB
/
427.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
[3] [DFN[URN]] ([DFN[Uniform Resource Names]], [DFN[統一資源名]])
は、 [ABBR[[[URI]]][Uniform Resource Identifiers]] の
[Q[名前]]としての性質を指した言葉です。
[ABBR[URI][Uniform Resource Identifiers]] は[Q[識別子]]ですが、
[[Webブラウザ]]のように物理的な[RUBY[番地][アドレス]]
(所在を表す記号) として使われることがよくあります
(この性質を指して [DFN[[ABBR[[[URL]]][Uniform Resource Locators]]]]
といいます)。それに対して、[[資源]] ([Q[もの]])
の'''名前'''として [ABBR[URI][Uniform Resource Identifiers]]
を捉えるのが [ABBR[URN][Uniform Resource Names]] 的考え方です。
もちろん、所在地と名前は対立するものではなく、
時には所在地が名前となったり、名前を所在地に使えたりします。
以前には所在地 (URL) と名前 (URN) を別のものと考えていた時代もありましたが、
現在ではあらゆる識別子 (URI) を名前と見なし得るので、
[Q[URN]] という概念自体があまり使われなくなっています。
* 古い考え方
[18] 以前は、よく [Q[URI = URL + URN]] ということが言われていました。
[[資源]] ([Q[もの]]) の[Q[識別子]]である [[URI]] は、
[[資源]]を位置で識別する [[URL]] と名前で識別する [[URN]]
の (たぶん重ならない) 2つの集合の和であると考えられていたのです。
[[URL]] が先に実用化・標準化されたのですが、元々は URL と URN
というようなことは考えられなかったので、 URL の識別方法を表す
[[scheme]] ([SAMP(URI)[[[http]]:]] など) は[Q[[[根]]]]名前空間に定義され、
後から定義される URN は [CODE(URI)[[[urn]]:]] [[URI scheme]]
に収納 (例: [[ISBN]] を使って書式を識別する [SAMP(URI)[[[urn:isbn]]:]]
URN scheme ([[NID]])。) して名前空間を分けることが予定されていました。
しかし、 >>3 のような URI は URL でもあり、 URN
でもあるという考え方が一般的になり、分かりやすい
[Q[URI = URL + URN]] という式も、 [CODE(URI)[urn:]] [[URI scheme]]
に [[URN]] を納めるという話も怪しくなってきました。
というより元々 [CODE(URI)[[[mid]]:]]
([CODE(822)[[[Message-ID]]]] を使って[[メッセージ]]を識別。) のような URN
らしい [Q[[[URL]]]] があったり、最初から怪しかったといえば怪しかったのです。
第一 [[URI]] の発明者である [[TimBL]] は、最初から [[URL]]
ではなく [[URI]] [WEAK[(当初は [[UDI]])]] を提案していました。
[32] '''[[URN]]と[CODE(URI)@en[[[urn]]:]] scheme'''
歴史的経緯はともかく、現代的な考え方では[[URL]] ([[番地]])
と[[URN]] ([[名前]]) に明確な区別は''なく''、
個々の[[URI]]が[[番地]]的性質を持っていたり、
[[名前]]的性質を持っていたり、両方の性質を持っていたりするに過ぎません。
従って、[[URN]]的性質を持った[[URI]]が必ずしも[CODE(URI)@en[[[urn]]:]]
[[URI scheme]]をつかって要る必要は''ありません''。
例えば[CODE(URI)@en[[[tag]]:]] [[URI scheme]]は[[URN]]的性質を持っています。
また、[CODE(URI)@en[[[http]]:]] [[URI scheme]]も[[名前空間URI]]として使われる時は[[URI]]的性質を持っています。
** メモ
- [7] URN と [[URL]] の違いは、あるものを論理的に命名するか物理的に命名するか。参考 (にはあまりならないかも): <http://pc.2ch.net/hp/kako/992/992708594.html> >>150-170
- [8] URI を URL と URN に二分する考えからすると、 URN は [[urn:]] [[scheme]] の URI ということになる。 URN/URL をもっと概念的に捉えると、 URL と URN の区別は一意には定まらない。 (例えば [SAMP(URI)[http://foo.example/nanika/no/namae>]] は一見 URL だが、意味的に URN かもしれない。) この2つの考え方はどちらが正しいというものでもない。
[17] ''WIRE - W3 Identifier Resolution Extensions'' <http://ftp.ics.uci.edu/pub/ietf/http/draft-girod-w3-id-res-ext-00.txt> :
[[HTTP]] を微妙に拡張して URN の解決に使おうという I-D。
* [CODE(URI)[urn:]] URL scheme
** NID
[28] [CODE(URI)[urn:]] shceme の URI で
文字列 [SAMP(URI)[urn:]] の直後にくる文字列は、
[DFN[名前空間識別子]] ([DFN[[[NID]]]]) といいます。
詳しくは [[NID]] をごらんください。
** 不正な URN
[29] [[名前空間]] [SAMP(URI)[[[urn:mozilla]]]] の URN では、
[CODE(URI)[/]]
が使われることがありますが、これは URN 構文では認められていません。
[30] 名前空間名 (NID) [CODE(URI)[x-suika.fam.cx]],
[CODE(URI)[x-tomikou.net]] が以前使われていましたが、
文字 [CODE(URI)[.]] は NID では認められていないので
[CODE(URI)[[[urn:x-suika-fam-cx]]]]
と [CODE(URI)[[[urn:x-tomikou-net]]]] に変更されました。
** メモ
[16] Q: [SAMP(URI)[''urn'':[VAR[nid]]:[VAR[*]]]] の
[Q[[SAMP(URI)[urn]]]] の部分と [Q[[SAMP(URI)[[VAR[nid]]]]]]
の大文字・小文字は区別されますか?
[27] A: >>16 どちらもされません。但し、その後の [SAMP(URI)[[VAR[*]]]]
の部分で区別されるかされないかは、
その個々の定義によるので一概には言えません。 (一般には区別されます。)
* 普遍資源名機能 (Web SGML)
[13] [[WebSGML]] では、 [[SGML宣言]]の[[他機構]]で宣言できる機能に
[CODE(SGML)[URN]] が加わりました。
-[14] [CODE(ABNF)[[DFN[urn feature]] = 1*[[ps]] 'URN' 1*ps ('NO' / 'YES') ;; Web SGML [198.1] (K.3.8.1)]]
この機能が有効である場合、[[公開識別子]]は [[RFC 2141]]
の普遍資源名として解釈されます。
なお、旧来の [[SGML]] から存在する [CODE(SGML)[[[FORMAL]]]]
も有効になっている場合は、公開識別子は、
[[公式公開識別子]]又は URN のいずれかとして解釈されます。
[WEAK[URN は必ず [CODE(ABNF)["urn:"]] から始まり、一方公式公開識別子は [[ISO所有者識別子]]が使われない限り絶対に衝突しません。 ISO 所有者識別子は、 [[ISO]] の気が狂いでもして、その出版物の名前の最初の4文字を [CODE(ABNF)["urn:"]] にしたりでもしない限り、衝突しません。仮にこの部分で衝突したとしても、公的公開識別子は絶対に[[間隔]]を含みますが、逆に正しい URN は絶対に含まないので、確実に区別できます。]]
[15] この機能は悪くはありませんが、実際には URN NID の登録は成功しておらず、色々な人が勝手に使っています。従って URN を使っても、[[未登録所有者識別子]]と同程度しか一意性の保証ができません。従って、公開識別子に URN を使用するくらいなら、[[インターネット・ドメイン名所有者識別子]]を使う方が賢明でしょう。
* 解決
[40]
[[URN]] は「名前」であり、 [[URL]] とは違って[[プロトコル]]によるアクセス方法の記述では無いとされていました。
[DFN[URNの解決]]によって[[資源]]を得るためには、
そのための[[プロトコル]]が必要であるとされ、いくつかの方法が提案されました。
[FIG(short list)[ [41]
- [CODE[/uri-res/]]
- [[DDDS]]
]FIG]
* 関連
- [19] [[XRI]]
- [20] [[PURL]]
-[21] [[FPI]]
* 歴史
[REFS[
- [[RFC2141]]
-- 『URN Syntax (URN 構文)』
-- R. Moats, 1997年5月。提案標準。
]REFS]
[22] [CITE[IRC logs: freenode / #whatwg / 20100131]]
([TIME[2010-02-02 22:30:53 +09:00]] 版)
<http://krijnhoetmer.nl/irc-logs/whatwg/20100131#l-262>
[23] [CITE@en[Uniform Resource Names, Revised (urnbis) - Charter]]
( ([TIME[2011-03-05 16:21:56 +09:00]] 版))
<https://datatracker.ietf.org/wg/urnbis/charter/>
[24] [CITE@en[draft-ietf-urnbis-semantics-clarif-00 - URN Semantics Clarification]]
( ([TIME[2014-10-17 02:49:34 +09:00]] 版))
<http://tools.ietf.org/html/draft-ietf-urnbis-semantics-clarif-00>
[25] [CITE@en[draft-ietf-urnbis-ns-reg-transition-03 - Uniform Resource Name (URN) Namespace Registration Transition]]
( ([TIME[2014-10-16 23:13:55 +09:00]] 版))
<http://tools.ietf.org/html/draft-ietf-urnbis-ns-reg-transition-03>
[26] [CITE@en[draft-ietf-urnbis-rfc2141bis-urn-08 - Uniform Resource Names (URNs)]]
( ([TIME[2014-12-30 21:52:42 +09:00]] 版))
<http://tools.ietf.org/html/draft-ietf-urnbis-rfc2141bis-urn-08>
[1] [CITE@en[RFC 3404 - Dynamic Delegation Discovery System (DDDS) Part Four: The URI Resolution Application]]
([TIME[2017-04-23 18:20:18 +09:00]])
<https://tools.ietf.org/html/rfc3404>
[2] [CITE@en[RFC 1737 - Functional Requirements for Uniform Resource Names]]
([TIME[2017-04-16 16:25:02 +09:00]])
<https://tools.ietf.org/html/rfc1737>
[4] [CITE@en[RFC 2169 - A Trivial Convention for using HTTP in URN Resolution]]
([TIME[2017-04-24 00:22:00 +09:00]])
<https://tools.ietf.org/html/rfc2169>
[5] [CITE@en[RFC 2483 - URI Resolution Services Necessary for URN Resolution]]
([TIME[2017-04-16 16:20:23 +09:00]])
<https://tools.ietf.org/html/rfc2483>
[6] [CITE@en[RFC 2168 - Resolution of Uniform Resource Identifiers using the Domain Name System]]
([TIME[2017-04-23 19:27:05 +09:00]])
<https://tools.ietf.org/html/rfc2168>
[9] [CITE[Uniform Resource Names (URN) Progress Report]]
([TIME[2013-05-10 03:59:13 +09:00]])
<http://www.dlib.org/dlib/february96/02arms.html>
[10] [CITE@en[RFC 2276 - Architectural Principles of Uniform Resource Name Resolution]]
([TIME[2017-04-16 22:04:11 +09:00]])
<https://tools.ietf.org/html/rfc2276>
[11] [CITE@en[RFC 2611 - URN Namespace Definition Mechanisms]]
([TIME[2017-04-24 03:36:15 +09:00]])
<https://tools.ietf.org/html/rfc2611>
[12] [CITE@en[RFC 8141 - Uniform Resource Names (URNs)]]
([TIME[2017-05-07 23:08:37 +09:00]])
<https://tools.ietf.org/html/rfc8141>
[31] [CITE@ja[Protocol Handlers for Microsoft Internet Explorer - misuzilla.org]] ([[Mayuki Sawatari]] 著, [TIME[2007-04-28 12:45:30 +09:00]] 版) <http://www.misuzilla.org/dist/net/mphandler/>
[33] [CITE[URN supported w3m - Ancient library]]
([[KONDOU, Kazuhiro]] 著, [TIME[2010-04-20 00:45:28 +09:00]] 版)
<http://www.alib.jp/perl/w3m_urn.html>
[34] [CITE@en[Features | AXR: Arbitrary XML Rendering | AXR Project]]
( ([[Miro Keller]] 著, [TIME[2012-06-23 18:07:31 +09:00]] 版))
<http://axr.vg/about/features>
[35] [CITE[OASIS Open Document Format for Office Applications (OpenDocument) Version 1.2 - Part 3: Packages]]
([TIME[2011-09-29 13:00:00 +09:00]] 版)
<http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part3.html#a4_8_1manifest_algorithm-name>
[FIG(quote)[
[FIGCAPTION[
[36] [CITE[OASIS Open Document Format for Office Applications (OpenDocument) Version 1.2 - Part 3: Packages]]
([TIME[2011-09-29 13:00:00 +09:00]] 版)
<http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part3.html#a4_8_1manifest_algorithm-name>
]FIGCAPTION]
> urn:oasis:names:tc:opendocument:xmlns:manifest:1.0#blowfish: The same algorithm as identified by Blowfish CFB.
]FIG]
[FIG(quote)[
[FIGCAPTION[
[37] [CITE@en[GetOrders - API Reference - Trading API]]
([TIME[2017-04-22 03:17:58 +09:00]])
<http://developer.ebay.com/devzone/xml/docs/reference/ebay/getorders.html>
]FIGCAPTION]
>
> <GetOrdersRequest xmlns="urn:ebay:apis:eBLBaseComponents">
]FIG]
[FIG(quote)[
[FIGCAPTION[
[38] ( ([TIME[2017-05-11 16:25:46 +09:00]]))
<http://www.bbwtest.info/~nandaka_furari/framexs/framexs.xml>
]FIGCAPTION]
>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xh="http://www.w3.org/1999/xhtml" xmlns:framexs="urn:framexs" version="1.0">
]FIG]
[FIG(quote)[
[FIGCAPTION[
[39] [CITE@en[RFC 6241 - Network Configuration Protocol (NETCONF)]]
([TIME[2017-05-07 18:00:15 +09:00]])
<https://tools.ietf.org/html/rfc6241#section-8.8.3>
]FIGCAPTION]
> The :url capability is identified by the following capability string:
> urn:ietf:params:netconf:capability:url:1.0?scheme={name,...}
>
]FIG]