53
Marko Adam IZGRADNJA SISTEMA ZA POMENSKO PRESLIKAVO RELACIJSKIH PODATKOVNIH BAZ Diplomsko delo Maribor, oktober 2009

VS Adam Marko 1986 93590906 - COnnecting REpositories · opisani bazi s pomo čjo stavkov SQL. Predstavili smo osnove podro čij, ki se ukvarjajo s pomensko preslikavo relacijskih

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Marko Adam

IZGRADNJA SISTEMA ZA POMENSKO PRESLIKAVO

RELACIJSKIH PODATKOVNIH BAZ

Diplomsko delo

Maribor, oktober 2009

II

Diplomsko delo visokošolskega strokovnega študijskega programa

IZGRADNJA SISTEMA ZA POMENSKO PRESLIKAVO RELACIJSKIH

PODATKOVNIH BAZ

Študent: Marko Adam

Študijski program: VS ŠP Računalništvo in informatika

Smer: Programska oprema

Mentor(ica): dr. Milan Ojsteršek, izr. prof.

Somentor(ica):

Lektor(ica):

Maribor, oktober 2009

III

IV

ZAHVALA

Zahvaljujem se mentorju izr. prof. dr. Milanu

Ojsteršku za pomoč in vodenje pri opravljanju

diplomske naloge. Prav tako se zahvaljujem ge.

Ines Čeh za dajanje napotkov pri izdelavi spletne

aplikacije.

Zahvala gre tudi staršem, ki so mi omogočili študij

na fakulteti.

V

Ključne besede: pomenski splet, ontologije, procesiranje naravnega jezika,

pomenski opis podatkovnih baz UDK: 004.6(043.2) Povzetek

Diplomsko delo smo posvetili pomenski preslikavi relacijske podatkovne baze. Opisali

smo pretvorbo relacijskega podatkovnega modela v pomenski in obratno. Pri preslikavi

pomenskega modela v relacijski smo morali razmisliti, kako povpraševati po pomensko

opisani bazi s pomočjo stavkov SQL. Predstavili smo osnove področij, ki se ukvarjajo s

pomensko preslikavo relacijskih podatkovnih baz. V okviru praktičnega dela diplomske

naloge smo nekatere prijeme vgradili v obstoječ sistem za odgovarjanje na vprašanja.

VI

Key words: semantic web, ontology, natural language processing, semantic

description of databases UDK: 004.6(043.2)

Abstract

This work is dedicated to semantic mapping of a relational database. We described

conversion of relational data model into semantic data model and opposite. At mapping of

semantic model into relational model, we considered querying semantic description of a

database via SQL statements. We presented basic concepts of fields working on semantic

mapping of relational databases. As a practical part, we implemented some approaches

withing existing question-answering system.

VII

VSEBINA

1 UVOD ............................................................................................................................ 1

1.1 Namen in cilji diplomskega dela ........................................................................... 1

1.2 Struktura dela ......................................................................................................... 2

2 OSNOVE POMENSKEGA SPLETA ........................................................................... 3

2.1 Meta-podatki .......................................................................................................... 5

2.2 Struktura pomenskega spleta ................................................................................. 5

3 OSNOVE PROCESIRANJA NARAVNEGA JEZIKA .............................................. 11

3.1 Opravila ............................................................................................................... 11

3.1.1 Razčlenjevanje ................................................................................................. 11

3.1.2 Korenjenje ....................................................................................................... 12

3.1.3 Lematizacija .................................................................................................... 12

3.1.4 Normalizacija sopomenk ................................................................................. 13

3.1.5 Označevanje besednih vrst .............................................................................. 13

3.1.6 Določanje pomena besed ................................................................................. 14

3.1.7 Razreševanje sklicev........................................................................................ 15

4 POMENSKI OPIS PODATKOVNIH BAZ ................................................................ 16

4.1 Preslikava relacijskega podatkovnega modela v pomenski ................................. 17

4.2 Preslikava pomenskega podatkovnega modela v relacijski ................................. 19

5 IZGRADNJA PREDLOG ZA VPRAŠANJA NA ODGOVORE, KATERIH VPRAŠANJA SE NANAŠAJO NA ISTI ODGOVOR ...................................................... 24

6 SISTEM ZA TVORJENJE IN POMENSKI OPIS PODATKOVNIH BAZ .............. 28

6.1 Regularni izrazi.................................................................................................... 29

6.2 Funkcionalnosti spletnega vmesnika ................................................................... 30

6.2.1 Izdelava tabele ................................................................................................. 30

6.2.2 Urejanje strukture tabele .................................................................................. 31

6.2.3 Briši tabelo ....................................................................................................... 32

6.2.4 Urejanje podatkov ........................................................................................... 32

6.2.5 Urejanje vprašanj ............................................................................................. 33

6.2.6 Urejanje dejstev ............................................................................................... 35

6.2.7 Urejanje vnaprej definiranih regularnih izrazov .............................................. 37

6.2.8 Dodajanje preostalih tabel ............................................................................... 38

6.3 Končni videz aplikacije ....................................................................................... 38

7 ZAKLJUČEK .............................................................................................................. 40

8 NADALJNJE DELO ................................................................................................... 42

9 LITERATURA ............................................................................................................ 44

VIII

SEZNAM SLIK

Slika 1: Pretvorba spletnih dokumentov v pomenske spletne dokumente ............................ 4

Slika 2: Nestrukturirani, delno strukturirani in strukturirani podatki .................................... 4

Slika 3: Struktura pomenskega spleta .................................................................................... 5

Slika 4: Pomenska mreža strukturirano predstavlja dejstva .................................................. 6

Slika 5: Ontologija določa, da lahko samo z enim od sinonimov opišemo lastnost osebe ... 8

Slika 6: Zapisa RDF opisujeta različna naziva fakultete študenta ......................................... 9

Slika 7: Ontologija določa, da je lahko študent samo na eni fakulteti ................................... 9

Slika 8: Slovar besed in normaliziranih oblik ..................................................................... 13

Slika 9: Slovar besednih vrst ............................................................................................... 14

Slika 10: Baza zaposlenih s pomensko opisanimi stolpci ................................................... 17

Slika 11: Seznam podjetij s podatki o zaposlenih ............................................................... 18

Slika 12: RDF graf relacijske podatkovne baze .................................................................. 19

Slika 13: Tabele zaposlenih, zapisane s trojčki ................................................................... 20

Slika 14: Zapisane tabele podjetij s trojčki .......................................................................... 21

Slika 15: Tabele relacij med zaposlenimi in podjetji, zapisane s trojčki ............................. 21

Slika 16: Ustrezen SQL stavek za združitev štirih tabel tabele zaposlenih ......................... 22

Slika 17: Ustrezen SQL stavek za združitev treh tabel tabele podjetij ................................ 22

Slika 18: Primeren SQL stavek za združitev treh tabel zaposlenih in podjetij .................... 22

Slika 19: Tabela za opis relacije med podjetjem in zaposlenimi ......................................... 23

Slika 20: Slovar za dodane besede k odgovoru pred sinonimi ............................................ 28

Slika 21: Vmesnik za izdelavo nove tabele ......................................................................... 31

Slika 22: Vmesnik za urejanje strukture tabele ................................................................... 32

Slika 23: Vmesnik za urejanje podatkov ............................................................................. 33

Slika 24: Vmesnik za urejanje vprašanj .............................................................................. 35

Slika 25: Vmesnik za urejanje dejstev ................................................................................. 36

Slika 26: Vmesnik za urejanje vnaprej definiranih regularnih izrazov ............................... 37

Slika 27: Končni videz združenih aplikacij ......................................................................... 39

IX

KRATICE

HTML - HyperText Markup Language - označevalni jezik za ustvarjanje spletnih strani

NLP - Natural Language Processing - procesiranje naravnega jezika

RDF - Resource Description Framework - ogrodje za opisovanje virov

SQL - Structured Query Language – strukturirani poizvedni jezik

OWL - Web Ontology Language - jezik spletnih ontologij

URI - Uniform Resource Identifier - univerzalni identifikator vira

XML - Extensible Markup Language - razširljiv označevalni jezik

Stran 1

1 UVOD

1.1 Namen in cilji diplomskega dela

Svetovni splet se razvija zelo hitro. Posledično nam s tem razvojem ponuja veliko

količino različnih informacij, ki so bolj ali manj dostopne vsakemu uporabniku. Najti te

informacije je kar velik problem za povprečnega uporabnika. Prav za to opravilo so se

razvili t.i. spletni iskalniki. Vendar nam vsi do sedaj razviti iskalniki ponujajo veliko

količino povezav, ki se navezujejo na vnesene ključne besede. Marsikateremu uporabniku

dela vnos ključnih besed nemalo težav. Na primer, če želimo izvedeti naslov Fakultete za

elektrotehniko, računalništvo in informatiko, bi dobili povezave do spletnih strani ali

dokumentov. Veliko teh povezav bi bilo upoštevajoč uporabnikovo informacijsko potrebo

povsem nekoristnih. Ljudje si ob težavnem iskanju želijo, da bi namesto ključnih besed

zapisovali kar vprašanja, zastavljena v slovenskem jeziku. Porodila se je zamisel, da bi

razvili sistem, ki skuša čim natančneje z enim odgovorom odgovoriti na zastavljeno

vprašanje.

V Laboratoriju za heterogene računalniške sisteme so že razvili tak sistem v okviru

diplomskega dela. Pojavljajo pa se vedno nova vprašanja, na katera sistem ne zna

odgovoriti. Informacije, ki so zapisane v odgovoru, so lahko zapisane v tabelah v

podatkovni bazi. Primeri takšni podatkovnih baz so podatki o zaposlenih, cenikih, urniku...

Kompleksnost podatkovne baze v smislu velikega povečanja števila vnosov lahko na ta

