Ontologiat merkitysten mallintamisessa: OWL Web Ontology Language

Samankaltaiset tiedostot
Ontologiat merkitysten mallintamisessa: OWL. Eeva Ahonen

The OWL-S are not what they seem

Tiedon mallintaminen ja esillesaanti. Web Ontology Language OWL Daniel Lillqvist

Luento 12: XML ja metatieto

Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin?

Eero Hyvönen. Semanttinen web. Linkitetyn avoimen datan käsikirja

standardit (W3C, ISO) Semanttisen laskennan tutkimusryhmä Teknillinen korkeakoulu

Semanttinen Web. Ossi Nykänen. Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), Hypermedialaboratorio W3C Suomen toimisto

Sisällönhallinnan menetelmiä

Semanttinen Web. Ossi Nykänen Tampereen teknillinen yliopisto (TTY), DMI / Hypermedialaboratorio W3C Suomen toimisto

Tiedonlouhinta rakenteisista dokumenteista (seminaarityö)

RDF ja RDFS. 8 RDF ja RDFS

Semanttinen Web. Ossi Nykänen. Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), W3C Suomen toimisto

Automaattinen semanttinen annotointi

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton

Ohjelmistojen mallintaminen, mallintaminen ja UML

Julian graafinen annotointityökalu ja erityisontologioiden editori. Jaason Haapakoski P Kansanterveyslaitos , 28.3.

Ylläpitodokumentti. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Mitä on periytyminen?

M. Merikanto 2012 XML. Merkkauskieli, osa 2

Testausraportti. Orava. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

TESAURUKSET JA ONTOLOGIAT

Metatiedot organisaatioiden sisällönhallinnassa

Sisällys. Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Periytymisen käyttö. 8.2

Paikkatiedot ja Web-standardit

Internet jolla on merkitystä

Yhteentoimiva.suomi.fi - palvelukokonaisuuden ja työkalujen esittely

SKOS. Osma Suominen ONKI-hankkeen laajennettu projektiryhmä

4.2 Yhteensopivuus roolimalleihin perustuvassa palvelussa

W3C-teknologiat ja yhteensopivuus

Javan perusteita. Janne Käki

Paikannimirekisteri linkitettynä tietona

XML prosessori. XML prosessointi. XML:n kirjoittaminen. Validoiva jäsennin. Tapahtumaohjattu käsittely. Tapahtumaohjattu käsittely.

Miksi asiasanastot eivät riitä vaan tarvitaan ontologioita?

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Yhteentoimivuutta edistävien työkalujen kehittäminen

Paikkatiedon mallinnus Dokumentoinnin ymmärtäminen. Lassi Lehto

Johdatus rakenteisiin dokumentteihin

9. Periytyminen Javassa 9.1

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä

Semanttinen web: ontologioiden esittäminen ja oppiminen

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

Matemaatiikan tukikurssi

Avoin data Avoin kirjasto Kuvailupäivät

TIEDONHAKU INTERNETISTÄ

Älykkäät keltaiset sivut ( Intelligent Web Services ( IWebS ) )

Rakenteisen oppimateriaalin tuottaminen verkossa esimerkki Rhaptos. Antti Auer Koordinaattori, HT Jyväskylän yliopisto Virtuaaliyliopistohanke

2. Olio-ohjelmoinnin perusteita 2.1

Matematiikan tukikurssi, kurssikerta 2

Yhteentoimivuusvälineistö

Uusi käsitemalli IFLA LRM

Ctl160 Tekstikorpusten tietojenkäsittely p.1/15

Visio tulevaisuuden Webistä. Semantic Web - kohti uutta merkitysten Internetiä. Ratkaisumalli 1: Älykkäämmät sovellukset. Vision este Webissä

WWW-ohjelmoinnin kokonaisuus. WWW-OHJELMOINTI 1 Merkkauskielet. Merkkauskielten idea. Merkkauskielet (markup languages) Merkkauskielten merkitys

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

Suvi Junes Tietohallinto / Opetusteknologiapalvelut 2012

MALog-projekti kehittää oppimateriaalia matemaattiseen logiikkaan. Insinöörikoulutuksen foorumi

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto

ARVO - verkkomateriaalien arviointiin

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 30. marraskuuta 2015

W3C ja Web-teknologiat

