Dereferenciácia je proces, kedy je referencovateľný identifikátor entity zároveň možné použiť aj ako URL lokátor entity. Tým je možné zabezpečiť zobrazenie entity vo webovom prehliadači ako aj získať informácii o entite v štrukturovanom formáte (RDF/XML, JSON, XML...). Aby bola zabezpečená šifrovaná komunikácia od počiatku, všetky jednotné referencovateľné identifikátory vydávane MetaIS majú doménu data.gov.sk a komunikačný protokol https tj. https://data.gov.sk. Zobrazenie informácií, ktoré sú výsledkom dereferenciácie sú plne v kompetencii zdroja tj. vlastníka menného priestoru. Dereferenciácia môže zohľadňovať prístupové práva a zobrazovať citlivé údaje v zmysle platnej legislatívy.
Kľúčovú rolu v dereferenciacii jednotný referencovateľných identifikátorov zohrávajú dva komponenty : MetaIS ako referenčný register referencovateľných identifikátorov a portál data.gov.sk, ktorý je doménou pre referenčné dáta.
Riešenie dereferenciácie na sieťovej úrovni pozostáva z nastavenia presmerovania všetkých dopytov na data.gov.sk, ktoré spĺňajú regulárny výraz :
Code Block |
---|
https://data.gov.sk/(id|def|set|doc)/.* |
na stránku MetaIS a to takým spôsobom, že všetko čo sa nachádza za https://data.gov.sk/(id|def|set|doc)/.* automaticky presmeruje na
Code Block |
---|
https://metais.finance.gov.sk/refid/(id|def|set|doc)/.* |
Primárnym účelom dereferenciácie je zobrazenie entity v čitateľnom tvare vo webovom prehliadači. Preto je pre dereferenciáciu pre webový prehliadač vyžadované použitie GET metódy a HTTP hlavičky Content-type: text/html alebo application/xhtml+xml
1.Algoritmus vyhodnocovania dereferenciácie prostredníctvom MetaIS
1.1 Dereferenciácia menného priestoru - bez zadania identifikátora entity
Nakoľko je MetaIS referenčným registrom referencovateľných identifikátorov a tým pádom sú všetky menné priestory registrované v ňom, MetaIS sa stáva primárnym kameňom pre dereferenciáciu pridelených menných priestorov referencovateľných identifikátorov.
Žiadateľ môže v systéme MetaIS požiadať o pridelenie celého menného priestoru. Napr. RPO požiada o zaregistrovanie menného priestoru :
Code Block |
---|
https://data.gov.sk/id/legal-subject/{id} |
pre potreby jednotnej referencovateľnej identifikácie RPO entít. Samotný menný priestor je
Code Block |
---|
https://data.gov.sk/id/legal-subject/ |
Po zadaní tohto menného priestoru do webového prehliadača, portál data.gov.sk presmeruje dopyt na :
Code Block |
---|
https://metais.finance.gov.sk/refid/id/legal-subject/ |
Nakoľko nie je zadaná presná entita ale menný priestor, MetaIS zobrazí stránku o popise menného priestoru s údajmi ako kto je vlastníkom daného menného priestoru, dátum registrácie a pod.
1.2. Dereferenciácia
...
referencovateľných identifikátorov v správe MetaIS
MetaIS je primárnym registrátorom niektorých základných entít ako napríklad dátové prvky, ontológie a preto v prípade zadania do webového prehliadača referencovateľný identifikátor entity, ktorá je v gescii MetaIS, MetaIS presmeruje referencovateľný identifikátor samo do seba. V príklade je zobrazená verzionovateľná entita tj. entita, ktorá má verzie .
...
Nakoľko MetaIS je priamo správcom ontológiíí, v rámci MetaIS prebehne presmerovanie napríklad na URIURL
Code Block |
---|
https://metais.finance.gov.sk/view/ontology?view=legal-subject&version=2017-05-30 |
...
Žiadateľ môže v systéme MetaIS požadať o pridelenie celého menného priestoru tj. identický proces ako v bode 1.
1.3.1 Neverzionovateľné URI entityreferencovateľné identifikátory
RPO požiada o zaregistrovanie menného priestoru :
Code Block |
---|
https://data.gov.sk/id/legal-subject/{id} |
pre potreby URI identifikácie tvorby jednotného referencovateľného identifikátora RPO entít.Samotný vlastník menného priestoru RPO, môže definovať šablónu na presmerovania pri dereferenciácii v dvoch možnostiach
a) Použitím celej URI celého jednotného referencovateľného identifikátora tj. využitie nahradzujúceho vzoru {uri} napr.
...
Code Block |
---|
https://data.gov.sk/id/legal-subject/50349287 |
Po zadaní tohto URI jednotného referencovateľného identifikátora do webového prehliadača, portál data.gov.sk presmeruje dopyt na :
...
Note |
---|
Názvy parametrov id_parameter, uri_parameter a verzia_parameter v príklade sú ilustratívne a vlastník URI šablóny jednotného referencovateľného identifikátora si ich môže pomenovať ľubovolne. Placeholdery {id},{uri},{version} sú dané a na ich základe je možné vytvoriť šablónu na presmerovanie. |
1.3.2 Verzionovateľné URI entity referencovateľné identifikátory (verzionovateľné entity podliehajú špeciálnej špecifikácii)
...
Entita v konkrétnej verzii, ktorý je zároveň jednoznačným URI jednotným referencovateľným identifikátorom pre úložisko je
Code Block |
---|
https://data.gov.sk/id/egov/eform/ICO_poskytovatela.nazov_elektronickeho_formulara.jazyk.doplnujuca_informacia/1.1 |
...
Nakoľko pre dokumenty typu /doc sú nie je URI časť referencovateľného identifikátora {id} ani {version} požadovaná, je možné si zaregistrovať aj úložisko ako (ide čisto o príklad, bez reálneho URI nie reálny referencovateľný identifikátor pre UPVII dokumenty)
Code Block |
---|
https://data.gov.sk/doc/egov/filesystem/upvii/ |
...
V určitých prípadoch je vhodné, aby mal zdroj viacero možností návratových hodnôt URI entity referencovateľných identifikátorov tj. nie len vizualizácia vo webovom prehliadači, ale aj štruktúrovaná odpoveď vo formáte RDF/XML, JSON, XML. Na základe týchto požiadaviek je vytvorená metodika, ktorá povoľuje dynamicky dereferencovať zdroj a to :
- použitím query časti v URI v referencovateľnom identifikátore tj. časti za otáznikom
- modifikovaním odpovede dereferenciácie prostredníctvom HTTP hlavičky
Tým vzniká pre vlastníka URI šablóny jednotného referencovateľného identifikátora, ktorý dereferenciuje svoje entity povinnosť zdokumentovať v MetaIS parametre dereferenciacie. Parametre či už v hlavičke alebo za znakom otáznik nemenia samotnú identitu URI. Je možné ich chápať ako parametre služby na ten istý zdroj. Identifikátor entity v štandarde nepoužíva query časť v URI tj. identita medzi dvoma URI referencovateľnými identifikátormi je preto určená bez query časti v URIreferencovateľnom identifikátore.
2.1.1 Prostredníctvom query part v URI
Modifikácia dereferenciácie použitím otáznika, za ktorým pokračujú key=value parametre väzbené cez & znak. Pre každý registrovaný URI menný priestor jednotný referencovateľný identifikátor je vyžadované aby všetky vstupné parametre "key" ako aj ich hodnoty "value" boli štrukturovane zdokumentované v MetaIS.
...
Code Block |
---|
https://data.gov.sk/id/egov/app-service/55119/1.0 |
nakoľko čast URI referencovateľného identifikátora query (časť key=value za ?) nie je braná ako súčasť referenčného referencovateľného identifikátora URI.
2.1.2 Prostredníctvom HTTP hlavičky
...
1. Dereferenciácia URI pre neregistrovaný menný priestor
V prípade, že používateľ chce dereferencovať URIreferenčný identifikátor, ktorého menný priestor nie je registrovaný v MetaIS alebo daná entita nie je v správe MetaIS, systém MetaIS vráti HTTP status code 404.
2. Dereferenciácia URI pre registrovaný menný priestor no neexistujúcu entitu
V prípade, že entita identifikovaná prostredníctvom URI jednotného referencovateľného identifikátora neexistuje v systéme na ktorý bolo z MetaIS spravené presmerovanie, daný systém má povinnosť vrátiť návratovú hodnotu HTTP status code 404. V takom prípade MetaIS zobrazí vlastníka menného priestoru s oznamom, že daná entita neexistuje v zdrojovom systéme.
3. Dereferenciácia nereferenčného URI prvku referencovateľného identifikátora (nie jednotného referencovateľného identifikátora) - prvky, bez data.gov.sk domény
V praxi môže nastať situácia, kedy je jedna entita reprezentovaná viacerými URIreferencovateľnými identifikátormi. Podľa štandardu je povinnosť mať vytvorený mapovací dataset, ktorý premapováva vlastné URI na referenčné URIreferencovateľné identifikátory na jednotné referencovateľné identifikátory, ktoré sú schválené v MetaIS.
Príklad:
Bratislavský kraj sa nachádza vo viacerých číselníkoch s rozdielnymi URIreferencovateľným identitikátorom, kde je jedno referenčné jednotný referencovateľný identifikátor a používa data.gov.sk. Poskytovateľ má mapovací dataset, kde pozná vzťah :
<https://statistics.sk/id/region/1> owl:sameAs <https://data.gov.sk/id/nuts3/SK010>
V prípade, že poskytovateľ (v tomto príklade štatistický úrad) by mal implementovanú dereferenciáciu, je požadované, aby na zadanie URI https://statistics.sk/id/region/1 do webového prehliadača bola odpoveď HTTP Status code 303 (See Other), ktorá vráti pre danú entitu referenčné URI tj https://data.gov.sk/id/nuts3/SK010 čí sa postupne prečistí celý URI priestor.
4. Not modified pri použití HTTP hlavičky If-Modified-Since
V prípade, že sa nezmení verzinovateľný zdroj od času definovaného v If-Modified-Since, je návratová hodnota HTTP Status Code 304 Not Modified.
2.3 Použitie Fragment Identifier (#) v URI na určenie podriadeného prvku vrámci zdroja
Dereferenciácia dokáže odkazovať aj na obsah, pre ktorý je v mnohých prípadoch nutné identifikovať podriadený prvok vrámci dereferencovaného obsahu. Táto požiadavka je riešená pre dokumenty typu /doc pomocou Fragment identifier .
Takýmto spôsobom je možné ukázať
- pri HTML stránke na konkrétnu oblasť stánky (anchor/kotva na stránke)
- pri PDF na konkrétnu stránku. Príklad : tps://data.gov.sk/doc/egov/metais/ADRESAR/V/METAIS/strategicka-priorita.pdf#page=20
- Odkaz na XML prvok, ktorý vychádza z W3C špecifikácie https://www.w3.org/TR/xptr-framework/ . Tento spôsob bude možno súčasťou mapovania centrálneho modelu údajov na XML elektronických súborov. Príklad definovania XML časti pomocou Xpath /Osoba/Priezvisko https://data.gov.sk/doc/egov/eform/ICO_poskytovatela.nazov_elektronickeho_formulara.jazyk.doplnujuca_informacia/1.1/ADRESARE/Subor.xml#xpointer(/Osoba/Priezviesko)