ontoloogiad, referaat
TRANSCRIPT
Tartu Ülikool
Matemaatika-informaatika teaduskond
Arvutiteaduse instituut
Ontoloogiad
Referaat
Koostaja: Rein Raudjärv
Juhendaja: Tiit Roosmaa
Tartu 2006
2
Sisukord
Sisukord...................................................................................................................................... 2
Sissejuhatus ................................................................................................................................ 3
1. Definitsioon ja eesmärk.......................................................................................................... 4
1.1. Mis on ontoloogia?.......................................................................................................... 4
1.2. Miks luua ontoloogia? ..................................................................................................... 5
2. Sõnaraamatud, leksikonid ja ontoloogiad .............................................................................. 8
3. Olemasolevad ontoloogiad ................................................................................................... 10
3.1. Suured ontoloogiad........................................................................................................ 10
3.2. Ontoloogiakogud ........................................................................................................... 11
4. Ontoloogia loomine.............................................................................................................. 13
4.1. Ontoloogia arendamise sammud ................................................................................... 13
Kokkuvõte ................................................................................................................................ 17
Kasutatud kirjandus.................................................................................................................. 18
3
Sissejuhatus
Arvutiteaduses nimetatakse „ontoloogiaks” andmemudelit, mis esindab mingit valdkonda
ning annab selle objektidele ja objektide vahelistele seostele tähenduse.
Ontoloogiaid kasutatakse arvutiteaduses, tehisintellektis, semantilises veebis ning tarkvara
arenduses kui maailma või selle osa kohta käiva teadmuse esitamise vormi.
Käesolev referaat on Tartu Ülikoolis aine „Keeletehnoloogia” raames valminud töö, mis
põhineb raamatu „Handbook for Language Engineers” (Ali Farghaly, 2001) 5. peatükil ning
on ühtlasi selle lühendatud ning eesti keelde tõlgitud versioon.
4
1. Definitsioon ja eesmärk
1.1. Mis on ontoloogia?
Mitteformaalselt on ontoloogia mingite reaalse maailma objektide mudel. Me loome seda
mudelit arvuti poolt arusaadaval viisil, et seda saaksid töödelda ja kasutada arvutiprogrammid.
Reaalselt ei ole olemas ontoloogia kohta üheselt kokkulepitud definitsiooni. Kõige enam
kasutatav on T. Gruberi definitsiooni (1993) täiendatud variant:
„Ontoloogia on mõistete hulga ühemõtteline formaalne eeskiri.”
(i.k „An ontology is an explicit formal specification of conceptualization.”)
Vaatame läbi definitsiooni erinevad osad: (1) ühemõtteline eeskiri (i.k explicit specification),
(2) formaalne eeskiri (i.k formal specification), (3) mõistete hulk (i.k conceptualization).
1.1.1. Ühemõtteline eeskiri
Oletame, et meil on kaks programmi (agenti – i.k software agent), kumbki oma ülesande
jaoks. Üks agent „töötab” panga heaks ja käsitleb tema klientide rahaülekandeid internetis.
Teine agent „töötab” krediitkaardiettevõttes ja võtab vastu internetis tehtavaid rahaülekandeid
pankadelt. Need agendid saavad koos töötada ainult juhul, kui nad teevad eeldusi välise
maailma kohta ühesuguselt. Nad teatavad, mis valuutat nad kasutavad, kas ülekande päev on
päev, mil klient ülekande teeb või päev, mil raha jõuab krediitkaardifirma kätte jne. St.
pangaagent teatab üheselt mingil kujul kogu info, mida krediitkaardi firma peab teadma selle
asemel, et seda infot varjata oma koodis ja eeldada, et teine agent selle õigesti ära arvab.
Usaldusväärseks suhtluseks on vajalik, et mõlemad pooled annavad teada, mida nad antud
valdkonna kohta eeldavad.
1.1.2. Formaalne eeskiri
Mingi valdkonda eelduste kirjeldamine loomulikus keeles, nagu eesti keel, võib olla piisav
inimeste jaoks, aga mitte arvutite. Ontoloogia peab olema formaalne eeskiri, et seda suudaksid
tõlgendada ja sellest „aru saada” ka arvutid. Seepärast esitatakse ontoloogia harilikult mingis
5
formaalses keeles, kus on hästi piiritletud süntaktiline struktuur (grammatika) ning
matemaatilise loogika lausetel baseeruv semantika.
Lisaks sellele, et formaalne eeskiri aitab arvutiprogrammidel ontoloogia semantikast aru
saada, hoiab see ära ka kaheti mõistmise, mis esineb loomulikus keeles.
Reaalselt ei ole tänapäeval aga igas ontoloogia keeles hästi defineeritud formaalset semantikat
ning seepärast võib neid valesti tõlgendada nii inimene kui arvuti.
Sellise formaalse semantika piiritlemine on keeruline ja vajab palju rohkem arvutiteatuse ja
matemaatika oskusi kui ontoloogia loomine ise. Õnneks on meil vaja aga vähe ontoloogia
keeli ning palju ontoloogiaid.
1.1.3. Mõiste hulk
Valdkonna mõistete hulk (i.k domain conceptualization) on diskursusest sõltuv mõistete ja
seoste eeskiri. Oletame, et me loome ontoloogiat oma panga ja krediitkaardifirma agentide
jaoks. Selle ontoloogia diskursus on finantstehingud. Seega vajame mõisteid, mida
kasutatakse finantstehingute puhul: kuupäev, kellaaeg, summa, konto, institutsioon, pank,
krediitkaardimakse jne. Need mõisted on üksteisega seotud. Näiteks krediitkaardimakse on
finantstehingu tüüp. Iga finantstehingu tunnused on kuupäev, kelleaeg, summa jne. Iga konto
tunnuseks on institutsioon ja see institutsioon peab olema pank. Kui oleme pannud selle
eeskirja formaalsesse keelde, võime kutsuda seda kõnealuse valdkonna ontoloogiaks.
Formaalsemalt, valdkonna mõistete hulk hõlmab endas diskursuses olevaid mõisteid (klasse –
i.k classes), iga mõiste tunnuseid (välju – i.k properties) ning väljade kitsendusi e. piiranguid
(i.k constraints). Ontoloogia koos hulga klasside isenditega moodustab teadmuse (i.k
knowledge base).
Ontoloogias kasutatavad mõisted sõltuvad ainult antud valdkonnast mitte aga mingi keele
struktuuridest ega ka keelest üldisemalt. See võimaldab ontoloogiaid kasutada üle mitmete
keelte. Ontoloogiaid kasutatakse sageli masintõlkes: tekstiline informatsioon ühes keeles
esitatakse keelest sõltumatus ontoloogias ning seejärel luuakse selle põhjal tekst teises keeles.
1.2. Miks luua ontoloogia?
Kui inimesed üksteisega suhtlevad, siis kasutavad nad üksteisest arusaamiseks mitte ainult
keelelisi teadmisi, vaid ka ühist taustateadmust, maailmateadmust ja kontekstiteadmust.
Analoogiliselt on vaja ka arvutitel üksteisega „suhtlemiseks” jagada taustateadmust.
Ontoloogia pakubki arvutitele arusaadava ja üheselt mõistetava taustateadmuse.
6
Ontoloogia loomise põhjused on järgmised:
• Jagada ühist infostruktuuride tõlgendamist inimeste või tarkvararakenduste seas.
• Võimaldada valdkonna teadmuse taaskasutamist.
• Esitada üheselt eeldused antud valdkonnas.
• Eristada valdkonnateadmust töökorraldusteadmusest.
• Analüüsida valdkonnateadmust.
Ühise infostruktuuride tõlgendamise jagamine inimeste ja tarkvararakenduste seas on üks
ontoloogiate loomise põhieesmärke. (Musem, 1992; Gruber, 1993)
Valdkonnateadmuse taaskasutamise üheks näiteks on aja mõiste. Siia kuuluvad mõisted
ajaintervalli, ajapunkti, suhteliste ajaühikute jms kohta. Kui üks uurimisrühm töötab välja
sellise detailse ontoloogia, siis saavad teised seda kergesti taaskasutada oma valdkonnas.
Eelduste üheselt esitamine antud valdkonnas võimaldab eeldusi kergesti muuta, kui teadmus
antud valdkonna muutub. Maailma kohta käivate eelduste programmi lähtekoodi püsivalt
sissekirjutamine ei tee eelduste leidmist mitte ainult raskeks vaid samuti raskesti
muudetavaks, eriti inimestele, kes programmeerimist ei tunne.
Valdkonnateadmuse eristamine töökorraldusteadmusest on samuti ontoloogiate levinud
rakendus. Me võime ära kirjeldada tööülesande, kus vastavalt eeskirjale komplekteeritakse
tooteid, ning realiseerida programmi, mis teeb seda sõltumata toodetest ja nende
komponentidest. Seejärel võime luua ontoloogia arvutikomponentidest ja nende
parameetritest ning rakendada algoritmi, mis komplekteerib müügiks valmis arvuteid. Sama
algoritmiga võime komplekteerida ka lifte, kui „söödame talle ette” liftikomponentide
ontoloogia. (Rothenfish et al., 1996)
Valdkonnateadmuse analüüsimine on võimalik kui on valmis mõisteid selgitav eeskiri.
Formaalne mõistete analüüs on äärmiselt väärtuslik nii olemasolevate ontoloogiate
taaskasutamisel kui nende laiendamisel. (McGuiness et al., 2000)
Lisaks on ontoloogiate loomisel järgmised eesmärgid loomuliku keele töötluse ja masintõlke
programmide jaoks (Mahesh ja Nirenberg, 1995; Okumura ja Hovy, 1994):
• Piiritleda keelest sõltumatu valdkonna esitus.
• Toetada tekstis oleva info mõistelise esituse analüüsi ja genereerimist.
7
• Võimaldada sisendtekstist järelduste tegemist kasutades teadmust ontoloogias.
Masintõlge on ontoloogiate arengus teadmuse jagamise ja taaskasutuse järel ehk järgmine
suurem liikumapanev jõud. Keelest sõltumatu esitus võimaldab meil kasutada tekstist
tuletatud informatsiooni esitamiseks sama vormi erinevate keelte jaoks. Ontoloogia on nn.
interlingua struktureeritud esitus.
Loomuliku keele töötlusel on abiks ontoloogias kasutatavad semantilised kitsendused.
Formaalse ontoloogia kujul semantilise info esitamine võimaldab kasutada teadmust, et teha
järeldusi sisendtekstist. Ontoloogia pakub sageli infot vaikeväärtuste või sagedaste väärtuste
kohta. See võimaldab täita lünki, kui tekstis vastav info puudub.
Mahesh ja Nirenberg pakuvad mitmeid teisi põhjuseid miks ontoloogiad on olulised
loomuliku keele rakendustes. (Mahesh ja Nirenberg, 1995)
8
2. Sõnaraamatud, leksikonid ja ontoloogiad
Definitsiooni põhjal võib tekkida tahtmine paljusid asju kutsuda „ontoloogiateks”. Näiteks
XML DTD-d, XML skeemid, andmebaasi skeemid, sõnastikud, tesaurus, formaalne
süstemaatika jne. Võime neid elektroonilisi allikaid kujutada teljel, mille ühes otsas on vähem
formaalsed ja üsna konkreetsed esitused ning teises otsas rohkem formaalsed ja üldisemad.
Joonis 1. Elektrooniliste allikate spekter. Vertikaalne joon näitab ligikaudu, kust alates peetakse mitteformaalseid elektroonilisi allikaid ontoloogiateks.
Spektri vähem formaalsemale poolele jäävad sõnastikud, tesaurus, sõnaraamatud. Mööda
skaalat teisele poole liikudes muutuvad esitused rohkem formaalsemaks ja paremini arvutite
poolt tõlgendatavamateks. Samas muutuvad nad ka vähem keelest sõltuvaks. Võime küll ühte
kohta skaalal joonistada sirge ning öelda, et kõik, mis jääb vasakule, ei ole ontoloogia ning
kõik, mis jääb paremale, on ontoloogia, kuid selle piiri asetamine on väga subjektiivne ning
sageli on raske teha täpset otsust kas mingi kindel infostruktuur on ontoloogia või mitte.
Niisiis, kas interneti sõnastikud ja tesaurus on ontoloogiad või mitte?
Interneti sõnastikud. Kas interneti sõnastik on ontoloogia? Sõnastikud vastavad vähemalt
ühele osale ontoloogia definitsioonist: nad kirjeldavad mingi valdkonna mõisteid ja
nendevahelisi seoseid. Samas, need seosed ei ole esitatud formaalselt, arvuti poolt loetaval
viisil. Nad on osa loomuliku keele definitsioonist ja seetõttu ei saa neid sellisel kujul arvuti
Mõisted Te-saurus
Mitte-formaalne
mis-on hierarhia
(nt. Yahoo)
XML skeemi
d
Kaardi-põhised
info-baasid
Üldine loogika
Sõnastikud
XML DTD-d
Andme-baasi
skeemid
Formaalsed
taksonoomiad
Kirjeldav loogika
9
poolt töödelda. Veelgi enam, seosed ise pole formaalsed ning puudub ka üldine lähenemine
kuidas mõistete tähendusi defineerida. Seetõttu ei saa me pidada sõnaraamatuid
„ontoloogiateks”.
Leksikonid ja tesaurused. Leksikonid on harilikult palju rohkem struktureeritud kui
sõnastikud. Me teame täpselt millised on sõnade vahelised seosed (sünonüümia, antonüümia,
…). Nende seoste semantika on selgesti arusaadav ja arvutiprogrammide jaoks kergesti
kasutatav. Samas on leksikonid väga keele spetsiifilised. Seega ei paku nad üldist valdkonna
mõistete hulka vaid pigem kirjeldavad nende vahelisi seoseid mingis kindlas keeles.
Sellegipoolest kasutatakse leksikone mitmetes masintõlke ja loomuliku keele töötluse
projektides kui ontoloogia mõistete hulka. Leksikonis olevad erinevad sõna tähendused
võivad olla seotud erinevate mõistetega ontoloogias.
Üldiselt on piir ontoloogiate ja mitte ontoloogiate vahel ähmane. Eriti näiteks WordNet-i
puhul. WordNet on interneti leksikaalsete seoste süsteem, mis baseerub psühholingvistilistel
alustel. Leksikaalsed objektid WordNetis on jaotatud semantiliselt. Keskseks objektiks on
sünohulk. Erinevalt sünonüümide hulgast võib ühte sünohulka kuuluda ka ainult üks sõna.
Sünohulgad on jaotatud hierarhiliselt ning nende vahel esineb palju erinevaid seoseid. Mõned
inimesed peavad WordNeti ontoloogiaks, kuid teised mitte. Siinkohal liigitame meie selle
ontoloogiaks (kuigi ainult „pindmiselt“).
10
3. Olemasolevad ontoloogiad
Üks ontoloogia uuringute eesmärke on teadmiste jagamine ja taaskasutamine. Kui me loome
selge formaalse valdkonna mudeli, sis võime seda erinevate projektide vahel jagada selle
asemel, et sama valdkonna mudelit üha uuesti luua. Seepärast on oluline teada milliseid
ontoloogiaid on juba loodud ja mida me võime neilt laenata. Nii loomuliku keele töötluse kui
üldisema eesmärgiga ontoloogiate arendamisel on läbi viidud palju suuri projekte. Lisaks on
loodud mitmeid väiksemaid ontoloogiad, mis kuuluvad ontoloogiakogudesse (i.k. ontology
library).
3.1. Suured ontoloogiad
Siinkohal tutvustame SENSUS-e ja Microkosmose ontoloogiad. Mõlemad loodi ühe osana
suurtest masintõlke projektidest. Seejärel pöörame tähelepanu Cyc-ile – üldisele ontoloogiale,
mis on väga mahukas ning mida on koostatud juba 20 aastat.
3.1.1. SENSUS
Ontoloogia SENSUS (Knight ja Luk, 1994) oli üks osa projektist PANGLOSS – suurest
teadmusepõhisest masintõlke projektist. SENSUS täitis antud projektis kahte eesmärki: (1)
pakkus keelest sõltumatut teksti analüüsimise ja genereerimise „semantiliste sümbolite” kogu;
(2) kirjeldas nende sümbolite vahelisi seoseid. Knight ja Luk iseloomustasid esimest kui
„interlingua leksikoni” ning teist kui „interlingua grammatikat”. Projekti eesmärk oli luua
valdkonnast sõltumatu hispaania-inglise keele tõlkesüsteemi prototüüp. SENSUS-e autorid
ühendasid oma süsteemi mitmed olemasolevad elektroonilised allikad, et ära kasutada nende
unikaalset teavet.
3.1.2. Microkosmos
New Mexico ülikooli Microkosmose ontoloogia (Mahesh ja Nirenberg, 1995) on samuti
suuremahuline masintõlke projekt. Projekti põhieesmärk oli luua süsteem, mis viiks igas
algkeeles suvalise etteantud teksti formaalsele kujule. Esimene prototüüp oli hispaania keele
analüsaator. Seega, nagu SENSUS-e puhul, oli ka siin põhiülesanne luua keelest sõltumatu
11
mingi diskursuse valdkonna esitus. Oli ka mitmeid olulisi erinevusi: (1) Microkosmosel oli
piiratud diskursusega valdkond, SENSUS oli valdkonnast sõltumatu; (2) Microkosmose
ontoloogia ülesehitamine toimus täiesti käsitsi ning aluseks ei võetud mingit olemasolevat
süsteemi; (3) Microkosmose ontoloogias on rikkalikum mõistete vara ning rohkem seoseid
kui SENSUSes. Samas on aga Microkosmose ontoloogia ka väiksem kui SENSUS.
3.1.3. Cyc
Projekt Cyc (Lenat ja Guha, 1990; Lenat, 1990, 1995) on tõenäoliselt kõige suurem
ontoloogia projekt. Tegemist on üldise ontoloogiaga, mille teadmusbaasi on arendatud juba
viimased 20 aastat ning see on endiselt aktiivne. Cyc alustas ülikooli projektina ning muutus
hiljem eraldi firmaks. Nüüdseks kuulub baasi üle 200 000 mõiste ning üle 2 miljoni fakti
(predikaatavaldise). Mõisted varieeruvad üldistest materiaalsetest ja mittemateriaalsetest
asjadest kuni valdkonna spetsiifiliste asjadeni nagu sõjaväeüksused. Mõisted moodustavad
hierarhia, kus igal objektil saab olla mitu vanemat. Seda võib vaadata kui komplekti
erinevatest hierarhiatest, millest igaüks on organiseeritud erineva printsiibi alusel. Cyci
ontoloogiat on kasutatud mitmetes projektides: intelligente küsimus-vastus süsteem,
ülesandest kokkuvõtte tegemise süsteem jne.
3.2. Ontoloogiakogud
Siiamaani oleme vaadanud ainult suuri ning üldisi ontoloogiad. Praktikas on aga loodud ka
palju väikseid ja spetsiifilisi ontoloogiad. Tavaliselt on need mingi kindla projekti jaoks, kuid
sobivad kasutamiseks ka teistes sama valdkonna projektides. Seetõttu on loodud
ontoloogiakogud – avalikud kogud jagatavatest ontoloogiatest. Nendest võib leida
ontoloogiaid erinevatest valdkondadest: keemilised elemendid, sõjaväeüksused ja
operatsioonid, teadusprojektid, ülikoolid jne. Mõned olemasolevad ja aktiivsed ontoloogiate
kogud on:
• Ontolingua ontoloogiakogu (Ontolingua ontology library) (http://www-ksl-
svc.stanford.edu:5915) – See on kõige vanem ontoloogiakogu. Ontolingua sisaldab üle
60 ontoloogia, mis koosnevad mõnest mõistest kuni kahe-kolme tuhande mõisteni.
Mitmed ontoloogiad on ka üksteisega seotud. Näiteks, keemiliste elementide
ontoloogia võib viidata üldisele mõõtühikute ontoloogiale jne. Ontoloogiakogu on
veebipõhine ja lubab mitmetel kasutajatel teha ontoloogiate arendamisel koostööd.
Üheks puuduseks on kasutajaliidese liigne keerukus.
12
• DAML ontoloogiakogu (The DAML ontology library) – Defense Advance
Research Projects Agency (DARPA) on otsustanud sponsoreerida ontoloogia keele
arendamist WWW jaoks. Selle käigus on loodud DARPA Agent Markup Language
(DAML). DAML projekti eesmärk on ära kaotada veeb, mille dokumente saavad
lugeda ainult inimesed ja arendada veebi ontoloogiatest ning nende isenditest, mida
oskaks kasutada ka arvutid. Seetõttu on loomulik, et üheks DAML programmi
tulemuseks on üha laienev ontoloogiakogu (http://www.daml.org/ontologies/).
Praeguseks on kogus üle 280 ontoloogia. Mõned neist on väga väiksed – ainult mõned
sõnastikud (i.k. frames), kuid nende eesmärk on toetada teisi ontoloogiaid. Paljud
ontoloogiad katavad sama valdkonda, kuid on loodud erinevate inimeste poolt –
huvitav materjal erinevate lähenemiste võrdlemiseks. Samas ei paku kogu ise
võimalusi ontoloogiate vaatamiseks. Ontoloogiad on esitatud DAML keeles XML
failidena, mis tuleb omakorda sisse lugeda eraldi programmi.
• Protégé ontoloogiakogu (The Protégé ontology library)
(http://protege.stanford.edu) – Sellel kogul on oma graafiline kasutajaliides, mille
üheks eesmärgiks on teha ontoloogiate arendamine kättesaadavaks iga valdkonna
spetsialistile. Ontoloogiate kasutamiseks tuleb alla laadida ja paigaldada
samanimeline programm, kus ontoloogia avamisel on näha tema graafiline esitus.
Protégé kogu on nüüdseks juba arvukas ja kasvab kiiresti.
13
4. Ontoloogia loomine
Selles peatükis esitame lihtsa ontoloogia-arendamise metoodika. See on kokkuvõte palju
detailsemast juhisest (Noy ja McGuiness, 2001).
Ontoloogia loomisel on soovitav kasutada iteratiivset protsessi, kus ontoloogia arendamise
esimene samm on pealiskaudne. Seejärel toimub vigade parandamine, ontoloogia täiustamine
ja detailsemaks muutmine.
Siinkohal tuleb rõhutada mõnda ontoloogia arendamise põhireeglit.
1. Ei ole olemas ühte õiget viisi, kuidas valdkonda modelleerida – alati on olemas
toimivad alternatiivid. Parim lahendus sõltub peaaegu alati rakendusest, mida silmas
peetakse.
2. Ontoloogia arendus on paratamatult iteratiivne protsess.
3. Ontoloogia mõisted peaksid olema lähedased antud valdkonna objektidele (füüsilistele
või loogilistele) ja seostele. Need on peamiselt nimi- (objektid) ja tegusõnad (seosed)
antud valdkonda kirjeldavates lausetes.
Siinkohal ei pööra me tähelepanu tegelikule ontoloogia esitusele ning keskendume sellele,
mis peaks ontoloogias olemas olema, mitte kuidas seda sisemiselt esitada. Ideaalselt toimubki
ontoloogia arendamine sõltumatult selle keelest.
4.1. Ontoloogia arendamise sammud
1. Määrata kindlaks ontoloogia valdkond ja skoop
Soovitav on alustada ontoloogia arendamist defineerides ära selle valdkonna ning skoobi, s.o.
vastata järgmistele küsimustele:
• Mis valdkonda see ontoloogia katab?
• Milleks me seda ontoloogiat hakkame kasutama?
• Missugustele küsimustele peaks ontoloogias olev info pakkuma vastuseid?
14
• Kes seda ontoloogiat kasutab ja haldab?
Vastused võivad ontoloogia arendamise käigus muutuda, kuid nad aitavad igal ajal piiritleda
mudeli skoopi.
Näiteks, ontoloogia, mis kirjeldab finantstehinguid ja mida plaanime kasutada loomuliku
keele töötlemisel ning teadete koostamiseks pankadele, valdkonnaks on finantstehingute
esitus. Loomulikult kuuluvad sellesse ontoloogiasse mõisted, mis kirjeldavad erinevaid
finantstehinguid, finantsasutusi, pangatöötajaid, pangakliente ning teisi finantstehingutega
seotud inimesi. Samas on ebatõenäoline, et see ontoloogia hõlmaks mingit infot
pangatöötajate või klientide hobide kohta. Kuna antud ontoloogia on mõeldud loomuliku
keele töötlemiseks ja teadeteks, on oluline lisada ontoloogia mõistete juurde sünonüüme ning
väljendeid. Kui inimesed, kes seda ontoloogiat haldavad, kirjeldavad antud valdkonda keeles,
mis pole sama, mis ontoloogia kasutajatel, on vaja mõisted nendes keeltes viia omavahel
vastavusse.
2. Kaaluda olemasoleva ontoloogia taaskasutamist
Peaaegu alati tasub uurida, mida teised on teinud, ning teha kindlaks, kas on võimalik mõnda
olemasolevat allikat antud valdkonna ja ülesande jaoks täiustada või laiendada. Olemasoleva
ontoloogia taaskasutamine võib olla isegi vajalik, kui meie süsteem peab suhtlema teiste
rakendustega, mis on juba seotud mõne olemasoleva ontoloogiaga.
Näiteks, võib juba olemas olla ontoloogia, mis kirjeldab krediitkaarditehinguid ning meil on
vaja seda ainult täiendada teist tüüpi tehingutega kasutades olemasolevaid mõisteid.
3. Loetleda üles ontoloogia olulised mõisted
Kasulik on üles kirjutada nimekiri kõigist mõistetest, mida me võiksime kasutada antud
valdkonda kirjeldavates lausetes või kasutajale seletamiseks. Mis mõisteid me võiksime
kasutada? Missuguseid tunnuseid võiksid need mõisted omada? Mida me võiksime tahta
nende mõistete kohta öelda?
Meie näites oleksid olulised mõisted tehing, finantsasutus, konto, summa, kuupäev, aadress,
asukoht ja tehingu kirjeldus, eri tüüpi finantsasutused nagu pank ja krediitkaardifirma, eri
tüüpi kontod nagu era- ja ärikonto jne. Esialgu on oluline saada ulatuslik mõistete nimekiri
ning pole vaja muretseda mõistete kattumise, seoste ning tunnuste eest.
Järgmised kaks sammu – klassihierarhia loomine ning mõistete tunnuste määramine – on
tihedalt läbi põimunud. Raske on teha ühte enne ning siis teist. Tavaliselt loome hierarhias
15
mõned mõisted ning nende tunnused jne. Need kaks sammu on ka ontoloogia arendamise
protsessis kõige olulisemad.
4. Määrata klassid ning klasside hierarhia
Klassi hierarhia loomisel on erinevaid lähenemisi: (1) ülevalt alla – alustades kõige
üldisematest klassidest; (2) alt üles – alustades kõige spetsiifilisematest klassidest – hierarhia
lehtedest; (3) kombineeritult – defineerides kõigepealt kõige rohkem eristuvad mõisted ning
seejärel üldistades ning täpsustades neid vastavalt. Ükski neist meetoditest ei ole parem.
Lähenemisviis sõltub tugevalt sellest, kuidas keegi antud valdkonda näeb. Kui arendajal on
olemas süstemaatiline ülevalt alla valdkonna ülevaade, on lihtne kasutada ülevalt alla
lähenemist. Kombineeritud meetod on sageli kergem paljudele ontoloogia loojatele, kuna
mõisted „keskel” juhtuvad olema raskemini määratletavad (Rosch, 1978).
Millist lähenemist me ka ei kasutaks, harilikult alustame klasside defineerimisest. 3. sammus
koostatud nimekirja põhjal valime välja mõisted, mis vastavad objektidele ning eksisteerivad
sõltumata teistest mõistetest, hoidudes mõistetest, mis iseloomustavad neid objekte. Meie
näites: tehing, finantsasutus, konto, pank, krediitkaardifirma, erakonto ja ärikonto. Need
mõisted saavad antud ontoloogia klassideks ning klassihierarhia tippudeks. Organiseerime
klassid hierarhiliseks süsteemiks, küsides, kas objekti ühe klassi isendiks olemine eeldab
(definitsiooni alusel) ka teise klassi isendiks olemist.
Kui klass A on klassi B ülemklass, siis iga klassi B isend on ka klassi A isend. Teiste
sõnadega, klass B esindab mõistet, mis on „nagu” A. Näiteks, iga pank on alati finantsasutus.
Seega klass pank on klassi finantsasutus alamklass. Kui meie ontoloogias omab finantsasutus
tunnused nagu aadress, juhatajate nimekiri jne, siis ka pangal on need tunnused.
5. Määrata klasside tunnused – väljad
Klassid üksi ei anna piisavalt infot, et vastata pädevalt küsimustele 1. sammus. Olles
defineerinud mõned klassid, peame kirjeldame ka mõistete sisemise struktuuri.
Oleme juba valinud 3. sammus koostatud mõistete nimekirjast välja klassid. Enamik alles
jäänud mõistest ongi klasside tunnused. Need mõisted on näiteks tehingu summa, kuupäev,
tehingus osalevad kontod.
Iga tunnuse puhul nimekirjas, tuleb määratleda, mis klassi ta iseloomustab. Nendest
tunnustest saavad väljad, mis lisatakse klassidele. Seega tehingu klassil saavad olema
16
järgmised väljad: summa, kuupäev, tehingu kirjeldus, sihtkonto, lähtekonto. Finantsasutuse
klassil saavad olema tunnused, mis kirjeldavad tema asukohta ja teostavate tehingute tüüpe.
Kõik klassi alamklassid pärivad selle klassi väljad. Näiteks kõik klassi finantsasutus väljad,
pärinevad kõigile finantsasutuse alamklassidele – pangale ja krediitkaardifirmale. Me võime
lisada täiendavaid välju alamklassidele.
Väli peaks olema seotud kõige üldisemale klassile, mis seda tunnust omab. Näiteks,
finantsasutuse asukoht peaks olema seotud klassiga finantsasutus, kuna see on kõige üldisem
klass, mille isendid reaalsuses kuskil asuvad.
Klasside ja väljade defineerimisel tuleb teha disaini otsuseid, mille puhul pole olemas kindlaid
reegleid. Näiteks, on olemas eri tüüpi finantstehinguid: väljamaks, hoiustamine, ülekanne jne.
Tegelikult on meil selle esitamiseks kaks võimalust: (1) võime lisada välja tehingutüüp
klassile tehing või (2) moodustada klassist tehing erinevad alamklassid: hoiustamine,
väljamaks, ülekanne. Kumb on õige? Vastus sõltub meie ontoloogia skoobist. Kui oluline on
nende tehingu tüüpide eristamine? Kas tehingul on sõltuvalt tema tüübist erinevad tunnused?
Kas tehingu tüübist sõltuvad seoste tüübid tehingu isendi ja teiste isendite vahel. Kui vastus
viimasele kahele küsimusele on „jah”, siis on vaja iga tehingu tüübi kohta teha eraldi klass.
Kui meie valdkonnas on erinevate tehingu tüüpide eristamine ainult teisejärguline, siis piisab
kui hoida seda infot välja väärtusena.
6. Määrata väljade kitsendused
Väljadel võivad olla mitmeid kitsendused, mis kirjeldavad välja tüüpi, lubatud väärtusi,
väärtuste arvu (mitmesust, i.k. cardinality) ja teisi antud välja väärtuste omadusi. Näiteks,
välja nimi väärtus (nagu „panga nimi”) on üks sõne. S.o. nimi on sõne-tüüpi väli. Väli summa
omab numbrilist väärtust. Välja haru (nagu „pank on ABC grupi haru”) väärtused on klassi
aktsiaselts isendid. S.o. väli haru väärtuste tüüp on isend, mille lubatud klass on aktsiaselts.
17
Kokkuvõte
Antud käsitlus kajastas ontoloogiate arendamist ainult väga algsel tasemel.
Ontoloogia on formaalne selge mingi valdkonna kirjeldus. Praktikas sõltub iga ontoloogia
rakendusest, mille jaoks ta luuakse. Seega, kui kuskil on vaja kasutada ontoloogiat, siis tasub
otsida sellist olemasolevat ontoloogiat, mis on loodud sarnast rakendust silmas pidades. Kui
tekib vajadus luua uus ontoloogia, tuleb meeles pidada, et selle loomine on loov protsess ning
kunagi pole kahe erineva inimese poolt loodud ontoloogiad samasugused. Rakendused, mille
jaoks ontoloogiat luuakse ning arendajate arusaam antud valdkonnast mõjutavad kahtlemata
otsuseid ontoloogia disainimisel.
Ontoloogia tegelik väärtus ilmneb alles siis, kui teda kasutatakse rakenduses, mille jaoks ta
loodi.
18
Kasutatud kirjandus
1. A. Farghaly, Handbook for Language Engineers, Stanford, California, USA, 2002.
2. Wikipedia. http://en.wikipedia.org – viimati vaadatud 10.04.2006.