|  |  |
| --- | --- |
|  | Por samtitola artikolo vidu la paĝon URN (apartigilo). |

**URN** signifas **unuforma risurca nomo** (angle *Uniform Resource Name*). Ĝi estas sekvo de signoj identiganta abstraktan aŭ fizikan risurcon. URN estas parto de la koncepto pri URI. URN-oj estas destinitaj anstataŭigi iam URL-ojn. Sed URN-oj, distinge de URL-oj, ne inkludas indikojn pri situo kaj kontaktmaniero de la risurco. La normo pri URN estas intence verkita tiel ke ĝi povu inkludi aliajn nomspacojn.

Baza ideo
---------

La ideo pri URN aperis pro esencaj mankoj en la sistemo de URL. Risurcoj en la Tut-Tera Teksaĵo kaj Interreto translokiĝas, dum ligiloj en la formo de URL-oj restas kaj montras al jam forestantaj risurcoj. Malnovaj URL-oj iĝas neuzeblaj ankaŭ kaze de restrukturigo de risurcoj, alinomigo, forigo, translokigo al alia domajna nomo. Cele al solvo de ĉi tiu problemo estis ellaborita la interesa kaj efika sistemo PURL (persista unuforma risurca lokindiko) nun jam vaste uzata, kaj ankaŭ la sistemo DOI (identigilo de cifera objekto). Sed tiuj tamen estas nur partaj solvoj de la problemo. Iĝi principa solvo devas la normo por unuforma titolado de risurcoj URN.

URN indikas neŝanĝeblan nomon de la risurco sen indiki ĝian situon kaj kontaktmanieron. Rezulte URN-oj estas absolute konstantaj, ili ne dependas de konkretaj serviloj kaj protokoloj. Alivorte, koncepte URN *indikas la risurcon mem* kaj ne lokon kie iu risurco situas (aŭ eble ne plu situas), kiel tion faras URL. Por ekzemplo ni imagu homon kun la nomo Mikaelo Petrov loĝantan en Moskvo ĉe la strato Kavaliero 14. Se iu demandos lin: «Kiu vi estas?», li memkompreneble respondos «Mi estas Mikaelo Petrov». Li ja ne diros «Mi estas homo loĝanta ĉe la strato Kavaliero 14». Do, URN identigas tiun homon kiel Mikaelon Petrov kaj URL nur informas ke iu loĝas ĉe la strato Kavaliero 14 (kaj eble tie situas ankaŭ organizaĵo… URL tion ne diras).

Por trovo de risurcoj surbaze de URN necesas sistemo por URN-resolvo. Tiam homo aŭ programo scianta precizan URN-on de iu risurco konsultos pri ĝi la resolvan sistemon kaj senprokraste ricevos ampleksan liston de konkretaj lokoj (serviloj aŭ ekzemple retbutikoj) kie tiu risurco estas trovebla. En la jaro 2002 estis proponita la sistemo por dinamika eltrovo de delegado kiu tradukas URN-ojn al URL-oj montrantaj al konkretaj situoj de risurcoj. Kaj ambaŭ URN kaj URL membras en la sistemo por identigo de risurcoj URI.

Historio
--------

En 1994 aperis RFC 1737 kiu estis priskribanta konceptajn kaj funkciajn postulojn al ellaborado de URN. La ideo mem pri URN naskiĝis iom pli frue, sed antaŭ 1994 ne estis formulita. Post la apero de RFC 1737 oni elspezis por ellaboroado de URN tre multe da tempo kaj fortostreĉoj. La laborgrupo pri URN ĉe IETF inkludas tre multajn interesitajn flankojn (en tiu nombro konkurantajn kompaniojn), tial atingo de universala konkordo estas tre malfacila. Tamen jam en majo 1997 aperis RFC 2141 priskribanta la unuan version de la sintakso de URN. Ellaborado de URN estas ankoraŭ tute ne finita kaj oni ankoraŭ ne atingis konsenton pri ĉiuj demandoj, sed bazaj trajtoj de URN videblas jam sufiĉe klare.

En 1999 estis publikigita RFC 2483 kiu estis ĝenerale skizanta la sistemon por URN-resolvo. En oktobro 2002 aperis kelkaj dokumentoj: RFC 3401, RFC 3402, RFC 3403, RFC 3404, RFC 3405. En ili estis difinata la sistemo por resolvo de URN-oj DDDS, kiu estis la lasta nepra parto por enkonduko de URN. Proksimume samtempe aperis RFC 3406 preciziganta la specifon pri la nomspacoj de URN.

