Sémantické dátové štandardy pre údaje verejnej správy SR

Lubor, postupne budem porovnavat vlastnosti nášho prístupu s tvojimi pripomienkami, pojdem ale postupne, pomaly. Keďže nas pristup je komplexný systém dovolím si ho nazvať Variantou A, pričom tvoj kompilacny prístup si dovolim oznacit za variantu B.

Skúsim ich bližie zadefinovať:

Varianta A: Komplexný systémový návrh sémantických dátových štandardov [18 paragrafov] je založený na svetových štandardoch semantiky W3C, odporúčaniach v rámci Government Linked Data, v súlade s odporúčaniami SEMIC (Semantic Interoperability Community)
SEMIC Support Centre , ktorá je súčasťou ISA (Interoperability Solutions for European Public Administrations (ISA) Programme) pod európskou komisiou.URI reprezentujú rôzne entity, či už indivíduá (reálne objekty sveta), defínície (ontológie, triedy, vlastnosti), datasety (číselníky, hierarchie), distribúcie datasetov, katalógy, pričom sú používané A) odporučené ontológie na verejné dáta ako DCAT, ADMS, PERSON, ORGANIZATION …B) súčasne URI zohľadňujú tzv. štúdiu perzistencie URI, publikovanej tu: https://joinup.ec.europa.eu/sites/default/files/D7.1.3%20-%20Study%20on%20persistent%20URIs.pdf

Varianta B: skúsim ju extrahovať z tvojho príspevku. Napísal si že kľúčové je:

  • pre každú inštanciu dátového prvku mať ref.id.
  • URI by mohlo vyzerať nejako takto: http://data.gov.sk/refid/f589a1e7-a27d-47ad-9f85-d69b86ac949d
  • vytvárať ref.id. pre konštrukty pre ktoré dnes neexistuje dátový prvok iba ak je to ozaj nevyhnutné (zakladá to budúce problémy)
  • vytvárať ref.id. tak, aby sa dalo automaticky (strojovo) konvertovať medzi ref.id. a dnes používaným - - identifikátorom v príslušnej doméne
  • pamätať pri návrhu, že ref.id. bude (snáď) používaný ako lokátor
  • najdôležitejšie sú procesy: kto, kedy a akú povinnosť má vytvárať, prijímať a používať ref.id.

Pripomienky budem dávať k tvojmu návrhnu postupne, bude to trvať dni, až týždne kým sa vypíšem. :wink: Na začiatok si tu dovolím uviesť, na čo je vlastne sémantika dobrá, pretože často budem potrebovať vyzdvihnúť ciele. Je to vyjadrené v sémantických štandardoch (zatiaľ veľmi narýchlo navrhnutý text), časť A, paragraf §A2 - Strategický zámer použitia sémantiky vo verejných dátach - je - Poskytovanie všetkých verejných dát vo forme 4★ a 5★ z pohľadu 5★open data pre nasledovné potreby: Umožnenie efektívne prepojiť VŠETKY VEREJNÉ DÁTA, tj, rôzne registre, datasety, číselníky, hierarchie prostredníctvom sémantiky zavedením jednotných URI identifikátorov a štandardizovaných ontológií pre jednotlivé entity, pre efektívne spracovanie, vyhľadávanie, integráciu, analytiku … atď. Sémantika je kľúčová pre zefektívnenie verejných dát.

V tomto príspevku sa hlavne zameriam na prvé dva body, aj to úvodne zatiaľ:

