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
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
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 :
- použitím query časti v URI tj. časti za otáznikom
- modifikovaním odpovede dereferenciácie prostredníctvom hlavičky
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 :
- Vizualizácia pre koncového použ ívateľa
- application/xhtml+xml
- text/html
- Strojov spracovateľný výstup
- application/xml
- application/json
- application/ld+json
- application/rdf+xml
- application/zip
- ...
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.
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