Nun aplikado de URN atingis signifan skalon. URN-oj iĝis nedeprenebla parto de la markolingvo XML. Ĉiam pli kaj pli ofte URN-oj estas efektivigataj en populara programaro. Tiu momento, kiam URN-oj komplete anstataŭigos URL-ojn, ankoraŭ estas malproksima, sed jam nun eblas diri ke URN havas bonegajn perspektivojn. URN sendube iĝos universala normo por nomi risurcojn.

Strukturo de URN
----------------

Unuformaj risurcaj nomoj havas la jenan strukturon:

```
<URN> ::= "urn:" <NID> ":" <NSS>
```

En ĉi tiu rikordo estas:

*<NID>*nomspaca identigilo; prezentas per si *sintaksan* interpreton de NSS, ne dependas de uskleco.
*<NSS>*nomspac-specifa strio; se ĝi entenas ne-askiajn signojn, ili devas esti koditaj per UTF-8, kun la signo de procento antaŭ la kodo de ĉiu signo (por pliaj detaloj vidu URL).
La komenca strio "urn:" ne dependas de uskleco. Kaj nomspacaj identigiloj «urn» kaj «URN» estas entute malpermesitaj por eviti konfuzon kun tiu komenca strio.

Sinidentiga URN
---------------

Ĉi tiuj URN-oj enhavas en NID la nomon de la krado (angle *hash*) uzata por ilia kreo. NSS enhavas signifon de tiu krado kalkulita surbaze de la datumo de la identigata objekto (dosiero). Tiaj URN-oj ricevas ecojn de kradoj t. e. oni povas krei por la datumo multajn diversajn URN-ojn sed ĉiu URN povas identigi nur unu pecon de datumo (dosieron).

Tiaj URN-oj estas uzataj:

* ene de magnet-ligo *(angle: Magnet URI scheme)*.
* en HTTP-titolo *X-Content-URN* de la proponitaj «HTTP-etendaĵoj por enhav-adresebla TTT» trovinta aplikon en p2p-reto Gnutella2.
* laŭ RFC 2169 en Gnutella2 uzataj estas URL-ligoj kiuj ankaŭ enhavas tian URN-on.


| NID | Bitnombro | Signaro | Ekzemplo |
| --- | --- | --- | --- |
| tree:tiger | 192 | Base32 |  |
| sha1 | 160 | Base32 |  |
| btih | 160 | Base32 |  |
| ed2k | 128 | Hex |  |
| md5 | 128 | Hex |  |
| md4 | 128 | Hex |  |
| tiger | 192 | Hex |  |
| aich | 160 | Base32 |  |
| whirlpool | 512 | Hex |  |
| ripemd160 | 160 | Hex |  |
| gost | 256 | Hex |  |
| has160 | 160 | Hex |  |
| snefru128 | 128 | Hex |  |
| snefru256 | 256 | Hex |  |

Ekzemploj de URN-oj
-------------------

* URN de libro identigata per ISBN

* URN de teknika specifo RFC 3406 (vidu RFC) de la organizaĵo «IETF»

* URN de Rusio difinita laŭ OID-kodo

* URN de konkreta MP3-dosiero identigata per haketkodo (angle *hash code*) laŭ la algoritmo SHA1

* URN identiganta risurcon pere de UUID-identigilo (de versio 1)

* URN de konkreta AVI-dosiero identigata per haketkodo laŭ la algoritmo TTH

*En la montritaj ekzemploj «isbn», «ietf», «oid», «sha1», «uuid» kaj «tree» estas nomspacoj, t. n. <NID> (vidu supre), kaj la strioj post la dua dupunkto estas <NSS>.*

Vidu ankaŭ
----------

* URI
* URL
* PURL *(angle: Persistent Uniform Resource Locator)*
* Identigilo de cifera objekto *(angle: Digital object identifier)*
* Internaciigita risurca identigilo *(angle: Internationalized Resource Identifier)*
* Etendebla risurca identigilo *(angle: Extensible Resource Identifier)*
* XML
* Haket-arbo *(angle: Hash tree)*

Referencoj
----------

1. ↑  ruse *Улица Земляной Вал*
2. ↑  HTTP Extensions for a Content-Addressable Web (angle)
3. ↑  RFC2169 - A Trivial Convention for using HTTP in URN Resolution (angle)
4. ↑  OID Repository (angle)

Eksteraj ligiloj
----------------

* RFC 2141 — sintakso de URN (angle)
* RFC 1737 — funkciaj postuloj al URN (angle)
* RFC 2483 — sistemoj de URI-resolvo por URN (angle)
* RFC 3406 — difino de nomspacoj por URN (angle)
* RFC 3986 / STD 66 — specifo pri URI (angle)
* Laborgrupo pri URN en IETF (angle)
* Nomspacoj de URN, registritaj en IANA (angle)


|  |  |
| --- | --- |
| Bibliotekoj | * PeEnEo: 424213
* GND: 7694957-6
* NKC: ph228485
 |