selykielen suunnittelu ja toteutus Samu Viita
selykielen suunnittelu ja toteutus Samu Viita
selykielen suunnittelu ja toteutus Samu Viita
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
697. YhteenvetoTutkielmassa tarkastelin osa-kokonaisuussuhteen käsittelyyn soveltuvan ky<strong>selykielen</strong><strong>suunnittelu</strong>a <strong>ja</strong> sen <strong>toteutus</strong>ta. Toteutin kielen Timo Niemen <strong>ja</strong> MarkoJunkkarin <strong>suunnittelu</strong>n poh<strong>ja</strong>lta. Kielen ilmaisuissa ei tarvitse hallita olio- taideduktiivisten tietokantojen yhteydessä käytettyjä, tavalliselle loppukäyttäjällehankalia käsitteitä. Näitä ovat esimerkiksi rekursio, mallinsovitus <strong>ja</strong> iterointi.Tällöin loppukäyttäjän ei tarvitse omata ohjelmointitaito<strong>ja</strong>. Kielen avulla hänenei myöskään tarvitse navigoida osa-kokonaisuussuhteissa. Kielen käyttäjän eimyöskään tarvitse hallita nest- <strong>ja</strong> unnest-operaatioiden tapaisia osakokonaisuushierarkianuudelleenstrukturointe<strong>ja</strong>. Sen si<strong>ja</strong>an kielen primitiivittukevat haluttujen komponenttien <strong>ja</strong> komposiittien välillä vallitsevien suhteidenmonipuolista ilmaisemista. Nämä primitiivit hoitavat niin välillisten kuinvälittömienkin komponenttien <strong>ja</strong> komposiittien käsittelyt. Tämän johdosta käyttäjänmuistamistaakka kaaviotasosta vähenee <strong>ja</strong> osien <strong>ja</strong> kokonaisuuksien välilläkulkeminen helpottuu.Johdetut attribuutit on toteutettu siten, että käyttäjän ei tarvitse tietää, kuinkaarvo muodostuu. Kielessä johdettu<strong>ja</strong> <strong>ja</strong> tavallisia attribuutte<strong>ja</strong> käytetään samallatavalla. Kielen deklaratiivisuuden aste on korkea. Kyselyt suoritetaankuvailemalla primitiivien avulla yhteyksiä muuttujien välillä. Käyttäjän tuleeymmärtää vain <strong>ja</strong>etun muuttu<strong>ja</strong>n, disjunktion, konjunktion, sulkujen <strong>ja</strong> primitiivienmerkitys. Tämän lisäksi käyttäjän tulee omata käsitys intensionaalisesta<strong>ja</strong> ekstensionaalisesta tasosta.Kyselyillä voidaan tuottaa intensionaalista, ekstensionaalista tai intensionaalis-ekstensionaalistatietoa. Pelkästään ekstensionaaliset vastaukset riittävättietyissä tilanteissa. Intensionaalisilla vastauksilla voidaan puolestaan saadatietoa käyttäjälle vieraista rakenteista. Kysely voidaan tämän johdosta suorittaa,vaikka osa-kokonaisuushierarkia luokkien nimineen <strong>ja</strong> attribuutteineen ei olisikaantäysin selvillä. Lisäksi intensionaaliset kyselyt voivat havainnollistaa ekstensionaalisentason tieto<strong>ja</strong> [Motro, 1994]. Jos esimerkiksi halutaan kyselylläselvittää, mitkä komponentit voivat olla materiaaliltaan muovia, saadaan vastaukseksiintensionaalista tietoa. Tieto on tällöin kuitenkin ekstensionaalisenkriteerin mukaan tuotettu. Tämä on monesti paljon havainnollisempi <strong>ja</strong> tarkoitustaanparemmin palveleva vastaus kuin puhdas ekstensionaalinen tieto. Intensionaalis-ekstensionaalisillakyselyillä mahdollistetaan kyselyt, joissa vasta-