Кіріспе
OCLC тұрақты идентификатор схемасын жасады. Тұрақты бірыңғай ресурс локаторы (PURL) – сұралған веб-ресурстың орналасқан жеріне қайта бағыттау үшін қолданылатын бірыңғай ресурс локаторы (URL), яғни орналасу негізіндегі бірыңғай ресурс идентификаторы (URI). PURL HTTP клиенттерін HTTP статус кодтары арқылы қайта бағыттайды. Алғашқыда PURL-дер purl.org немесе purl сөзін қамтитын басқа хост-атауларда орналасқандары үшін танымал болды. Бастапқыда көптеген басқа хосттар бастапқы OCLC PURL жүйесінің бағдарламалық қамтамасының ұрпақтарын пайдаланды. Бірақ, ақырында PURL тұжырымы жалпыға ортақ ұғымға айналып, кез келген қайта бағыттау қызметін (PURL шешуші деп аталады) белгілеу үшін қолданыла бастады:
шешушіге сілтеме ретінде "түбір URL" мекенжайына ие (мысалы, http://myPurlResolver.example);
пайдаланушылар қауымдастығына түбір URL-ге жаңа атауларды қосу мүмкіндігін береді (мысалы, http://myPurlResolver.example/name22);
әрбір атауды оның URL-мекенжайымен (қайта бағытталуға тиіс) байланыстыру және осы қайта бағыттау URL-мекенжайын жаңарту құралдарын ұсынады;
түбір URL-мекенжайы мен PURL шешуші қызметтерінің тұрақтылығын қамтамасыз етеді (мысалы, келісімшарт бойынша). PURL URL-ді шешу процесін реттеу үшін қолданылады, осылайша HTTP сияқты орналасуға негізделген URI схемаларындағы уақытша URI мәселесін шешеді. Техникалық тұрғыдан алғанда, PURL-дегі тізбектің ажыратылуы SEF URL-дегідей болып келеді. Осы мақаланың қалған бөлігі Онлайн Компьютерлік Кітапхана Орталығы (OCLC) ұсынған және іске асырған OCLC PURL жүйесіне арналған.
A persistent uniform resource locator (PURL) is a uniform resource locator (URL) (i. e., location based uniform resource identifier or URI) that is used to redirect to the location of the requested web resource. PURLs redirect HTTP clients using HTTP status codes. Originally, PURLs were recognizable for being hosted at purl. org or other hostnames containing purl. Early on many of those other hosts used descendants of the original OCLC PURL system software. Eventually, however, the PURL concept came to be generic and was used to designate any redirection service (named PURL resolver) that:
has a "root URL" as the resolver reference (e. g. http://myPurlResolver. example);
provides means, to its user community, to include new names in the root URL (e. g. http://myPurlResolver. example/name22);
provides means to associate each name with its URL (to be redirected), and to update this redirection URL;
ensure the persistence (e. g. by contract) of the root URL and the PURL resolver services. PURLs are used to curate the URL resolution process, thus solving the problem of transitory URIs in location based URI schemes like HTTP. Technically the string resolution on PURL is like SEF URL resolution. The remainder of this article is about the OCLC's PURL system, proposed and implemented by OCLC (the Online Computer Library Center).
Тарих
PURL тұжырымдамасын Стюарт Вайбель мен Эрик Юл 1995 жылы OCLC ұйымында әзірледі. PURL жүйесі Apache HTTP Server-дің 1.0 нұсқасына дейінгі тармақталған нұсқасын пайдалана отырып іске асырылды. Бағдарламалық жасақтама 2007 жылы Zepheira компаниясымен OCLC-мен жасалған келісімшарт бойынша жаңартылып, кеңейтілді, ал ресми веб-сайт http://purlz.org мекенжайына (Z әрпі Zepheira атауынан алынған және PURL ашық кодты бағдарламалық қамтамасыз ету сайты мен OCLC басқаратын PURL шешушісін ажырату үшін қолданылған) көшірілді. PURL нұсқаларының нөмірлері шатастыру тудыруы мүмкін. OCLC 1999 жылы бастапқыда OCLC Research Public License 1.0 лицензиясы бойынша, кейін OCLC Research Public License 2.0 лицензиясы бойынша (http://opensource.org/licenses/oclc2) Apache негізіндегі бастапқы код ағашының 1 және 2 нұсқаларын шығарды. Zepheira 2007 жылы PURLz 1.0 бағдарламасын Apache License, Version 2.0 лицензиясы бойынша шығарды. PURLz 2.0 2010 жылы бета-тестілеуден өтті, бірақ нұсқа толыққанды шығарылмады. Callimachus жобасы PURL-ді 2012 жылы 1.0 нұсқасынан бастап қолданды. Ең көне PURL HTTP шешушісі 1995 жылдан 2016 жылдың қыркүйегіне дейін OCLC ұйымымен пайдаланылды және purl.oclc.org, сондай-ақ purl.org, purl.net және purl.com мекенжайлары арқылы қолжетімді болды. Басқа да маңызды PURL шешушілерінің қатарында АҚШ Үкіметтік Баспа кеңсесі (http://purl.fdlp.gov) бар, ол Федералдық сақтау кітапханасы бағдарламасы үшін жұмыс істейді және 1997 жылдан бері қолданыста келеді. PURL тұжырымдамасы w3id.org-та қолданылады, ол ескі PURL қызметтері мен технологияларын алмастыруы мүмкін. 2016 жылдың 27 қыркүйегінде OCLC Internet Archive ұйымымен ынтымақтастыққа түскенін жариялады, нәтижесінде шешуші қызметі мен оның басқару интерфейсі Internet Archive ұйымына берілді. Қызмет барлық бұрынғы іске асырулардан бөлек, жаңадан құрылған бағдарламалық жасақтамада қолдау көрсетіледі. Бұл көшіру бірнеше ай бойы OCLC хостингінде бұрын қолжетімсіз болған PURL анықтамаларын басқару мүмкіндігін қайта жандандырды. Internet Archive серверлерінде орналасқан қызмет purl.org, purl.net, purl.info және purl.com мекенжайлары арқылы қолжетімділікке қолдау көрсетеді. Қазіргі таңдағыда OCLC purl.oclc.org мекенжайына келетін DNS сұрауларын purl.org мекенжайына қайта бағыттайды.
Жұмыс істеу қағидаттары
PURL тұжырымдамасы World Wide Web-те HTTP URI-лердің URL-дарын басқаруға мүмкіндік береді. PURL-дер URL-ді шешу және ресурс метадеректерін ұсынуды үшінші тараптың бақылауына береді. URL – Дүниежүзілік желідегі ресурстың мекенжайы ғана. Тұрақты URL – Дүниежүзілік желідегі басқа веб-ресурстың бетіне қайта бағыттайтын мекенжай. Егер веб-ресурстың орны (демек, URL-і) өшкенше, оған сілтеме жасайтын PURL жаңартылуы мүмкін. PURL қолданушысы ресурс қозғалған жағдайда да әрқашан бірдей веб-адресті пайдаланады. PURL-ді баспагерлер өздерінің ақпараттық кеңістігін басқару үшін, ал веб-қолданушылар өздерінің кеңістігін басқару үшін қолдана алады; PURL қызметі ақпаратты жариялаушыдан тәуелсіз. PURL қызметтері гиперсілтемелердің сақталуын басқаруға мүмкіндік береді. Гиперсілтемелердің сақталуы – Дүниежүзілік желінің дизайнындағы шарттардың бірі, бірақ ресурс қолданушыларына немесе үшінші тараптарға URL-дің қалай және қайда шешілетініне әсер етуге рұхсат беру арқылы оны жартылай қалпына келтіруге болады. Қарапайым PURL HTTP GET сұранысына 302 жауап кодын қайтарады (HTTP 302 мәртебе кодын еске түсіреді, яғни «Табылған»). Жауапта HTTP «Жер» аттрибуты бар, оның мәні клиенттің жаңа HTTP GET сұранысы арқылы алуға тиіс URL-ді көрсетеді. PURL – виртуалды ресурстар үшін тұрақты идентификатордың бір түрі. Басқа тұрақты идентификатор схемаларына Цифрлық нысан идентификаторлары (DOI), Өмір ғылымдары идентификаторлары (LSID) және INFO URI жатады. Барлық тұрақты идентификациялау схемалары виртуалды ресурстарға (өзгеріп отыратын) бірегей идентификаторларды ұсынады, бірақ барлық схемалар басқару мүмкіндіктерін қамтамасыз етпейді. Виртуалды ресурстарды басқару – «ақпараттық мамандардың болашақта пайдалану үшін цифрлық деректерді басқаруға, соның ішінде сақтауға белсенді қатысуы» деп анықталған. PURL-ді URL-ді шешу қажеттілігі үшін сынға алған, осылайша PURL-ді желілік орынға байланыстырған. Желілік орындарда бірнеше осалдықтар бар, мысалы, Домендік атаулар жүйесінің тіркемелері және хостқа тәуелділік. PURL-ді шешу сәтсіз аяқталуы екіұшты жағдайға әкелуі мүмкін: PURL-дің шешілмеуі желілік ақаулықтан болды ма, әлде ол мүлдем жоқ па, оны анықтау қиын. PURL-дердің өзі жарамды URL-дер, сондықтан олардың компоненттері URL-дің ережелеріне сәйкес болуы керек. Схема бөлігі компьютерлік бағдарламаға, мысалы, веб-браузерге адресті шешу кезінде қандай протоколды пайдалану керектігін көрсетеді. PURL-дер үшін қолданылатын схема көбінесе HTTP болып табылады. Хост бөлігі қай PURL серверіне қосылу керектігін көрсетеді. Келесі бөлік, PURL домені, URL-дегі ресурс жолына ұқсас. Домен – PURL-дерді бөлетін және PURL-дердің әртүрлі басқарушылары болуына мүмкіндік беретін иерархиялық ақпараттық кеңістік. Әрбір PURL доменін бір немесе бірнеше тағайындалған басқарушылар басқара алады. Соңында, PURL атауы – PURL-дің өзі. Домен мен атау бірігіп PURL-дің «id»-ін құрайды.
Тұрақты сілтемемен салыстыру
Пермалинк пен PURL екеуі де тұрақты/тұрақты URL ретінде қолданылады және сұралған веб-ресурстың орналасқан жеріне бағыттайды. Қарапайым тілмен айтқанда, олар шамамен бірдей. Олардың айырмашылығы домендік атау мен уақыт аралығында: Пермалинк әдетте URL доменін өзгертпейді және жылдар бойы сақталу үшін жасалған. PURL домендік атауы тәуелсіз түрде өзгертілуі мүмкін және ондаған жылдар бойы сақталуға арналған.
A permalink usually does not change the URL's domain, and is designed to persist over years. A PURL domain name is independently changeable, and is designed to persist over decades.
URL бөлшектерін қайта бағыттау
PURL қызметі ішінара қайта бағыттау деп аталатын ұғымды қамтиды. Егер сұрау PURL-мен дәл сәйкес келмесе, тіркелген PURL-мен сәйкес келетін PURL жолының алдыңғы бөлігін анықтау үшін сұралған URL тексеріледі. Егер сәйкестік табылып, сұралған URL-дің қалған бөлігі мақсатты URL-ге қосылып қайта бағыттау жүзеге асырылады. Мысалы, URL-і http://purl.org/some/path/ болған PURL және мақсатты URL-і http://example.com/another/path/ болса, http://purl.org/some/path/and/some/more/data URL-іне HTTP GET сұрауы ішінара қайта бағыттау арқылы http://example.com/another/path/and/some/more/data URL-іне бағытталатын болады. Ішінара қайта бағыттау ұғымы веб-ресурстар иерархиясын әр ресурстың жеке PURL-ін қажет етпей PURL арқылы мекенжайлауға мүмкіндік береді. Бір PURL жеке мақсатты сервердегі иерархия үшін жоғарғы деңгейдегі түйін ретінде жеткілікті. Жаңа PURL қызметі ішінара қайта бағыттауды жүзеге асыратын PURL-ді көрсету үшін "ішінара" типін пайдаланады. URL жолы деңгейіндегі ішінара қайта бағыттау HTTP 1.1 спецификациясының қалыпты түсіндірулеріне қайшы келмейді. Дегенмен, URL фрагменттерін қайта бағыттау кезінде басқару стандартталмаған және консенсусқа қол жеткізілмеген. Фрагмент идентификаторлары ресурс ішіндегі нақтырақ ақпаратқа сілтеме жасайды және URI-де # символынан кейін көрсетіледі. Фрагмент идентификаторы бар кезде ішінара қайта бағыттау қиындық тудырады, себебі екі түрлі түсінік болуы мүмкін. Егер фрагмент "ішінара" типіндегі PURL-ге қосылса, PURL қызметі фрагменттің мақсатты URL-де мағынасы бар деп есептеуі керек пе, әлде өзгертілген орналасқан жері бар ресурстың мазмұны да өзгеруі мүмкін деген болжаммен оны жоюы керек пе, бұл бұрын анықталған фрагменттерді жарамсыз етеді. Бос фрагменттерді сақтап, мақсатты URL-ге жіберуді ұсынды, бұл HTTP қайта бағыттау кезінде 300 (Көптеген таңдаулар), 301 (Тұрақты түрде жылжытылды), 302 (Табылды) немесе 303 (Басқа қараңыз) жауаптарын тудырады, егер мақсатты URL-де фрагмент идентификаторы болмаса. Егер мақсатты URL-де фрагмент идентификаторы болса, бастапқы URL-дегі кез келген фрагмент жойылуы керек. Бостың ұсынысы IETF стандарттары арқылы жүзеге асырылмады және одан әрі жұмыссыз тоқтатылды. Дубост және тағы басқалар Бостың ұсыныстарын W3C ескертуінде қайта жаңғыртты (стандарт емес, бірақ стандарттың болмауы жағдайындағы нұсқаулық). Браузерлер сияқты веб-клиенттерін жасаушылар "көбінесе" Бостың нұсқауларын орындамайды. PURLz 1.0 сериясынан бастап PURL қызметі браузерлердің проблемалық және сәйкес келмейтін мінез-құлқынан сақтану және одан аулақ болу мақсатында фрагмент идентификаторларын қоса алғанда, ішінара қайта бағыттауды жүзеге асырады, фрагменттерді мақсатты URL-ге жазады.