16
OWL (Web Ontology Language) izmantošana Oracle datu bāzes sistēmā. Ainārs Petrovskis, Jānis Eiduks, 2013. OWL (Web Ontology Language) Ontoloģija ir mēģinājums attēlot plašu un daudzveidīgu informāciju, izmantojot konceptuālās shēmas. Šāda shēma sastāv no datu struktūrām, kas attēlo objektu klases, to relācijas, ierobežojumus, īpašības. Ontoloģija tiek plaši pielietota semantiskos tīklos. Vienkāršākā veidā klašu attiecības tiek attēlotas, ka klašu hierarhija, bet īpašības, ka īpašību hierarhija. OWL ir valoda, kas domāta ontoloģiju aprakstīšanai semantiskiem tīkliem. OWL ļauj aprakstīt klases un attiecības starp tām. Kā arī OWL valoda ļauj aprakstīt elementus klase – īpašība. Eksistē šādi OWL valodas veidi: OWL 2 DL – satur visas OWL valodas konstrukcijas, kā arī loģiskos ierobežojumus. OWL EL – OWL 2 DL apakškopa, satur daudzus loģiskus likumus. Algoritmi, kas ir bāzēti uz OWL EL garantēti beidzās kādā laika posmā. OWL QL - OWL 2 DL apakškopa. Orientējas uz algoritmi, kas bāzēti uz šo OWL vārdnīcu ātrdarbību. OWL RL - vēl viena OWL 2 DL apakškopa. OWL 2 Full – vispilnākā OWL vārdnīca, kas ļauj lietotājam brīvi rīkoties, tā nesatur nekādus

datubaze.files.wordpress.com€¦  · Web viewOracle datu bāzes vadības sistēma 12C versijā atbalsta šādas OWL vārdnīcas, katra vārdnīca var saturēt dažādu skaitu ar

  • Upload
    lengoc

  • View
    225

  • Download
    6

Embed Size (px)

Citation preview

Page 1: datubaze.files.wordpress.com€¦  · Web viewOracle datu bāzes vadības sistēma 12C versijā atbalsta šādas OWL vārdnīcas, katra vārdnīca var saturēt dažādu skaitu ar

OWL (Web Ontology Language) izmantošana Oracle datu bāzes sistēmā. Ainārs Petrovskis,

Jānis Eiduks, 2013.

OWL (Web Ontology Language)

Ontoloģija ir mēģinājums attēlot plašu un daudzveidīgu informāciju, izmantojot

konceptuālās shēmas. Šāda shēma sastāv no datu struktūrām, kas attēlo objektu klases, to

relācijas, ierobežojumus, īpašības. Ontoloģija tiek plaši pielietota semantiskos tīklos.

Vienkāršākā veidā klašu attiecības tiek attēlotas, ka klašu hierarhija, bet īpašības, ka

īpašību hierarhija.

OWL ir valoda, kas domāta ontoloģiju aprakstīšanai semantiskiem tīkliem. OWL ļauj

aprakstīt klases un attiecības starp tām. Kā arī OWL valoda ļauj aprakstīt elementus klase –

īpašība.

Eksistē šādi OWL valodas veidi:

OWL 2 DL – satur visas OWL valodas konstrukcijas, kā arī loģiskos

ierobežojumus.

OWL EL – OWL 2 DL apakškopa, satur daudzus loģiskus likumus. Algoritmi,

kas ir bāzēti uz OWL EL garantēti beidzās kādā laika posmā.

OWL QL - OWL 2 DL apakškopa. Orientējas uz algoritmi, kas bāzēti uz šo OWL

vārdnīcu ātrdarbību.

OWL RL - vēl viena OWL 2 DL apakškopa.

OWL 2 Full – vispilnākā OWL vārdnīca, kas ļauj lietotājam brīvi rīkoties, tā

nesatur nekādus ierobežojumus. Un negarantē algoritma, kas bāzēts uz šis

bibliotēkas, veiksmīgu izpildi.

