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.

67res(C,Material,sum(Comp:weigth)) where apply_to [bicycle], materialis_property_of C, Comp is_instance_of C,Comp is_component_object_of bicycle,Comp:material(Material).Kyselyssä where-primitiivin oikealla puolella ilmaistaan, että kyselyä sovelletaanainoastaan bicycle:n osa-kokonaisuussuhteille apply_to-primitiivin avulla.C-muuttu<strong>ja</strong>lla tarkoitetaan komponenttityyppiä, jolla on attribuutti nimeltäänmaterial. Lisäksi ilmaistaan, että Comp-muuttu<strong>ja</strong> tarkoittaa C-muuttu<strong>ja</strong>n mukaistailmentymää <strong>ja</strong> että ilmentymän tulee olla bicycle:n alikomponenttioliona. LopuksiComp-muuttu<strong>ja</strong>n arvona olevan olion material-attribuutin arvoon viitataanMaterial-muuttu<strong>ja</strong>lla. Vastausrelaatioon halutaan mukaan komponenttityyppi,tyyppiä vastaava materiaali <strong>ja</strong> komponentti-materiaali -paria vastaavienkomponenttien yhteenlaskettu paino. Komponenttityypin tieto löytyy siis C-muuttu<strong>ja</strong>sta <strong>ja</strong> tyyppiin liittyvä materiaali Material-muuttu<strong>ja</strong>sta. Soveltamallasum –aggregointifunktiota, yksittäisen komponenttiolion painoon, saadaankaikkien ehdot täyttävien komponenttien painojen summa selville.Kyselyn vastauksena saadaan relaatiores(frame,steel,10.2)res(saddle,leather,1.1)res(saddle,plastic,2.2).Analyyttistä voimaa sisältyy myös kyselyyn, jossa saadaan vastaukseksi polkupyöräntietyn osan kaikki komponentit, niiden ominaisuudet <strong>ja</strong> ominaisuuksienarvot. Tällöin saadaan kerralla kattava näkemys tietyn komponentin intensionaalisesta<strong>ja</strong> ekstensionaalisesta tasosta. Seuraavassa esimerkkikyselyssä halutaansaada selville tricycle:n steering:in kaikki alikomponentit <strong>ja</strong> niitä vastaavatominaisuudet. Lisäksi jokaisen ominaisuuden kohdalla halutaan vielä ominaisuudenarvo. Kyselyres(T,P,Z) where apply_to [tricycle], X is_component_object_of steering,Xis_instance_of T,P is_property_of T,X:P(Z).tuottaa laa<strong>ja</strong>n relaation, jonka tupleista esittelen vain muutaman:result(front_axle,l,4)result(front_axle,weigth,14)result(handlebars,weigth,1.1)

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

Saved successfully!

Ooh no, something went wrong!