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.
40Kaksi ensimmäistä faktaa ovat yksipaikkaisia predikaatte<strong>ja</strong>. Faktojen nimet kirjoitetaanpienillä kir<strong>ja</strong>imilla. Logiikkaohjelmoi<strong>ja</strong> antaa faktoille tulkinto<strong>ja</strong>. Ensimmäinenfakta voidaan tulkitaan siten, että mikko on putkimies. Predikaatinnimenä on putkimies <strong>ja</strong> argumenttina mikko. Predikaatti voidaan tulkita myössiten, että putkimies on annettu ominaisuus <strong>ja</strong> mikko annettu objekti, jolla on kyseinenominaisuus. Kaksi jälkimmäistä faktaa ovat kaksipaikkaisia predikaatte<strong>ja</strong>,<strong>ja</strong> ne voidaan tulkita kahden objektin väliseksi relaatioksi. Jälkimmäiset kaksifaktaa voidaan tulkitaan siten, että ensimmäinen argumentti kuvaa henkilöä,joka asuu toisena argumenttina annetun objektin ilmaisemassa paikassa. Esimerkiksiviimeinen fakta voitaisiin kirjoittaa myös muodossaasuu(rovaniemi,pekka), mutta tulkinta pysyisi samana, jos logiikkaohjelmoi<strong>ja</strong>päättäisi, että ensimmäinen argumentti kuvaa asuinpaikkaa <strong>ja</strong> toinen argumenttiasu<strong>ja</strong>a. Tulkinta on siis ohjelmoi<strong>ja</strong>n vastuulla. Jos logiikkaohjelma muodostuuyllä olevista faktoista, voimme tehdä kyselyjä kyseessä olevaan logiikkaohjelmaanperustuen. Kysely ”putkimies(mikko)?” tuottaa vastaukseksi yesindikoimaan, että se on ohjelmasta vedettävissä oleva johtopäätös. Sen si<strong>ja</strong>ankysely ”putkimies(pekka)?” tuottaa vastaukseksi no. Myös muuttu<strong>ja</strong>a voi käyttääkyselyissä. Esimerkiksi kysely ”asuu(pekka,X)?” voidaan tulkita kyselyksi,missä pekka asuu. Vastaukseksi kyselyyn saadaan tällöin ”X = rovaniemi”. Kysely”asuu(X,Y)?” puolestaan antaisi kaksi vastausta,<strong>ja</strong>X = mikkoY = tampere,X = pekkaY = rovaniemi.Kyselyn prosessointi arvottaa siis muuttu<strong>ja</strong>t kaikilla mahdollisilla tavoilla, joillakysely on ohjelmasta vedettävissä oleva johtopäätös.Säännöt ovat logiikkaohjelmoinnissa tapa määrittää yhteyksiä objektien välille.Säännöillä on seuraava muoto: X