OWL Lite – vismazākā vārdnīca, var bāzēties ļoti ierobežoti algoritmi, kuriem ir

paaugstināts izpildes ātrums;

1.1 Ontoloģijas piemērs

Par ontoloģijas piemēru varētu kalpot šāds semantiskais tīkls:

Page 2: datubaze.files.wordpress.com€¦  · Web viewOracle datu bāzes vadības sistēma 12C versijā atbalsta šādas OWL vārdnīcas, katra vārdnīca var saturēt dažādu skaitu ar

Semantiskajā tīklā ir attēlota autotransporta klašu hierarhija. Galvenā superklase ir

transports, kuram ir īpašības ietilpība un degvielas tips. Transportam ir trīs apakšklases. Vieglais

autotransports, smagais un gaisa autotransports. Gaisa autotransportam ir divas īpašības ātrums

un lidošanas augstums.

Tālāk hierarhija turpinās vēl divos līmeņos, kas apraksta viegla, smagā un gaisa

autotransporta apakšklases, kā arī pēdējā līmenī tiek aprakstītas vēl lidmašīnu apakšklases –

pasažieru un kravas.

Page 3: datubaze.files.wordpress.com€¦  · Web viewOracle datu bāzes vadības sistēma 12C versijā atbalsta šādas OWL vārdnīcas, katra vārdnīca var saturēt dažādu skaitu ar

2. OWL izmantošana Oracle datu bāzē

Semantiskos datus ir izdevīgi apstrādāt datu bāzē, jo to apjoms strauji pieaug un to

apstrāde ir daudz ātrāka datu bāzes serverī (gan aparatūras, gan programmatūras dēļ). Kā arī datu

bāzes vadības sistēma nodrošina transakcijas, drošību, datu atjaunošana utt. Dat bāze ir

optimizēta un ir efektīva vaicājumu apstrādē.

2.1 Versijas un vārdnīca

Oracle datu bāzes vadības sistēma 12C versijā atbalsta šādas OWL vārdnīcas, katra

vārdnīca var saturēt dažādu skaitu ar attieksmēm un likumiem (rulebase):

RDFS++, iekļautas konstrukcijas:

OWLSIF, iekļautas konstrukcijas:

Page 4: datubaze.files.wordpress.com€¦  · Web viewOracle datu bāzes vadības sistēma 12C versijā atbalsta šādas OWL vārdnīcas, katra vārdnīca var saturēt dažādu skaitu ar

OWLPrime, iekļautas konstrukcijas:

OWL 2 RL, vārdnīca ir aprakstīta te:

http://www.w3.org/TR/owl2-profiles/#OWL_ 2_RL;

OWL 2 EL, vārdnīca ir aprakstīta te:

http://www.w3.org/TR/owl2-profiles/#OWL_ 2_EL;

2.2 RDF iespējas ieslēgšana

Pirms tam, kad var sākt izmantot iespējas, kas attiecās uz RDF semantiskiem tīkliem datu

bāzē, ir jāveic šādas darbības:

1. Ir nepieciešams pieslēgties datu bāzei ar SYSDBA privilēģijām, izmantojot,

piemēram, SQL*Plus programmu.

2. No SQL*Plus programmas ir jāpalaiž komanda:

a. MS Windows gadījumā @%ORACLE_HOME%\md\admin\catsem.sql.

b. Linux gadījumā @$ORACLE_HOME/md/admin/catsem.sql.

Pēc skripta izpildes, ja tas izpildījies bez kļūdām, var pārbaudīt rezultātu, vaicājot

rezultātus no tabulas MDSYS.RDF_PARAMETER. Jābūt ierakstam ar „ATTRIBUTE” vērtību

SEM_VERSION.

Page 5: datubaze.files.wordpress.com€¦  · Web viewOracle datu bāzes vadības sistēma 12C versijā atbalsta šādas OWL vārdnīcas, katra vārdnīca var saturēt dažādu skaitu ar

Kā arī, lai izmantotu šādas iespējas ir jābūt ieslēgta partīciju (Partitioning) iespējai. Ko

