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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

65res(aluminium).Jos käyttäjä ei ole varma, viittaako arvo 5435534 oikean nimiseen attribuuttiin,hän voi tarkistaa sen muuttamalla yllä olevan kyselyn vastauksen muodostamisilmaisuaseuraavalla tavalla: res(Y:material,P). Tällöin vastauksesta olisi selvinnyt,mihin attribuuttiin arvo liittyy. Tällainen kysely olisi ollut intensionaalis-ekstensionaalinenkysely, koska vastauksessa olisi ollut molempien tasojentietoa.Viimeinen ekstensionaalinen esimerkkikysely on myös yhdistetty kysely. Siinäkyselyllä analysoidaan, kuinka paljon kaikki bicycle:jen teräksiset komponentitpainavat yhteensä.res(sum(Comp:weigth)) where material is_property_of C, Compis_instance_of C,Comp is_component_object_of bicycle, Comp:material(steel).Kyselyssä ilmaistaan, että Comp-muuttu<strong>ja</strong>n tulee olla olio, jolla on material –niminen attribuutti <strong>ja</strong> jonka arvona on steel. Lisäksi komponentin tulee olla bicycle:nkomponenttina. Kyselyn vastaus onres(9).6.3.3. Intensionaalis-ekstensionaaliset kyselytTämä kyselytyyppi sisältää ky<strong>selykielen</strong> monipuolisimmat kyselyt. Vastauksenasaadaan kummankin abstraktiotason tieto<strong>ja</strong>, <strong>ja</strong> lisäksi tämäkin kyselytyyppisisältää monia mielekkäitä yhdistettyjä kyselyjä. Kyselytyypin vastaukset ovatmonissa tilanteissa havainnollisempia kuin edellä esitetyt kyselytyypit. Tämäjohtuu siitä, että arvo<strong>ja</strong> voidaan havainnollistaa arvoa vastaavalla intensionaalisellatasolla. Primitiivien esittelyn yhteydessä muodostinkin jo yksinkertaisenintensionaalis-ekstensionaalisen kyselyn. Siinä hain osa-kokonaisuussuhteenylimmän tason oliotyypit <strong>ja</strong> tyyppejä vastaavien olioiden price-attribuutin arvo.Kysely on siitä kätevä, että käyttäjän ei tarvitse tehdä kyselyä jokaiselle ylimmäntason oliotyypille erikseen. Lisäksi vastauksesta on helppo vertailla erityyppien hinto<strong>ja</strong>. Eri tyyppisten polkupyörien keskihinta olisi ollut helpostiilmaistavissa soveltamalla kyselyn vastaukseen avg –aggregointifunktiota.Seuraavalla kyselyllä haetaan kaikkien tricycle:n komponenttien nimet <strong>ja</strong>näitä komponentte<strong>ja</strong> vastaava keskimääräinen paino:res(I,avg(X:weigth)) where X is_component_object_of tricycle, Xis_instance_of I.

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

Saved successfully!

Ooh no, something went wrong!