račun naraste. V okviru praktičnega dela moje diplomske naloge smo se odločili, da bi

obstoječ sistem nadgradili. Izdelali smo sistem za gradnjo in pomensko preslikavo jedrnega

dela podatkovne baze sistema za odgovarjanje na vprašanja. Gre za tabele, ki vsebujejo

podatke kot stolpce, ki so ključni elementi znotraj vprašanj in odgovorov. Na primer,

vprašanje Kdo je Zdenka Vodopivec? vsebuje del, ki predstavlja ime in priimek osebe.

Vprašanje je v sistemu predstavljeno tako, da to velja za vsako osebo znotraj tabele (ime in

Stran 2

priimek sta dva stolpca v okviru te tabele). Tudi odgovor je vezan na določene druge

stolpce znotraj te tabele. Zamisel je, da bi se zraven urejanja strukture in podatkov k

stolpcem pripisala tudi vprašanja in dejstva; k podatkom pa bi dodali sopomenke. K vsaki

tabeli pa bi lahko pripisali vprašanje in dejstva, ki bi predstavljala relacijski opis med

tabelami v slovenskem jeziku. Vendar s temi pristopi sistem še ne bi znal odgovarjati po

novem načelu; bi pa to bila dobra osnova za nadaljnje delo, ki zahteva več podpore

procesiranju naravnega jezika.

1.2 Struktura dela

Diplomsko delo sestavlja osem poglavij. Po uvodnih besedah sledi pregled področij

pomenskega spleta in procesiranja naravnega jezika. Podana in opisana so opravila, ki se

najpogosteje uporabljajo. Sledi predstavitev področja pomenskega opisovanja podatkovnih

baz, kjer smo opisali tudi postopek preslikave iz relacijskega v pomenski podatkovni

model in obratno. Sledi opis algoritma za izgradnjo predlog vprašanja in odgovora

zapisanih vprašanj, ki se nanašajo na isti odgovor. Naslednje poglavje je v celoti

posvečeno opisu aplikacije. Predstavljene so funkcionalnosti in opisane nekatere rešitve

pomembnejših opravil. V zadnjem podpoglavju tega poglavja sledi vizualna predstavitev

združene aplikacije, ki so jo že razvili v Laboratoriju za heterogene računalniške sisteme s

pomočjo moje rešitve. V predzadnjem poglavju podajamo zaključne misli in nato

ugotovitve in napotke za nadaljnje delo.

Stran 3

2 OSNOVE POMENSKEGA SPLETA

Danes se več ne moremo izogniti veliki količini informacij, ki obstaja na spletu v obliki

spletnih strani ali drugih dokumentov. Ta količina se je in se bo še nadalje povečevala.

Velika pomanjkljivost je v tem, da so ti podatki nestrukturirani. Zato so se začeli razvijati

različni spletni iskalniki. Ti sicer služijo svojemu namenu tj. iskanju informacij po spletu.

Vendar nam iskalniki vrnejo seznam povezav do spletnih strani ali ostalih dokumentov, na

katerega se nanašajo iskane informacije. Iskalna poizvedba je pogosto presplošna, hkrati pa

je iskano informacijo potrebno izluščiti iz dokumenta.

Zgoraj opisane težave rešuje pomenski splet. Nanaša se na označevanje virov s

pomočjo ontologij, ki so opisane v podpoglavju [2.2]. Zamisel pomenskega spleta je v

boljši organizaciji spletnih strani oz. dokumentov. Informacije na spletu naj bi bile

organizirane na način, ki je primerljiv s podatkovnimi bazami. Tam ima tabela zraven

podatkov v stolpcih dodeljene tudi meta-podatke, ki opisujejo pomen zapisanih podatkov.

Tako je cilj ustvariti splet tako, da bo računalnikom razumljiv in ga bodo lahko obdelovali.

Računalniki bi te podatke ne samo prikazovali, ampak jih tudi avtomatizirano obdelovali s

pomočjo različnih aplikacij.

Pomenski splet je razširitev svetovnega spleta, kjer so informacije pomensko

opredeljene, kar posledično omogoča boljše sodelovanje med ljudmi in računalniki.

Stran 4

Pretvorbo v pomenske spletne dokumente iz spletnih dokumentov prikazuje spodnja

slika:

Slika 1: Pretvorba spletnih dokumentov v pomenske spletne dokumente

Jezik XML (angl. »Extensible Markup Language«) se je izkazal za primerno sredstvo

za opis in pošiljanje podatkov. Na naslednji sliki je prikazan primer nestrukturiranih, delno

strukturiranih in strukturiranih podatkov:

Slika 2: Nestrukturirani, delno strukturirani in strukturirani podatki

Rešitve, ki temeljijo na XML, še ne zadostujejo povsem, saj zapisanim podatkom

primanjkujejo pomenski opisi. To težavo rešujejo ontologije, ki definirajo strukturo in

pomen strojno berljivih (meta) podatkov (predstavljene so v [2.2]).

Stran 5

2.1 Meta-podatki

Obogatitev informacij s pomenom na svetovnem spletu bo uspešno, ko bomo

zagotovili enolično pojmovanje vseh vrst virov, kot so spletne strani, slike, video posnetki,

ostali dokumenti (besedila, preglednice itd.) in meta-podatki za opisovanje podatkov.

Meta-podatki lahko opisujejo dokument, del dokumenta ali cele spletne strani. Pomembno

je vedeti, da so meta-podatki pomenski. Torej nam povedo nekaj o vsebini (na primer

seznam večpredstavnih datotek, povezav na ostale dokumente ipd.). Razlika med

zapisanimi meta-podatki v dokumentih HTML današnjega spleta in pomenskih meta-

podatkih je v tem, da pri pomenskem spletu lahko označimo podatek s pomenom v večji

razsežnosti; ne samo npr. naslov spletne strani, avtorja, ampak tudi da gre za prodajo orodij

in se lahko sklicujemo na obstoječo ontologijo (tj. znanje) o orodjih ipd.

2.2 Struktura pomenskega spleta

Opisali bomo elemente strukture pomenskega spleta, ki so predstavljeni na spodnji

sliki:

Slika 3: Struktura pomenskega spleta

Stran 6

URI (angl. »Uniform Resource Identifier«) določa poimenovanje virov; na primer

spletnih dokumentov. Podmnožica URI-ja je tudi URL, ki določa omrežno lokacijo

