Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Oracle datu bāzes sistēmas semantiskās tehnoloģijas un likumi. Valdis Gersons, Jānis
Eiduks, 2013.
1. IevadsSemantiskais tīkls jebtīmeklis 3.0 ir tīmekļa tehnoloģija – veids, kā sasaistīt
datus starp dažādāminformācijas sistēmām. Šīs tehnoloģijas ļauj efektīvi nodrošināt
informācijas apmaiņu starp dažādām sistēmām bez cilvēku iesaistīšanās. Semantiskās
tehnoloģijas iezīmē domāšanas veida maiņu no cilvēkiem rakstītu dokumentu
publicēšanas uz datoriem saprotamiem dokumentiem. Šādā veidā dodot iespēju
datoriem domāt nedaudz vairāk cilvēku vietā [1].
Mūsdienās vairums tīmekļa informācijas tiek piegādāta tīmekļa lapu – HTML
dokumentu veidā, kuri savukārt ir saistīti savā starpā ar hipersaitēm. Cilvēki un
mašīnas var šos dokumentus lasīt, tomēr dators nespēj veikt daudz vairāk paratslēgas
vārdu meklēšanu - esošie tīmekļa dokumenti datoriem nav saprotami.
Globālais tīmeklis satur daudz informācijas, bet parasti izejas dati paši par sevi
nav pieejami (neredzamais tīmeklis). Semantiskie tīkli šo problēmu risina:
Atverot informācijas tīmeklimākslīgā intelekta algoritmiem; Iedrošinot kompānijas, organizācijas un indivīdus publicēt savus datus brīvi –
atvērtā formātā; Iedrošina uzņēmums lietot datus, kas pieejami globālajā tīmeklī.
Būtībā ņemot visu informāciju, kas publicēta HTML dokumentos dažādās
vietās un ļaujot to izmantot kā vienā datu bāzē esošu informāciju. Visas cilvēces
digitāli uzkrātās informācijas apjoms ir milzīgs un tāds pats ir potenciāls, ja visu šo
informāciju varētu apstrādāt vienotā veidā – semantiskā tīkla veidā.
Semantiskās tehnoloģijas Oracle datu bāzē balstās uz resursu aprakstīšanas
ietvaru (angļu val. „Resource Description Framework”) un tīmekļa ontoloģiju valodu
(angļu val.„Web Ontology Language”). Tādēļ pirms semantisko tehnoloģiju
aprakstīšanas nepieciešams izprast resursu aprakstīšanas ietvaru un tīmekļa ontoloģiju
valodu.
1. Resursu aprakstīšanas ietvarsResursu aprakstīšanas ietvars (turpmāk tekstā RDF) ir standartizēts modelis
informācijas aprakstīšanai, kuru paredzēts lietot informācijas apmaiņai tīmeklī. W3C
(angļu val. „WorldWide Web Consortium” turpmāk tekstā W3C) pirmo RDF
specifikāciju publicēja 1999. gadā. Tomēr mūsdienās plašāk tiek lietota 2004. gadā
publicētā atjaunotā RDF specifikācija. W3C 2010. gadā izveidoja darba grupu, kuras
mērķis bija apzināt nepieciešamos uzlabojumus esošajā RDF specifikācija, tomēr
pagaidām jauna RDF specifikācija vēl nav publicēta.
Mūsdienu pasaulē ir ļoti daudz iespējamo informācijas avotu, tomēr lai
dažādos avotos esošu informāciju būtu iespējams efektīvi apstrādāt (bez cilvēka
iesaistīšanās) ir nepieciešams standartizēts veids kā aprakstīt avotā esošo
informāciju.Ir nepieciešama ar datoru apstrādājama vienota metodi kā aprakstīt
informāciju un tieši šādu metodi piedāvā RDF ietvars.
RDF pieeju informācijas aprakstīšanai iespējams raksturot kā dekompozīciju,
tas ir, informācijas kopuma sadalīšanu sīkākās daļās [2]. Informācijas aprakstā tiek
lietoti trīsvietīgi korteži (subjekts – predikāts – objekts). Šo vienkāršāk ir izskaidrot uz
kāda piemēra bāzes, tādēļ, izmantojot RDF,tiks aprakstīta šāda informācija:
Nissan Juke automašīna ar valsts reģistrācijas numuru JE9016 ir ražota Japānā. Tās augstums ir 18 cm, jauda ir 86 kW. Šīs automašīnas dzinējs tiek darbināts ar benzīnu un tā tilpums ir 1.6 litri. Automašīnas reģistrācija ir veikta 2010. gada 18. martā.
Trīsvietīgie korteži, pierakstīti dabīgā valodā, šajā gadījumā ir šādi:
Automašīna– marka– NissanAutomašīna – modelis – JukeJuke – augstums – 18 cmNissan – ražotājvalsts - JapānaAutomašīna – tiek identificēta – Valsts reģistrācijas numursValsts reģistrācijas numurs – sastāv no – sērijasValsts reģistrācijas numurs – sastāv no – numuraSērija – ir – JENumurs – ir – 9016Automašīna – sastāvdaļa – MotorsMotors – tiplums – 1.6 litriMotors – degviela – benzīnsMotors – jauda – 86 kWAutomašīna – reģistrēta – 18.03.2010
Subjekts – tas kas tiek aprakstīts – atrodas kreisajā pusē, vidū atrodas
predikāts, kas apzīmē saikni starp subjektu un objektu, savukārt labajā pusē atrodas
objekts, kas raksturo subjektu. Apvienojot individuālos kortežus iespējams izveidot
vieno kopēju informācijas attēlojumu grafa veidā.
2
Attēlojot informāciju grafa veidā individuālie trīsvietīgi korteži vienmēr tiek
attēloti šādi:
Pēc individuālo kortežu izveidošanas tie tiek apvienoti kopējā attēlojumā (Att.
2.1 Informācijas attēlojums grafa veidāAtt. 2.2 Trīsvietīgs kortežs).
RDF ietvars atļauj informācijas aprakstīšanu vairākos veidos. Lai varētu
izprast Oracle semantiskās tehnoloģijas nav nepieciešams zināt specifiskus RDF
pierakstus, tādēļ arī tiks apskatīta tikai viena no iespējamām pieraksta formām – XML
pieraksta forma.
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:predikats="http://vuga.dyndns.org/predikati#"><rdf:Description rdf:about="automasina"><predikats:marka rdf:resource="http://vuga.dyndns.org/Nissan"/><predikats:modelis rdf:resource="http://vuga.dyndns.org/Juke"/><predikats:tiek_identificets rdf:resource="http://vuga.dyndns.org/RegNumurs"/><predikats:sastavdala rdf:resource="http://vuga.dyndns.org/Motors"/><predikats:registreta>18.03.2010</predikats:registreta></rdf:Description><rdf:Description rdf:about="http://vuga.dyndns.org/Nissan"><predikats:razotajvalsts>Japana</predikats:razotajvalsts></rdf:Description><rdf:Description rdf:about="http://vuga.dyndns.org/Juke"><predikats:augstums>18 cm</predikats:augstums></rdf:Description><rdf:Description rdf:about="http://vuga.dyndns.org/RegNumurs"><predikats:sastav_no rdf:resource="http://vuga.dyndns.org/Serija"/><predikats:sastav_no rdf:resource="http://vuga.dyndns.org/Numurs"/></rdf:Description><rdf:Description rdf:about="http://vuga.dyndns.org/Serija"><predikats:ir>JE</predikats:ir>
3
Att. 2.1 Informācijas attēlojums grafa veidā
Att. 2.2 Trīsvietīgs kortežs
</rdf:Description><rdf:Description rdf:about="http://vuga.dyndns.org/Numurs"><predikats:ir>9016</predikats:ir></rdf:Description><rdf:Description rdf:about="http://vuga.dyndns.org/Motors"><predikats:jauda>86 kW</predikats:jauda><predikats:tilpums>1.6 litri</predikats:tilpums><predikats:degviela>benzīns</predikats:degviela></rdf:Description></rdf:RDF>
Veidojot RDF dokumentu tiek lietoti standartizēti resursu identifikatori (angļu
val. „Uniform Resource Identifiers” turpmāk tekstā URI). Tie tiek lietoti, lai varētu
identificēt katru no resursiem, tas ir, lai apstrādājot šādu dokumentu ar datoru, tam
būtu skaidrs, par kuru tieši automašīnu ir veidots šis apraksts vai par kuru modeli šajā
dokumentā tiek rakstīts.
XML pierakstā izveidoto dokumentu iespējams pārbaudīt W3C izveidotā rīkā
(tīmekļa adrese http://www.w3.org/RDF/Validator/). Veicot pārbaudi tiek iegūti visi
trīsvietīgie korteži (Att. 2.3 RDF dokumenta pārbaude).
Šajā rīkā ir iespējams arī iegūt dokumenta attēlojumu grafa veidā.
4
Att. 2.3 RDF dokumenta pārbaude
Kā redzams augstāk veidotajā RDF dokumentā, tad URI tiek lietota tīmekļa
adrese konkrētam resursam. Konkrētajā dokumentā visas atsauces ir uz vienu tīmekļa
lapu, tomēr RDF dokumentā var lietot atsauces arī uz citiem tīmekļa resursiem,
piemēram, dokumentā varētu atsaukties uz kādu resursu, kas apraksta Japānu, tādā
veidā paplašinot informācijas grafu. Šāda atsaukšanās ļauj izveidot globālu
informācijas grafu, kuru ir iespējams apstrādāt arī ar datoru.
2. RDFS un OWLResursu aprakstīšanas ietvara shēma (angļu val. „Resource Description
Framework Schema” turpmāk tekstā RDFS) tiek lietota, lai aprakstītu RDF struktūru,
piemēram, ar RDFS varētu izveidot klasi auto, kurai būtu iespējams pievienot
definētas vērtības. RDFS klases ir ļoti līdzīgas objektorientētas programmēšanas
klasēm, tām var būt apakšklases, tās var pašas būt apakšklases, tām varbūt noteikti
atribūti utt. Tomēr ir būtiski zināt, ka viens konkrēts objekts atšķirībā no
objektorientētām programmēšanas valodām var piederēt vairākām klasēm. RDFS
galvenā nozīme ir izveidot kopīgu vārdnīcu, lai būtu iespējams atrast koplietojamu
informāciju, piemēram, ja iepriekš definētā automašīna tiktu nodefinēta, kā auto
klases objekts, tad jebkurš dators, kas zinātu, kas ir auto spētu saprast, ka Nissan ir
auto modelis un zinātu arī ko nozīmē atsevišķās vērtības, piemēram, valsts
reģistrācijas numurs. Tātad cits dators spētu izmantot iepriekšējā nodaļā aprakstīto
informāciju.
Auto klases definēšanas piemērs izmantojot RDFS:
5
Att. 2.4 Dokumenta attēlojums grafa veidā
<rdfs:Class ID="Auto"><rdfs:label>Access Rule</rdfs:label><rdfs:comment>Piemērs priekš auto klases</rdfs:comment><rdfs:isDefinedBy resource="http://vuga.dyndns.org/auto"/></rdfs:Class>
Lai RDF dokumentā varētu lietot RDFS, tad tā sākumā tiek pievienota atsauce
uz RDFS:
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
Savukārt, lai norādītu, ka automašīnas tips ir auto ir jāpievieno šāda rinda
automašīnas aprakstā:
<rdf:type rdf:resource="http://vuga.dyndns.org/auto"/>
Var izmantot arī relatīvo ceļu, tas ir, norādīt ka dokumentā jau ir definēta klase
auto:
<rdf:type rdf:resource="#Auto"/>
Tomēr RDFS piemīt vairāki būtiski trūkumi, piemēram, izmantojot RDFS nav
iespējams nodefinēt nepieciešamos nosacījumus, lai objekts varētu piederēt klasei,
nav iespējas nodefinēt vienādības, nevienādības nosacījumus u.c. Tādēļ 2001. gadā
W3C izveidoja tīmekļa ontoloģiju darba grupu, kuras darba rezultātā tika izveidota
tīmekļa ontoloģiju valoda (turpmāk tekstā OWL). OWL 2004. gadā kļuva par W3C
rekomendāciju. Vēlāk 2007. gada oktobrī tika publicēta OWL valodas nākošā versija
(OWL 2). OWL valoda tika veidota tā, lai atspoguļotu informāciju par resursu
kategorijām un resursu savstarpējām attiecībām, tomēr izmantojot OWL valodu ir
iespējams arī aprakstīt informāciju par resursiem (šādu informāciju bieži uzskata par
datiem). OWL veidošanas laikā jau bija pieejamas vairākas tīmeklī lietojamas
ontoloģiju valodas, piemēram, SHOE (angļu val. „Simple HTML Ontology
Extensions”), OIL (angļu val. „Ontology Interchange Language”) un DAML+OIL
(angļu val. „DARPA AgentMarkup Language” un „Ontology Interchange
Language”), tādēļ veidojot OWL bija jāiekļauj saderība ar šīm jau esošajām valodām
[3].
OWL valodai ir vairākas atvasinātās (apakš-valodas) valodas:
6
OWL Lite – visvienkāršāk realizējamā un ar vismazāk iespējām
apveltītā apakš valoda;
OWL DL –šīs valodas mērķis ir piedāvāt maksimāli daudz iespējams,
tajā pašā laikā saglabājot aprēķinu galējību (OWL Full valodā var būt
gadījumi, kad aprēķini ir bezgalīgi).
OWL Full – šī valoda piedāvā pilnu iespēju klāstu, tomēr šajā valodā
ir iespējami gadījumi, kad aprēķini nav iespējami (bezgalīgi).
To pašu klasi auto, kas iepriekš bija definēta ar RDFS definēšana izmantojot
OWL būs šāda:
<owl:Class rdf:about="http://vuga.dyndns.org/auto"><rdfs:label>Auto klase</rdfs:label><rdfs:comment>Piemēra klase priekš auto</rdfs:comment></owl:Class>
Kā piemērā redzams, tad OWL izmantot RDFS elementus. Bet OWL ir iespēja
izmantot vēl papildus elementus (OWL elementus), piemēram nodefinējot citu klasi,
kas ir vienāda ar auto:
<owl:Class rdf:about="http://vuga.dyndns.org/auto2"><rdfs:label>Auto klase 2</rdfs:label><rdfs:comment>Piemēra klase 2 priekš auto</rdfs:comment><owl:equivalentClass rdf:resource="http://vuga.dyndns.org/auto"/></owl:Class>
Līdzīgi kā ar RDFS arī definējot OWL elementus nepieciešams pievienot
atsauci uz OWL valodas aprakstu:
xmlns:owl=http://www.w3.org/2002/07/owl#
3. Semantiskās tehnoloģijas Oracle datu bāzēOracle semantiskās tehnoloģijas balstās uz RDF ietvaru un OWL ontoloģiju
valodu.Kopējā Oracle semantisko tehnoloģiju uzbūve un darbība parādīta attēlā (Att.
4.5 Oracle semantiskās tehnoloģijas).
7
PL/SQL komandas, kuras nepieciešamas darbam ar semantiskiem datiem, tiek
glabātas speciālā komandu pakā - SEM_APIS. Izmantojot šo paku iespējams izsaukt
tādas komandas kā:
CREATE_SEM_NETWORK – semantiskā modeļa izveide;
DROP_SEM_NETWORK – semantiskā modeļa dzēšana;
MERGE_MODELS – semantisko modeļu apvienošana;
RENAME_MODEL – semantiskā modeļa pārsaukšanai;
U.c.
Kopumā šajā pakā ir ietvertas 64 apakšprogrammas (izsaucamas komandas).
3.1. Datu bāzes sagatavošana
Pirms datu ielādes ir jāveic datu bāzes (angļu val. „TableSpace”)
sagatavošana darbam ar semantiskiem datiem. Datu bāzes sagatavošana tiek veikta
izmantojot komandu:
EXECUTE SEM_APIS.CREATE_SEM_NETWORK('rdf_datubaze');
Kā parametru šai komandai norāda datu bāzi (rdf_datubaze), kura tiks
sagatavota semantiskiem datiem. Sagatavošanas procesa laikā tiek izveidotas sistēmas
tabulas un citi datu bāzes objekti, kas nepieciešami semantisko datu glabāšanai un
izguvei.
Ja izpildot semantisko tīklu veidošanas komandu tiek atgriezta kļūda, tad ir
jāpārbauda vai datu bāzē vispār ir iespējotas semantiskās tehnoloģijas. Ja tās nav
iespējotas to iespējams izdarīt ar SQL Plus rīku. Tajā nepieciešams izpildīt sql
8
Att. 4.5 Oracle semantiskās tehnoloģijas
komandu failu - catsem.sql. Fails atrodas Oracle instalācijas pamata kataloga
apakškatalogā - /md/admin.
Tabulas priekš semantiskiem datiem tiek veidotas ļoti līdzīgi kā grafiskām
datu bāzēm, tas ir, tiek veidota tabula ar iekļautu sistēmas definētu objektu. Šajā
gadījumā šis objekts ir SDO_RDF_TRIPLE_S. Tabulas veidošanas piemērs:
CREATE TABLE auto_rdf_data (id NUMBER, triple SDO_RDF_TRIPLE_S);
Vēl pie datu bāzes sagatavošanas nepieciešams minēt komandu priekš
semantiskā modeļa izveidošanas.Šai komandai kā parametri tiek norādīts modeļa
nosaukums, tabula un kolona, kas saturēs trīsvietīgos kortežus:
EXECUTE SEM_APIS.CREATE_SEM_MODEL('auto', 'auto_rdf_data', 'triple');
3.2. Datu ievade
Semantisko datu ielādē būtiski neatšķiras no cita veida datu ielādes. Līdzīgi kā
citu datu ielādē, arī semantisko datu ievade var tikt veikta ielādējot daudz datus
vienlaicīgi vai arī izmantojot SQL Insert tipa vaicājumus. Daudz datu vienlaicīgu
ielādi var veikt izmantojot dažādus rīkus, piemēram, SQL Loader.
Insert tipa vaicājuma paraugs:
INSERT INTO auto_rdf_data VALUES (1, SDO_RDF_TRIPLE_S ('auto',' http://vuga.dyndns.org/Nissan', 'http://vuga.dyndns.org/predikati#razotajvalsts','Japana'));
Ievietojot semantiskos datus norāda semantiskā modeļa nosaukumu (auto) un
trīsvietīgo kortežu (subjekts, predikāts, objekts).
3.3. Datu glabāšana
Visi trīsvietīgie korteži tiek izanalizēti (angļu val. „parse”) un glabāti
MDSYS datu bāzes shēmā. Katrs trīsvietīgais kortežs tiek uztverts kā individuālas
objekts. Tā kā parasti viens RDF dokuments satur daudzus kortežus, tad parasti viens
RDF dokuments tiek glabāts kā daudzi datu bāzes objekti. Papildus glabāto kortežu
individuālās vērtības (subjekti, predikāti un objekti) tiek pievienoti semantisko datu
tīklam. Subjekti un objekti tiek pievienoti šim tīklam kā virsotnes, savukārt, predikāti
tiek pievienoti tīkla saitēm, kas savieno atbilstošo subjektu un objektu. Rezultāts ir
līdzīgs kā iepriekš apskatītā informācijas attēlošana grafa veidā (Att. 2.1 Informācijas
attēlojums grafa veidā). Glabājot trīsvietīgos kortežus ir jāievēro ierobežojumi to
iespējamām vērtībām:
Subjekts var būt norādīts kā URI vai tukša virsotne;
9
Predikāts var būt norādīts kā URI;
Objekts var būt norādīts kā URI, tukša virsotne vai konkrēta vērtība
(Oracle objektiem neatbalsta „null” tipa vērtības).
Papildus jau aprakstītajām glabāšanas īpatnībām, Oracle priekš
semantiskajiem datiem izveido divus semantisko modeļu metadatu skatus:
MDSYS.SEM_MODEL$ - satur informāciju par modeļa nosaukumu,
kortežu kolonu, tabulas nosaukumu u.c.
MDSYS.SEMM_ModelaNosaukums – šis skats satur informāciju par
kortežiem, piemēram, unikālo korteža identifikatoru, predikāta vērtību
(tekstu), subjekta vērtību, objekta vērtību u.c.
Šie skati tiek izveidoti brīdī, kad tiek izsaukta semantiskā modeļa veidošanas
komanda (CREATE_SEM_MODEL). Skatam MDSYS.SEMM_ModelaNosaukums
ir jāaizvieto ModelaNosaukums ar atbilstošo nosaukumu, piermēram,
MDSYS.SEMM_Auto.
Trīsvietīgie korteži tiek glabāti arī sistēmas tabulā RDF_VALUE$ (MDSys
shēmā). Šajā tabulā kā atsevišķs ieraksts tiek glabāta katra korteža daļa (subjekts,
predikāts un objekts), piemēram, ja ir divi trīsvietīgi koreteži, tad šajā tabulā būs seši
ieraksti. Tabulā tiek glabāta informācija par to kāds ir vērtības tips (URI, tukša
virsotne utt.), konkrēto vērtību tips (simbolu virkne (string), skaitliska vērtība
(decimal), utt.), valodas kodu priekš konkrētām vērtībām, kurām ir norādīta valoda,
un vēl citu korteža elementu raksturojošu informāciju.
Korteži, kas ir citu kortežu dublikāts, datu bāzē netiek saglabāti. Kortežs pie
saglabāšanas tiek salīdzināts ar jau modelī esošajiem un ja tiek atrasta jau esošo tieša
jaunā korteža kopija, tad attiecīgi jaunais kortežs netiek saglabāts. Par kopiju tiek
uzskatīts tāds kortežs, kuram pilnībā sakrīt visi elementi. Tomēr šeit ir specifika tajā,
ka tukša virsotnes vērtība katrā kortežā ir unikāla, tas ir ja diviem kortežiem sakritīs
subjekts un predikāts un objektā abos būs tukšas virsotnes vērtība, tad šie korteži
netiks uzskatīti par vienādiem.
Šajā Oracle versijā (Oracle 12c) ir parādījusies iespēja veidot RDF skatus, kas
balstīti uz relāciju datiem. Šī iespēja ļauj izmantot semantiskās tehnoloģijas
neveidojot semantisko datu bāzi (trīsvietīgus kortežus). Šī virtuālā transformācijas
funkcijas atbalsta divus standartus (W3C standartus) [4]:
R2RML valoda (angļu val. „RDB to RDF Mapping Language”);
10
Tieša relāciju datu transformāciju uz RDF (angļu val. „A
DirectMappingofRelationalData to RDF”).
Tieša datu transformācija notiek šādi:
BEGIN sem_apis.create_rdfview_model( model_name => 'empdb_model', tables => SYS.ODCIVarchar2List('EMP', 'DEPT'), prefix => 'http://empdb/' );END;
Tiek norādīts virtuālā modeļa nosaukums, tabulas, kuras tiks transformētas un
priedēklis, kas tiks izmantots RDF datu aprakstīšanā.
Otrs transformācijas veids, izmantojot R2RML valodu, pieļauj lielākas
lietotāja iespējas transformācijā. Lai veiktu šādu transformāciju vispirms ir
nepieciešams izveidot transformācijas dokumentu (angļu val. „mappingdocument”):
@prefix rr: <http://www.w3.org/ns/r2rml#>.@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.@prefix ex: <http://example.com/ns#>.
ex:TriplesMap_Dept rr:logicalTable [ rr:tableName "DEPT" ]; rr:subjectMap [ rr:template "http://data.example.com/department/{DEPTNO}"; rr:class ex:Department; ]; rr:predicateObjectMap [ rr:predicate ex:deptNum; rr:objectMap [ rr:column "DEPTNO" ; rr:datatype xsd:integer ]; ]; rr:predicateObjectMap [ rr:predicate ex:deptName; rr:objectMap [ rr:column "DNAME" ]; ]; rr:predicateObjectMap [ rr:predicate ex:deptLocation; rr:objectMap [ rr:column "LOC" ]; ].
Šo dokumentu ielādē pagaidu tabulā (angļu val. „stagingtable”), piemēram,
tbl_Sagatave, un veic transformāciju izmantojot to pašu funkciju, kas tika izmantota
iepriekš, tikai norādot citus parametrus:
BEGIN sem_apis.create_rdfview_model( model_name => 'empdb_model', tables => NULL, r2rml_table_owner => 'USER', r2rml_table_name => 'tbl_Sagatave' );END;
11
3.4. Likumi un to glabāšana
Oracle semantiskās tehnoloģijas piedāvā veidot likumus ar kuru palīdzību var
izdarīt secinājumus (iegūt jaunu informāciju) balstoties uz ievadītajiem
semantiskajiem datiem.
Likumu struktūra Oracle piedāvā veidot no četrām daļām:
Nosaukums – likuma nosaukums;
Ja sadaļa – norāda nosacījumu, kam jāizpildās;
Filtra sadaļa – norāda papildus nosacījumu pēc kā tiek samazināts
atbilstošo datu apjoms;
Tad sadaļa – norāda rezultātu, ja nosacījumu sadaļas izpildās (ja un
filtra sadaļas).
Paši likumi tiek glabāti kā objekti likumu bāzēs, tādas vienā datu bāzē var būt
vairākas. Brīdī kad datu bāzei tiek pievienots atbalsts semantiskajām tehnoloģijām
(CREATE_SEM_NETWORK), tad tiek automātiski izveidotas vairākas likumu bāzes
(RDFS un RDF likumu bāzes). Lietotājs var pievienot jaunas likumu bāzes izmantojot
šādu komandu:
EXECUTE SEM_APIS.CREATE_RULEBASE('auto_rb');
Jaunu likumu ievietošana likumu bāzē notiek izmantojot sistēmas izveidotu
skatu - MDSYS.SEMR_LikumuBaze. Piemēra gadījumā skata nosaukums būs
MDSYS.SEMR_auto_rb. Likumu pievienošana var veikt izmantojot insert tipa
vaicājumus.
3.5. Datu izguve
Datu izguve notiek izmantojot SEM_MATCH funkciju. Tā tiek pielietota SQL
vaicājumos. Šai funkcijai ir deviņi parametri:
12
Tabula 4.1 Funkcijas SEM_MATCH parametri
Parametra nosaukums Parametra nozīme
query vaicājumsVaicājums ar vienu vai vairākiem kortežu
šabloniem. Parasti satur mainīgos.
models semantiskie modeļi Semantiskie modeļi, kuri tiks apskatīti
rulebases likumu bāzes Likumu bāzes, kuras tiks apskatītas
aliases pseidonīmiŠeit iespējams norādīt papildus
nosaukumvietas, kuras tiks izmantotas.
filter filtri Šeit var norādīt papildus atlases kritērijus
index_status indekassatuss
Šis parametrs ļauj veikt semantiskos
vaicājumus, pat tad, ja atbilstošie semantiskie
indeksi nav darba kārtībā
options opcijas Iespējams norādīt dažādas papildus opcijas
graphs grafsIespējams norādīt grafu kopu, ko izmantot
pārmeklējamā grafa konstruēšanai
named_graphs noteikti grafiNorāda kuri grafi var tikt izmantoti vaicājuma
GRAPH sadaļā
Funkcijas vienīgais obligātais mainīgais ir vaicājums, pārējie ir neobligāti. Šī
funkcija atgriež objektu ar tipu „ANYDATASET”, principā atgrieztā vērtība būs
tabula balstoties uz norādīto vaicājumu.
SELECT x, y FROM TABLE(SEM_MATCH( '{?x :grandParentOf ?y . ?x rdf:type :Male}', SEM_Models('family'), SEM_Rulebases('RDFS','family_rb'), null,null));
Šāds vaicājums atgriež cilvēku un tā vecvecāku, kurš ir vīrietis (RDF tips)
balstoties uz „family” semantisko modeli un izmantojot divas likumu bāzes –
iebūvēto RDFS un lietotāja definēto „family_rb”. Šāds vaicājums atgrieztu tabulu ar
divām kolonām.
Datu izgūšanai Oracle 12c atbalsta arī divus uz java balstītus ietvarus – Jena
un Sesame. Oracle piedāvā šiem diviem ietvariem konektorus (angļu val.
„adapters”), lai ar tiem būtu iespēja veikt vaicājumus uz glabātajiem semantiskajiem
datiem.
13
3.6. Izmaiņas Oracle 12 versijā
Oracle 12 versijā (12c) ir veikti vairāki uzlabojumi pret iepriekšējām versijām
[4]:
Papildināts atbalsts SPARQL konstrukcijām. Starp papildinājumiem ir
tādi kā atbalstīto funkciju papildinājumi, apakšvaicājumi, grupēšana,
negācija u.c.;
Uzlabotas virtuālo modeļu veidošanu un pievienota iespēja tos mainīt
bez nepieciešamības tos vispirms dzēst;
Pievienota iespēja veidot lietotāja definētus secināšanas mehānismus;
Pievienota iespēja lietot lietotāja definētas funkcijas SPARQL
vaicājumos (SEM_MATCH funkcija);
Šajā Oracle versijā tiek atbalstītas arī OWL 2 EL ontoloģijas;
Pievienota iespēja uz relāciju datiem veidot RDF skatos, tādā veidā
izmantot semantiskās tehnoloģijas priekš jau esošiem relāciju datiem;
4. SecinājumiDarba izveidošanas laikā tika apskatītas vairākas tēmas – RDF, RDFS, OWL
un Oracle semantiskās tehnoloģijas. Darba laikā apguvu pamatus RDF dokumentu,
14
RDFS un OWL valodas izmantošanā.Šo standartu izpēte ļāva arī iegūt labāku
priekšstatu par semantisko tīklu un semantiskajām tehnoloģijām. Īpaši interesanti
šķita jaunākās iespējas Oracle datu bāzē, kas ļauj izmantot semantiskās tehnoloģijas
uz jau esošiem relāciju datiem. Šis, manuprāt, ir ļoti svarīgs aspekts, jo lielākā daļa
mūsdienās uzglabāto datu ir objektu-relāciju datu bāzēs, tādēļ veiksmīgai semantiskā
tīkla un semantisko tehnoloģiju attīstībai ir nepieciešams efektīvs veids kā izmantot
jau uzkrātos datus. Manuprāt, ir pareiza Oracle izvēle lietot jau izstrādātos standartus
un ietvarus, nevis savu principu veidošana. Oracle ļauj izmantot pasaulē ļoti populāro
programmēšanas valodu Java semantisko vaicājumu veikšanai, kā arī Oracle izmantot
W3C izveidotos standartus, gan vaicājumos, gan relāciju datu transformācijā.
15
Literatūra
1. IntroducingLinkedDataAndTheSemantic Web [Elektroniskais resurss]. –
Tiešsaistes pakalpojums – Pieejas veids: tīmeklis WWW. URL:
http://www.linkeddatatools.com/semantic-web-basics
2. www.rdfabout.com [Elektroniskais resurss]. – Tiešsaistes pakalpojums –
Pieejas veids: tīmeklis WWW. URL: http://rdfabout.com/quickintro.xpd
3. Horrocks I., Patel-Schneider P.F., vanHarmelen F. „From SHIQ and RDF
to OWL: TheMakingof a Web Ontology Language”;
4. Oracle DatabaseOnlineDocumentation 12c Release 1 (12.1)
[Elektroniskais resurss]. – Tiešsaistes pakalpojums – Pieejas veids WWW.
URL: http://docs.oracle.com/cd/E16655_01/appdev.121/e17895/toc.htm
16