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