Mikä on Prologin kieli?

Prolog on tietokoneohjelmointikieli, joka perustuu logiikkaan. Useimmat tietokoneen kielet perustuvat ongelman ratkaisemiseen tarvittaviin vaiheisiin. Toisaalta prologikieli on ”deklaratiivinen” kieli, joka osoittaa entiteettien väliset loogiset suhteet. Tapa ratkaista ongelma jätetään tietokoneelle. Nimi Prolog tulee ranskalaisesta PROgrammation en LOGique, eli PROgramming LOGic.

Seuraava on yksinkertainen Prolog -ohjelma:

esi-isä (F, C):- isä (F, C)
esi (P, Q):- isä (P, R), esi (R, Q)
isä (John, Jim).
isä (jim, jerry).
isä (jerry, jason).
isä (jerry, jeff).
isä (jason, joshua).

Yllä oleva ohjelma osoittaa totuuksia. Jos F on C: n isä, niin F on C: n esi -isä. Jos P on jonkin R: n isä, joka on Q: n esi -isä, niin P on Q: n esi -isä. John on Jimin isä. Jos sitten esitetään ongelmakysymys siitä, onko John Jeffin esi -isä, saamme vastauksen “Kyllä” seuraavasti:

?- esi-isä (John, Jeff).
Kyllä

Jos joshuan esi -isät ovat kiinnostavia, ohjelma näyttää kaikki esi -isät seuraavasti:
?- esi-isä (A, joshua)
A = jason
A = jerry
A = jim
A = John
Huomaa, että molemmissa yllä mainituissa tapauksissa ohjelma ei kertonut arvioinnin suorittamisesta. Se ei esimerkiksi osoittanut, aloitetaanko vanhemmasta henkilöstä ja edetäänkö nuorempaan vai päinvastoin. Vaihda myös osat seuraavasti:
esi (P, Q):- esi (R, Q), isä (P, R)
Ohjelmalla ei olisi mitään väliä, koska molempien oikealla puolella olevien osien on oltava totta, jotta vasen puoli on totta.
Prologin kieli keskittyy siis suhteisiin eikä ongelman ratkaisemiseen. Ohjelman suorittamisen aikana Prolog rakentaa useita oikeita lausuntoja ja luo tietokannan. Yllä olevassa esimerkissä tietokannalla ei olisi tietyssä järjestyksessä esi -isää (john, jim), esi -isää (jim, jerry), esi -isää (john, jerry), esi -isää (jim, jason), esi -isää (john, jason), ja niin edelleen. Tietokannan rakentaminen voi jatkua ohjelman suorittamisen aikana, ja sitä voidaan etsiä tehokkaasti ratkaisujen saamiseksi. Suoritus voi käyttää rinnakkaisprosessointia, useiden tietokoneiden samanaikaista suorittamista.
Prologin kieltä käytetään monilla aloilla. Se alkoi järjestelmissä, jotka on suunniteltu luonnollisille kielille, kuten englannille; luonnollinen kieli on yksi tekoälyn osa -alueista. Prologin kieltä käytetään myös symbolisessa matematiikassa, mukaan lukien algebra. Sitä käytetään lauseiden todistamiseen, asiantuntijajärjestelmiin ja ohjausjärjestelmiin monien muiden sovellusten joukossa.