dokumenta ali spletne strani (na primer http://www.feri.uni-mb.si).

UNICODE je standard za zapis množice mednarodnih znakov ter omogoča, da lahko na

spletu skozi pisavo uporabljamo poljuben svetovni jezik.

XML je označevalni jezik, ki se uporablja za opis dokumentov s strukturirano vsebino.

Dokument XML lahko vsebuje vgnezdene elemente z določenimi lastnostmi in vsebino.

Shema XML se uporablja za izražanje mogoče strukture določene množice dokumentov

XML. To je množica pravil, kako mora biti oblikovan dokument XML.

RDF (angl. »Resource Description Framework«) je osnovna oblika za zapis podatkov

na pomenskem spletu. Opisuje vire na spletu. Vir je lahko spletna stran, del spletne strani,

element XML ali pa viri, ki niso dosegljivi prek spleta (na primer učbenik za srednjo šolo).

Temelji na trojčkih oblike »osebek-povedek-predmet«. Množica takšnih trojčkov se

imenuje graf dejstev RDF, ki ga lahko računalnik preiskuje. Vir je definiran z URI-jem.

Tako imenovane pomenske mreže strukturirano predstavljajo seznam dejstev. Uporabljajo

dedovanje podobno kot je to pri objektno orientiranem programiranju. Gradimo lahko

pomenske mreže, ki so na splet vključene s pomočjo sklicev prek URI-jev. Primer vidimo

na sliki 4:

Slika 4: Pomenska mreža strukturirano predstavlja dejstva

Stran 7

Kot je pomemben pomen v naravnem jeziku, je tudi pomemben pomen v vsebini RDF.

Pomen dokumenta RDF je določen s sklici na sheme RDF. Vsak trojček RDF lahko

opredeli slovar izrazov, v katerih so opredeljeni izrazi, ki se uporabljajo v dokumentih

RDF in njihov pomen. Da bi se izognili različnim definicijam enakih izrazov, se tukaj

uporabljajo tudi naslovni prostori XML.

Na naslednji ravni so postavljene ontologije, ki določajo pomen v pomenskem spletu.

Ontologije so najpomembnejši del vsake aplikacije v pomenskem spletu. Od več definicij

različnih avtorjev je ostala naslednja:

Ontologija je formalna, nedvoumna specifikacija skupnega pojmovanja.

• Pojmovanje se nanaša na abstraktni model nekega pojava v svetu, ki določa pojme.

• Nedvoumno pomeni, da so uporabljeni pojmi in omejitve določeni enoumno.

• Formalna pomeni, da mora biti ontologija strojno berljiva.

• Skupna pomeni, da ontologija zajema znanje, ki ga podpira več ljudi.

Za zapis ontologij potrebujemo posebne jezike. Le-ti omogočajo predstavitev znanja za

določeno področje in lahko vsebujejo pravila za sklepanje, ki podpirajo obdelavo tega

znanja. Trenutno je najbolj razširjen ontološki jezik OWL (angl. »Web Ontology

Language«). Jezik vključuje logiko. S pomočjo tega jezika lahko izrazimo trditve, kjer

pravilnost le-teh zagotavlja človek. Določene trditve pa se lahko tudi samodejno izpeljejo.

OWL

Jezik OWL kot del spletnih tehnologij omogoča smiselne poizvedbe na določeno

tematiko. Temelji na zapisih in pravilih jezikov XML in RDF. Glavni cilj tega jezika je, da

iz v stavku zapisanih poizvedb vrne smiseln povzetek naše informacijske poizvedbe na

podlagi informacijske potrebe.

Stran 8

Je pomenski označevalni jezik za objavljanje in izmenjavo ontologij na spletu. Jezik je

zasnovan za aplikacije, ki naj zraven same predstavitve informacij tudi procesirajo vsebino

dokumentov.

Primer uporabe ontologije:

V slovenskem jeziku imamo zapisana naslednja dejstva: »Oseba ima ime Ime«, »Oseba

se imenuje Ime«, »Osebi je ime Ime«. Vsako dejstvo predstavimo v obliki osebek-

povedek-predmet:

• Oseba - ima ime - Ime

• Oseba - se imenuje - Ime

• Oseba - je ime - Ime

Ontologija pri opisu lastnosti neke osebe določa, da to lastnost lahko opišemo samo z enim

pojmom, ki nadomešča vse sopomenke; kar vidimo na spodnji sliki:

Slika 5: Ontologija določa, da lahko samo z enim od sinonimov opišemo lastnost osebe

Poglejmo še, kako je s sklepanjem. Zapisali smo tri sopomenke za opis lastnosti imena

osebe. Sklepamo lahko, da izrazi ima ime, se imenuje, je ime predstavljajo en pojem.

Osebki imajo lahko vrednost v obliki niza. To je zelo primerno, ko se RDF uporablja za

meta-podatke. Na primer:

http://www.feri.uni-mb.si/images/feri_napis.png je slika

Stran 9

Vzemimo še drug primer. Imamo vprašanje »Študent katere fakultete je Marko

Adam?«. Naletimo lahko na dva zapisa RDF, ki odgovarjata na to vprašanje:

Slika 6: Zapisa RDF opisujeta različna naziva fakultete študenta

Upoštevamo ontologijo, da je študent lahko samo na eni fakulteti, kot je razvidno iz

spodnje slike:

Slika 7: Ontologija določa, da je lahko študent samo na eni fakulteti

Predstavimo izjave o nazivu fakultete za študenta v obliki osebek-povedek-predmet.

• Marko Adam — naziv fakultete — FERI MB

• Marko Adam — naziv fakultete — Fakulteta za elektrotehniko, računalništvo in

informatiko Maribor

Ker ontologija določa, da je študent lahko samo na eni fakulteti, se privzame, da oba

naziva fakultet določata isto fakulteto.

Stran 10

SPARQL (angl. »Simple Protocol and RDF Query Language«) je poizvedovalni jezik

po podatkih RDF. Podoben je SQL-u, vendar uporablja trojčke RDF in vire za vrnjene

rezultate. Ker OWL temelji na RDF, je ta jezik primeren tudi za poizvedovanje po

ontologijah; je tudi protokol za dostop do zapisov RDF.

Vsi pomeni in pravila so v hierarhiji ontologij postavljeni pod ravnijo zaupanja.

Rezultati sklepanja se uporabljajo za dokazovanje sklepov. Dokaz z zaupanjem vrednimi

viri pomeni, da lahko rezultatom zaupamo. Za zagotavljanje zanesljivosti in varnosti

dostopa do virov se uporablja kriptografija, ki vključuje digitalne podpise za preverjanje

izvora virov. Nad vsemi ravnmi lahko gradimo uporabne aplikacije z uporabniškimi

vmesniki.

Stran 11

3 OSNOVE PROCESIRANJA NARAVNEGA JEZIKA

Procesiranje naravnega jezika (»Natural Language Processing« oz. kratica NLP) je

področje, ki se ukvarja z obdelavo besedil, zapisanih v naravnem jeziku. Ideja te vrste

obdelave besedil je, da se obdela nestrukturirano besedilo tako, da bo razumljivo

računalniku.

Hkrati z razvojem spleta se je povečala tudi količina podatkov, ki so po navadi zapisani

v naravnem jeziku. Pridobitev za nas pomembnih informacij iz teh besedil je lahko zelo

dolgotrajno opravilo. Zato so se začeli razvijati sistemi za obdelavo naravnega jezika. V

naslednjih podpoglavjih bomo podali opravila, ki nastopajo pri obdelavi vsebin, zapisanih

v naravnem jeziku.

3.1 Opravila

Področje NLP je razdeljeno na več podproblemov, ki se dajo rešiti z algoritmi, ki jih

podajamo v nadaljevanju. Nekateri algoritmi so tudi priprava podatkov kot vhodne podatke

v druge algoritme.

3.1.1 Razčlenjevanje

Razčlenjevanje besedila je postopek delitve na manjše enote, na primer posamezne

besede. Je prva in osnovna operacija, ki se po navadi izvede na začetku obdelave besedil.

Rezultati tega razčlenjevanja se uporabijo pri nadaljnjih opravilih. Poglejmo si preprost

primer razčlenjevanja. Imamo zapisan stavek »Jože Čuden bo diplomiral na Fakulteti za

elektrotehniko, računalništvo in informatiko«. Dobiti moramo seznam vseh besed, ki so

Stran 12

med seboj ločene z ločilom kot je presledek, vejica ali pika. Večina programskih orodij že

ima vgrajene funkcije za razčlenjevanje na besede. Kot rezultat bi dobili naslednji seznam

besed: Jože, Čuden, bo, diplomiral, na, Fakulteti, za, elektrotehniko, računalništvo, in,

informatiko.

3.1.2 Korenjenje

Korenjenje oz. krnjenje (angl. »stremming«) je postopek, pri katerem odstranjujemo

končnice besedam, ki niso v osnovni obliki. Obstaja več pristopov h korenjenju; vsak s

svojo zmogljivostjo in natančnostjo.

Pri algoritmih z grobim pristopom (angl. »brute force«) se korenjenje izvede s pomočjo

pomožne tabele, v katerih je zapisana oblika besede ter njen pripadajoči koren. Poišče se

zapis z iskano obliko, nato pa to obliko zamenja s korensko obliko.

Pristopi z rezanjem pripon in končnic (angl. »suffix stripping«) uporabljajo pravila, ki

na podlagi pripone besed določajo, kako naj se določi korenska oblika. Za slovenski jezik

je prav gotovo težje določiti ta pravila. Besede se lahko končujejo s pripono »i«, vendar če

bi odrezali samo to pripono, bi dobili za besedo »psi« rezultat »ps«; kar je seveda napačno.

Tukaj je v primerjavi z grobim pristopom potrebno precejšnje znanje o konkretnem jeziku.

Poglejmo si primer. Besedam »kuža«, »kužki«, »kužka«, »kužku« skušamo določiti

koren, ki je sestavljen iz čimveč ujemajočih znakov. Če bi upoštevali zadnje tri besede, bi

lahko določili koren »kužk«, vendar ta koren ni primeren za prvo besedo. Zadovoljiti se

moramo s korenom »kuž«.

3.1.3 Lematizacija

Lematizacija je podoben proces kot krnjenje besed. Razlikuje se v tem, da se besede

nadomeščajo z osnovnimi oblikami besed. Izvaja se s pomočjo posebnega slovarja, v

Stran 13

katerem so zapisani pari izpeljanka - osnovna oblika. V primerjavi s krnjenjem besed se

lematizacija razlikuje tudi v tem, da krnjenje ne zahteva pretvorbe besede v osnovno

obliko. Na primer za besede »letim«, »leteti«, »letiš« je v slovarju zapisana osnovna oblika

»leteti«, ki se tudi imenuje »lema« zgoraj naštetih besed. V stavku »Letim domov« bi po

postopku lematizacije zapisali »Leteti domov«.

3.1.4 Normalizacija sopomenk

Sinonimi ali sopomenke so besede, ki imajo enak pomen. Takšen primer sta zaslon in

prikazovalnik. Na drugih področjih imajo lahko predmeti več imen. Ta imena je potrebno

spraviti v enotno obliko. To opravilo je naloga normalizacije sopomenk. Sinonimi se

razrešujejo s pomočjo leksikonov, ki vključujejo sinonime in normalizirano obliko. Ko se

tak sinonim najde, se ga enostavno zamenja z normalizirano obliko. Primer slovarja

sopomenk in njenih normaliziranih oblik vidimo na spodnji sliki:

Slika 8: Slovar besed in normaliziranih oblik

Sestavek »Prenosnik ima prikazovalnik. Danes imajo že skoraj vsi študenti

računalništva laptop.« bi se pretvoril v »Prenosni računalnik ima zaslon. Danes imajo že

skoraj vsi študenti računalništva prenosni računalnik.«.

3.1.5 Označevanje besednih vrst

Označevanje besednih vrst je postopek odkrivanja besednih vrst konkretnih besed v

stavkih. Besedne vrste so na primer samostalniki, glagoli, vezniki itd. Označevanje se

izvaja s pomočjo označevalnikov besednih vrst (angl. »PoS Taggers« oz. »Part of Speech

Stran 14

Taggers«). Obstaja več algoritmov z različnimi pristopi reševanja tega problema; na primer

s pomočjo nadziranega in nenadziranega strojnega učenja. Nadzirano učenje potrebuje že

rešene primere. Ta pristop je časovno zahteven, ker moramo pridobiti ročno izdelane

rešene primere. Pri nenadzorovanem učenju se primeri določijo samodejno na podlagi

vzorcev uporabe besed, vendar je doseg oz. uspešnost lahko drugačna. V stavku »Milan

stanuje v mestu« bi želeli poiskati besedne vrste. Pomagamo si lahko s slovarjem v

katerega bi morali ročno vpisati besedo ter njeno besedno vrsto kot je prikazano spodaj.

Slika 9: Slovar besednih vrst

Tako hitro ugotovimo katere besede pripadajo kateri besedni vrsti. Besedi pa bi lahko

pripisali tudi sopomenke kot smo na sliki 9 za primer »mesto«, ker lahko uporabniki

različno sklanjajo iste besede.

3.1.6 Določanje pomena besed

Določevanje pomena besed je postopek za enoumno ugotovitev pomena posamezne

besede (ali besednih zvez). Pri tem reševanju obstajata globoki in plitki pristop. Globoki

pristop uporablja zbirko splošnega znanja, ki razrešuje dvoumnosti. Plitki pristop določuje

pomen besede na podlagi besed v okolici. Uporablja se nadzorovano ali nenadzorovano

strojno učenje. Nadzorovano uporablja že ročno označene primere s pomenom besede. Pri

nenadzorovanem učenju pa se uporablja več različnih algoritmov.

Stran 15

Beseda »klop« ima lahko v dveh stavkih drugačen pomen. V stavkih »Sedel sem na

klop« in »V gozdu sem dobil klopa«. V prvem stavku pomeni ta beseda pripravo za

sedenje, v drugem pa za gozdno žival. Uporabili bomo plitki pristop za računalniško

razreševanje pomena besede »klop«. Pomena v obeh stavkih bi ugotovili tako, da bi

pogledali besede v okolici besede »klop«. Če je v bližini te besede zapisana beseda

»sedeti« gre najverjetneje za pripravo za sedenje. Če je v bližini te besede beseda »gozd«

gre za gozdno žival. Lahko pa imamo take stavke pri katerih bi morali upoštevati tudi

dodano končnico besedi, katere iščemo pomen. Takšen primer je lahko »Dobil sem klopa«

in »Dobil sem klop«. Kadar beseda nima končnice predvidevamo, da gre za pripravo za

sedenje, v nasprotnem primeru pa za gozdno žival.

3.1.7 Razreševanje sklicev

Razreševanje sklicev je postopek razreševanja besede, ki se sklicuje na drugo besedo.

Razreševanje je lahko zelo težavno, saj se lahko enak zaimek v različnih stavkih sklicuje

na različne besede. V stavku »Muca je dobila zajtrk in ga pojedla« se zaimek »ga« sklicuje

na muco. Ugotavljamo na katere besede se sklicujejo zaimki. Lahko pa se zgodi, da se isti

zaimek sklicuje na različne besede v različnih stavkih. Npr. v stavkih »Muca je pojedla

zajtrk, ker je bil dober« ter »Muca je pojedla zajtrk, ker je bila lačna« se zaimek je v prvem

stavku sklicuje na zajtrk, v drugem stavku pa se sklicuje na muco. Za ugotavljanje kateri

zaimki pripadajo katerim besedam bi morali imeti definiran slovar v katerega bi zapisovali

besedo ter zaimke, ki se nanašajo na to besedo. Zaimki pa so lahko zapisani tudi pred

zapisano besedo na katero se nanaša ta zaimek.

Stran 16

4 POMENSKI OPIS PODATKOVNIH BAZ

Ko še ni bilo računalnikov, so bili podatki zapisani na listkih, zvezku ali pa v skupaj

spetih dokumentih. Sedaj so podatki zapisani v datoteki, ki je shranjena na trdem disku ali

drugem mediju in vedno pripravljeni za pregledovanje ali urejanje.

V podatkovni bazi hranimo informacije kot so razni dogodki, novice, osebe… V

podjetju, ki se ukvarja s prodajo, lahko na primer hranimo informacije o strankah,

dobaviteljih, izdelkih in računih. Ti pojmi se od drugih razlikujejo po naboru lastnosti, ki

nas bodo zanimale. Stranke imajo lastnosti, kot so: ime, priimek in naslov, izdelki imajo

lastnosti naziv, cena, številka dobavitelja, ki ga dostavlja itd. Lastnosti so to, kar loči stvari

med seboj; stranke, dobavitelje, izdelke in račune lahko med seboj povezujemo z

relacijami. Obstaja več vrst relacij:

• 1 : 1 (ena proti ena), kjer enemu zapisu v tabeli pripada samo en zapis v drugi

tabeli;

• 1 : N (ena proti mnogo), kjer enemu zapisu v tabeli pripada en ali več zapisov v

drugi tabeli;

• M : N (mnogo proti mnogo), kjer enemu zapisu v tabeli pripada en ali več

zapisov v drugi tabeli in hkrati enemu zapisu v drugi tabeli pripada en ali več

zapisov v prvi tabeli.

S pomočjo teh odnosov lahko združujemo podatke iz več tabel. Ne poznamo pa

pomena odnosov. Veliko lažje bi si predstavljali, če bi dodali pomene v slovenskem jeziku

k odnosom in lastnostim. Odnos med računi in strankami lahko opišemo s stavkom

»Računi pripadajo strankam.«; pri čemer moramo vedeti, da beseda pripadajo opisuje

odnos med tabelama račun in stranka. Prav tako lahko dodelimo pomen lastnosti stranke.

Stran 17

Za naslov osebe bi lahko zapisali stavek »[Oseba] stanuje na naslovu [Naslov].«. Ti

opisi bodo nadalje zelo priročni pri praktičnem delu diplomske naloge. Predstavili bomo

obe vrsti preslikav, ki sta vezani na pomen odnosov in lastnosti.

4.1 Preslikava relacijskega podatkovnega modela v pomenski

Za predstavitev baze na pomenskem spletu moramo relacijski model baze pretvoriti v

semantični. To lahko izvedemo s pomočjo RDF-ja. RDF je jezik, ki lahko opiše različne

objekte (vire), njegove lastnosti in odnose med njimi s pomočjo stavkov, ki so razumljivi

ljudem. Omenili smo že, da je RDF sestavljen iz trojčkov, kot so osebek, povedek in

predmet. Ti trojčki so zapisani v stavku RDF, ki ga lahko direktno preslikamo v graf. V

njem predstavlja vozlišče osebek, elipsa vrednost lastnosti osebka ter povezava opis

lastnosti osebka.

Relacijska podatkovna baza vsebuje tabelo, v kateri so zapisi, ki vsebujejo nabor

lastnosti. Vsak zapis je napolnjen z vsebino lastnosti. Na spodnji sliki je predstavljen

enostaven diagram baze zaposlenih v podjetjih.

Slika 10: Baza zaposlenih s pomensko opisanimi stolpci

Stran 18

Sledi prikaz treh tabel, ki vsebujejo nekaj podatkov. Potrebna je še pomožna tabela, ki

predstavlja odnos mnogo proti mnogo med podjetji in zaposlenimi; namreč, en zaposlen se

lahko zaposli v več podjetjih in hkrati v enem podjetju je več zaposlenih. Zraven je še

dodana lastnost datum zaposlitve, ki določa datum zaposlitve zaposlenih v pripadajočih

podjetjih. Tabele so predstavljene na sliki 11.

Slika 11: Seznam podjetij s podatki o zaposlenih

Na sliki 12 je predstavljen graf RDF baze iz slike10. Relacije med osebki in predmeti

so opisane z imenom lastnosti. Dobro bi bilo še pojasniti značilnosti primarnih ključev v

relacijski bazi. V zgornjih treh tabelah so posebni stolpci, ki predstavljajo primarni ključ,

označen z ID_podjetja in ID_zaposlenega. Tako kot tabele, relacije, lastnosti in vrednosti

lastnosti je tudi primarni ključ predstavljen kot vir. To omogoča, da se izdelajo stavki RDF

z namenom opisovanja teh virov.

Stran 19

Slika 12: RDF graf relacijske podatkovne baze

Preslikava relacijske baze v pomensko nadgrajuje predstavitev klasično predstavljene

baze s tem, da doda pomenski opis relacij med tabelami ter stolpci.

4.2 Preslikava pomenskega podatkovnega modela v relacijski

Pri pomensko opisani podatkovni bazi se hitro pojavi potreba po tem, da izluščimo

podatke. To opravilo bi radi opravili na tak način, da bi bilo poizvedovanje čim bolj

podobno kot pri klasičnih relacijskih podatkovnih bazah. Želeli bi pridobiti podatke z

jezikom SQL (angl. »Structured Query Language«). V tem poglavju bomo teoretično

skušali z SQL stavki pridobiti za nas zanimive informacije iz pomensko opisane relacijske

podatkovne baze.

Stran 20

Omenili smo že, da so RDF stavki zapisani s trojčki. Najprej bomo skušali tabele iz

prejšnjega poglavja preurediti tako, da bodo vsebovale tri stolpce (osebek, povedek in

predmet). Vsako tabelo bomo razdelili tako, da bomo tabelo razdelili na toliko tabel,

kolikor ima stolpcev. V te tabele bomo zraven imena stolpca ter njegove vrednosti dodali

tudi pomen. Tako izpolnjene tabele zaposlenih so predstavljene spodaj:

Slika 13: Tabele zaposlenih, zapisane s trojčki

Na podoben način razdelimo tabelo, ki opisuje odnos med zaposlenimi in podjetji ter

tabelo podjetij. Na naslednji sliki je prikazan primer razdelitve tabele podjetij tako, da so

podatki zapisani v obliki trojčkov.

Stran 21

Slika 14: Zapisane tabele podjetij s trojčki

Razdelimo še tabelo, ki opisuje odnos med zaposlenimi in podjetji v obliki trojčkov

tako kot je prikazano na spodnji sliki.

Slika 15: Tabele relacij med zaposlenimi in podjetji, zapisane s trojčki

Stran 22

Vse tri tabele imamo predstavljene s pomenskimi opisi stolpcev. Pripravljeni smo na

združitev tabel. Tako se bomo na koncu lahko dokopali do želenih informacij pomensko

opisane baze iz več tabel. Stavek SQL bo precej kompleksen, če predpostavimo, da imamo

namesto treh tabel sedaj deset. Do končnega stavka SQL bomo nadalje prišli po korakih.

Najprej bomo vse razdeljene tabele združili v tri tabele z dodanimi meta-podatki stolpcev

(pomenski opis stolpcev), nato pa iz teh treh tabel zgradili končni SQL stavek.

Vse tri razdeljene tabele moramo združiti v nove tri, da vemo, kateri podatki s

pomenskimi opisi spadajo skupaj. Predpostavimo, da se razdeljene tabele zaposlenih od

zgoraj navzdol imenujejo Tabela1, Tabela2, Tabela3 in Tabela4. Primeren SQL stavek se

glasi:

Slika 16: Ustrezen SQL stavek za združitev štirih tabel tabele zaposlenih

Razdeljene tabele podjetij se od zgoraj navzdol imenujejo Tabela1, Tabela2, Tabela3.

Primeren SQL stavek bi bil naslednji:

Slika 17: Ustrezen SQL stavek za združitev treh tabel tabele podjetij

Razdeljene tabele, ki opisuje odnos med zaposlenimi in podjetji se od zgoraj navzdol

imenujejo Tabela1, Tabela2, Tabela3, zato je SQL stavek enak zgornjemu, kar je prikazano

na naslednji sliki:

Slika 18: Primeren SQL stavek za združitev treh tabel zaposlenih in podjetij

Stran 23

Predstavljene imamo vse tri tabele z dodanimi pomenskimi opisi vseh stolpcev. To je

primerno za postavljanje vprašanj, katerih odgovor pridobimo iz samo ene tabele; na

primer »Kje je locirano podjetje Intera d.o.o?«. Vendar lahko uporabnik v končnem

sistemu postavi vprašanje »Katere zaposlene zaposluje Intera d.o.o?«. Ljudje takoj vedo,

da beseda »zaposluje« v zadnjem vprašanju pomensko opisuje relacijo med zaposlenimi in

podjetji. In če bi sistem želel odgovoriti na to vprašanje, bi morali združiti vse tri

pridobljene tabele, ki jih dobimo iz SQL stavkov iz slik 14, 15 in 16. Torej nekako bo še

potrebno s pomočjo trojčkov opisati relacijo med zaposlenimi in podjetji. Zgradili bi

spodaj prikazano tabelo.

Slika 19: Tabela za opis relacije med podjetjem in zaposlenimi

Treba je ugotoviti, kateri ključi so primarni in kateri tuji, da bomo lahko povezali vse

tri tabele.

Stran 24

5 IZGRADNJA PREDLOG ZA VPRAŠANJA NA ODGOVORE, KATERIH VPRAŠANJA SE NANAŠAJO NA ISTI ODGOVOR

V tem poglavju bomo podali algoritme, ki bodo na podlagi vprašanj ki se nanašajo na isti odgovor zgradili t.i. predlogo. Iz teh predlog bo sistem še enostavneje odgovarjal na vprašanja. Imamo zapisana npr. vprašanja:

• Kje dela Milan Ojsteršek? • Kje je zaposlen Milan Ojsteršek? • Za koga dela Milan Ojsteršek?

Ta vprašanja se navezujejo na stolpec Oddelek v tabeli Zaposleni. Želeli bi, da se

izločijo vse različne vprašalnice ter sinonimi. Za zgornja tri vprašanja bi morali pridobiti naslednjo predlogo vprašanja: (Kje, Za koga) (dela, je zaposlen) [Oseba_Ime] [Oseba_Priimek]?

Predloga za odgovor bi bila predstavljena tako: [Oseba_Ime] [Oseba_Priimek] (dela, je zaposlen) na [Oseba_Oddelek].

Sinonime (dela, je zaposlen) imamo zapisane v naši aplikaciji kot dejstva stolpcev.

Kako so pravilno zapisana dejstva je opisano v [6.2.6]. Za vse sinonime imamo zapisano tudi ime tabele ter ime stolpca na katere se navezujejo. Algoritem za ugotavljanje entitet (katerim stolpcem pripada kateri podatek) je že znan. Napisati bi morali podobne algoritme za pridobivanje vprašalnic sinonimov pri predlogi vprašanja ter celotno predlogo odgovora.

Najprej si poglejmo algoritem za pridobivanje vprašalnic ter sinonimov za predlogo

vprašanja. Vprašalnice so ločeno zapisane v naši aplikaciji tako kot dejstva. Potrebovali bi še algoritem, ki iz zapisanih dejstev izlušči sinonime. Pravilno zapisano dejstvo za stolpec Oddelek tabele Zaposleni je na primer: »[Oseba] je zaposlen [Oseba_Oddelek]«. Sinonim se nahaja v delu dejstva kjer besede niso obdane med oglatimi oklepaji. Preprost algoritem bi bil naslednji:

Stran 25

Algoritem 1: Iskanje sinonima v dejstvu

VHOD: dejstvo

IZHOD: izluščen sinonim dejstva

Odstrani del dejstva vse do prvega oglatega zaklepaja

Izvzemi besedilo do prvega oglatega oklepaja

Dejstvo po prvem koraku se bi spremenilo v »je zaposlen [Oseba_Oddelek]«, ko bomo

prešli čez drugi korak bomo dobili sinonim »je zaposlen«. Algoritem za pridobivanje vprašalnic in sinonimov je zelo podoben že obstoječemu algoritmu za ugotavljanje entitet. Algoritem 2: Iskanje neenakih vprašalnic in sinonimov v seznamu vprašanj določenega

stolpca

VHOD: seznam vprašanj določenega stolpca

IZHOD: seznam neenakih vprašalnic, seznam neenakih sinonimov

vstavi=neresnično; //kdaj vstavljam vprašalnico ter sinonim v seznama seznam vprašalnic=prazen seznam; //seznam trenutno vstavljenih vprašalnic vprašalnica= »«; //pridobljena vprašalnica iz tabele seznam sinonimov=prazen seznam; //seznam trenutno vstavljenih sinonimov sinonim= »«; //najden sinonim iz zapisanega dejstva v bazi vprašanje= »«; //trenutno vprašanje v obdelavi Pojdi čez vsa vprašanja {

vprašanje=trenutno pridobljeno vprašanje; //pridobivanje seznama vprašalnic

pregleduj tabelo vprašanj

{

vprašalnica=pridobljena vprašalnica iz tabele;

če (vprašalnica obstaja v trenutno obdelanem vprašanju)

{

Stran 26

vstavi=resnično;

//če te vprašalnice še ni v seznamu

Pojdi čez seznam trenutno vstavljenih vprašalnic

{

Če (vprašalnica ujema z vstavljeno)

{

vstavi=neresnično;

zaključi pregledovanje;

}

}

če (vstavi)

{seznam vprašalnic.dodaj(vprašalnica);}

}

}

//pridobivanje seznama sinonimov

pregleduj tabelo dejstev

{

//pridobivanje sinonima iz dejstev

Podniz1=Odstrani del dejstva do prvega oglatega zaklepaja;

sinonim=Podniz1.Izvzemi besedilo do prvega oglatega oklepaja;

če (sinonim obstaja v trenutno obdelanem vprašanju)

{

vstavi=resnično;

// če tega sinonima še ni v seznamu

Pojdi čez seznam trenutno vstavljenih sinonimov

{

Če (sinonim ujema z vstavljenim)

{

vstavi=neresnično;

zaključi pregledovanje;

}

}

če (vstavi)

{seznam sinonimov.dodaj(sinonim);}

}

}

}