var pārbaudīt šādi:

2.3 Ontoloģiju izveide

Sākumā ar lietotāju ar privilēģijām SYSDBA jāizveido izvietošanas vieta (tablespace).

Izveidošanas piemērs:

Tālāk, ir jāizveido semantiskais tīkls, norādot izvietošanas vietu (tabelespace). Ar

pietiekami lielu vietu. Šī darbība arī jāveic no tā lietotāja, kuram ir SYSDBA privilēģijas.

Izveidošanas piemērs:

Pirms nākamajiem soļiem, obligāti ir jāpārslēdzas no lietotāja, kuram ir SYSDBA

privilēģijas uz kādu citu lietotāju.

Tālāk, jau kā cits lietotājs ir jāveido modelis.

Tiek veidota tabula, kas glabās modeļa datus:

Tabulā ir divas kolonnas, viena ir domāta identifikatoram, bet otra tripletu glabāšanai,

kuri glabās elementus un attieksmes (elementu likumus – rulebase) starp tiem, tips

sdo_rdf_triple_s:

Page 6: datubaze.files.wordpress.com€¦  · Web viewOracle datu bāzes vadības sistēma 12C versijā atbalsta šādas OWL vārdnīcas, katra vārdnīca var saturēt dažādu skaitu ar

S īsāks apraksts ir pieejams te:

http://docs.oracle.com/cd/B19306_01/appdev.102/b19307/sdo_rdf_concepts.htm

Ar PL/SQL metodes palīdzību ir jāizveido modelis:

Parametri ir modeļa nosaukums, modeļa tabula un modeļa tabulas kolonna, kurā glabājās

modeļa tripleti.

2.4 Loģisko izvedumu izpildīšana

Lai iegūtu loģisko izvedumu ir jāizmanto likumi, kas apraksta attiecības starp

elementiem.

Likumiem jābūt aprakstītiem. Iebūvētām (iebūvētas attiecības ir aprakstītas noteiktajās

vārdnīcās (vārdnīcas tika aprakstītas 2.1 nodaļā)) attiecībām likumi jau ir definēti un tie nav

jāapraksta. Taču Oracle ļauj lietotājiem veidot savus likumus. Tas paver plašas iespējas

semantisko tīklu elastīgumā un dažādībā.

Lai izveidotu savas attieksmes, ir jāseko šādiem soļiem:

Page 7: datubaze.files.wordpress.com€¦  · Web viewOracle datu bāzes vadības sistēma 12C versijā atbalsta šādas OWL vārdnīcas, katra vārdnīca var saturēt dažādu skaitu ar

Piemēram semantikā ir ievadīta šādas vērtības (vērtības tiek ievietotas cars modelī, lai

nav jāveido cits modelis):

Šie ieraksti parāda to, ka Jānis ir Annas tēvs un vienlaicīgi Jānis un Pēteris ir brāļi. No tā

izriet, kā Pēteris ir onkulis Annai.

Lai izveidotu savu likumu, sākumā ir jāizveido sava likumu kopa, ar pl/sql procedūras

create_rulebase palīdzību:

Tālāk automātiski izveidotajā skatā tiek ievietotas vērtības, kas apraksta jaunizveidotu

likumu:

Šāds apraksts norāda to, ka: ja X un Y ir brāļi, un y ir z tēvs, tādā gadījumā X ir Z

onkulis. X, Y un Z ir mainīgie.

Pēc likumu definēšanas ir jādabū loģiskais izvedums. Šīm nolūkam ir jāizveido likumu

indekss, tas ir jādara ar PL/SQL funkcijas sem_apis.create_entailment palīdzību, kur ir jānorada

veidojama indeksa nosaukums, modelis un OWL vārdnīca, iebūvētas leksikas gadījumā ir

jānorāda leksikas nosaukums. Lietotāja definētas attiecības gadījumā ir jānorāda izveidotu

likumu nosaukums:

