11.07.2015 Views

selykielen suunnittelu ja toteutus Samu Viita

selykielen suunnittelu ja toteutus Samu Viita

selykielen suunnittelu ja toteutus Samu Viita

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

39Toteutuskielen tulee täyttää kaksi perusvaatimusta, jotta sen avulla PSEesitystapavoitaisiin siirtää helposti käytäntöön. Ensiksikin sen on hyvä ollaluonteeltaan deduktiivinen. Tämän johdosta pystytään tekemään korkean deklaratiivisenasteen omaava kyselykieli. Toiseksi kielen tulee tukea olioorientoitunuttaesitystapaa, joka on keskeisellä si<strong>ja</strong>lla PSE-esitystavassa. Toisinsanoen paradigma tarjoaa automaattisen olioidentiteetin generoinnin <strong>ja</strong> metodienmäärittelyn. Metode<strong>ja</strong> tarvitaan johdettujen attribuuttien mallintamisessa.Näitä vaatimuksia silmälläpitäen kielen <strong>toteutus</strong>välineeksi valittiin logiikkaohjelmointiparadigman<strong>ja</strong> olio-orientoituneisuuden paradigman piirteitä sisältävähybridikieli Prolog++. Kieltä voidaan pitää deduktiivisena olioorientoituneenaohjelmointiparadigmana [Moss, 1994]. Kielen valintaa tukevatmyös sen käytöstä saadut hyvät kokemukset deduktiivisten oliotietokantoihinperustuvan ky<strong>selykielen</strong> prototyyppitoteutuksen yhteydessä [Niemi et al.,2000]. Ennen kielen piirteiden esittelyä tarkastelen muutamia logiikkaohjelmointiparadigman<strong>ja</strong> Prologin peruskäsitteitä.5.3.1. LogiikkaohjelmointiLogiikkaohjelmointi perustuu nimensä mukaisesti logiikan sääntöihin. Logiikkaohjelmointion joukko fakto<strong>ja</strong> <strong>ja</strong> sääntöjä, jotka määrittelevät suhteita objektienvälille. Logiikkaohjelmassa määritellään faktojen <strong>ja</strong> sääntöjen avulla suljettumaailma, joka määrittelee siitä vedettävissä olevien johtopäätösten joukon. Logiikkaohjelmana<strong>ja</strong>minen tarkoittaa ohjelman faktojen <strong>ja</strong> sääntöjen määräämänsuljetun maailman poh<strong>ja</strong>lta tehtyä päättelyä [Sterling and Shapiro, 1986]. Logiikkaohjelmana<strong>ja</strong>minen suoritetaan tekemällä kyselyjä ohjelmalle. Kielenavulla on mahdollista toteuttaa kaikki relaatiotietokantojen esittämiseen <strong>ja</strong> käsittelyynliittyvät piirteet [Niemi and Järvelin, 1991; Paton et al., 1996]. Lisäksisillä pystytään määrittelemään rekursiivisia rakenteita, minkä johdosta transitiivistensuhteiden käsittely mahdollistuu. Logiikkaohjelmassa kaikki informaatioesitetään vakioista, muuttujista <strong>ja</strong> funktoreista koostuvina termeinä. Vakiotovat termejä, joita ei voi <strong>ja</strong>kaa pienempiin osiin. Muuttu<strong>ja</strong>lla esitetään mielivaltaistaargumentin arvoa. Tässä esityksessä pitäydyn Prologin tavassa merkitämuuttujia isoilla <strong>ja</strong> vakioita pienillä kir<strong>ja</strong>imilla. Logiikkaohjelman faktat ilmaisevatolion ominaisuuksia tai olioiden välillä vallitsevia suhteita. Tarkastellaanseuraavaa faktajoukkoa.putkimies(mikko).toimitusjohta<strong>ja</strong>(pekka).asuu(mikko,tampere).asuu(pekka ,rovaniemi).

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!