Seitsemän syytä semanttiseen webiin. Eero Hyvönen Aalto-yliopisto ja HY Semanttisen laskennan tutkimusryhmä (SeCo)

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

Suvi Junes Tietohallinto / Opetusteknologiapalvelut 2012

CIRI Ontologiaperustainen tiedonhakuliittymä

Yleinen suomalainen ontologia YSO

Suvi Junes Tietohallinto / Opetusteknologiapalvelut 2013

Sisällönkuvailun tulevaisuus: YSA vai YSO?

TIEA341 Funktio-ohjelmointi 1, kevät 2008

ONKI SKOS Sanastojen ja ontologioiden julkaiseminen ja käyttö Asiasanaston muuntaminen SKOS muotoon: case YSA

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat

Tutkitaan sitten HTML-dokumenttien anatomiaa, jotta päästään käsiksi rakenteisten dokumenttien käsitteistöön esimerkkien kautta.

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services

15. Ohjelmoinnin tekniikkaa 15.1

Semantic Web Sisältötuotannon ja palveluiden tulevaisuus

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla

KIELENOPPIJOITA TIEDONHANKINTA KESKIÖSSÄ KUUNTELEMALLA OPPIJA (AUDITIIVINEN) KIELEN KÄYTTÖ, VUOROVAIKUTUS NÄKEMÄLLÄ

TIE Principles of Programming Languages CEYLON

Epätäsmällisen tiedon esittäminen semanttisen webin ontologioissa

Action Request System

W3C ja Web-teknologiat

Valtionhallinnon arkkitehtuurin kehittäminen

Semanttinen Web. Ossi Nykänen. Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), W3C Suomen toimisto

3 Verkkosaavutettavuuden tekniset perusteet

hyvä osaaminen. osaamisensa tunnistamista kuvaamaan omaa osaamistaan

2. Olio-ohjelmoinnin perusteita 2.1

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.

Matematiikan tukikurssi

RDF-TIETOMALLI TOIMINTAPROSESSIN TIEDONHALLINNAN TUKENA

HTML & CSS. HTML (HyperText Markup Language) Antti Koivisto. ! HTML on sivujen kuvauskieli.

18. Abstraktit tietotyypit 18.1

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri. Järjestelmäarkkitehtuuri

Office ohjelmiston asennusohje

Kylätietojen täyttöohje. Sisällys

Semanttinen Web Mitä se on käytännössä?

Transkriptio:

HELSINGIN YLIOPISTO TIETOJENKÄSITTELYTIETEEN LAITOS Seminaaritutkielma Ontologiat merkitysten mallintamisessa: OWL Web Ontology Language Eeva Ahonen 011730576 Ohjaaja: Juha Puustjärvi Helsinki, 30.10.2004

Tiivistelmä Internet tuo ulottuvillemme rajattomalta tuntuvan määrän informaatiota, jonka hyödyntäminen on tehotonta sen heikon rakenteellisuuden vuoksi. Käsitemallien eli ontologioiden luominen ja niiden sitominen dokumentteihin mahdollistaa nykyistä kehittyneemmän koneellisen tekstien tulkinnan, jota voidaan hyödyntää niin normaalissa tiedonhaussa laajoista dokumenttikokoelmista, kuin monimutkaisemmissa tekoälysovelluksissakin. Tässä dokumentissa selvitän ontologioihin ja erityisesti OWL (Web Ontology Language) kielisiin ontologioihin liittyviä peruskäsitteitä ja periaatteita.

Sisällys 1. JOHDANTO... 4 2. ONTOLOGIAT SEMANTTISEN TIEDON KUVAAJINA... 4 2.1. PERUSKÄSITTEITÄ: LUOKKIA JA YKSILÖITÄ... 5 2.2. LUOKKIEN OMINAISUUDET... 5 2.3. LUOKKIEN VÄLISIÄ SUHTEITA... 6 2.4. ONTOLOGIA-TYÖKALUISTA: PROTÉGÉ... 6 3. OWL WEB ONTOLOGY LANGUAGE... 8 3.1. MIKSI OWL?... 8 3.2. ALALAJIT... 8 3.3. ONTOLOGIOIDEN HAJAUTTAMINEN... 9 3.4. LUOKAT JA INDIVIDUALIT... 9 3.5. PROPERTYT... 11 3.6. VERSIOHALLINTA... 11 4. LOPUKSI... 12

