b'\n_START_ARTICLE_\nSymbolinen logiikka\n_START_PARAGRAPH_\nSymbolinen logiikka on matematiikkaa sivuava logiikan osa, joka tutkii merkkijonoina esitettyjen symbolien puhtaita formaaleja ominaisuuksia.   Sille on kaksi tarkoitusta. Ensiksi, filosofisesta logiikan n\xc3\xa4k\xc3\xb6kulmasta symbolisen logiikan symbolien n\xc3\xa4hd\xc3\xa4\xc3\xa4n esitt\xc3\xa4v\xc3\xa4n sanoja. Toiseksi, tietojenk\xc3\xa4sittelytieteen n\xc3\xa4k\xc3\xb6kulmasta symbolisen logiikan s\xc3\xa4\xc3\xa4nn\xc3\xb6iss\xc3\xa4 k\xc3\xa4sitelt\xc3\xa4v\xc3\xa4t symbolit ovat tietojenk\xc3\xa4sittelyprosessin elementtej\xc3\xa4._NEWLINE_Symbolinen logiikka jaetaan tavallisesti kahteen alaosaan, propositiologiikkaan ja predikaattilogiikkaan. Muita muotoja ovat temporaalilogiikka, modaalilogiikka ja sumea logiikka.\n_START_SECTION_\nSymbolinen logiikka ja Prolog\n_START_PARAGRAPH_\nProlog-ohjelmointikieli soveltaa predikaattilogiikkaa, joten se tukee my\xc3\xb6s symbolista logiikka ja samalla ohjelmointia. Prolog ohjelmat kuvaavat suhteita k\xc3\xa4ytt\xc3\xa4en klausuuleja (englanniksi clause). Pelkistettyn\xc3\xa4 Prolog rajoittuu Hornin klausuuleihin, mik\xc3\xa4 on Turing-vahva ensimm\xc3\xa4isen kertaluvun predikaattilogiikan osajoukko.  Siin\xc3\xa4 on kaksi lausetyyppi\xc3\xa4: faktat ja s\xc3\xa4\xc3\xa4nn\xc3\xb6t.  S\xc3\xa4\xc3\xa4nt\xc3\xb6 on muotoa: _NEWLINE_Otsikko\xc2\xa0:- Runko._NEWLINE_Se luetaan seuraavasti "Otsikko on tosi, jos Runko tulee todeksi". S\xc3\xa4\xc3\xa4nn\xc3\xb6n runko koostuu predikaattikutsuista, joita sanotaan s\xc3\xa4\xc3\xa4nn\xc3\xb6n tavoitteiksi (goal). _NEWLINE_Prologin sis\xc3\xa4\xc3\xa4nrakennettu toiminto pilkku (,/2) tarkoittaa logiikan konjuktiota, kun taas puolipiste (;/2) tarkoittaa disjunktiota. Konjunktioita ja disjunktioita voi esiinty\xc3\xa4 runko-osassa, mutta ei s\xc3\xa4\xc3\xa4nn\xc3\xb6n otsikossa._NEWLINE_Sellaisia lauseita, joissa ei ole runko-osaa, kutsutaan faktoiksi. Esimerkiksi tom on kissa:_NEWLINE_kissa(tom)._NEWLINE_Fakta toimii kuten pelkistetty relaatiotietokanta. Niinp\xc3\xa4 Prologilta voidaan kysy\xc3\xa4 kaikkien kissojen nimet yksitellen: _NEWLINE_?- kissa(X).  _NEWLINE_X = tom\n_START_SECTION_\nPrologin suoritus\n_START_PARAGRAPH_\nPrologin suoritus k\xc3\xa4ynnistyy yhdell\xc3\xa4 tavoitteella, joita kutsutaan kyselyksi. Prologin p\xc3\xa4\xc3\xa4ttelykone pyrkii l\xc3\xb6yt\xc3\xa4m\xc3\xa4\xc3\xa4n resoluutioperiaatteen mukaan kielteisen ehdon._NEWLINE_Jos negaatiota ei l\xc3\xb6ydyk\xc3\xa4\xc3\xa4n, siit\xc3\xa4 seuraa, ett\xc3\xa4 kysely voimassa olevine muuttuja-arvoineen tulee vahvistetuksi. N\xc3\xa4in vastaava looginen ketju ohjelmassa toteutuu. T\xc3\xa4ll\xc3\xb6in kaikki generoidut muuttuja-arvot palautuvat k\xc3\xa4ytt\xc3\xa4j\xc3\xa4lle ja kyselyn sanotaan onnistuneen. Toiminnallisesti Prologin suoritusstrategian voidaan ajatella olevan tyypillisten ohjelmointikielten (Java, C++, Pascal) funktiokutsujen yleistys, mutta erityispiirteen\xc3\xa4 Prologissa on se, ett\xc3\xa4 samalle lauseelle voi olla useita vaihtoehtoisia otsikkoja jopa samoilla argumenteilla. T\xc3\xa4llaisessa tapauksessa Prolog luo valinta-pisteen, joka yhdist\xc3\xa4\xc3\xa4 eri vaihtoehdot. Sitten Prolog alkaa suorittamaan vaihtoehtoja alusta lukien. Jos tietty vaihtoehto toteutuu - niin sanotusta cut-termist\xc3\xa4 riippuen - pyrit\xc3\xa4\xc3\xa4n toteuttamaan my\xc3\xb6s seuraavat valintapisteen (lauseen) vaihtoehdot tai hyv\xc3\xa4ksyt\xc3\xa4\xc3\xa4n pelk\xc3\xa4st\xc3\xa4\xc3\xa4n yksi vaihtoehto. Jos yksikin kysely lauseen sis\xc3\xa4ll\xc3\xa4 ep\xc3\xa4onnistuu, silloin siihen kohdistuvat muuttuja-arvot kumoutuvat ja suoritus palaa edelliseen valintapisteeseen ja se jatkuu seuraavasta vaihtoehdosta, jos sellaisia on j\xc3\xa4ljell\xc3\xa4. T\xc3\xa4t\xc3\xa4 kumoutumis- ja palautumistoimintoa kutsutaan per\xc3\xa4ytykseksi._NEWLINE_Esimerkiksi kaikki ihmiset ovat kuolevaisia ja erityisesti kerrotaan, ett\xc3\xa4 Sokrates on ihminen:_NEWLINE_kuolevainen(X):- ihminen(X). _NEWLINE_ihminen(Sokrates)._NEWLINE_Seuraava kysely palauttaa tiedon, ett\xc3\xa4 Sokrates on kuolevainen, koska h\xc3\xa4n on ihminen:_NEWLINE_?- kuolevainen(Sokrates)._NEWLINE_Yes.'