统一资源名称
![](http://upload.wikimedia.org/wikipedia/commons/thumb/c/c3/URI_Euler_Diagram_no_lone_URIs.svg/220px-URI_Euler_Diagram_no_lone_URIs.svg.png)
统一资源名称(英語:Uniform Resource Name,縮寫:URN)是统一资源标识(URI)的历史名字,它使用urn:
作为URI scheme。
1997年的RFC 2141定义了URN,期望为资源提供持久的、位置无关的标识方式,并允许简单地将多个命名空间映射到单个URN命名空间。这样一个URI的存在并不意味着被标识的资源一定是可用的,但它仍然需要保持全局唯一和持久,即使资源已经不存在了或变得不可用。[1]
自从2005年RFC 3986[1]发布,这一术语的使用已被限制更少的“URI”取代。这是W3C和IETF[2]联合组成的工作组所提议的。URN和URL都已经是URI的一种,而且特定情况下URI可能同时拥有名字(URN)和位置(URL)。
在1990年,URN作为一个元数据框架,原本被期望和URL、URC(统一资源特征)一起组成一个第三方互联网信息架构。然而URC一直停留在理论阶段,[2]随之更晚出现的其他技术(例如资源描述框架)取代了它们。
语法
[编辑]<URN> ::= "urn:" <NID> ":" <NSS>
解析出来是:
urn:<NID>:<NSS>
开头的urn:
序列大小写不敏感的。<NID>
是命名空间标识,它是一个“命名空间特定”的字符串,决定了如何解释<NSS>
的句法。统一资源名称的功能需求在RFC 1737中描述。[4]
命名空间
[编辑]为了确保URN命名空间的全局唯一性,URN的标识(NID)必须在IANA注册。已注册命名空间可能是“正式”或“非正式”的。此中有一个例外——“试验性命名空间”无需注册。[5]
正式命名空间
[编辑]正式命名空间是互联网用户预期能通过公开而的一类命名空间,[5]因此会受到许多限制。它必须:
- 不能和已经注册的NID重复
- 不能由
x-
(见下“试验命名空间”)开头 - 不能由
urn-
开头 - 不能有任何
XY-
形式的开头,其中XY任意两个ASCII字母的组合 - 比两个字母更长
非正式命名空间
[编辑]非正式命名空间通过IANA注册并分配一个数字序号(由IANA以先到先得的原则选出)作为标识,[5]格式是
"urn-" <数字序号>
非正式命名空间是完全合法的URN命名空间,可以在任何全局注册服务中使用。[5]
试验性命名空间
[编辑]试验性命名空间取如下格式
"X-" <NID>
这种形式的命名空间预期只在内部或受限的试验环境中使用,不需要也不保证全局唯一。[5]
例子
[编辑]URN | corresponds to |
---|---|
urn:isbn:0451450523
|
The 1968 book The Last Unicorn, identified by its book number. |
urn:isan:0000-0000-9E59-0000-O-0000-0000-2
|
The 2002 film Spider-Man, identified by its audiovisual number. |
urn:issn:0167-6423
|
The scientific journal Science of Computer Programming, identified by its serial number. |
urn:ietf:rfc:2648
|
The IETF's RFC 2648. |
urn:mpeg:mpeg7:schema:2001
|
The default namespace rules for MPEG-7 video metadata. |
urn:oid:2.16.840
|
The OID for the United States. |
urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66
|
A version 1 UUID. |
urn:nbn:de:bvb:19-146642
|
A National Bibliography Number for a document, indicating country (de ), regional network (bvb = Bibliotheksverbund Bayern), library number (19) and document number.
|
urn:lex:eu:council:directive:2010-03-09;2010-19-UE
|
A directive of the European Union, using the Lex URN namespace. |
解析器
[编辑]URN解析器负责初始化和排序查询,最终导向到URN名字或“解析请求”的一个完整的解析(翻译)结果。例如,一个“解析请求”可能是“将一个URN名字翻译成URL”。
RFC 2169中有一个服务器端URN解析器的实现范例。
DOI命名空间的缺席
[编辑]数字对象唯一标识符(DOI)系统的维护者有意不为DOI命名空间注册URN,并陈述道:
URN架构假设有一个基于DNS的解析发现服务(RDS)去寻找适用于指定URN scheme的服务。然而目前并没有这样的RDS服务体系被广泛部署……DOI没有注册为一个URN命名空间,因为URN注册看起来没有给DOI系统提供任何优势——尽管它能满足所有的功能需求。它需要一个管理上的附加层来将DOI定义为URN命名空间(字符串urn:doi:10.1000/1而不是更简单的doi:10.1000/1),以及增加一个无益的重定向步骤来访问本已经由http代理或本地解析完成了的解析服务。如果以后有了广泛可用的支持URN标准的RDS机制,DOI会注册为一个URN的。
— 国际DOI基金会, 信息一览表: DOI系统与互联网标识标准[6]
更多
[编辑]- 统一资源标志符(URI)
- 统一资源定位符(URL)
- Archival Resource Key (ARK)
- .arpa —urn.arpa is for dynamic discovery
- Extensible resource identifier(XRI)
- Handle System
- LSID(LSID)
- Magnet URI scheme, which uses URNs
- Persistent Uniform Resource Locator(PURL)
引用条目
[编辑]参考文献
[编辑]- Sollins, Karen; Masinter, Larry. Request for Comments: 1737: Functional Requirements for Uniform Resource Names. IETF. December 1994 [2012-12-07]. (原始内容存档于2012-11-10).
- Moats, Ryan. Request for Comments: 2141: URN Syntax. IETF. May 1997 [2012-12-07]. (原始内容存档于2012-11-20).
- Daigle, Leslie L.; van Gulik, Dirk-Willem; Faltstrom, Patrik. Request for Comments: 3406: Uniform Resource Names (URN) Namespace Definition Mechanisms. IETF. October 2002 [2012-12-07]. (原始内容存档于2012-12-04).
- Berners-Lee, Tim; Fielding, Roy; Masinter, Larry. Request for Comments: 3986: Uniform Resource Identifier (URI): Generic Syntax. IETF. January 2005 [2012-12-07]. (原始内容存档于2012-12-04).
- Factsheet: DOI System and Internet Identifier Specifications. International DOI Foundation. October 2012 [2012-12-06]. (原始内容存档于2012-11-27).
- W3C/IETF URI Planning Interest Group. URIs, URLs, and URNs: Clarifications and Recommendations 1.0. W3C. 21 September 2001 [2012-12-07]. (原始内容存档于2012-12-19).
外部链接
[编辑]- IANA官方的URN命名空间注册中心 (页面存档备份,存于互联网档案馆)
- IANA 统一资源名称工作组 (页面存档备份,存于互联网档案馆)(筹)
- URNs and bibliographic citations in web authoring (页面存档备份,存于互联网档案馆)
|
|