1. Johdanto Tarjolla olevan informaation määrä on räjähtänyt teknologian kehittymisen myötä ja ennen kaikkea internetin mahdollistettua dokumenttien joskus liiankin tehokkaan levittämisen. Samalla relevantin tiedon löytämisestä kaiken hälyn seasta on tullut tiedonhakijan suurin haaste. Tähän ongelmaan yritetään vastata edelleen kehittyneemmin teknologisin apuvälinein. Eräs tapa vastata tiedonhaun ongelmiin on tekstin sisältöä kuvaavan metadatan lisääminen dokumentteihin esim. internetissä. Idea on, että tästä metadatasta kävisi itse dokumenttitekstiä paremmin ilmi tekstin todellinen merkitys, mistä tekstissä todella puhutaan. Metadataa hyödyntämällä tiedonhakija saisi tarkempia hakutuloksia siellä missä ongelmana on liian laajat ja epätarkat haut, ja toisaalta laajempia tuloksia siellä missä ongelmana on liian suppeat hakutulokset. Ontologiat ovat tapa kuvata ihmisen ymmärtämää semanttista tietoa maailmasta tietokoneen ymmärtämään muotoon. Tässä dokumentissa tutustutaan tarkemmin ontologian käsitteeseen, ja siihen millaisia asioita niillä voidaan kuvata (luku 2). Jotta ontologioita voitaisiin hyödyntää sovelluksissa, ne täytyy kuvata jollain sovitulla formaalilla tavalla, kuvauskielellä. Jotta ontologioita edelleen pystyttäisiin mahdollisimman tehokkaasti hyödyntämään esimerkiksi internetissä, täytyy niiden esittämiselle olla sovittu ja yhteisesti hyväksytty standardi. Eräs tällainen on OWL (Web Ontology Language), johon tutustutaan luvussa 3. Lopuksi käydään lyhyesti läpi muutamia esimerkkejä ontologioiden soveltamista (luku 4). 2. Ontologiat semanttisen tiedon kuvaajina Ontologialla tarkoitetaan mallia, joka kuvaa tietyn tietoalueen käsitteitä ja niiden välisiä suhteita. Tom Gruberin laajalti siteeratuin sanoin: An ontology is a specification of conseptualization. Merkitysten saattaminen formaaliin muotoon edellyttää käsitteellistämistä. Käsitteellistäminen on abstrakti, yksinkertaistettu esitys kiinnostuksen kohteena olevasta maailmasta. [Gruber, 1993]. Itse käsitteiden lisäksi tietokoneelle pitää kuvata niiden väliset suhteet. Teksti koostuu symboleista, jotka ovat merkityksettömiä ilman tulkintaa. Ihminen tulkitsee ne oman sisäisen käsitemallinsa avulla, koneella taas ei valmiiksi tällaista käsitemallia ole. Ontologiaa rakentaessaan ihminen pyrkii kuvaamaan tietokoneelle oman käsitemallinsa, jonka avulla symboleista koostuva teksti on mahdollista tulkita. Tekstin sekaan sijoitettu metatieto, semanttinen annotaatio, yhdistää käsitemallin käsitteet todellisen tekstin elementteihin. Ontologiassa taas kuvataan käsitteiden, ja sitä kautta tekstin elementtien, ominaisuudet sekä suhteet toisiinsa. Tätä kautta tietokoneella voidaan tulkita tekstiä, löytää siitä yksittäisiä sanoja laajempia merkityksiä, ja tehdä ihmisen ajattelua muistuttavaa päättelyä asioista.

