Mis on Prolog?

1970. aastate alguses loodud Prolog, mis on tõenäoliselt sõnade programm ja loogika kombinatsioon, on üks varasemaid arvutiprogrammeerimiskeeli. Osaliselt seetõttu, et tegemist on väga lihtsa koodiga, mis kasutab esimest järku loogikat ja vähest arvutust, on see endiselt populaarne. Algset käsukomplekti on oluliselt suurendatud ja arendatud paljudeks variantideks, kuna see sobib eriti hästi keele töötlemiseks. Need programmi kaks peamist atribuuti pakuvad selliste rakenduste töötlemist nagu tehisintellekt ja automatiseeritud telekommunikatsioon.

Prolog kasutab formaalset esimest järku loogikat. Arvutisse laaditud juhised on kindlad; neil ei ole ähmast arvutuslikku kaalu. Avaldises on keele süntaks piiratud reeglite kogum ja semantika on määratletud tavaliselt komplektidega, nagu üksikud deskriptorid, mitmed loendid ja stringid, või vahemikuga, nagu numbrilised jadad.

Koos mõne paremini tuntud kodeerimisega, näiteks hüperteksti märgistuskeelega (HTML), kuulub Prolog tarkvara klassi, mida tavaliselt nimetatakse deklaratiivseteks programmeerimiskeelteks ja mis tavaliselt kasutavad lihtsat lauset “X võrdub Y”, mis on määratletud kui “termin”. Arvutile öeldakse, mida teha; ei ole kästud ise arvutada, kuidas sinna jõuda. Arvutile antakse faktide kogum “predikaadiga” ja seosed, mis on määratletud kui “klausel”, millest sisendpäring peaks andma tõese ja vale väljundi järelduse. See ei käivita algoritmi, vaid tuletab lihtsa vastuse, liites ja lahutades või eitades teadaolevatest definitsioonidest. Prologi andmetöötlust kasutatakse teooriate ja nende aluseks olevate eelduste testimiseks ja tõestamiseks, alates arenenud matemaatikast ja lõpetades bioloogiaga ja lõpetades filosoofiaga.

Üks intelligentsuse kognitiivsetest teooriatest on see, et ajus on suur, kuid piiratud leksikaalne teabevaru, mida otsitakse, töödeldakse ja edastatakse, mille tulemuseks on teabe suurem keerukus või lihtsus. Suureneva mälumahu ja kiire juurdepääsuga on see domineeriv paradigma, mis on juhtinud arvutiteaduse püha graali – tehisintellekti. Paljude arvates on selles valdkonnas võtmetähtsusega liides ja keel. Prologi programmeerimist saab kasutada lihtsalt visuaalsete sümbolite määratlemise teel GUI-de loomiseks, graafilise kasutajaliidese loomiseks Apple®-i poolt. Seda saab kasutada ka lugemiseks, tõlkimiseks ja näoilme loomiseks.

Arvutuslingvistika on oluliselt keerulisem ja kuigi Prolog on aastate jooksul edasi arenenud, et kaasata näiteks mõne võõrkeele unikaalseid grammatilisi põhimõtteid, kahtlevad paljud teadlased, kas see esindab keelt tõhusalt. Piiratud ekspertsüsteemide jaoks, nagu arvutipõhised hääletuvastuse tehnilise toe telefoniliinid, kasutatakse Prologi programmeerimist teatud määral tõhusalt. Seda saab integreerida ka kõrgema järgu loogikatarkvarasse – kvantifitseerivatesse keeltesse, nagu C+ või java –, kuid tihendamine ja teisaldatavus jäävad selle andmemahuka programmeerimiskeele probleemiks.