URL, URN, URI, IRI
“網址”到底是什麼?一般的理解是URL(Uniform resource locator)
在RDF/OWL1/OWL2中卻使用了不同的概念
- RDF和OWL 1使用了URI (Uniform resource identifier,也就是最初的語義網層次蛋糕的第一層)
- OWL 2使用了IRI(Internationalized Resource Identifier)
還有一個相關概念 URN(Uniform Resource Name)。他們有什麼區別?
簡述如下:
URL是這樣的形式:
scheme://domain:port/path?query_string#fragment_id
如本頁的編輯頁面是 https://blog.baojie.org:80/wp-admin/post-new.php?post_type=post#
URI是URL的擴充套件,形式是:
<scheme name> : <hierarchical part> [ ? <query> ] [ # <fragment> ]
例:
foo://username:[email protected]:8042/over/there/index.dtb?type=animal&name=narwhal#nose
Wikipedia上列有官方和非官方的URI scheme,如about, ed2k, doi, skype,都是。
URI不一定指向一個網址
URN是一種URI,形式如 urn:isbn:0451450523(書號),urn:mpeg:mpeg7:schema:2001(MPEG-7標準)。URN使我們可以描述一個資源而不必關係它的具體存檔地址。
IRI是URI的擴充套件:URI只能用ASCII,而IRI可以用Universal Character Set (USC), Unicode——比如中文。
所以RDF和OWL裡的資源,都不只是用“網址”來命名的。理論上,每個人都可以自己定義一個scheme來唯一確定自己的資源,不一定要放在網上,比如對我的冰箱,我可以命名為
urn:baojie-bengbu-iowa:冰箱:2012
更多關於URL/URI/IRI的請看W3C官方網頁:Naming and Addressing: URIs, URLs, …
另參Tim Berners-Lee的Design Issues,Document Naming
他們之間的關係
IRI is a superset of URI (IRI ⊃ URI)
URI is a superset of URL (URI ⊃ URL)
URI is a superset of URN (URI ⊃ URN)
URL and URN are disjoint (URL ∩ URN = ∅)