統一資源名稱
統一資源名稱(英語: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).