Dacontan [2003] mukaan ontologiaan pohjaava ohjelmisto nousee ihmisen tiedolliselle tai käsitteelliselle tasolle, eikä ihmisen tarvitse enää laskeutua koneen tasolle käyttäessään ohjelmistoa. Kuvaan seuraavaksi hieman yleisiä periaatteita ontologioiden tavasta mallintaa asioita. On syytä huomata, että kaikki ontologioiden kuvauskielet eivät mahdollista kaikkea tätä. Lähtökohtana tämän luvun kuvauksille ovat Semantic Webin kannalta keskeiset kielet DAML+OIL, RDF/S ja OWL. 2.1. Peruskäsitteitä: luokkia ja yksilöitä Luokilla kuvataan ontologiassa yleisiä käsitteitä. Luokat voidaan ymmärtää jonkinlaisen peruskäsitteen kuvauksena, tai kokoelmana tähän luokkaan kuuluvia olioita (yksilöitä). Kuvassa 1 on pieni esimerkkiontologia, joka sisältää 5 luokkaa. Esimerkiksi luokka Animal sisältää kaikki eläinkuntaan kuuluvat oliot. Se jakautuu kahteen alaluokkan, Mammal ja Fish, joista toiseen kuuluvat nisäkkäät ja toiseen kalat. Kaikki luokkaan Fish kuuluvat oliot kuuluvat myös luokkiin Animal sekä Organism. Luokat siis kuvaavat yleisiä peruskäsitteitä, sellaisina kuin me ihmiset ne hahmotamme. Yksilö puolestaan edustavat näitä luokkia, kultakala Repe on eräs ilmentymä luokasta Fish. Repe voisi siis olla yksilö, joka kuuluu luokkaan Fish. Ontologia-mallin perusteella tiedämme, että koska Repe on kala, se on myös eläin (luokka Animal), ja elollinen olio (luokka Organism). Kuva 1. Esimerkki käsitehierarkiasta (kuva Jena-dokumentaatiosta). 2.2. Luokkien ominaisuudet Luokkien tarkempaa kuvausta varten niille voidaan määrittää joukko erilaisia ominaisuuksia. Tämä tehdään määrittämälle luokalle property. Esimerkiksi luokalla Animal voisi olla numeerisen arvon saava property numsensoryorgans. Eläimillä voi olla aistielimiä, ja tämän propertyn arvo kertoo kuinka monta jollakin tietyllä luokkaan kuuluvalla yksilöllä niitä on. Propertyillä on määrätty arvoalue, joka kertoo millaisia

arvoja se voi saada. Arvoalue määrittää arvon tyypin, esimerkiksi numero, merkkijono tai olio (jonkin luokan ilmentymä). Myös propertyt voivat muodostaa hierarkioita. Property numeyes voitaisiin määrittää numsensoryorgans propertyn ala-propertyksi. Jos Repe-kalan numeyes propertyn arvo on 2 ja myös numsensoryorgans on 2, tiedämme että Repellä on kaksi silmää eikä siis mitään muita aistielimiä. Property liittyy aina johonkin tiettyyn luokkaan. Esimerkiksi Property numeyes liittyy luokkaan Animal, olioilla, jotka eivät ole eläimiä ei ole myöskään silmiä. Vastaavasti jos tiedämme että oliolla Repe on numeyes = 2, voimme päätellä että Repe on eläin, vaikka sitä ei erikseen olisi kerrottu. 2.3. Luokkien välisiä suhteita Luokkien välillä voi vallita monenlaisia suhteita. Yläluokka-alaluokka hierarkioissa luokan alaluokka määrittää jonkin osajoukon tai erityistapauksen yläluokastaan. Kaikki alaluokan yksilöt kuuluvat siis myös kaikkiin yläluokkiinsa. Luokan yläluokan yläluokat ovat myös luokan yläluokkia, hierarkiset suhteet ovat siis transitiivisia. Jos A on B:n yläluokka ja B on C:n yläluokka, niin A on myös C:n yläluokka. Luokalla voi olla myös useita suoria, rinnakkaisia yläluokkia. Voisimme määritellä esimerkkiontologiaamme luokan Slime Mold, joka olisi sekä Plant että Animal luokkien alaluokka. Näin ontologiahierarkia ei siis (välttämättä) ole muodoltaan puu, vaan ennemmin verkko toisiinsa liittyviä käsitteitä. Luokkien välille muodostuu suhteita myös olio- tai luokkatyyppisten propertyjen (object property) kautta. Voisimme lisätä ontologiaan tietoa maantieteellisistä paikoista voidaksemme kuvata olioiden elinalueita. Joku tietty Fish-luokkaan kuuluva olio saisi silloin elinaluettaan kuvaavan propertynsä livingarea arvoksi jonkin luokkaan Sea kuuluvista yksilöistä. Viimeiseksi luokkien välille voidaan muodostaa suhteita yhdisteillä, leikkauksilla ja komplementeilla. Luokkien Plant ja Animal leikkaukseen kuuluisi siis aiemmin mainittu Slime Mold. Niiden yhdisteeseen taas kuuluisivat kaikki kumpaan tahansa luokkaan kuuluvat oliot. Voisimme määrittää uuden luokan nonfish, joka kattaisi kaikki kontekstiin kuuluvat oliot, jotka eivät ole kaloja. Tämä luokka olisi luokan Fish komplementti. [Smith et al, 2004]. 2.4. Ontologia-työkaluista: Protégé Ontologia tekijän ei välttämättä tarvitse tietää ontologioiden kuvauskielistä mitään. Riittää jos ymmärtää asiat edellä esitetyllä yleisellä tasolla. Ontologioiden kirjoittamista, lukemista ja muokkaamista varten on tehty työkaluja, jollainen on esimerkiksi Protégé 1. Työkalut voivat tukea tiettyjä ontologiankuvauskieliä, mutta ne eivät välttämättä mahdollista kaikkea mitä kyseinen kieli mahdollistaisi. Toisaalta niihin voidaan myös rakentaa sovellustason käsittelyä, joka ei varsinaisesti näy itse ontologiakielessä. 1 http://protege.stanford.edu/

