Tartu Ülikool Matemaatika-informaatika teaduskond Arvutiteaduse instituut

Ontoloogiad
Referaat

Koostaja:

Rein Raudjärv

Juhendaja: Tiit Roosmaa

Tartu 2006

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

2

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.

3

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

4

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. 5

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.

6

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)

7

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. Mitteformaalne mis-on hierarhia (nt. Yahoo)

Mõisted

Tesaurus

XML skeemi d

Kaardipõhised infobaasid

Üldine loogika

Sõnasti kud

XML DTD-d

Andmebaasi skeemi d

Formaals ed taksonoo miad

Kirjeldav loogika

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 8

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“).

9

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

10

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 kogud on: • Ontolingua ontoloogiakogu (Ontolingua ontology library) (http://www-kslsvc.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. erinevatest valdkondadest: keemilised elemendid, sõjaväeüksused ja operatsioonid, teadusprojektid, ülikoolid jne. Mõned olemasolevad ja aktiivsed ontoloogiate

11

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.

12

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?

13

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

14

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

15

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.

16

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.

17

Kasutatud kirjandus
1. A. Farghaly, Handbook for Language Engineers, Stanford, California, USA, 2002. 2. Wikipedia. http://en.wikipedia.org – viimati vaadatud 10.04.2006.

18

Sign up to vote on this title
UsefulNot useful