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

**URI** signifas **unuforma risurca identigilo** (angle *Uniform Resource Identifier*). Ĝi estas sekvo de signoj identiganta abstraktan aŭ fizikan risurcon. Antaŭe ĝi estis nomata **universala risurca identigilo** (angle *Universal Resource Identifier*).

Bazoj
-----

Unuforma risurca identigilo estas signoĉeno ebliganta identigi iun risurcon: dokumenton, bildon, dosieron, servon, retpoŝtan konton ktp. Ĉefe temas pri risurcoj de la Interreto kaj de la Tut-Tera Teksaĵo. URI provizas simplan kaj etendeblan manieron identigi risurcojn. La etendebleco de URI signifas ke jam ekzistas kelkaj identigaj skemoj ene de URI, kaj ankoraŭ multaj estos kreitaj.

Rilato inter URI, URL kaj URN
-----------------------------

Venn-a diagramo, bildiganta la subarojn de URI: URL kaj URN.
URI estas aŭ URL, aŭ URN, aŭ ambaŭ samtempe.

URL estas URI kiu, aldone al identigo de risurco, informas ankaŭ pri situo de tiu risurco. Kaj URN estas URI kiu nur identigas la risurcon en certa nomspaco (kaj respektive en certa kunteksto), sed ne indikas ĝian situon. Ekzemple, URN  estas URI kiu indikas risurcon (libron) 0-395-36341-1 en la nomspaco ISBN; sed, distinge de URL, URN ne referencas situon de la risurco: ne sciigas en kiu vendejo aĉeti la libron aŭ el kiu retejo ĝin elŝuti. Cetere, lastatempe aperis tendenco nomi ajnan identigan ĉenon simple per la vorto URI, sen precizigoj. Do, eble la terminoj URL kaj URN baldaŭ foriros en la pasintecon.

Ĉar URI ne ĉiam montras kiel ricevi la risurcon, distinge de URL, sed nur identigas ĝin, tio donas la eblecon priskribi per RDF risurcojn kiuj ne estas riceveblaj per Interreto (ekzemple: persono, aŭto, urbo kc).

Historio
--------

En 1990 en la sidejo de CERN en Ĝenevo la brita sciencisto Tim Berners-Lee inventis URL-on. Ĉar URL estas la plej uzata subaro de URI, oni nomas tiun jaron la naskiĝjaro de URI. Sed, se paroli precize, la koncepto pri URI estis dokumentita en junio 1994 en RFC 1630.

En 1998 en RFC 2396 estis difinita nova versio de URI, samtempe la vorto "universala" (angle *Universal*) en la nomo estis anstataŭigita per la vorto "unuforma" (angle *Uniform*). En decembro de 1999 RFC 2732 enkondukis en la specifon pri URI malgrandajn ŝanĝojn por kongruo kun IPv6. En aŭgusto 2002 RFC 3305 anoncis malaktualiĝon de la termino "URL" kaj prioritaton de la termino "URI". La nunaj strukturo kaj sintakso de URI estas reguligataj per la normo RFC 3986 aperinta en januaro 2005. Pluraj plej novaj teknologioj de Semantika Reto (ekzemple, RDF) baziĝas sur la normo de URI. Nun la gvida rolo en la evoluigo de URI apartenas al la Konsorcio de la Tut-Tera Teksaĵo.

Malavantaĝoj
------------

URL iĝis unu el la fundamentaĵoj de Interreto, tial la principoj de URI estis starigataj tiel por ke provizi plenan kongruon kun URL. De ĉi tie venas ankaŭ la granda malavantaĝo de URI heredita disde URL. En URI, samkiel en URL, eblas uzi nur limigitan kompleton de latinaj kaj interpunkciaj signoj (eĉ malpli ol en Askio). Alivorte, se ni deziros uzi en URI esperantajn aŭ ekzemple francajn ĉapelitajn literojn, aŭ cirilan alfabeton, aŭ hieroglifojn, ni devos kodi URI-on sammaniere, kiel en la Vikipedio estas kodataj URL-oj kun unikodaj signoj. Ekzemple, la ĉeno

`https://eo.wikipedia.org/wiki/Ŝanĝo`

estas kodata en URL kiel

`https://eo.wikipedia.org/wiki/%C5%9Can%C4%9Do`

Ĉar tian transformon spertas signoj verŝajne de ĉiuj lingvoj krom la angla, uzataj en URI-oj ne-anglaj vortoj iĝas parte aŭ plene nekompreneblaj por homoj. Kaj tio draste kontraŭas al la principo de internacieco deklarata de ĉiuj ĉeforganizaĵoj de Interreto, en tiu nombro W3C kaj ISOC. Solvi ĉi tiun problemon devas la normo IRI, kiu allasas uzon de unikodaj signoj kaj ne diskriminacias lingvojn. Sed malfacilas diri anticipe, ĉu IRI-oj iam sukcesos anstataŭigi tiom vaste uzatajn URI-ojn.

Ankoraŭ unu interesa variaĵo de URI estas etendebla risurca identigilo, ellaborita fare de la organizaĵo OASIS. Ĉi tiu formato celas kreadi identigilojn kiuj estus absolute sendependaj de la kunteksto: dependus nek de protokolo, nek de domajno, nek de pado, nek de aplikaĵo, nek de platformo — ili estus absolute sendependaj.

