5. Namespace URN
Un namespace URN è una raccolta di nomi che rispettano tre vincoli: ogni nome è (1) univoco, (2) assegnato in modo coerente e (3) assegnato secondo una definizione comune.
-
Il vincolo di "univocità" significa che un nome all'interno del namespace URN non è mai assegnato a più di una risorsa e non è mai riassegnato a una risorsa diversa (per il tipo di "risorsa" identificata dagli URN assegnati all'interno del namespace URN). Ciò vale anche se il nome stesso è deprecato o diventa obsoleto.
-
Il vincolo di "assegnazione coerente" significa che un nome all'interno del namespace URN è assegnato da un'organizzazione o creato in conformità con un processo o un algoritmo che viene sempre seguito.
-
Il vincolo di "definizione comune" significa che esistono definizioni chiare per la sintassi dei nomi all'interno del namespace URN e per il processo di assegnazione o creazione degli stessi.
Un namespace URN è identificato da un particolare NID al fine di garantire l'univocità globale degli URN e, facoltativamente, di fornire un indizio riguardo alla struttura degli URN assegnati all'interno di un namespace URN.
Per quanto riguarda l'univocità globale, l'uso di NID diversi per raccolte di nomi diverse garantisce che non vi siano due URN uguali per risorse diverse, perché ogni raccolta è tenuta ad assegnare in modo univoco ciascun nome. Tuttavia, a una singola risorsa POSSONO (MAY) essere assegnati più di un URN, sia nello stesso namespace URN (se il namespace URN lo consente) sia in namespace URN diversi, e sia per scopi simili sia per scopi diversi. (Ad esempio, se un editore assegna un ISBN [RFC3187] a una pubblicazione elettronica e tale pubblicazione viene successivamente incorporata in un archivio digitale a lungo termine gestito da una biblioteca nazionale, la biblioteca potrebbe assegnare alla pubblicazione un national bibliography number (NBN) [RFC3188], ottenendo due URN che si riferiscono allo stesso libro.) Fatte salve altre restrizioni, come quelle imposte dalla sintassi degli URI [RFC3986], le regole dello schema URN sono intese a consentire di preservare la forma normale e naturale dei nomi specificati nei sistemi di identificatori non URN quando sono trattati come URN.
Per quanto riguarda la struttura dei nomi assegnati all'interno di un namespace URN, lo sviluppo di una struttura di denominazione (e quindi di una raccolta di nomi) dipende dai requisiti della comunità che definisce i nomi, da come i nomi saranno assegnati e usati, ecc. Queste questioni esulano dall'ambito della sintassi degli URN e delle regole generali per i namespace URN, perché sono specifiche della comunità che definisce un sistema di identificatori non URN o un particolare namespace URN (ad esempio, le comunità bibliografiche ed editoriali nel caso del namespace URN "ISBN" [RFC3187] e del namespace URN "ISSN" [RFC3044], o gli sviluppatori di estensioni all'Extensible Messaging and Presence Protocol [RFC6120] nel caso del namespace URN "XMPP" [RFC4854]).
Poiché il carattere due punti (":") è usato per separare "urn" dal NID e il NID dall'NSS, è allettante pensare all'intero URN come strutturato da caratteri due punti e presumere che i due punti creino una struttura o una gerarchia all'interno della porzione NSS dell'URN. Tale struttura potrebbe essere specificata da una particolare specifica di NID, ma non esiste alcuna struttura implicita. In un URN come
urn:example:apple:pear:plum:cherry
la stringa NSS è "apple🍐plum:cherry" nel suo insieme, e non vi è alcun significato specifico per i caratteri due punti all'interno di tale stringa NSS, a meno che tale significato non sia descritto nella specifica del namespace "example".
I namespace URN ereditano alcuni diritti e responsabilità per la natura stessa degli URN, in particolare:
-
Essi sostengono i principi generali di un namespace URN ben gestito fornendo un'identificazione persistente delle risorse e un'assegnazione univoca dei nomi in conformità con una definizione comune.
-
Facoltativamente, possono essere registrati in servizi di registrazione globali come quelli descritti nella [RFC2483].
Esistono due tipi di namespace URN: formali e informali. Essi si distinguono per il livello di servizio atteso, le informazioni necessarie per definire il namespace URN e le procedure di registrazione. Poiché la maggior parte dei namespace URN registrati finora sono stati formali, questo documento si concentra sui namespace URN formali.
5.1. Namespace URN formali
Un namespace URN formale apporta benefici a un sottoinsieme di utenti su Internet. In particolare, non avrebbe senso che un namespace URN formale fosse usato solo da una comunità o una rete non connessa a Internet. Ad esempio, sarebbe inappropriato che un namespace URN costringesse di fatto qualcuno a usare una rete o un servizio proprietario non aperto all'utente generico di Internet. L'intento è che, pur potendo essere piccola la comunità di coloro che potrebbero usare attivamente gli URN assegnati all'interno di quel namespace URN, il potenziale uso dei nomi all'interno di quel namespace URN sia aperto a qualsiasi utente su Internet. I namespace URN formali potrebbero essere appropriati anche quando alcuni aspetti non sono del tutto aperti. Ad esempio, un namespace URN potrebbe avvalersi di un registro a pagamento, gestito privatamente o proprietario per l'assegnazione degli URN nel namespace URN. Tuttavia, potrebbe comunque apportare benefici ad alcuni utenti di Internet se i servizi associati hanno nomi pubblicati apertamente.
Un'organizzazione che assegnerà URN all'interno di un namespace URN formale DOVREBBE (SHOULD) soddisfare i seguenti criteri:
-
Stabilità organizzativa e capacità di mantenere il namespace URN per lungo tempo; in assenza di tali prove, dovrebbe essere chiaro come il namespace URN possa rimanere vitale se l'organizzazione non è più in grado di mantenerlo.
-
Competenza nell'assegnazione degli URN. Ciò migliorerà la probabilità di persistenza (ad esempio, per ridurre al minimo la probabilità di conflitti).
-
Impegno a non riassegnare gli URN esistenti e a consentire che i vecchi URN continuino a essere validi (ad esempio, se l'assegnatario di un URN non è più membro o cliente dell'organizzazione assegnante, se varie informazioni sull'assegnatario o sull'entità denominata cambiano, o persino se l'assegnatario o l'entità denominata stessa non esiste più; in tutti questi casi, l'URN è comunque valido).
Un namespace URN formale stabilisce un particolare NID, soggetto ai seguenti vincoli (oltre alle regole sintattiche già specificate):
-
NON DEVE (MUST NOT) essere un NID già registrato.
-
NON DEVE (MUST NOT) iniziare con "urn-" (che è riservato ai namespace URN informali).
-
DEVE (MUST) essere lungo più di due caratteri e NON DEVE (MUST NOT) iniziare con ALPHA ALPHA "-", cioè qualsiasi stringa composta da due lettere seguite da un trattino; tali stringhe sono riservate a un potenziale uso come NID basati sui codici paese ISO alpha-2 [ISO.3166-1] per eventuali registrazioni nazionali di namespace URN (tuttavia, la definizione e la delimitazione delle regole per l'allocazione delle responsabilità di tali namespace URN basati su codici paese esulano dall'ambito di questo documento). Di conseguenza, NON DEVE (MUST NOT) iniziare con la stringa "xn--" o con qualsiasi altra stringa composta da due lettere seguite da due trattini; tali stringhe sono riservate alla potenziale rappresentazione di etichette A del DNS e di stringhe simili in futuro [RFC5890].
-
NON DEVE (MUST NOT) iniziare con la stringa "X-" in modo da non essere confuso con, o in conflitto con, qualsiasi namespace URN sperimentale precedentemente consentito dalla [RFC3406].
I richiedenti e i revisori che considerano nuovi NID dovrebbero anche essere consapevoli che essi possono avere implicazioni semantiche e quindi essere fonte di conflitto. Particolare attenzione dovrebbe essere prestata alle stringhe che potrebbero essere interpretate come identificatori di paesi (inclusi i codici ISO 3166-1 alpha-3) o registrate sotto l'autorità di paesi, e alle stringhe che potrebbero implicare un'associazione con schemi URI esistenti, sistemi di identificatori non URN o marchi registrati. Tuttavia, in linea con le politiche tradizionali, le controversie sulla "titolarità" di particolari stringhe sono disaccordi tra le parti coinvolte; né l'IANA né l'IETF si faranno coinvolgere in tali controversie, se non in risposta a ordini di un tribunale competente.
5.2. Namespace URN informali
I namespace URN informali sono namespace URN a tutti gli effetti, con tutti i diritti e le responsabilità associati. I namespace URN informali differiscono da quelli formali nel processo di assegnazione del NID: per un namespace URN informale, il richiedente non designa il NID; invece, l'IANA assegna il NID composto dalla stringa "urn-" seguita da una o più cifre (ad esempio, "urn-7"), dove le cifre consistono nel numero successivo disponibile nella sequenza di interi positivi assegnati ai namespace URN informali. Pertanto, la sintassi di un identificatore di namespace URN informale è:
InformalNamespaceName = "urn-" Number
Number = DigitNonZero 0*Digit
DigitNonZero = "1"/ "2" / "3" / "4"/ "5"
/ "6" / "7" / "8" / "9"
Digit = "0" / DigitNonZero
Le uniche restrizioni su <Number> sono che esso (1) consista strettamente di cifre ASCII, (2) non abbia zeri iniziali e (3) non faccia sì che il NID superi i limiti di lunghezza definiti per la sintassi degli URN (vedere la Sezione 2).