Uvod:
Prolog je a logično programiranje jezik. Ima pomembno vlogo pri umetni inteligenci. Za razliko od mnogih drugih programskih jezikov je Prolog mišljen predvsem kot deklarativni programski jezik. V prologu je logika izražena kot relacije (imenovane dejstva in pravila). Jedro prologa je na logika se uporablja. Formulacija ali izračun se izvede z izvajanjem poizvedbe čez te relacije.
Namestitev v Linuxu:
Odprite terminal (Ctrl+Alt+T) in tip:
sudo apt-get install swi-prolog>
Sintaksa in osnovna polja:
V prologu razglasimo nekaj dejstev. Ta dejstva sestavljajo bazo znanja sistema. Poizvedujemo lahko po bazi znanja. Izhod dobimo kot pritrdilen, če je naša poizvedba že v zbirki znanja ali jo implicira Baza znanja, sicer dobimo izhod kot negativen. Bazo znanja torej lahko obravnavamo kot podobno zbirki podatkov, po kateri lahko izvajamo poizvedbe. Prolog dejstva so izražena v določenem vzorcu. Dejstva vsebujejo entitete in njihov odnos. Entitete so zapisane v oklepaju in ločene z vejico (, ). Njuno razmerje je izraženo na začetku in zunaj oklepaja. Vsako dejstvo/pravilo se konča s piko (.). Torej, tipično uvodno dejstvo je naslednje:
java while zanka
Format : relation(entity1, entity2, ....k'th entity). Example : friends(raju, mahesh). singer(sonu). odd_number(5). Explanation : These facts can be interpreted as : raju and mahesh are friends. sonu is a singer. 5 is an odd number.>
Ključne funkcije :
1. Poenotenje: Osnovna ideja je, ali lahko dani izrazi predstavljajo isto strukturo.
2. Sledenje nazaj: Ko naloga ne uspe, prolog sledi nazaj in poskuša izpolniti prejšnjo nalogo.
3. Rekurzija: Rekurzija je osnova za vsako iskanje v programu.
Izvajanje poizvedb:
Tipično prologno poizvedbo lahko zastavimo kot:
Query 1 : ?- singer(sonu). Output : Yes. Explanation : As our knowledge base contains the above fact, so output was 'Yes', otherwise it would have been 'No'. Query 2 : ?- odd_number(7). Output : No. Explanation : As our knowledge base does not contain the above fact, so output was 'No'.>
Prednosti:
1. Bazo podatkov je enostavno zgraditi. Ne potrebuje veliko truda pri programiranju.
2. Ujemanje vzorcev je preprosto. Iskanje temelji na rekurziji.
3. Ima vgrajeno rokovanje s seznami. Olajša igranje s katerim koli algoritmom, ki vključuje sezname.
Slabosti:
1. LISP (drug logični programski jezik) prevladuje nad prologom glede V/I funkcij.
2. Včasih vnos in izhod nista preprosta.
Aplikacije:
Prolog se zelo uporablja v umetni inteligenci (AI). Prolog se uporablja tudi za ujemanje vzorcev v drevesih za razčlenjevanje naravnega jezika.
Referenca 1: https://en.wikipedia.org/wiki/Prolog
Referenca 2: http://www.swi-prolog.org/