[- pre každú inštanciu dátového prvku mať ref.id.]
[- URI by mohlo vyzerať nejako takto: http://data.gov.sk/refid/f589a1e7-a27d-47ad-9f85-d69b86ac949d ]

V sémantike je to trochu širšie. Názov dátový prvok je v sémantike najpodobnejší triede, tj. owl:Class, prípade konceptu, tj. skos:Concept. Platí, že aj tento dátový prvok má svoj jednotný referencovateľný identifikátor (skos = SKOS Simple Knowledge Organization System Namespace Document - HTML Variant, 18 August 2009 Recommendation Edition, owl = http://www.w3.org/2002/07/owl# ) . Keď chcem zadefinovať nejaký nový dátový prvok, aj tomu musím dať URI (nie len jeho inštancii). Čiže najskôr vytvorím ontológiu ktorá má vlastné URI a v nej vytvorený element ontológie získava toto URI. V našom prípade išlo napr. o prenesenie KDP (katalógu dátových prvok) do sémantiky, čím vznikla Ontológia dátových prvkov, ktorá má URI

http://data.gov.sk/def/ontology/odp

pričom napr. taká fyzická osoba (D.1.1) má URI

http://data.gov.sk/def/ontology/odp/PhysicalPerson

čiže v tripletoch to vyzerá nasledovne (nech odp = http://data.gov.sk/def/ontology/odp, rdf = …):

odp:PhysicalPerson rdf:type owl:Class .
odp:PhysicalPerson rdfs:label "fyzická osoba" .
odp:PhysicalPerson skos:historyNote "D.1.1" .

Podobne je to aj pri vlastnosti, aj tá ma URI, napr. priezvisko je dátovou vlastnosťou fyzickej osoby

odp:familyName rdf:type owl:DataTypeProperty .
odp:familyName rdfs:label "priezvisko"
odp:familyName skos:historyNote "D.1.1.1.6" .
odp:familyName rdfs:domain odp:PhysicalPerson .

PS: dobre sa to číta, že? Čiže napr. môžem povedať že ja sa volám Líška takto (moje URI odvodím napr. od toho ze som clenom PS1):

<http://data.gov.sk/id/person/ps1-member/miroslav-liska> odp:familyName "Liska" .

Tak. Teraz skocme do varianty B, kde maju byt URI v tvare http://data.gov.sk/refid/f589a1e7-a27d-47ad-9f85-d69b86ac949d. Dam ti tu takýto triplet:

refid:f589a1e7-a27d refid:aa89a1e7-47ad "Kovac" .

Ma tusenie o com je tento triplet? Povolanie? Priezvisko? Prezývka?
No nevadí, pridajme ďaľšie cenné znalosti

refid:f589a1e7-a27d refid:aa89a1e7-8888 refid:1189a1e7-5487 .

táto je tiež dobrá

refid:f589a1e7-a27d refid:cchjgjhd-8888 refid:ferfrgge-hfjd .

krása že? Zhrniem:

Varianta B
refid:f589a1e7-a27d refid:aa89a1e7-47ad "Kovac" . refid:f589a1e7-a27d refid:aa89a1e7-8888 refid:1189a1e7-5487 . refid:f589a1e7-a27d refid:cchjgjhd-8888 refid:ferfrgge-hfjd .

Varianta A:
sav-person:dusan-kovac odp:familyName "Kovac" . sav-person:dusan-kovac odp:sex "1" . sav-person:dusan-kovac odp:marrital-status "2" .

Verim ze vies o kom boli posledne tri triplety.

Trosku odbocim, ale prilezitost vysvetlit strojove odvodzovanie treba vyuzit. Vies iste o tom, ze by som dokazal najst vyhladavanim dusana kovaca aj podla textu “osoba”, hoc, napr. tie tri posledne triplety o tom nic nehovoria? Jednoducho kedze domena relacie odp:familyName je odp:PhysicalPerson, stroj odvodi ze

sav-person:dusan-kovac rdf:type odp:PhysicalPerson .

No a to je kluc aby bolo vyhladavanie nad verejnymi datami ako sa na dnesne pomery vyzaduje.

Tak ci onak, co povies na tu citatelnost URI?

  • Je to dolezite, dokazeme sa bavit o merite veci, chapeme vyznam. To by si vazne chcel aby ludia co budu robit s URIckami (analytici/navrhari/implementatori/testeri) radsej pouzivali zakodovany nic nehovoriaci format? Bolo by to velmi neefektivne, …, a kedze sa tu jedna o verejne data, o obrovske mnozstvo tripletov, bola by to hruza.

Tu by som mohol uz skoncit, ale este trosku predsa len:

Co je ale dolezite, napr. pravidla pre perzistentne URI hovoria, ze ak sa da, mame zachovavat pouzivane IDcka v casti identita URI. A to je splnene, pretoze napr. polozka z ciselnika pohlavie muz ma nasledovne URI: http://data.gov.sk/def/sex/1 , hoc mohlo by to byt aj http://data.gov.sk/def/sex/male, lenze mame velke mnozstvo ciselnikov a to by bolo uz neefektivne zase takto robit URI. Cize je tu vyvazena citatelnost. Nie je uplne maximalna, ale nie je to ani zakodovana hatlmatinka :wink: Nastatie, aj v sucasnom zneni vynosu je pravidlo na URI - citatelnost uz zabezpecena.

Čerešnička v tejto téme na záver. Neviem či si niekedy robil so SPARQL, teda jazykom na dopytovanie grafu. Alebo, či si niekedy traverzoval RDF grafom, tj. prieskumne si prechádzal uzol po uzle v grafe.

Tu je napr. RDF graf vizualizujúci 5 tripletov:

A teraz si predstav ze takeho andreja kisku kludne popise 100 tripletov. Pekny graf. S tym sa da robit vela veci, transformovat ho na dopyt (odstranim uzol Kiska, a hlavny uzol prezidenta zmenim na premennu, cim sa pytam: Vrat mi prezidentov ktory sa volali Andrej.)

No a keby mal byt tento graf zakodovany, tak to by bolo dost narocne cokolvek s tym robit … to by si analytikom teda pekne zavaril.

Ked to zhrniem. Ulohou tohto prispevku bolo poukazanie na dolezitost citatelnosti URI. Ak nepridu k tomu ziadne pripomienky, budem sa venovat skvelej problematike

vytvárať ref.id. pre konštrukty pre ktoré dnes neexistuje dátový prvok iba ak je to ozaj nevyhnutné (zakladá to budúce problémy).

Jednotlivych paragrafov popisujucich datove standardy som sa zatial moc nedotykal, i na to pride cas. :wink:

1 Like