Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

Kľúčovú rolu v dereferenciacii referenčných URI jednotných referencovateľných identifikátorov zohrávajú dva komponenty : MetaIS ako referenčných referenčný register URI referencovateľných identifikátorov a portál data.gov.sk, ktorý je doménou pre referenčné dátajednotné referencovateľné identifikátory.

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 URI 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 URI priestorov referencovateľných identifikátorov.

Žiadateľ môže v systéme MetaIS požadať 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 URI 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 URI referencovateľného identifikátora entity, ktorá je v gescii MetaIS, MetaIS presmeruje URI referencovateľný identifikátor samo do seba ako je definované v bode 2. V priklade v bode 2príklade je zobrazená neverzionovateľná verzionovateľ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:

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

 

URI Jednotný referencovateľný identifikátor ontológie právneho subjektu je :

Code Block
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:
Code Block
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 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.owl

 


Entity, ktoré nemajú verzie a sú v správe MetaIS časť s definovaným parametrom {version} nemajú.

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 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://rpo.statistics.sk/rpo/view?uri_parameter={uri}
// Konkrétny príklad pre UPVII
https://rpo.statistics.sk/rpo/view?uri_parameter=https://data.gov.sk/id/legal-subject/50349287

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

Code Block
https://rpo.statistics.sk/rpo/view?id_parameter={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

...

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 :

...

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

Code Block
https://rpo.statistics.sk/rpo/view?id_parameter=50349287
alebo
https://rpo.statistics.sk/rpo/view/50349287

...

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

 

Note

Názvy parametrov id_parameter, uri_parameter a verzia_parameter v príklade sú ilustratívne a vlastník š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)

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.

...

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

 

b) Ostatené verzionovateľné entity

Entita v konkrétnej verzii, ktorý je zároveň 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

 

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.

 

kde za verziou nasleduje cesta v úložisku na súbor schema.xsd

Code Block
https://rpodata.statisticsgov.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}

 

Code Block
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 :

 

doc/egov/eform/ICO_poskytovatela.nazov_elektronickeho_formulara.jazyk.doplnujuca_informacia/1.1/schema.xsd

Nakoľko pre dokumenty typu /doc nie je č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, nie reálny referencovateľný identifikátor pre UPVII dokumenty)

Code Block
https://data.gov.sk/doc/egov/filesystem/upvii/

A následne je možné pre toto úložisko referovať súbor ako :

Code Block
https://data.gov.sk/iddoc/legal-subject/50349287

 

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

...

egov/filesystem/upvii/nazov_dokument.pdf

 

b) Ostatné verzionovateľné entity


Príklad verzionovateľnej entity aplikačná služba

Code Block
https://

...

data.

...

gov.sk/

...

id/

...

egov/app-

...

service/55119/1.0

 

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

Samotný vlastník menného priestoru, môže definovať šablónu na presmerovania pri dereferenciácii rovnako ako v bode 1.3.1 s pridaným parametrom version.
Všeobecný priklad:

 

Code Block
https://

...

nejaky-portal.

...

sk/

...

nejaky-context/view?id

...

_parameter={id}&verzia_parameter={version}
alebo ako friendly URL
https://

...

nejaky-portal.

...

sk/

...

 

 

...

nejaky-context/{id}/{version}
Note

Názvy parametrov id_parameter a verzia_parameter v príklade sú ilustratívne a vlastník URI šablóny 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.

 

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 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ý 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.

Modelová situácia slúži len ako príklad. Samotnú dereferenciáciu https://data.gov.sk/id/egov/app-service/ bude mat v kompetencii subjekt, ktorý vlastní daný menný priestor

Pri štandardnom dopyte na:

Code Block
https://data.gov.sk/id/egov/app-service/55119/1.0

sa používateľovi vo webovom rozhraní zobrazia informácie o vlastníkovi, ostatných verziách danej služby, kedy bola služba registrovaná. Nakoľko je dobré aby bola dereferenciácia používaná aj pre vývojárov, pridaním parametra view s hodnotou apidoc by sa zobrazila iná vizualizácia entity so štruktúrovanou dokumentáciou volania služby.

Príklad možnosti získania API dokumentácie k službe

Code Block
https://data.gov.sk/id/egov/app-service/55119/1.0?view=apidoc

Referenčný identifikátor služby je stále identicky tj.

Code Block
https://data.gov.sk/id/egov/app-service/55119/1.0

nakoľko čast referencovateľného identifikátora query (časť key=value za ?) nie je braná ako súčasť referencovateľného identifikátora.

2.1.2 Prostredníctvom HTTP hlavičky

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

Content-Type

Použitie tejto HTTP 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 prostredníctvom JSON, XML alebo RDF/XML formátu.


Štandardne používame nasledovné hodnoty pre Content-Type HTTP 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
    • ...

 

...

Všeobecná špecifikácia tejto HTTP hlavičky sa nachádza na https://tools.ietf.org/html/rfc7231#section-3.1.1.5

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. je možné výsledok/návratovú hodnotu dereferenciácie verzionovať. Na tento účel slúži Media Type Versioning koncept.

Príklad media type versioningu

Code Block
application/vnd.myname.v1+json

Táto hlavička nemení verziu entity (napr. pri verzionovateľných entitýchentitá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.

...

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 portáli 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 HTTP 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.

 

Všeobecná špecifikácia tejto HTTP hlavičky sa nachádza na  https://tools.ietf.org/html/rfc7232#section-3.3

2.2 HTTP Status codes

 

1. Dereferenciácia URI referencovateľného identifikátora 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 referencovateľného identifikátora 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.

PrikladPríklad: 

Bratislavský kraj sa nachádza vo viacerých číselníkoch s rozdielnymi URI, kde jedno referenčné a používa data.gov.sk. referencovateľným identitikátorom, no zároveň existuje aj jednotný referencovateľný identifikátor, ktorý je referečný. Poskytovateľ má mapovací dataset, kde pozná vzťah medzi referencovateľným a jednotným referencovateľným identifikátorom : 

<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 referencovateľného identifikátora 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 jednotný referencovateľný identifikátor tj https://data.gov.sk/id/nuts3/SK010 čí čím sa postupne prečistí celý URI priestor referencovateľných identifikátorov. 

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

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:

referencovateľnom identifikátore 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/
eform1234561.0HOCI/AKE/ADRESARE/Subor.xml#xpointer(//Osoba/Priezviesko)

 

Na zaklade specifikacie, ktora vyuziva Fragment Identifiery vid enwikipediawiki/Fragment_identifier je mozne referovat obsah aj inych typov dokumentov prostrednictvom URI. Priklad referovania 20 strany PDF dokumentu
  • 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/
metais/strategicka-priorita-open-data/1.0/ADRESAR/V/METAIS/strategicka-priorita.pdf#page=20
Unknown macro: {add-label}