Pri tem algoritmu je bistvo le, da se iz nabora vprašanj zgradita seznama

neponavljajočih vprašanj in sinonimov. Poglejmo si, kako bi deloval algoritem na primeru zgoraj zapisanih treh vprašanj.

Stran 27

Oba seznama sta na začetku prazna. Naletimo na prvo vprašanje »Kje dela Milan Ojsteršek?«. Prehajamo čez tabelo vprašanj, da preverimo, če se kakšna vprašalnica ujema z vprašalnico v vprašanju. Če se ujema preverimo, če že obstaja v seznamu. Ker še ne obstaja, jo dodamo v seznam. Podoben postopek naredimo tudi za iskanje sinonimov. Ko pri drugem vprašanju spet naletimo na vprašalnico »Kje« je ne dodamo, saj je že v seznamu.

Pri končanem postopku dobimo vprašalnice »Kje« in »Za koga« ter sinonime »dela« in

»je zaposlen«. Po že rešenem postopku ugotovimo, da je »Milan« ime ter »Ojsteršek« priimek zaposlenega. Prišli smo do želene predloge vprašanja. Vprašalnice in sinonime zapišemo med oklepaja ter tako dobimo predlogo vprašanja:

(Kje, Za koga) (dela, je zaposlen) [Zaposleni_Ime] [Zaposleni_Priimek]