Esimerkiksi Protégéssa on toteutettu propertyjen periytyminen yläluokilta alaluokilleen, joka ei varsinaisesti näy itse ontologiatiedostossa, tai kuulu esimerkiksi OWL-stadardiin. Kuvassa 2 on näkymä eräästä ontologiasta Protégé editorilla katsottuna. Tässä näkymässä on esillä ainoastaan luokkia propertyineen, ei luokkiin kuuluvia yksilöitä. Vasemmassa reunassa näkyy luokkahierarkia, jota voi selailla avaamalla solmuja. Sen oikealla puolella näkyvät aktiivisena olevan luokan ominaisuudet, oikeassa reunassa mahdolliset propertyt ja keskellä tälle luokalle määritetyt propertyjen arvot. Luokalla CleanPrinterInsides on kaksi suoraa yläluokkaa Clean ja PrinterTask, property patient, jonka saaman (olio)arvon täytyy aina kuulua luokkaan PrinterInsides. Kuva 2. Protégé ontologia editori

3. OWL Web Ontology Language Ihmislukijalle ontologia on (rajoitetusti) selkeätä esittää kuvan 1 kaltaisessa graafisessa muodossa tai kuvan 2 kaltaisen editorin kautta. Tietokoneelle se esitetään jollain tiedon kuvauskielellä (knowledge representation language). Tällaisia kieliä ovat esimerkiksi RDF/S, DAML+OIL ja OWL. Tässä luvussa tutustumme tarkemmin viimeksi mainittuun. OWL on kehitetty osana W3 konsortiumin Semantic Web hanketta. Sitä lähdettiin kehittämään tietoisesti standardiksi, lähtökohtana käytettiin DARPA:ssa määritettyä DAML+OIL kieltä. OWL pohjautuu uudempaan versioon RDF/S standardista, ja sen kehittämisessä on otettu huomioon DAML+OIL:in tiedossa olleita heikkouksia ja ongelmia. Lyhenne OWL tulee sanoista Web Ontology Language, ja Dacontan [2003] mukaan se kunnioittaa nimellään Nalle Puhin Pöllöä (Owl), joka kirjoitti oman nimensä väärin: WOL. Owl rakentuu RDF:n päälle siten, että OWL -dokumentti kuvataan itse asiassa RDF - standardin mukaisella syntaksilla. OWL:in ja RDF:n suhteesta on kahta koulukuntaa, toisen mukaan OWL on oma itsenäinen kielensä, joka vain käyttää RDF:ää esitysmuotonaan, toisen mukaan taas RDF tripletit ovat koko OWL:in ydin [Jena]. 3.1. Miksi OWL? OWL on vakiintumassa semanttisen verkon standardiksi ontologioiden kuvauskielenä edeltäjänsä DAML+OIL:in tilalle. OWL onkin kehitetty DAML+OIL:ia lähtökohtana käyttäen ja on siksi ehkä mahdollista ymmärtää vain uudemmaksi versioksi siitä. OWL mahdollistaa luokkien välisten suhteiden sekä ominaisuuksien määrittelemisen laajemmin kuin esimerkiksi XML Schema tai RDFS. Jälkimmäisellä voimme määritellä luokkahierarkioita (yläluokka alaluokka) ja antaa luokille attribuutteja (propertyjä), jotka voivat edelleen muodostaa hierarkioita. OWL mahdollistaa saman, ja lisäksi kaiken luvuissa 2.2 ja 2.3 kuvatun. OWL:issa voimme myös määrittää kaksi luokkaa toisensa poissulkeviksi, siten että mikään olio ei esimerkiksi voi kuulua sekä luokkaan Plant että luokkaan Animal. OWL:issa propertyille voidaan myös määrittää monipuolisempia ominaisuuksia kuin vain hierarkioita (näistä enemmän kohdassa 3.5). 3.2. Alalajit OWL kieli jakautuu ilmaisuvoiman ja käytettävyyden puolesta kolmeen eritasoiseen alalajiin. OWL Lite on näistä yksinkertaisin ja rajoitetuin. Sillä on mahdollista määritellä luokista ja propertyista sekä niiden ilmentymistä (yksilöistä, individualeista) koostuva ontologia. Luokat ja propertyt voivat olla hierarkisessa suhteessa toisiinsa (siis luokat toisiin luokkiin ja propertyt toisiin propertyihin). OWL Lite sallii kardinaalisuusarvojen määrittämisen vain 0 tai 1 :ksi.

