Prolog on loogikal põhinev arvutiprogrammeerimiskeel. Enamik arvutikeeli põhinevad probleemi lahendamiseks vajalikel sammudel. Prologi keel seevastu on “deklaratiivne” keel, mis näitab üksuste vahelisi loogilisi suhteid. Probleemi lahendamise viis on jäetud arvuti otsustada. Nimi Prolog pärineb prantsuskeelsest sõnast PROgrammation en LOGique ehk PROgramming LOGic.
Järgmine on lihtne Prolog programm:
esivanem (F, C) :- isa (F, C)
esivanem (P, Q) :- isa (P, R), esivanem (R, Q)
isa (John, Jim).
isa (jim, jerry).
isa (Jerry, Jason).
isa (jerry, jeff).
isa (Jason, Joshua).
Ülaltoodud programm näitab tõepärasid. Kui F on C isa, siis F on C esivanem. Kui P on mõne inimese R isa, kes on Q esivanem, siis P on Q esivanem. Seejärel antakse hulk tõeseid fakte, nagu näiteks John on jimi isa. Kui siis esitatakse probleemküsimus, kas John on Jeffi esivanem, saame vastuseks “Jah” järgmiselt:
?- esivanem (John, Jeff).
Jah
Kui Joshua esivanemad pakuvad huvi, kuvab programm kõik esivanemad järgmiselt:
?- esivanem (A, joshua)
A = Jason
A = Jerry
A = jim
A = Johannes
Pange tähele, et mõlemal ülaltoodud juhul ei öelnud programm, kuidas hindamist teha. Näiteks ei näidatud, kas alustada vanemast inimesest ja liikuda noorema poole või vastupidi. Samuti osade vahetamine järgmiselt:
esivanem (P, Q) :- esivanem (R, Q), isa (P, R)
Sellel pole programmi jaoks mingit vahet, kuna mõlemad paremal pool olevad osad peavad olema tõesed, et vasak pool oleks tõene.
Prologi keel keskendub seega suhetele, mitte sellele, kuidas probleemi lahendada. Programmi täitmise ajal loob Prolog hulga tõeseid väiteid, luues teadmistebaasi. Ülaltoodud näites oleks teadmistebaasis esivanem (john, jim), esivanem (jim, jerry), esivanem (john, jerry), esivanem (jim, jason), esivanem (john, jason), esivanem (john, jason), ja nii edasi. Selle teadmistebaasi loomist saab programmi käivitumise ajal jätkata ja seda saab lahenduste leidmiseks tõhusalt otsida. Täitmisel saab kasutada paralleeltöötlust, samaaegset täitmist mitme arvutiga.
Prologi keelt kasutatakse mitmes valdkonnas. See sai alguse süsteemides, mis olid suunatud loomulikele keeltele, nagu inglise keel; loomulik keel on üks tehisintellekti valdkondi. Prologi keelt kasutatakse ka sümboolses matemaatikas, sealhulgas algebras. Seda kasutatakse paljude muude rakenduste hulgas teoreemide tõestamisel, ekspertsüsteemides ja juhtimissüsteemides.