Sledi še algoritem za izgradnjo predloge odgovora. Prvo pravilo je, da so entitete

nazadnje zapisane v vprašanju v odgovoru pa najprej. »[Zaposleni_Ime] [Zaposleni_Priimek]« bomo gotovo postavili na prvo mesto, sinonimi se enostavno prepišejo. Ugotoviti moramo samo še na kateri stolpec v kateri tabeli se bo nanašal odgovor. To pa že tako imamo zapisano v tabeli dejstev v naši aplikaciji.

Sledi enostaven algoritem za pridobivanje imena stolpca ter ime tabele na katera se

nanaša sinonim. Ker vemo, da so vsi sinonimi vezani na isti stolpec tabele saj so vprašanja zapisana za isti stolpec tabele, lahko pridobimo ime tabele in ime stolpca za prvi sinonim v seznamu.

Algoritem 3: Pridobivanje imena stolpca in imena tabele na katere se nanaša sinonim

VHOD: prvi sinonim v seznamu sinonimov, ki jih dobimo iz algoritma 2

IZHOD: ime tabele in ime stolpca prvega sinonima

sinonim=prvi_sinonim iz seznama neenakih sinonimov;

Prehajaj čez tabelo dejstev {

Če (najdemo sinonim v trenutnem dejstvu)

{

//zapomnimo si ime tabele in ime stolpca

ime tabele=pridobljeno ime tabele iz tabele dejstev;

ime stolpca= pridobljen ime stolpca iz tabele dejstev;

zaključimo iskanje;

}

}