OWL DL on ilmaisuvoimaltaan laajempi. Se mahdollistaa kardinaalisuusarvojen määrittämisen muuksikin kuin vain 0 tai 1. OWL DL:ssä voidaan myös tehdä ilmauksia ottamalla luokista yhdisteitä, leikkauksia ja komplementteja ja luokat voidaan määritellä toisensa poissulkeviksi. [Daconta et al, 2003]. OWL Full laajentaa edelleen OWL DL:ää. Siinä luokat voivat olla samanaikaisesti kokoelma yksilöitä, ja toisaalta itse yksilönä jossain toisessa kokoelmassa [Smith et al, 2004]. Siinä missä yksinkertaisemman kielen version ilmaisuvoima on suppeampi, on toisaalta sen toteuttaminen sovelluksissa helpompaa. OWL Liteen lienee helpompi siirtyä vanhasta taksonomioita tai leksikoita käyttävästä sovelluksesta, toisaalta OWL DL:llä saadaan käyttöön monimutkaisempaan päättelyyn pystyviä tekoäly-sovelluksia. Ilmaisuvoiman kasvaessa myös laskennallinen mutkikkuus kasvaa. Laajempi versio kielestä sisältää aina suppeamman, joten validi OWL Lite ilmaus on aina myös validi OWL DL ilmaus, mutta OWL DL:n validi ilmaus ei välttämättä ole validi OWL Litessä. 3.3. Ontologioiden hajauttaminen Tietoverkko on luonteensa puolesta hajautettu järjestelmä. Semantic Web lisää olemassa olevaan verkkoon uuden tiedon mallintamisen ja esittämisen muodon, ja tulee siis myös olemaan laajalti hajautettu. Kriittinen osa ontologiasuunnittelua on ottaa huomioon tietojen hajauttaminen ja kerääminen useista erillisistä lähteistä. OWL sisältää erilaisia tapoja yhdistää eri ontologioita toisiinsa. Sisällyttämällä (import) jokin olemassa oleva ontologia toiseen, saadaan sisällytetyssä ontologiassa määritellyt asiat käyttöön, ja vältytään samojen asioiden uudelleen määrittelemiseltä. Sisällytetyn ontologian luokkiin, individualeihin ja propertyihin voidaan viitata kaikilla samoilla tavoilla kuin työn alla olevan ontologian sisällä määriteltyihinkin. Toisen ontologian sisällyttäminen tapahtuu ontologiatiedoston header-elementissä owl:ontology. Elementti sisältää yleistä tietoa ontologiasta, kuten otsikon, kommentin, versiotietoa. Tämän elementin sisälle voidaan määritellä tagi owl:imports, joka sisältää linkin olemassa olevaan ontologiaan, joka halutaan sisällyttää tähän ontologiaan. Joskus riittää saada vain toisessa ontologiassa määritelty sanasto käyttöön. Tähän tarkoitukseen voidaan käyttää ontologia-tiedoston alussa määriteltävää XML Namespaceviittausta. Myös owl:imports tagilla sisällytettävän ontologian namespace on syytä määritellä tässä kohdassa, jotta sen nimien käyttäminen sujuisi mutkattomasti. 3.4. Luokat ja Individualit OWL:in määrittelemän maailman jokainen yksilö kuuluu luokkaan owl:thing. Kaikki luotavat luokat ovat siis automaattisesti tämän luokan alaluokkia. Ontologian määrittelijä päättää aihealueensa luokkahierarkian juurista. Juuret luodaan samalla tavalla kuin muutkin luokat, määrittämällä uusi nimetty luokka: <owl:class rdf:id= Animal />

