Dereferenciácia je proces, kedy je URI 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 referenčné URI 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 bude zohladňovať prístupové práva a zobrazovať citlivé údaje v zmysle platnej legislatívy.

Kľúčovú rolu v dereferenciacii referenčných URI zohrávajú dva komponenty : MetaIS ako referenčných register URI 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 :

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

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 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 URI 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 URI priestorov.

Žiadateľ môže v systéme MetaIS požadať o pridelenie celého menného priestoru. Napr. RPO požiada o zaregistrovanie menného priestoru :

https://data.gov.sk/id/legal-subject/{id}

pre potreby URI identifikácie RPO entít. Samotný menný priestor je

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 :

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 URI entít 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 URI entity, ktorá je v gescii MetaIS, MetaIS presmeruje URI samo do seba ako je definované v bode 2. V priklade v bode 2 je zobrazená neverzionovateľná entita tj. entita, ktorá nemá verzie . Jediným rozdielom je pridanie parametru version, ktorý je nutné špecifikovať

Príklad šablóny verzionovateľnej entity:

https://data.gov.sk/def/ontology/{id}/{version}

 

URI ontológie právneho subjektu je :

https://data.gov.sk/def/ontology/legal-subject/2017-05-30.owl

 

Po zadaní toho URI do webového prehliadača, portál data.gov.sk spraví presmerovanie na:
https://metais.finance.gov.sk/refid/def/ontology/legal-subject/2017-05-30.owl

 

Nakoľko MetaIS je priamo správcom ontológiíí, vrámci MetaIS prebehne presmerovanie napríklad na URI

https://metais.finance.gov.sk/view/ontology?view=legal-subject&version=2017-05-30.owl

 

1.3. Dereferenciácia entity mimo správy MetaIS

Ž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 entity

RPO požiada o zaregistrovanie menného priestoru :

https://data.gov.sk/id/legal-subject/{id}

pre potreby URI identifikácie 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 tj. využitie nahradzujúceho vzoru {uri} napr.

https://rpo.statistics.sk/rpo/view?uri={uri}
// Konkrétny príklad pre UPVII
https://rpo.statistics.sk/rpo/view?uri=https://data.gov.sk/id/legal-subject/50349287

b) Použitím ID časti tj. využitie nahradzujúceho vzoru {id}

https://rpo.statistics.sk/rpo/view?id={id}
alebo
https://rpo.statistics.sk/rpo/view/{id}
// Konkrétny príklad pre UPVII
https://rpo.statistics.sk/rpo/view?id=50349287
https://rpo.statistics.sk/rpo/view/50349287

Entita Úradu podpredsedu vlády SR pre investície a informatizáciu pre daný menný priestor by vyzerala nasledovne :

https://data.gov.sk/id/legal-subject/50349287

Po zadaní tohto URI identifikátora do webového prehliadača, portál data.gov.sk presmeruje dopyt na :

https://metais.finance.gov.sk/refid/id/legal-subject/50349287

V prípade, že RPO vyplní šablónu na presmerovani, MetaIS spraví presmerovanie na stránku registrátora podľa definovaného zdroja.

https://rpo.statistics.sk/rpo/view?id=50349287
alebo
https://rpo.statistics.sk/rpo/view/50349287

 

V prípade, že RPO nevyplní šablónu na presmerovani, MetaIS zobrazí stránku o popise menného priestoru s údajmi ako napríklad kto je vlastníkom daného menného priestoru, dátum registrácie a pod.


1.3.2 Verzionovateľné URI entity (verzionovateľné entity podliehajú špeciálnej špecifikácii)

a) Typ DOC


Verzionovateľné entity typu doc predstavujú špeciálnu kategóriu pre potreby dereferenciácie. Hlavným rozdielom je referencia statických súborov v namapovanom úložisku.

Žiadateľ môže v systéme MetaIS požadať o pridelenie celého menného priestoru. Napr. MEF (modul elektronických formulárov) požiada o zaregistrovanie menného priestoru pre úložisko na dereferenciáciu súborov z definičného balíčka elektronických formulárov:

https://data.gov.sk/doc/egov/eform/{id}/{version}

Samotný unikátny menný priestor je

https://data.gov.sk/doc/egov/eform/

 

b) Ostatené verzionovateľné entity

https://data.gov.sk/doc/egov/eform/30807484.ziadost_o_vydanie_potvrdenia_o_nedoplatkoch_na_socialnom_poisteni_fo.sk/1.1

 

Samotný vlastník menného priestoru, môže definovať šablónu na presmerovania pri dereferenciácii v dvoch možnostiach

 

a) Použitím celej URI tj. využitie nahradzujúceho vzoru {uri} napr.

 

https://rpo.statistics.sk/rpo/view?uri={uri}
// Konkrétny príklad pre UPVII
https://rpo.statistics.sk/rpo/view?uri=https://data.gov.sk/id/legal-subject/50349287

 

b) Použitím ID časti tj. využitie nahradzujúceho vzoru {id}

 

https://rpo.statistics.sk/rpo/view?id={id}
alebo
https://rpo.statistics.sk/rpo/view/{id}
// Konkrétny príklad pre UPVII
https://rpo.statistics.sk/rpo/view?id=50349287
https://rpo.statistics.sk/rpo/view/50349287

 