Ugotovili bi, da se prvi sinonim »dela« nanaša na tabelo »Zaposleni« in stolpec

»Oddelek«.Iz zgoraj opisanih rešitev bi pridobili naslednjo predlogo za odgovor:

Stran 28

[Zaposleni_Ime] [Zaposleni_Priimek] (dela, je zaposlen) [Zaposleni_Oddelek]

Odgovor še ni čisto slovnično napisan. Manjka beseda »na« za sinonimi. Potrebovali bi še en slovar v katerega bi zraven sinonimov še določili besede ali besedne zveze, ki naj se pripišejo k odgovoru. Tak primer slovarja je prikazan na spodnji sliki:

Slika 20: Slovar za dodane besede k odgovoru pred sinonimi

S pregledovanjem tega slovarja ugotovimo, da moramo dodati besedo »na« za zapisanima sinonimoma v odgovoru. Predloga za odgovor bo sedaj lepše slovnično oblikovana:

[Zaposleni_Ime] [Zaposleni_Priimek] (dela, je zaposlen) na [Zaposleni_Oddelek]

6 SISTEM ZA TVORJENJE IN POMENSKI OPIS PODATKOVNIH BAZ

V Laboratoriju za heterogene računalniške sisteme že kar nekaj časa razvijajo

ESvetovalko, ki odgovarja na vprašanja, zastavljena v slovenskem jeziku. Kot osnovo

uporablja podatkovno bazo vprašanj in odgovorov, preglednice (Excel-ove tabele), podatke

iz podatkovnih baz in spletne storitve.

Če želimo pridobiti odgovore na zastavljena vprašanja, je treba oblikovati predloge v

obliki XML. Glavni problem MS Excel-ovih preglednic in dokumentov XML pri uvozu

podatkov je, da so podatki lahko vneseni nepravilno (na primer, kjer je zahtevana številka,

je ta zapisana s črkami). Naredili smo spletni uporabniški vmesnik z namenom, da sami

naredimo tabelo v bazi. Aplikacija ponuja možnost, da tabeli določimo seznam stolpcev.

Za vsak stolpec določimo vprašanja ter dejstva kot pomoč pri nadaljnjem delu. K vsakemu

stolpcu lahko dodamo regularni izraz, ki omogoča preverjanje pravilnosti oblike podatkov

Stran 29

pred vnosom v bazo. Vsaka dodana tabela ima seznam vprašanj in dejstev, zapisanih v

slovenskem jeziku. Tako je relacijska baza opisana pomensko. Zraven izdelave tabel

ponuja spletni vmesnik dodajanje, urejanje in brisanje podatkov, urejanje strukture tabele

ter brisanje celotne tabele. Prav s pomočjo zapisanih vprašanj in dejstev bi lažje pri

nadaljnjem razvoju ESvetovalke izboljšali sistem odgovarjanja na vprašanja.

Za delo z aplikacijo se je potrebno prijaviti v sistem. Aplikacija je prirejena za navadne

uporabnike in za skrbnika. Navadni uporabniki lahko izvajajo vse aktivnosti razen urejanja

strukture tabele. Slednje opravilo je namenjeno samo skrbnikom. Pri vnašanju dejstev in

vprašanj morata biti oba tipa prijavljenih uporabnikov strokovnjaka. Dejstva in vprašanja

je namreč potrebno pravilno vpisovati ročno; kar je podrobneje opisano v podpoglavjih

[6.2.5] in [6.2.6].

Aplikacija je izdelana v razvojnem okolju Microsoft Visual Studio (programsko

ogrodje ASP.NET 2.0) v programskem jeziku C#.

6.1 Regularni izrazi

Regularni izrazi nam pomagajo pri iskanju ujemajočih vzorcev v nizu. Izraz se napiše v

formalnem jeziku, katerega interpretira interpreter za regularne izraze. S temi izrazi lahko

preverimo, če je nek niz zapisan v pravilni obliki. Regularni izraz je neke vrste vnaprej

napovedana oblika niza. Lahko zahtevamo na primer, da je na začetku niza številka, ki ji

sledi presledek in nato petkratna pojavitev črk od A do C. Za napoved oblike niza se

morajo zapisati ukazi, katerih seznam najdemo v [10].

Uporabniki lahko marsikaj zapišejo v vnosna polja. Ti vnosi so lahko zelo moteči pri

izpisovanju, iskanju iz baze ali pa pri morebitnih poznejših izračunavanjih za prikaz

statistike. S preverjanjem vnosov pri dodajanju ali urejanju se tej težavi izognemo. Podatki

v stolpcih so tako vedno zapisani v pravilni obliki.

V stolpcu je na primer zahtevan vnos številke za oceno izpita predmeta študenta. Če

lahko uporabnik vpiše karkoli kot oceno, sploh ne bi mogli pozneje izračunati povprečne

Stran 30

ocene študentov, ker so v stolpcu napačno zapisani podatki. To bi lahko delno rešili z

določitvijo tipa k stolpcu. Tudi če je določen tip stolpca kot številka, lahko vpišemo

številko 214, kar je seveda napačna številka za oceno. S preverjanjem vnosa z regularnim

izrazom dovolimo opisati uporabniku oceno izpita samo s številko od 6 do 10. Vse druge

vnose zavrnemo in vztrajamo pri tem, da uporabnik vpiše pravilno obliko ocene.

Za to tehniko smo se odločili predvsem zaradi preverjanja vnesenih podatkov v obrazcu

pred vnosom podatkov v podatkovno zbirko. Vsakemu stolpcu tabele se lahko določi

zahtevana oblika vsebine celice s pomočjo regularnega izraza. Pri dodajanju ali urejanju

podatkov se vedno preverja, če se vsebina ujema z dodeljenim regularnim izrazom.

6.2 Funkcionalnosti spletnega vmesnika

6.2.1 Izdelava tabele

Prek vmesnika za izdelavo tabele je uporabniku omogočeno, da po svojih željah izdela

novo tabelo. V prvem vnosnem polju je potrebno navesti ime tabele, ki pa ne sme

vsebovati presledkov ali tabulatorjev. Ob prikazu tega vmesnika se že dodajo vnosna polja

za vnos podatkov o prvem stolpcu. Za vsak stolpec je potrebno podati ime tabele in, po

možnosti, regularni izraz, ki bo služil preverjanju navedenih podatkov za ta stolpec.

Dodajanje vnosnih polj za naslednje stolpce je realizirano s klikom na gumb, ki je

postavljen pod polji za vnos podatkov o stolpcih. Spletni vmesnik za izdelavo nove tabele

je prikazan na sliki 21:

Stran 31

Slika 21: Vmesnik za izdelavo nove tabele

Na voljo je tudi brisanje kateregakoli dodanega stolpca ob predpostavki, da mora biti

vpisan vsaj en stolpec v tabeli. Ob brisanju vnosa za nek stolpec se vsa vsebina naslednjih

polj premakne za eno polje višje.

Pred samo izdelavo tabele se preveri s pomočjo regularnih izrazov ime tabele kot tudi

imena stolpcev, če so zapisani z velikimi ali malimi črkami in če imajo vmes prazen

prostor (presledek, tabulator…).

6.2.2 Urejanje strukture tabele

K urejanju strukture spada dodajanje, spreminjanje imena stolpca, brisanja stolpca in

morebitno spreminjanje regularnega izraza določenega stolpca izbrane tabele. Vse prej

naštete aktivnosti lahko izvaja navadni uporabnik; strukturo pa lahko ureja samo skrbnik.

Med časom, ko skrbnik ureja strukturo, drugi uporabniki (prijavljeni kot „navadni”) ne

morejo urejati vsebine iste tabele.

Pri izpisu vseh stolpcev tabele sta (tako kot pri izpisu vsebine tabele) dodana gumba za

urejanje imena stolpca in brisanje stolpca.

Kadar urejamo ime stolpca, lahko izberemo v spustnem seznamu vnaprej določen

regularni izraz. Ta izraz se zapiše v vnosno polje, ki ga lahko tudi popravimo. Tako lahko

Stran 32

pri urejanju strukture določamo regularne izraze k stolpcem. Vmesnik za urejanje strukture

tabele je prikazan spodaj:

Slika 22: Vmesnik za urejanje strukture tabele

6.2.3 Briši tabelo

Ta dejavnost enostavno izbriše tabelo iz podatkovne baze. Še prej nas opozori, če

želimo res izvesti to dejanje. Pri tem velja omeniti, da vsi prirejeni regularni izrazi,

vprašanja in dejstva stolpcev izbrisane tabele ostanejo zavedeni v bazi. Prav tako ostanejo

vprašanja in dejstva za celotno izbrisano tabelo. To je priročno, če bomo pozneje izdelali

tabelo z enakimi imeni stolpcev, kot so bili pri brisani tabeli. Tako imamo takoj morebiti

prirejena vprašanja, dejstva, regularne izraze za stolpce ter morebitna vprašanja in dejstva

celotne tabele.

6.2.4 Urejanje podatkov

Pod dejavnostjo »Urejanje podatkov« je mogoče urejati podatke izbrane tabele. Pri

izpisu podatkov sta na levi strani dodana gumba, ki sta namenjena za urejanje in brisanje

podatkov. Nekateri podatki se lahko izpišejo z rdečo barvo; kar pomeni, da niso pravilno

zapisani glede na prirejene regularne izraze. Pod izpisano vsebino tabele je dodan gumb, ki

Stran 33

je namenjen za dodajanje podatkov. K vsakemu stolpcu tabele je mogoče zapisovati

sopomenke podatkov (na primer za stolpec Ime lahko zapišemo sopomenke »Marko;

Marč; Markec«). Sinonimi se med seboj ločijo s podpičjem. Če je za nek stolpec določen

