URI

El Vikipedio, la libera enciklopedio
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 signa strio 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 urn:ISBN:0-395-36341-1 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 strion 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 strio

http://eo.wikipedia.org/wiki/Ŝanĝo

estas kodata en URL kiel

http://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.

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

  • http://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 strio] — estas ekvivalente al analizo de identigilo per analizilo kun rezulto [senenhava strio], do la referenco montras al defaŭlta objekto en defaŭlta skemo

Vidu ankaŭ

Ligoj