Tämä ilmaus ei kerro luokasta mitään muuta, kuin tunnisteen, jolla siihen voidaan viitata. Owl:Class elementin sisällä voidaan antaa muuta tietoa luokasta jo luomisvaiheessa, tai lisätä tietoa myöhemmin viittaamalla olemassa olevaan luokkaan. <owl:class rdf:id= Fish > <rdfs:subclassof rdf:resource= #Animal />... </owl:class> Luokan määritelmä koostuu siis kahdesta osasta: uuden luokan nimen esittely tai viittaus olemassa olevaan, sekä lista rajoituksia kyseessä olevalle luokalle. Rajoitukset kohdistuvat edelleen luokkaan kuuluviin yksilöihin, eli yksilöt kuuluvat luokalle määritettyjen rajoitusten leikkaukseen [Smith et al, 2004]. Luokkien lisäksi on siis tarpeen määritellä niihin kuuluvat yksilöt. Yksilö esitellään yksinkertaisimmillaan vain antamalla sille nimi, ja määrittelemällä se tietyn luokan jäseneksi: <Fish rdf:id= GoldFish /> Ei ole mitenkään itsestään selvää, milloin jokin asia määritetään sitä laajemman käsitteen alaluokaksi, milloin luokkaan kuuluvaksi yksilöksi. Tämä täytyy päättää sovelluskohtaisesti, jos ontologialla on tarkoitus kuvata maailman eläinlajit, voimme päättää, että kala-luokan yksilöt ovat kalalajeja, eihän ole mitään tarvetta alkaa kuvata ontologiaan varsinaisia olemassa olevia kultakala-yksilöitä. Jos taas teemme sovellusta, jonka avulla seurataan meritieteellisen akvaarion kalojen ruokintaa, lisääntymistä ja elämää, haluamme varmaankin määritellä kalalajit luokiksi <owl:class rdf:id= GoldFish > <rdfs:subclassof= #Fish /> </owl:class> ja näihin luokkiin kuuluviksi yksilöiksi akvaariossa elävät kalat <GoldFish rdf:id= Repe /> On tärkeää huomata, että luokan esittelyn ja sen yksilöiden esittelyn ei tarvitse olla samassa ontologiassa. Edes luokan esittelyn ja sen ominaisuuksien (rajoitusten) määrittelyiden ei tarvitse sijaita samassa ontologiassa. Kuten luvussa 3.3 todettiin, ontologioita täytyy voida rakentaa kerroksittain ja hajautetusti. Ontologiassa voidaan jatkaa jonkin muussa ontologiassa esitellyn luokan määritystä ilman että alkuperäinen ontologia muuttuu. Toisessa ontologiassa tehdyt määritykset voivat aina vain lisätä aiempaan uusia rajoituksia, eivät poistaa tai korvata vanhoja.