regularni izraz, se preverijo vsi sinonimi, če so zapisani v skladu z regularnim izrazom.

Kadar urejamo podatke, se prikažejo vnosna polja vseh stolpcev, ki so že napolnjena s

starimi vrednostmi. Urejanje vrstice zapisa lahko kadarkoli prekličemo. Pri urejanju

podatkov predpostavljamo, da so vsi podatkovni tipi stolpcev tipa »nvarchar«, torej nizi s

spremenljivo dolžino. Vmesnik, ki omogoča urejanje podatkov je prikazan na spodnji sliki:

Slika 23: Vmesnik za urejanje podatkov

Ker lahko tabela hitro pridobi 100 ali več zapisov, smo se odločili, da bomo dodali

dejavnost »Prikazovanje strani podatkov«. To pomeni, da se naenkrat prikaže samo

omejeno število vrstic podatkov. Druge strani lahko prikažemo s klikanjem na povezave do

preostalih strani podatkov. Pri naši aplikaciji se naenkrat prikaže 30 vrstic podatkov in

naenkrat aplikacija prikaže do največ 10 strani. Dodani sta povezavi do premikanja za eno

stran naprej in eno stran nazaj ter povezavi do prve in zadnje strani. Aplikacija tudi

prilagaja povezave do bližnjih strani, pač glede na številko trenutno prikazane strani.

6.2.5 Urejanje vprašanj

Vmesnik za urejanje vprašanj nudi možnost urejanja vprašanj za stolpce kot tudi za

celotno tabelo. Spletni vmesnik je razdeljen na dva dela. Zgoraj se v spustnem seznamu

izbere ime tabele. Spodaj se takoj naložijo vsa vprašanja, ki so vezana na izbrano tabelo.

Stran 34

Po izbiri stolpca v drugem spustnem seznamu se naložijo vsa vprašanja, ki so vezana na

izbran stolpec. Pri tem se loči vprašalnica od preostalega vprašanja. Vprašalnica je lahko

prva beseda ali pa prvi dve besedi. Pri vprašanju »Kako se imenuje Adam?« je vprašalnica

»Kako«. Vprašalnica in preostali del vprašanja se ločeno zavedeta v podatkovno bazo.

Odločili smo se, da bomo vprašanja zapisovali po pravilu in da bo za to potreben

strokovnjak. Obvezno se mora zapisati vprašalnica ter preostali del vprašanja. Na koncu je

lahko postavljen vprašaj ali pa tudi ne. Na koncu vprašanja je namesto dejanskega podatka

zapisan v oglatih oklepajih ime tabele ter ime stolpca, ki sta določena s podčrtajem.

Vmesnik za urejanje vprašanj je prikazan na sliki 24.

Pravilno zapisana vprašanja so naslednja:

• Katero davčno številko ima [Oseba_Ime] [Oseba_Priimek]?

• Kje je zaposlen [Oseba_Ime]?

• Kakšen spletni naslov ima [Fakulteta_Ime]?

Nepravilno zapisana vprašanja so lahko naslednja:

• Kdo je ?; manjka ključni podatek, na katerega se nanaša vprašanje.

• Kje?; zapisana je samo vprašalnica. Takih vprašanj ne dovolimo zapisovati v bazo.

• Kje je zaposlen Milan Ojsteršek?; namesto imen stolpcev so zapisani dejanski

podatki. Pri tem vprašanju ne vemo, da je Milan ime in Ojsteršek priimek osebe.

Zapisovanje imen stolpcev v oglatih oklepajih bo pozneje zelo pripomoglo pri

odgovarjanju na vprašanja. Če bi uporabnik vnesel vprašanje »Kje je zaposlen Milan

Ojsteršek?«, bi našli podobno vprašanje, ki je vezano na oddelek zaposlene osebe »Kje je

zaposlen [Oseba_Ime] [Oseba_Priimek]?«. Tako bi izvedeli, da je Milan ime in Ojsteršek

priimek osebe. Ostane nam še del vprašanja »je zaposlen«. Ta niz se nanaša na sinonime

stolpca, ki so zapisani v dejstvih stolpcev. Izvedeli bi, da moramo poiskati oddelek osebe,

katera ima to lastnost, da se imenuje »Milan« ter da se piše »Ojsteršek«.

Stran 35

Slika 24: Vmesnik za urejanje vprašanj

6.2.6 Urejanje dejstev

Vmesnik za urejanje dejstev nudi možnost urejanja dejstev za stolpce kot za celotno

tabelo. Spletni vmesnik je razdeljen na dva dela. Zgoraj se v spustnem seznamu izbere ime

tabele. Spodaj se takoj naložijo vsa dejstva, ki so vezana na izbrano tabelo. Po izbiri

stolpca v drugem spustnem seznamu se naložijo vsa dejstva, ki so vezana na izbran stolpec.

Tako kot vprašanja bi bilo potrebno zapisovati po nekem pravilu tudi dejstva. Tudi za

zapisovanje dejstev je potreben strokovnjak. Ideja tega je, da bi s slovenskim jezikom

zapisali dejstva stolpcev ter relacije med tabelami. Za stolpec Priimek tabele Oseba bi

lahko zapisali dejstva, kot so: »[Oseba] se piše [Oseba_Priimek]«, »[Oseba] ima priimek

[Oseba_Priimek]«. Spletni vmesnik je prikazan na sliki 25.

Pravilno zapisana dejstva k stolpcem:

• [Oseba] se piše [Oseba_Priimek]

Stran 36

• [Oseba] je zaposlena [Oseba_Oddelek], [Oseba] dela na [Oseba_Oddelek]

• [Vozilo] ima registrsko številko [Vozilo_RegSt], [Vozilo] ima reg. št.

[Vozilo_RegSt]

Nepravilno zapisana dejstva k stolpcem:

• Oseba je ime Oseba_Ime; ne vemo kateri del stavka predstavlja sinonim in ne

vemo kateri del pripada imenu tabele ter imenu stolpca.

• [Oseba]; ni zapisan pomen stolpca.

• [Oseba] se piše; ne vemo na kateri stolpec se nanaša sinonim..

Lahko zapisujemo več dejstev k stolpcem ali k celotni tabeli. Posledično zapisujemo

več sinonimov stolpcev. Uporabnik lahko za ime osebe povpraša tako: »Kako se imenuje

Adam?« ali pa »Kako je ime Adamu?«. Zapisani sta dve različni vprašanji vendar

sprašujeta obe po imenu osebe, ki se piše »Adam«.

Slika 25: Vmesnik za urejanje dejstev

Stran 37

6.2.7 Urejanje vnaprej definiranih regularnih izrazov

Na vmesniku za urejanje vnaprej definiranih regularnih izrazov je mogoče dodajati,

urejati ali brisati vnaprej definirane regularne izraze. Uporabnik, ki te izraze ureja, mora

znati zapisovati izraze, ker poteka vpisovanje ročno. Med seboj se ločijo regularni izrazi z

imenom, ki bodo najverjetneje kar imena stolpcev. Pri izpisu parov ime - prirejen regularni

izraz sta na levi strani dodana gumba za urejanje in brisanje izrazov. Na koncu je dodan

tudi gumb za dodajanje novega regularnega izraza s pripadajočim imenom. Spodnja slika

prikazuje vmesnik za urejanje vnaprej definiranih regularnih izrazov:

Slika 26: Vmesnik za urejanje vnaprej definiranih regularnih izrazov

Za to dejavnost smo se odločili, da bi bilo pozneje (ko imamo enkrat zapisane vnaprej

definirane regularne izraze z imeni) lahko enostavneje določevali izraze za preverjanje

vsebine stolpcev tabele. Regularni izraz za določen stolpec tabele (pri izdelavi tabele in

urejanju strukture) se lahko določi kar tako, da se izbere v spustnem seznamu ime vnaprej

definiranega regularnega izraza. Ko izberemo izraz iz spustnega seznama, lahko ta izraz

tudi spremenimo; v tem primeru se k stolpcu določi spremenjeni regularni izraz, v seznamu

vnaprej definiranih regularnih izrazov pa ta izraz ostane nespremenjen.

Stran 38

6.2.8 Dodajanje preostalih tabel

V podatkovni bazi so tudi tabele, ki jih uporablja že obstoječa aplikacija ESvetovalka.

Porodila se je ideja, da bi zapisali vprašanja in dejstva preostalim tabelam. Zato sem

naredil preprost spletni vmesnik za dodajanje ostalih tabel v seznam tabel, tj. spustni

seznami v naši aplikaciji. Seveda lahko posledično urejamo strukturo in podatke dodane

tabele. Kadar želimo izvajati slednji dejavnosti, moramo zagotoviti, da je prirejen tip

podatka v vseh stolpcih niz s spremenljivo dolžino. Mogoče izboljšave te omejitve bomo

predstavili v nadaljnjem delu.

6.3 Končni videz aplikacije

Končni videz odraža pomembno vlogo pri uporabi aplikacije. Sloge smo prilagodili že

izdelani aplikaciji, ker želimo obstoječo aplikacijo razširiti z našo. Za prikaz značk HTML,

obdanih z barvami in nekaterimi drugimi atributi, sem uporabil jezik CSS. To je posebni

spletni jezik, s katerim lahko vsaki HTML znački določimo razne sloge, kot so barva

besedila, ozadja, odmiki od robov… Lahko pa določimo tudi razredne sloge, katerim

določimo ime ter pripadajoče lastnosti. HTML znački lahko vključimo ta razredni slog.

Posledično se ta značka prikaže v taki obliki, kot je podano v razrednem slogu. Podobne

sloge smo uporabili tudi pri izpisih naslovov ter prikazanih povezavah do drugih

aktivnosti, kot so urejanje podatkov, strukture, vnos vprašanj, dejstev, izdelavo tabele...