Page 8: datubaze.files.wordpress.com€¦  · Web viewOracle datu bāzes vadības sistēma 12C versijā atbalsta šādas OWL vārdnīcas, katra vārdnīca var saturēt dažādu skaitu ar

Iebūvēto likumu gadījumā viss ir vienkāršāk, jāizveido tikai likumu indekss un jānorāda

izmantojama vārdnīca.

Pēc tam jau var izmantot glabājamu informāciju.

Gadījumā, kad loģiskie izvedumi ir gana sarežģīti (atkarībā no izmantojamas vārdnīcas,

ontoloģijas izmēra un citiem parametriem) un neacīmredzami, var izmantot loģisko izvedumu

pierādīšanu.

Lai izmantotu loģisko izvedumu pierādījumus pie indeksa (entailment) izveides ir

jānorāda parametrs ‘PROOF = T’. Taču ir jāsaprot, ka tas var prasīt vairāk servera resursus –

atmiņa, procesors utt.

Tālāk automātiski tiek izveidots skats MDSYS.semi_cars3_idx, kur ir informācija par to,

kā likumi tiek izvesti un kā visa loģika tiek dabūta no likumiem.

Page 9: datubaze.files.wordpress.com€¦  · Web viewOracle datu bāzes vadības sistēma 12C versijā atbalsta šādas OWL vārdnīcas, katra vārdnīca var saturēt dažādu skaitu ar

2.5 OWL modeļu pārbaude

Lai pārbaudītu modeļu un indeksu korektumu tiek izmantotas funkcijas

SEM_APIS.VALIDATE_MODEL un SEM_APIS.VALIDATE_ENTAILMENT. Šis funkcijas

spēj atklāt semantikas problēmas.

Sākumā modelī tiek ievietota neatrisināmā klase un tiek izveidots indekss.

Tālāk, jāpielieto validate_entailment funkcija, un jāizvada funkcijas rezultāts. Lai to

izdarītu ir nepieciešams PL/SQL bloks (bloks tika paņemts no Oracle dokumentācijas).

No rezultāta var redzēt, ka ir viena klase, kura nevar būt atrisināta.

Page 10: datubaze.files.wordpress.com€¦  · Web viewOracle datu bāzes vadības sistēma 12C versijā atbalsta šādas OWL vārdnīcas, katra vārdnīca var saturēt dažādu skaitu ar

2.6 Loģisko izvedumu veiktspējas paaugstināšana

Brīžiem, loģiskais izvedums var aizņemt ļoti daudz laika. Līdz ar to, lai paātrinātu izpildi

ir jāpaaugstina ne tikai iekārtu parametri, bet ir jāveic arī programmatūras darbības:

Salasīt modeļa statistiku ar procedūras SEM_PERF.GATHER_STATS;

Veidot pagaidu izvietošanas vietas (tablespaces);

Realizēt SVFH un AVFH komponentes;

Lai paaugstinātu veiktspēju, ir nepieciešams arī izmantot visas vairāku kodolu procesoru

priekšrocības.

Izmantojot vairāku kodolu procesorus, ir iespējams izmantot paralēlo izveduma izveidi.

Lai izmantotu šadu paralēlu darbību, pie indeksa izveides ir nepieciešams norādīt atslēgas vārdu

DOP (degree of parallelism – paralēlas darbības pakāpe). Taču, lai izmantotu šādu iespēju ir

nepieciešama servera resursu rezerve. Jābūt gan cietā diska rezervei, gan operatīvās atmiņas

rezervei.

2.7 Loģisko izvedumu optimizēšana

Gadījumā, kad modelī tiek izmantotas daudzas owl:sameas attieksmes, ir iespējams

optimizēt loģisko izvedumu. Šīm, pie indeksa izveides, nolūkam ir jānorāda parametrs

OPT_SAMEAS=T.

Piemēram (no Oracle dokumentācijas), ja ir šādi tripleti:

tādā gadījumā pie indeksa izveidošanas, tiks izveidoti šādi ieraksti:

Izmantojot optimizēšanu, tiks ģenerēti tikai šādi tripleti:

