Uniform Resource Name
Un Uniform Resource Name o URN è un URI che identifica una risorsa all'interno di un namespace, ma, a differenza dell'URL, non permette l'identificazione della locazione della risorsa stessa. Un esempio di URN è il codice ISBN: questo identifica univocamente un libro, ma non ci dà alcuna informazione sulla locazione dello stesso[1][2].
Sintassi
![Schema IRI-URI-URL-URN.](http://upload.wikimedia.org/wikipedia/commons/thumb/2/21/Schema-IRI-URI-URL-URN.png/240px-Schema-IRI-URI-URL-URN.png)
La sintassi di uno schema URIurn:
è rappresentata nella Backus-Naur Form
![Esempio di codice ISBN](http://upload.wikimedia.org/wikipedia/commons/thumb/2/28/EAN-13-ISBN-13.svg/240px-EAN-13-ISBN-13.svg.png)
come[3][4]:
namestring = assigned-name [ rq-components ] [ "#" f-component ] assigned-name = "urn" ":" NID ":" NSS NID = (alphanum) 0*30(ldh) (alphanum) ldh = alphanum / "-" NSS = pchar *(pchar / "/") rq-components = [ "?+" r-component ] [ "?=" q-component ] r-component = pchar *( pchar / "/" / "?" ) q-component = pchar *( pchar / "/" / "?" ) f-component = fragment ; regole generiche sintattiche URI (RFC3986) fragment = *( pchar / "/" / "?" ) pchar = unreserved / pct-encoded / sub-delims / ":" / "@" pct-encoded = "%" HEXDIG HEXDIG unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" sub-delims = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "=" alphanum = ALPHA / DIGIT ; obsoleto
oppure, sotto forma di diagramma di sintassi, come:
![](http://upload.wikimedia.org/wikipedia/commons/thumb/c/ce/URN_syntax_diagram_-_namestring.png/690px-URN_syntax_diagram_-_namestring.png)
- Lo schema principale (
urn:
) non fa distinzione tra maiuscole e minuscole. <NID>
è l'identificatore del namespace e può includere lettere, cifre e-
.- Il NID è seguito dalla stringa specifica del namespace
<NSS>
, la cui interpretazione dipende dal namespace specificato. L'NSS può contenere lettere e cifre ASCII e molti segni di punteggiatura e caratteri speciali. I caratteri ASCII e Unicode non consentiti possono essere inclusi se codificati in percentuale.
Nel 2017 è stata aggiornata la sintassi per gli URN[5]:
- Il carattere barra (
/
) in questo caso è consentito in NSS per rappresentare nomi contenenti barre da sistemi di identificazione non URN. - Il componente q è stato aggiunto per consentire il passaggio di parametri alle risorse nominate.
- Il componente r è stato aggiunto per consentire il passaggio di parametri ai resolver. Tuttavia, la specifica aggiornata rileva che non dovrebbe essere utilizzata fino a quando la sua semantica non sarà definita tramite un'ulteriore standardizzazione.
Namespace
Al fine di garantire l'unicità globale dei namespace URN, i loro identificatori (NID) devono essere registrati presso lo IANA. I namespace registrati possono essere "formali" o "informali". Un'eccezione al requisito di registrazione è stata precedentemente fatta per "namespace sperimentali", in quanto annullato dalla RFC 8141[6][1].
Formale
Sono stati registrati circa sessanta identificatori formali dei namespace URN. Si tratta di namespace in cui ci si aspetta che gli utenti di Internet traggano vantaggio dalla loro pubblicazione e sono soggetti a diverse restrizioni[5][6]. Essi devono:
- Non essere un NID già registrato
- Non iniziare con
urn-
- Essere più di due lettere
- Non iniziare con
XY-
, dove XY è una combinazione di due lettere ASCII - Non iniziare con
x-
Informale
I namespace informali sono registrati con IANA e assegnati a una sequenza numerica (scelta da IANA in base all'ordine di arrivo) come identificatore, nel formato[5]:
"urn-" <number>
I namespace informali sono namespace URN completi e possono essere registrati nei servizi di registrazione globali.
Sperimentale
Un'eccezione al requisito di registrazione è stata precedentemente fatta per i "namespace sperimentali". Tuttavia, in seguito alla deprecazione della notazione "X-" per i nuovi namespace di tipo identificatore, RFC 8141 ha eliminato i namespace URN sperimentali, indicando una preferenza per l'uso del namespaceurn:example
ove appropriato[5][7].
Esempi
URN | corrisponde a |
---|---|
urn:isbn:0451450523 | Il libro del 1968 The Last Unicorn, identificato dal suo numero di libro. |
urn:isan:0000-0000-2CEA-0000-1-0000-0000-Y | Il film del 2002 Spider-Man, identificato dal suo numero audiovisivo. |
urn:ISSN:0167-6423 | La rivista scientifica Science of Computer Programming, identificata dal suo numero di serie. |
urn:ietf:rfc:2648 | La RFC 2648 dell'IETF. |
urn:mpeg:mpeg7:schema:2001 | Le regole del namespace predefinite per i metadati video MPEG-7[8]. |
urn:oid:2.16.840 | L'OID per gli Stati Uniti. |
Note
- ^ a b Peter Saint-Andre e John C. Klensin, Uniform Resource Names (URNs), RFC 8141, Internet Engineering Task Force, 2017-04. URL consultato il 28 ottobre 2021.
- ^ BookVocabularies - W3C Wiki, su w3.org. URL consultato il 28 ottobre 2021.
- ^ Tim Berners-Lee, Roy T. Fielding e Larry M. Masinter, Uniform Resource Identifier (URI): Generic Syntax, RFC 3986, Internet Engineering Task Force, 2005-01. URL consultato il 28 ottobre 2021.
- ^ tools.ietf.org.
- ^ a b c d Peter Saint-Andre e John C. Klensin, Uniform Resource Names (URNs), RFC 8141, Internet Engineering Task Force, 2017-04. URL consultato il 28 ottobre 2021.
- ^ a b Dirk-Willem van Gulik, Patrik Fältström e Leslie Daigle, Uniform Resource Names (URN) Namespace Definition Mechanisms, RFC 3406, Internet Engineering Task Force, 2002-10. URL consultato il 28 ottobre 2021.
- ^ Peter Saint-Andre, A Uniform Resource Name (URN) Namespace for Examples, RFC 6963, Internet Engineering Task Force, 2013-05. URL consultato il 28 ottobre 2021.
- ^ John R. Smith, A Uniform Resource Name (URN) Namespace for the Motion Picture Experts Group (MPEG), RFC 3614, Internet Engineering Task Force, 2003-09. URL consultato il 28 ottobre 2021.
Altri progetti
Altri progetti
- Wikimedia Commons
Wikimedia Commons contiene immagini o altri file su Uniform Resource Name
Controllo di autorità | GND (DE) 7694957-6 |
---|