3.5. Propertyt Luokille määritetään niiden yksilöiden ominaisuuksista kertovia propertyjä. Luokka, josta property jotain kertoo, on propertyn domain. Propertyjä on kahdenlaisia: object propertyjä, joiden arvoalue (eli range) on jokin toinen luokka, ja data type propertyjä, joiden arvoalue on jokin XML Scheman data type. Object propertyt siis määrittävät suhteita luokkien välille, ja data type propertyt luokkien ja XML:n tietotyyppien välille. Propertyt määritellään samaan tapaan kuin luokat, ensin esitellään uusi nimi tai viitataan olemassa olevaan, ja sen jälkeen listataan propertyyn kuuluvat rajoitukset: <owl:objectproperty rdf:id= hascarer > <rdfs:domain rdf:resource= #GoldFish /> <rdfs:range rdf:resource= #Employee /> </owl:objectproperty> <owl:datatypeproperty rdf:id= numeyes > <rdfs:domain rdf:resource= #GoldFish /> <rdfs:range rdf:datatype= &xsd;nonnegativeinteger /> </owl:datatypeproperty> Yllä olevassa esimerkissä siis GoldFish luokalla (eli kaikilla sen yksilöillä) on propertyt hascarer, joka yhdistää kultakalayksilön siitä vastuussa olevaan työntekijään (oletamme että akvaarion työntekijät on määritelty luokassa Employee) sekä numeyes joka kertoo kalayksilön silmien lukumäärän. <GoldFish rdf:id= Repe > <hascarer rdf:resource= #Matti /> <numeyes rdf:datatype= &xsd;nonnegativeinteger>2</numeyes> </GoldFish> Propertyjen välille voidaan määritellä hierarkisia suhteita rdfs:subpropertyof rajoituksella. Propertyille voidaan määrittää kardinaalisuusrajoituksia ilmauksilla rdfs:mincardinality ja rdfs:maxcardinality. Voimme siis esimerkiksi sanoa GoldFish luokan propertystä hascarer, että jokaisella luokan yksilöllä on oltava ainakin yksi hoitaja, eli ainakin yksi instanssi kyseisestä propertystä. 3.6. Versiohallinta Ontologia on tiedosto, joka todennäköisesti vaatii jatkuvaa hienosäätöä ja päivittämistä, ja toisaalta saattaa olla kytköksissä hyvin monenlaisiin sovelluksiin ja toisiin ontologioihin. Siksi on hyvin tärkeää hallita sen eri versiot, niiden käyttö ja keskinäinen yhteensopivuus. OWL tukee ontologioiden versiohallintaa owl:ontology (header-)elementin versioinformaatiota kuvaavilla tageilla. Tällaisia ovat owl:priorversion, jonka sisällöksi tulee linkki ontologian edelliseen versioon. Versioiden keskinäistä yhteensopivuutta voidaan kuvata tagein owl:backwardcompatiblewith ja owl:incompatiblewith.

Lisäksi koko ontologialle tai vain yksittäiselle luokalle tai propertylle voidaan määrittää versiotieto (numero tms.) annotaatio-tagilla owl:versioninfo. Tämä tagi on tarkoitettu versiohallintaa käyttävien sovellusten avuksi. [Smith et al, 2004]. 4. Lopuksi Ontologioihin pohjautuvat sovellukset pystyvät nousemaan lähemmäksi ihmisen ajattelua ja hyödyntämään päättelyssään käsitemallien sisältämiä semanttisia suhteita ja rakenteita. Mutkikasta päättelyä suorittavien tekoäly-sovellusten lisäksi niitä voidaan kuitenkin hyödyntää myös jokapäiväisissä tiedonhakutehtävissä. Jos dokumenttikokoelma, josta tietoa etsitään, on rakenteistettu annotoimalla se ontologian käsitteillä, hakukone voi muodostaa tarkempia hakukyselyitä, jotka kohdistuvat nimenomaan annotoituihin merkityksiin (käsitteisiin). Yksinkertaisimmillaan hakukone voi hyödyntää ontologiaa laajentamalla hakukyselyä hakutermin luokan aliluokkiin, eli hakemalla paitsi samaan luokkaan (käsitteeseen) kuuluvilla termeillä, myös sen aliluokkiin kuuluvilla termeillä. Se, missä määrin nykyinen Internet muuntuu Semantic Webiksi, jää ajan kuluessa nähtäväksi. Vaikka kaikki informaatio ei tulevaisuudessa olisikaan semanttisesti annotoitua ja rakenteellista, on semantic web -hankkeessa kehitetyille metodeille ja työkaluille epäilemättä käyttöä ainakin pienempien kokonaisuuksien hallitsemisessa.

Lähteet [Daconta et al, 2003] Daconta M.C., Orbst L.J., Smith K.T. The Semantic Web. A guide to the future of XML, Web Services, and Knowledge Management. Wiley Publishing Inc, Indianapolis 2003. [Gruber, 1993] [Jena] [Smith et al, 2004] Gruber, T.R. A Translation Approach to Portable Ontology Specifications. Knowledge Acquisition, 5, 1993. Jena 2 Ontology API documentation. http://jena.sourceforge.net/ontology/index.html (luettu 28.10.2004) Smith M.K., Welty C., McGuinness D.L. (edit.) OWL Web Ontology Language Guide. W3C Recommendation 10 February 2004. http://www.w3.org/tr/owl-guide/ (luettu 10.10.2004)