390 likes | 612 Views
Relāciju datu bāzu informācijas pieejamība semantiskā tīmekļa tehnoloģijām. Guntars Būmans 20.06.2012. Darba vadītājs: Dr.sc.comp., profesors Kārlis Čerāns. RDB <-> OWL: modeļu atšķirības. Elementu un saišu vārdi Apakšklašu relācija (mantošana) n:n relācija Kardinalitātes
E N D
Relāciju datu bāzu informācijas pieejamība semantiskā tīmekļa tehnoloģijām Guntars Būmans 20.06.2012. Darba vadītājs: Dr.sc.comp., profesors Kārlis Čerāns
RDB <-> OWL: modeļu atšķirības • Elementu un saišu vārdi • Apakšklašu relācija (mantošana) • n:n relācija • Kardinalitātes • Konceptuāls un tehnisks projektējums
Divu modeļu atšķirības OWL RDB • Relācijushēmas atbilst implementācijas modelim. • Relāciju shēmas elementiem ir tehniski nosaukumi. • Nevar nodefinēt ārējai atslēgai inverso. • Apakšklašu attiecībai nav atbalsts. • ontoloģijas parasti atbilst konceptuālam modelim. • klasēm un īpašībām piešķir konceptuālus nosaukumus. • var nodefinēt inversās īpašibas. • Apakšklašu attiecība ir dabiska.
...divu modeļu atšķirības OWL RDB • Nevar nodefinēt daudzi pret daudziem saiti starp tabulām. • Saitēm starp tabulām nevar deklaratīvi nodefinēt kvantitātes ierobežotājus. • Katram informācijas pieprasījumam jāraksta atsevišķa SQL komanda • Īpašības var aprakstīt daudzi pret daudziem attiecībās starp klasēm. • Īpašībām var pievienot kardinalitātes nosacījumus. • Ir uz loģiku bāzēta valoda un tai ir secināšanas rīki (Pellet, FaCT++, uc.)
Nepieciešamība pēc attēlojumu risinājumiem no RDB uz RDF/OWL • Attīstās semantiskās tehnoloģijas (RDF, OWL, SPARQL, uc.) un to atbaltošie rīki (OpenLinkVirtuoso, Jena, Sesameuc.) • Lielākā datu glabājas relāciju datu bāzēs, jo • tās ir efektīvas ātruma un datu apjoma ziņā, • tām ir precīza definīcija, • tām ir augstas drošības garantijas iespējas, • eksistē daudz uz SQL bāzētu rīku un lietotņu izstrādes vides, • eksistē daudz lietotņu, kas izmanto relāciju datu bāzes
Attēlojuma risinājumi RDB<->RDF/OWL attēlojuma risinājums Relāciju DB shēma OWL ontoloģija • Tiešais attēlojums definē attēlojumu no relāciju datu bāzes datiem uz to reprezentāciju RDF grafa veidā, kam struktūra un izmantotā vārdnīca tieši atbilst relāciju datu bāzes shēmai. • Attēlojumu valoda nodibina patvaļīgu atbilstību starp RDB un RDF datu kopām, kas izteiktas autora izvēlētā vārdnīcā (ontoloģijā) un struktūrā. atbilst atbilst RDF dati (trijnieki) DB tabulu raksti
Esošie tiešā attēlojuma risinājumi • W3C standarts par relāciju datu tiešo attēlojumu uz RDF (“A DirectMappingofRelationalData to RDF”). • Relational.OWL platforma. Relāciju shēmu apraksta ar speciālas ontoloģijas palīdzību. • DB2OWL- rīks automātiskam attēlojumam no OWL ontoloģijas uz relāciju datu bāzi. • UltraWrap- SQL skati, vienkāršas atbilstības.
Esošie attēlojumu valodas risinājumi • R2RML: (“RDB to RDF MappingLanguage”) attēlojuma valoda no RDB uz RDF (W3C). • Attēlojums no datu bāzes uz mērķa ontoloģiju, izmantojot Relational.OWL un SPARQL. • R2O: XML bāzēta attēlojuma valoda. • D2RQ: atbilstību ontoloģija, ETL vai dinamiskā piekļuve RDB datiem. • Virtuoso RDF Views: dinamiska piekļuve RDB datiem, translējot atbilstību definīcijas uz SQL pieprasījumiem.
...esošie attēlojumu valodas risinājumi • Triplify: PHP kodā integrētas speciāla veida SQL komandas (zema līmeņa). • DartGrid: tabulu veidā izteiktas atbilstības un rīki to ievadam un informācijas meklēšanai (SPARQL). • Spyder: rīks ar savu attēlojuma valodu, bet atbalsta arī jauno valodu R2RML (W3C). • Attēlojuma risinājums, izmantojot modeļu transformācijas (MOLA)
Esošajos attēlojuma risinājumos mazāk risinātie jautājumi • Maz uzmanības uz augsta līmeņa valodas konstrukcijām (piemēram, funkcijām). • Maz uzmanības uz lasāmību un pieraksta īsumu. • Maz izmanto informāciju par avota datu bāzes un mērķa ontoloģijas struktūrām. • Maz izmanto izsecināmo informāciju (tabulas ārējo atslēgu lauki, OWL īpašības domēna klase uc.).
Pētījuma mērķis • Izveidot ērtu RDB-RDF/OWL atbilstību specificēšanas valodu ar akcentu uz • lasāmību, • pieraksta īsumu, • augsta līmeņa valodas konstrukciju izmantošanu • Izveidot praktiskām situācijām piemērotu efektīvu atbilstību realizāciju.
Darba galvenie rezultāti • Izveidota RDB-RDF/OWL attēlojuma specificēšanas valoda RDB2OWL. • Izstrādāts RDB2OWL attēlojuma specificēšanas valodas parseris (BNF) un tās apakškopas realizācija. • Izstrādāta RDB2OWL izpildes vide ar datu bāzes shēmu atbilstību pierakstam. • Praktiskas izmantošanas iespēja Latvijas medicīnas reģistru piemērā: • RDB2OWL izpildes vides darbināšana, ģenerējot RDF trijniekus no relāciju datiem, • atbilstību specifikācija RDB2OWL valodā.
RDB2OWL valodas uzdevumi • Definēt saistību starp mērķa ontoloģijas un izejas DB shēmas elementiem. • Definēt, kā mērķa ontoloģijai atbilstošie RDF trijnieki tiek ģenerēti no datiem izejas DB. • Lietot precīzas saites uz izejas DB un mērķa ontoloģijas elementiem (validācijai, atkarību analīzei uc.). • Dot līdzekļus, lai izvairītos no koda atkārtojumiem: • netieša atsauce uz ārējās atslēgas kolonām, • funkciju atbalsts, • mainīgie konstrukciju iegaumēšanai un izmantošanai , • u.c.; • Dot valodas atbalstu dažiem tipiskiem atbilstību tipiem industrijā.
RDB2OWL valodas līmeņi • Raupjais RDB2OWL valodas pamata līmenis. • Kodola RDB2OWL- papildus konstrukcijas izteiksmju īsināšanai, izsecināmās informācijas izmantošana uc. • Pilnais RDB2OWL- funkcijas, vairāku klašu konceptualizācijauc. nosacījumi, datu bāzes palīga objekti.
Izteiksmju un filtru metamodelis Raupjā RDB2OWL izteiksmes: rakstu filtrācijai un tabulu saitēm.
Raupjā RDB2OWL semantika OWL klašu instanču RDF trijnieki filtrs • <val(x.uriPattern), ‘rdf:type’, c.entityURI> • Izteiksmju aprēķināšana notiek izejas RDB
Raupjā RDB2OWL semantika OWL objektu īpašību vērtību RDF trijnieki filtrs • <val(x.uriPattern), p.entityURI, val(y.uriPattern)>
Attēlojuma piemērs: raupjais RDB2OWL Pilnīgi nospecificēts RDB2OWL attēlojums , lietojot OWLGrEd redaktoru
Papildinājumi kodola RDB2OWL ->navigācija no ārējās atslēgas uz primāro =>navigācija no primārās atslēgas uz ārējo • Noklusētā uriPattern ģenerācija (PK info) • Atsauce uz klases attēlojumiem, izmantojot mainīgo vārdus [[T]],[[Teacher]] • Pirmo rindu atlase: Student=>Registration:first
Kodola RDB2OWL: navigācijas izteiksmes (Teacher t, Course c;t.teacher_id=c.teacher_id) • Navigācijas izteiksmes Teacher[teacher_id]=>[teacher_id]Course • Ņemot vērā primārās un ārējās atslēgas informāciju Teacher=>[teacher_id]Course Teacher=>Course =>(ņem vērā izsecināmos avota un mērķa attēlojumus)
Vairāku klašu konceptualizācija Vienai DB tabulai atbilst vairākas OWL klases un vēl vairāk īpašības. RDF trijnieks <x,’rdf:type’,A> jāģenerē tikai tad, ja eksistē cits trijnieks <x,p,y>, kam p.domain=A. Klases attēlojuma īsais pieraksts ir bez gariem filtra nosacījumiem: T {uri=(...)} !Out A type P x y A Tabulas raksti type Katram DB tabulas rakstam: klases instance tiek radīta tikai tad, ja tai eksistē “izejoša īpašība”, t.i.,
DB palīga objekti Princips: saglabāt izejas datu bāzi neskartu. Var pievienot papildus DB attēlojuma vajadzībām: • Papildus tabulas • Numbers (Tally) tabula, kam rindas satur skaitļus 1-n, palīdz sadalīt tekstu daļās • Neeksistējošu klasifikatory tabulu re-inženierija • SQL skati • Pagaidu tabulas (sarežģītākiem SQL- līmeņa aprēķiniem) Attēlojumam jāspecificē: • palīga datu bāze (piekļuve) • kods, kas jāizpilda pirms attēlojuma izteiksmju apstrādes
Lietotāja definētās funkcijas Funkcija sadala tekstu daļās, atgriežot rakstu kopu: split4(@X) = (Numbers; len(@X)<N*4).substring(@X,(N-1)*4+1,4)) 199219982004 -> {1992, 1998, 2004} 111 lietojumi Latvijas Medicīnas reģistru piemērā split4(ManyYears) kolonnai ManyYearstabulasA kontekstā tiek translēta uz: (A,Numbers; len(ManyYears)<N*4).substring(ManyYears,(N-1)*4+1,4))
Lietotāja definētās funkcijas ar aprēķināmām kolonnām FullCourseInfo(@cId)= ( (Course c)->(Teacher t); c.teacher_id=@cId; courseType= #iif(c.required,’Mandatory’,’Optional’)), teacherName=t.tname ).#concat( courseType, ‘ course ‘, c.cname , ’ toughtby ’, teacherName ) piemēram “MandatorycourseSemantic Web toughtbySaly”
Tabulu funkcijas izmanto divu kolonu tabulas data Ja funkcijas vārds sakrīt ar tabulas vārdu, tad tā ir tabulu funkcija COUNTRY(‘lv’) ‘Latvia’ Tas pats standarta notācijā: Definīcija: CountryName(@x)=(COUNTRY; code=@x).description Izsaukums: CountryName(‘lv’) ‘Latvia’
Agregātfunkcijas Ontoloģija DB Kredītpunkti, ko student izvēlējies SUM(=>XRegistration->XCourse.credits) Kredītpunkti, ko students apmaksājis SUM(=>XRegistration:isPaid=1->XCourse.credits)
RDB2OWL implementācija Metamodeļu repozitorijs MII REP Relāciju DB Transformācijas definīcija (lua,lQuery valoda) RDB2OWL sintakses MM RDB2OWL pilnais semantiskais MM RDB2OWL samazinātais semantiskaisMM RDB2OWL attēlojuma shēma xx.owl ar atēlojuma anotācijām attēlojuma dati instances instances instances Imports (java) + parseris (javacc) Transformāciju izpilde MII REP java API + jdbc
RDB2OWL izpildes vide SQL-līmeņa implementācija: SQL komandas ģenerē citas SQL komandas, ko izpildot izejas DB tiek ģenerēti RDF trijnieki;
RDB2OWL attēlojums Latvijas Medicīnas reģistru piemēram RDB2OWL tika pielietota 6 Latvijas Medicīnas reģistru (Vēža,ievainojumu un traumu,diabēta, multiplās sklerozes, narkotisko saslimšanu un psihiskās uzvedības traucējumu) piemēram Izejas DB: 106 tabulas, 1353 kolonas, > 3 miljoni rakstu, > 3 GB datu OWL ontoloģija: 172 klases (168 ne abstraktas), 814 datu tipu īpašības un 218 objektu īpašības Attēlojums: 170 klases attēlojumi, 832 datu tipu īpašību attēlojumi, 220 objektu īpašību attēlojumi Implementācija: klēpjdatorsar Intel Mobile Core 2 Duo T6570 procesoru, Windows Vista, 3 GB RAM. Rezultāts: noģenerēti 42.8 miljoni RDF trijnieki ETL laiki: < 28 min. (< 10 min. Sākotnējā trijnieku ģenerācija, 8 min. indeksēšana, < 4 min. Vairāku klašu konceptualizācijas filtrācija, 6 min. Eksports teksta failā)
RDB2OWL anotācijas Latvijas medicīnas reģistru piemēram: Traumu reģistra fragments
RDB2OWL anotācijas Latvijas medicīnas reģistru piemēram: ontoloģijas anotācijas
Secinājumi • Uzprojektēta RDB-RDF/OWL attēlojuma specificēšanas valoda RDB2OWL ar akcentu uz lasāmību un pieraksta īsumu. • Izveidots valodas RDB2OWL parseris. • Izstrādāts RDB2OWL valodas rīks ontologijas anotāciju translācijai uz RDB2OWL izpildes vidi (pašlaik atbalsts ir valodas apakškopai). • Izveidots RDB2OWL valodas izpildes vides rīks mērķa ontoloģijai atbilstošo RDF trijnieku ģenerēšanai no izejas RDB datiem. RDB-OWL/RDF atbilstību informācija tiek glabāta relāciju DB shēmā. • RDB2OWL attēlojuma valodā tika anotēta Latvijas medicīnas reģistru ontoloģija, pārliecinoties par valodas pielietojamību praktiskā industrijas piemērā, izsakot atbilstību starp izejas datu bāzi un domēna ontoloģiju. • RDB2OWL izpildes vides tika pārbaudīta Latvijas medicīnas reģistru semantiskā re-inženierijā, ģenerējot 42 miljonus RDF trijniekus 18,5 minūtēs (bez eksporta teksta failā). Tādējādi tika pārbaudīta realizācijas efektivitāte.
Nākotnes apsvērumi • Ir nākotnes apsvērumi par RDB2OWL valodas realizāciju dinamiskai lietošanai (angl. “on-the-fly”), translējot atsevišķas attēlojumu izteiksmes. • Ir nākotnes ideja par kompilatora izveidi no RDB2OWL valodas uz citām RDB-OWL/RDF attēlojumu valodām, lai izmantotu tos atbalstošos rīkus.
Paldies! Jautājumi?