Page 11: datubaze.files.wordpress.com€¦  · Web viewOracle datu bāzes vadības sistēma 12C versijā atbalsta šādas OWL vārdnīcas, katra vārdnīca var saturēt dažādu skaitu ar
Page 12: datubaze.files.wordpress.com€¦  · Web viewOracle datu bāzes vadības sistēma 12C versijā atbalsta šādas OWL vārdnīcas, katra vārdnīca var saturēt dažādu skaitu ar

3. Semantika relāciju struktūrās

Bieži vien ir nepieciešams izmantot semantiskos datus attiecībā uz relāciju datiem. Šiem

nolūkiem ir jāizmanto SEM_RELATED un SEM_DISTANCE operatori. Relāciju tabulā dati

nav saistīti ne ar kādu semantiku. Taču var atsevišķi izveidot semantisko modeli un jau pēc tam

izmantot šo modeli ar relāciju datiem.

Piemērs.

Ir šāda semantika:

Un šāda tabula:

Šie dati nav saistīti ne ar kādu semantiku. Lai tos saistītu ir jāizmanto semantiskais

modelis. Pēc analoģijas, kas tika aprakstīta iepriekšējās nodaļās tiek izveidots semantiskais

modelis:

Page 13: datubaze.files.wordpress.com€¦  · Web viewOracle datu bāzes vadības sistēma 12C versijā atbalsta šādas OWL vārdnīcas, katra vārdnīca var saturēt dažādu skaitu ar

Tiek aprakstīts, ka katrs elements ir klase:

Tālāk tiek noteikts arī tas, ka vieglais, smagais un gaisa transporti ir klases transports

apakšklases.

Tālāk, izmantojot select vaicājumu, no tabulas masinas tiek iegūti tie ieraksti, kas ir

apakšklases klasei transports.

Šīm nolūkam tiek izmantots operators SEM_RELATED, kurā ir jānorāda kolonna, kurā

tiek glabāti relāciju dati, kuri ir jāsaista ar semantisko modeli, klase, kura jāsaista, attieksmes tips

(mūsu gadījumā subClassOf), kā arī modeļa nosaukums.

Rezultātā tiek iegūti ieraksti, kas atbilst šādam semantiskam uzstādījumam – transporta

apakšklases.

Page 14: datubaze.files.wordpress.com€¦  · Web viewOracle datu bāzes vadības sistēma 12C versijā atbalsta šādas OWL vārdnīcas, katra vārdnīca var saturēt dažādu skaitu ar

Sem_related operatora sintakse ir šāda:

sub – analizējamas tabulas kolonnas nosaukums, kurā ir jāmeklē ontoloģijas

klases.

predExpr – attieksmes nosaukums, kurš ir jāanalizē ar iepriekšējā punktā

noradīttās kolonnas vērtībām.

obj – objekts, kurš ir jāattiecina uz meklējāmiem datiem.

ontologyName – šajā punktā ir jānorāda analizējama ontoloģijas modeļa

nosaukums.

ruleBases – jānorāda likumu vārdnīcas nosaukums.

Index_status – neobligāts parametrs. Izvelk datus, pat arī, ja ontoloģijai ir

nepatiess statuss.

Lower_bound un Upper_bound – ļauj noradīt distances ierobežojumus (aprakstīts

tālāk).

SEM_DISTANCE nosaka „attālumu” līdz ierakstiem, kas tika atlasīti ar operatora

SEM_RELATED palīdzību. SEM_DISTANCE operatora parametrā jānorāda identifikators,

kuram jasakrīt ar identifikatoru, kas tika norādīts SEM_RELATED operatorā.

Page 15: datubaze.files.wordpress.com€¦  · Web viewOracle datu bāzes vadības sistēma 12C versijā atbalsta šādas OWL vārdnīcas, katra vārdnīca var saturēt dažādu skaitu ar

Rezultātā līdz visiem ierakstiem distance ir viens. Jo visi līmeņi atrodās uzreiz pirmajā

līmenī aiz superklases „transports”.