Ievads:
Prolog ir a loģiskā programmēšana valodu. Tam ir svarīga loma mākslīgajā intelektā. Atšķirībā no daudzām citām programmēšanas valodām, Prolog galvenokārt ir paredzēta kā deklaratīva programmēšanas valoda. Prologā loģika tiek izteikta kā attiecības (sauktas par faktiem un noteikumiem). Prologa galvenā sirds atrodas pie loģika tiek piemērots. Formulēšana vai aprēķināšana tiek veikta, palaižot vaicājumu pār šīm relācijām.
Instalēšana operētājsistēmā Linux:
Atveriet termināli (Ctrl+Alt+T) un ierakstiet:
sudo apt-get install swi-prolog>
Sintakse un pamatlauki:
Prologā mēs paziņojam dažus faktus. Šie fakti veido sistēmas zināšanu bāzi. Mēs varam veikt vaicājumus zināšanu bāzē. Mēs saņemam izvadi kā apstiprinošu, ja mūsu vaicājums jau ir zināšanu bāzē vai tas ir norādīts zināšanu bāzē, pretējā gadījumā mēs saņemam izvadi kā negatīvu. Tātad zināšanu bāzi var uzskatīt par līdzīgu datu bāzei, pret kuru mēs varam veikt vaicājumus. Prologa fakti tiek izteikti noteiktā veidā. Fakti satur entītijas un to attiecības. Entītijas raksta iekavās, atdalot tās ar komatu (, ). To attiecības tiek izteiktas sākumā un ārpus iekavām. Katrs fakts/noteikums beidzas ar punktu (.). Tātad tipisks prologa fakts ir šāds:
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.>
Galvenās iezīmes :
1. Unifikācija: Pamatideja ir tāda, vai dotajiem terminiem var attēlot vienu un to pašu struktūru.
2. Atkāpšanās: Ja uzdevums neizdodas, prologs izseko atpakaļ un mēģina izpildīt iepriekšējo uzdevumu.
3. Rekursija: Rekursija ir pamats jebkurai meklēšanai programmā.
Darbojas vaicājumi:
Tipisku prologa vaicājumu var uzdot šādi:
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'.>
Priekšrocības:
1. Viegli veidojama datubāze. Nav vajadzīgas lielas programmēšanas pūles.
2. Modeļu saskaņošana ir vienkārša. Meklēšana ir balstīta uz rekursiju.
3. Tam ir iebūvēta sarakstu apstrāde. Atvieglo spēlēšanu ar jebkuru algoritmu, kas ietver sarakstus.
Trūkumi :
1. LISP (cita loģiskās programmēšanas valoda) dominē pār prolog attiecībā uz I/O funkcijām.
2. Dažreiz ievade un izvade nav vienkārša.
Lietojumprogrammas:
java programmas cilpa
Prolog tiek plaši izmantots mākslīgajā intelektā (AI). Prolog tiek izmantots arī modeļu saskaņošanai, izmantojot dabiskās valodas parsēšanas kokus.
1. atsauce: https://en.wikipedia.org/wiki/Prolog
2. atsauce: http://www.swi-prolog.org/