Pri izpisih podatkov ter stolpcev izbrane tabele smo se odločili, da bo vsaka liha vrstica

prikazana z belo barvo ozadja, soda pa s svetlo modro barvo ozadja. Tako uporabnik

zagotovo vidi, kateri vrstici pripada nek podatek.

Na sliki 27 sta prikazana vmesnika obeh združenih aplikacij:

Stran 39

Slika 27: Končni videz združenih aplikacij

Stran 40

7 ZAKLJUČEK

Danes se zavedamo pomembnosti sistema za odgovarjanje na vprašanja, ki so

postavljena v slovenskem jeziku. Mnogo iskalcev informacij po svetovnem spletu bo na ta

način zelo zadovoljnih ob pogoju, da bo sistem odgovoril na njegovo vprašanje čim bolj

točno in pravilno. S tem bi v prihodnje pridobili veliko zainteresiranih uporabnikov.

Zagotovo si želimo, da bi ta sistem postal priljubljen in uporaben.

Diplomsko delo je razdeljeno na dva dela. Prvi je namenjen predstavitvi teoretičnega

ozadja področij, ki se nanašajo na pomenski splet in pomenski opis podatkovnih baz.

Predstavljene so tudi nekatere metode na področju obdelave naravnega jezika, kjer se po

postopkih razčlenjuje besedilo, ki bo razumljivo računalniku. Drugi del je namenjen opisu

gradnje sistema za pomensko preslikavo relacijskih podatkovnih baz. Opisane so

funkcionalnosti in na kratko predstavljene pomanjkljivosti vnašanja vprašanj in dejstev.

Pridobil sem osnove potrebnega teoretičnega znanja, katerega bom morebiti potreboval

pri opravljanju službenih obveznosti ali pa kje drugje. Morda bom dobil priložnost, da bi

sodeloval pri končni gradnji sistema. Takrat bom to znanje še krepko potreboval.

Izdelava sistema za pomensko preslikavo relacijskih podatkovnih baz je bilo zame

dokaj enostavno opravilo. V času razvoja sem vedno imel v mislih učinkovito delovanje in

hitro odzivnost na uporabnikove akcije. Hkrati sta mi dajala napotke za pravilno delovanje

tako mentor kot njegova sodelavka. Sistem je zgrajen tako, da bo nadalje možno

odgovarjati na vprašanja iz različnih področij, kot so na primer avtomobilizem, študenti,

profesorji, zaposleni v podjetjih...

Da bi se prepričali, ali aplikacija res ustreza zahtevam, jo je bilo potrebno preizkusiti. V

praksi so lahko tabele napolnjene s sto ali več vrsticami zapisov. Lahko se zapiše tudi večje

število vprašanj in dejstev k stolpcem kakor tudi k celotni tabeli. Urejanje podatkov deluje

Stran 41

tudi ob večjem število zapisov ob predpostavki, da lastnosti dveh vrstic zapisa nista

zapisani popolnoma enako. To pomeni, da morajo biti vsi zapisi med sabo različni po

vsebini stolpcev. Pri preverjanju vnosov delajo težavo zapisani šumniki v besedilu.

Namreč nisem še uspel najti primernega zapisa regularnega izraza, ki bi omogočil tudi

zapis šumnikov. Zato se je potrebno izogibati zapisovanju šumnikov k vsebini stolpcev,

katerim je pripet regularni izraz. Pri urejanju večje količine podatkov je zelo prav prišla

hitra odzivnost sistema brez ponovnega osveževanja celotne spletne strani. Posledično se

veča tudi velikost podatkovne baze. Omejeni smo na to, koliko prostora imamo na disku.

Stran 42

8 NADALJNJE DELO

Da bo sistem znal odgovarjati na vprašanja, zastavljena z našo aplikacijo, bo potrebno

še kar nekaj postoriti. Že s samo gradnjo sistema za pomensko preslikavo relacijskih

podatkovnih baz smo imeli kar precej dela ob predpostavki, da smo po dogovoru z

mentorjem morali spreminjati implementacijo aplikacije.

Potrebno bi bilo razmisliti o uporabniku prijaznejšem podajanju vprašanj in dejstev k

stolpcem ter k celotni tabeli. Za vpisovanje je potreben strokovnjak, ki mora poznati

pravila zapisovanja; ki so opisana v [6.2.5] in [6.2.6]. Kadar bi uporabnik podal nepopolna

ali čisto napačna vprašanja ali dejstva, bi mu na podlagi že napisanega ponudil predloge

dokončno zapisanega vprašanja ali dejstva. Tako bi poskušali vnašanje čim bolj

avtomatizirati. Zagotovljeno bi bilo tudi, da bi posredovali vse informacije, ki jih potrebuje

vprašanje ali dejstvo.

K temu sistemu bi lahko dodali še kar nekaj funkcionalnosti, da bi bil uporabniku še

prijaznejši:

• Dodali bi lahko več vnaprej definiranih regularnih izrazov za neko lastnost. Za zapis

e-naslova lahko zapišemo samo naslov prejemnika ali pa želimo ta naslov obdati med

značke HTML, da se bo ta naslov prikazal kot povezava. Pri določevanju regularnega

izraza stolpcu tabele bi lahko aplikacija sama ponudila seznam regularnih izrazov, ki

so najprimernejši za ta stolpec.

• V sedaj razviti aplikaciji smo predpostavljali, da so vsi podatkovni tipi stolpcev tabel,

ustvarjeni z našo aplikacijo, tipa spremenljive dolžine niza. Če je pri dodajanju

preostalih tabel kakšen stolpec drugačnega tipa, urejanje podatkov ne bo delovalo.

Sistem bi skoraj mogel biti odporen tudi na to težavo. Že pri izdelavi tabele, kakor

Stran 43

pozneje pri urejanju strukture tabele, bi morali določiti podatkovni tip stolpca. Tako

bi še lažje določevali regularne izraze, ker bi bili lahko ločeni tudi po podatkovnem

tipu podatka. Večja prednost bi bila tudi pri določevanju vprašanj. Ob podatkovnem

tipu, ki predstavlja na primer številko, bi pri določitvi vprašanja lahko sklepali, da

bomo povpraševali po neki količini. Sistem bi lahko pri začetku vpisovanja vprašanja

takoj nudil seznam vprašalnic, ki se navezujejo na številko; na primer »Koliko«.

Vprašalnica, na katere se navezuje datum bi lahko bila »Kdaj«, »Kje«. Dodajali bi

lahko ostale tabele, pri tem nam bi bila odveč skrb glede podatkovnih tipov stolpcev.

Razvoj bi lahko prišel tako daleč, da bi pri vpisovanju vprašanj ali dejstev samo

izbirali predloge, ki bi nam jih posredovala aplikacija.

Kot sem razložil v uvodnem poglavju smo dali poudarek pomenu podatkov, tako da

smo pripravili aplikacijo za zapisovanje dejstev in vprašanj k stolpcem in k celotni tabeli.

Prav to bo v veliko pomoč pri odgovarjanju po potrebnih informacijah, po katerih

uporabnik sprašuje, za katerega bo aplikacija poiskala odgovor in imena stolpcev, na katera

je vezano vprašanje. Celoten odgovor bi se izpisal v slovenskem jeziku. Potrebno bi bilo

razmisliti, kateri najprimernejši in najhitrejši pristop bi pri tem uporabili. Nadaljnje delo bo

zahtevalo tudi znanje na področju procesiranja naravnega jezika.

Zelo priročno bi bilo, da bi še aplikacija ponudila možnost uvoza tabel iz Excel-a in

XML-ja. Ker pa se lahko zgodi, da je marsikateri podatek lahko napačno vpisan, bi bilo

potrebno vse podatke preveriti z regularnimi izrazi. Ob brisanju tabele ali stolpca ostanejo

regularni izrazi prirejeni stolpcem tabele. Sistem bi pri izpisu uvožene tabele preveril

vsebino tistih stolpcev, katerim so prirejeni regularni izrazi. Morali bi prirediti regularne

izraze še vsem ostalim stolpcem, če bi želeli preveriti pravilnost zapisa vsebine celotne

tabele. Na podlagi imen stolpcev uvožene tabele bi lahko vsem stolpcem, ki še nimajo

prirejenega regularnega izraza ta izraz že določili pri uvozu.

Stran 44

9 LITERATURA

[1] P. Hribar, Uvod v HTML, 2. izd., Flamingo, Nova Gorica, 1999

[2] P. Hribar, Spoznajmo JavaScript, Flamingo, Nova Gorica, 1998

[3] Pomenki splet; http://en.wikipedia.org/wiki/Semantic_web , obiskano 10. 9. 2009

[4] Ontologije; http://en.wikipedia.org/wiki/Ontology_(computer_science), obiskano 12.9.2009

[5] Procesiranje naravnega jezika: http://www.cnlp.org/publications/03NLP.LIS.Encyclopedia.pdf, obiskano 4.9.2009

[6] Pomenski opis podatkovnih baz; http://www.riso.ee/en/files/EstonianGov_Semantic_Description-Instructions_v1.1c.pdf, obiskano 25.9.2009

[7] Preslikava relacijskega modela v semantični model; http://hcotuk.etu.edu.tr/semanticweb/Retaining%20Semantics%20in%20Relational%20Databases%20by%20Mapping%20them%20to%20RDF.pdf, obiskano 23.9.2009

[8] Preslikava semantičnega podatkovnega modela v relacijski; http://www.w3.org/2003/11/01-RDF-SQL-tmp/notes, obiskano 26.9.2009

[9] Ajax.NET Professional; http://en.wikipedia.org/wiki/Ajax.NET_Professional, obiskano 3.6.2009

[10] Ukazi regularnih izrazov: http://www.regular-expressions.info/reference.html, obiskano 12.5.2009