Ankaŭ la kreinto de URI, Tim Berners-Lee diris ke la domajna nomsistemo, kiu estas la bazo de URL, estas malbona solvo, trudanta al risurcoj hierarkian arkitekturon kiu ne tre bone taŭgas por la hiperteksta TTT.

Strukturo de URI
----------------

```
URI = [ skemo ":" ] hierarkia_parto [ "?" demando ] [ "#" fragmento ]
```

En la ĉi-supra ekzemplo:

*skemo*
skemo de konekto al la risurco (ofte indikas retan protokolon), ekzemple http, ftp, file, ldap, mailto, urn
*hierarkia\_parto*
enhavas datumon, ĝenerale organizitan en hierarkia formo kaj kune kun la datumo en la ne hierarkia komponaĵo *demando* servantan por identigo de la risurco en la limoj de videbleco de la koncerna URI-skemo. Kutime la *hierarkia\_parto* enhavas padon al la risurco (kaj antaŭ ĝi eble ankaŭ adreson de la servilo kie tiu risurco situas) aŭ risurcan identigilon (en la kazo de URN).
*demando*
ĉi tiu fakultativa komponaĵo de URI estas priskribita supre.
*fragmento*
ankaŭ fakultativa komponaĵo

|  |
| --- |
| RFC 3986:allasas nedirektite identigi sekundaran risurcon per referenco al primara risurco kaj aldonaj identigaj informoj. Identigata sekundara risurco povas esti iu parto aŭ subaro de la primara, iu ĝia prezento aŭ alia risurco difinita aŭ priskribita per tiaj prezentoj.
*Originala teksto*  (angle)

*The fragment identifier component of a URI allows indirect identification of a secondary resource by reference to a primary resource and additional identifying information. The identified secondary resource may be some portion or subset of the primary resource, some view on representations of the primary resource, or some other resource defined or described by those representations.*

 
 |

Parto de URI sen skemo ofte estas nomata: referenco de URI. Precedencoj de aplikado de URI-referencoj estas en HTML, XHTML, XML kaj XSLT *(angle: XSLT)*. Traduko de referenco de URI en absolutan formon de URI estas nomata: solvo de URI.

Procezo de ellaborado de novaj skemoj estas priskribita en RFC 2718. Novaj skemoj devas esti registrataj en IANA, la procedaro de registrado estas fiksita en RFC 2717. Ambaŭ dokumentoj nun estas relaborataj.

### Analizo de strukturo de URI

Por sintaksa analizo (angle *parsing*) de URI estas plej oportune uzi la sistemon de regulaj esprimoj disponeblan en preskaŭ ĉiuj modernaj programlingvoj. Por analizo de URI RFC 3986 rekomendas uzi la jenan ŝablonon:

```
^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?
 12            3  4          5       6  7        8 9
```

Tiu ŝablono inkludas naŭ indikitajn supre per ciferoj grupojn kiuj plej komplete kaj precize analizas tipan strukturon de URI, kie:

* *grupo 2* estas skemo,
* *grupo 4* estas fonto,
* *grupo 5* estas pado,
* *grupo 7* estas demando,
* *grupo 9* estas fragmento.

Do, se per ĉi tiu ŝablono analizi, ekzemple, tian URI:

```
http://www.ics.uci.edu/pub/ietf/uri/#Related
```

la naŭ supremenciitaj grupoj de la ŝablono donos la jenan rezulton:

1. http:
2. http
3. //www.ics.uci.edu
4. www.ics.uci.edu
5. /pub/ietf/uri/
6. *ne estas rezulto*
7. *ne estas rezulto*
8. #Related
9. Related

Ekzemploj de URI
----------------

### Absolutaj URI

* https://eo.wikipedia.org/wiki/URI
* ftp://ftp.is.co.za/rfc/rfc1808.txt
* file://C:\UserName.HostName\Projects\Wikipedia\_Articles\URI.xml
* ldap://[2001:db8::7]/c=GB?objectClass?one
* mailto:John.Doe@example.com
* sip:911@pbx.mycompany.com
* news:comp.infosystems.www.servers.unix
* data:text/plain;charset=iso-8859-7,%be%fe%be
* tel:+1-816-555-1212
* telnet://192.0.2.16:80/
* urn:oasis:names:specification:docbook:dtd:xml:4.1.2

### URI-referencoj

* /relative/URI/with/absolute/path/to/resource.txt
* relative/path/to/resource.txt
* ../../../resource.txt
* resource.txt
* /resource.txt#frag01
* #frag01
* [senenhava ĉeno] — estas ekvivalente al analizo de identigilo per analizilo kun rezulto [senenhava ĉeno], do la referenco montras al defaŭlta objekto en defaŭlta skemo

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

* Retadreso
* URL
* RDF *(angle: Resource Description Framework)*
* PURL *(angle: Persistent Uniform Resource Locator)*
* URN
* Internaciigita risurca identigilo *(angle: Internationalized Resource Identifier)*
* Etendebla risurca identigilo *(angle: Extensible Resource Identifier)*

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

* Kategorio URI en la Vikimedia Komunejo (Multrimedaj datumoj)

* RFC 3986 / STD 66 (2005) (angle)
* RFC 2396 (1998) — malaktualiĝinta versio de sintakso (angle)
* Cirilaj URI[*rompita ligilo*] (ruse)
* Agado de W3C por evoluigo de URI (angle)
* Skemoj de URI registritaj en IANA (angle)