Entita Úradu podpredsedu vlády SR pre investície a informatizáciu pre daný menný priestor by vyzerala nasledovne :

 

https://data.gov.sk/id/legal-subject/50349287

 

Po zadaní tohto URI identifikátora do webového prehliadača, portál data.gov.sk presmeruje dopyt na :

 

https://metais.finance.gov.sk/refid/id/legal-subject/50349287

 

V prípade, že RPO vyplní šablónu na presmerovani, MetaIS spraví presmerovanie na stránku registrátora podľa definovaného zdroja.

 

https://rpo.statistics.sk/rpo/view?id=50349287
alebo
https://rpo.statistics.sk/rpo/view/50349287

 

 

V prípade, že RPO nevyplní šablónu na presmerovani, 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.

 



2. Technická špecifkácia dopytovania a odpovedí dereferenciácie

2.1 Dynamická zmena dereferenciácie prostredníctvom parametrov

V určitých prípadoch je vhodné, aby mal zdroj viacero možností návratových hodnôt URI entity. Na zaklade tychto poziadaviek je vytvorená metodika, ktorá povoľuje dynamicky dereferencovať zdroj a to :

Tým vzniká pre vlastníka URI šablóny, 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 je preto určená bez query časti v URI.

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.

2.1.2 Prostredníctvom hlavičky

Výsledok dereferenciácie je možné ovplyvňovať aj na základe hlavičiek. Povolené sú preto hlavičky : 

Content-Type

Použitie tejto hlavičky dovoľuje dereferencovať zdroj a to ako pre bežného používateľa, ktorý očakáva webovú vizualizáciu, tak aj pre technického používateľa, ktorý by chcel dostať informácie o zdroji v štruktúrovanej podobe tj. prostredníctom JSON, XML alebo RDF/XML formátu.


Štandardne používame nasledovné hodnoty pre Content-Type hlavičku :

 

Version/Media type versioning
Nakoľko sa API poskytovateľov dereferenciácie môže vyvíjať v čase, hlavička Version povoľuje zmeniť návratovú hodnotu/vizualizáciu pre dané URI. Táto hlavička nemení verziu entity (napr. pri verzionovateľných entitých) ale LEN návratovú hodnotu pri dereferenciácii. V prípade, že pri volaní nie je verzia špecifikovaná, používa sa najnovšia verzia.

 


If-Modified-Since

Používatelia sa môžu často dopytovať na zdroj, ktorý je verzionovateľný. V prípade, že nie je zadaná verzia v URI, automaticky sa vracia vždy posledná verzia, čo môže byť požadovaná integračná vlastnosť pre mnohé systémy. Pre optimalizáciu poskytovania obsahu sa preto používa práve táto hlavička. Príklad: 

Používateľ chce sťahovať zoznam právnických osôb, ktoré sú vypublikované na portály data.gov.sk. Nakoľko chce mať vždy prehľad o najnovších entitách dopytuje sa na dataset všetkých právnických osôb s URI bez verzie. Daný dataset je ale veľký a tým pádom by často sťahoval obsah čo zaťažuje infraštruktúru. Prostredníctvom tejto hlavičky vie nastaviť, že nový obsah sťahuje len v prípade, že je vypublikovaná nová verzia. Ak sa obsah nezmenil, návratová hodnota má HTTP Status code 304 Not Modified

2.2 HTTP Status codes

 

1. Dereferenciácia URI pre neregistrovaný menný priestor

V prípade, že používateľ chce dereferencovať URI, 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 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

 

V praxi môže nastať situácia, kedy je jedna entita reprezentovaná viacerými URI. Podľa štandardu je povinnosť mať vytvorený mapovací dataset, ktorý premapováva vlastné URI na referenčné URI, ktoré sú schválené v MetaIS.

Priklad: 

Bratislavský kraj sa nachádza vo viacerých číselníkoch s rozdielnymi URI, kde jedno referenčné 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í 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

Referencia entit a ich premapovanie na centralny model udajov

Jeden z navrhov na prepojenie centralneho modelu udajov navrhuje prepojenie cez referovanie pomocou XPath v posielanom XML subor. Na zaklade tejto poziadavky, je zapracovany aj navrh refereovania konkretnej entity vramci suboru. Pre XML vychadza navrh zo https://www.w3.org/TR/xptr-framework/ , kde je mozne referovat vramci subor Subor.xml cez XPath konkretny element cim si nechavame otvoreny priestor pre dalsie kolo standardizacie vramci prechodu na Centralny model udajov a��jeho napojenie na elektronicke formulare.

 

https://data.gov.sk/doc/egov/eform/123456/1.0/HOCI/AKE/ADRESARE/Subor.xml#xpointer(//Osoba/Priezviesko)

 

Na zaklade specifikacie, ktora vyuziva Fragment Identifiery vid https://en.wikipedia.org/wiki/Fragment_identifier je mozne referovat obsah aj inych typov dokumentov prostrednictvom URI. Priklad referovania 20 strany PDF dokumentu

https://data.gov.sk/doc/metais/strategicka-priorita-open-data/1.0/ADRESAR/V/METAIS/strategicka-priorita.pdf#page=20