Prolog-programmering: Ge din AI-bot Det är det bästa livet.

Avslöjande: Ditt stöd hjälper till att hålla webbplatsen igång! Vi tjänar en remissavgift för några av de tjänster vi rekommenderar på denna sida.


Prolog är ett logiskt programmeringsspråk. Som sådan kan det verka rent konstigt för människor som har erfarenhet av saker som C ++ eller Perl. Idén är väldigt enkel. I ett program definierar du fakta och regler (förhållandena mellan fakta). Och baserat på detta kan du utföra frågor. Men med dessa enkla funktioner kan mycket göras

För att ge dig en uppfattning om Prologs kraft, var den utformad för att göra naturlig språkbearbetning. Du har antagligen hört talas om ELIZA – en av de första chatbots som någonsin har skrivits. Det är den typ som Prolog var utformad för att göra.

Det finns faktiskt Prolog-versioner av ELIZA online. Men detta är bara början. Det används ofta på ett antal områden som vi i stort sett betraktar som “artificiell intelligens”, särskilt i expertsystem.

Hur Prolog fungerar

Prolog kan vara förvirrande för personer som har erfarenhet av procedurspråk. Även om det verkligen har processuella aspekter på det handlar det mest om att skapa ett system med fakta och hur de förhåller sig. Sedan låter du Prolog hantera detaljerna om hur det görs. Procedurprogrammering innebär vanligtvis att ställa många “if” -frågor. Prolog har den aspekten inbyggd i datasystemet.

För att få en grundläggande uppfattning om Prolog måste vi prata om dess tre grundläggande aspekter: fakta, regler och frågor.

  • Fakta: det här är precis vad du skulle tro. Det berättar för systemet viss information. I följande exempel förklarar vi att Heather gillar Thomas:
    • gillar (ljung, thomas).
  • regler: dessa skapar logiska uttryck. De använder saker som: – operatören, som i princip betyder “om:
    • gillar (thomas, ljung): – gillar (heather, thomas).

    Detta säger att Thomas gillar Heather om “Heather gillar Thomas” är sant. Observera att det ursprungliga faktumet är en implicit regel som kunde ha skrivits som:

    • gillar (ljung, thomas): = sant.
  • frågor: dessa tillåter oss att ställa frågor om systemet. Till exempel:
    • ? gillar (Thomas, ljung).

    Detta ställer frågan, “Gillar Thomas Heather?” Och Prolog svarade tillbaka, “ja.” Det beror på att vi först konstaterade att Heather gillade Thomas med ett faktum. Sedan skapade vi en regel som uppgav att Thomas gillade Heather om hon gillade honom.

En annan viktig aspekt av Prolog är dess användning av variabler. Du kanske har lagt märke till hur alla exemplen som hittills lämnats är små bokstäver. I Prolog är ett element (kallad en “atom”) som börjar med en stor bokstav en variabel. Så föreställ dig att vi ville ta reda på vilka vänner Heather hade, vi kunde skapa en variabel Friends för att göra detta:

? gillar (ljung, vänner).

Detta ställer frågan, “Vem gillar ljung?” Och Prolog laddar vänner med vad som har definierats. I vårt fall är det Thomas. Men det kan vara en lista med människor.

Resurser

Nu när du har en grundläggande uppfattning om vad Prolog handlar om, låt oss titta på några resurser för att komma igång som logikprogrammerare.

Handledningar

  • Introduktion till Prolog: det här är en väldigt enkel handledning, men en som behandlar några grundläggande problem som andra handledning tenderar att glans över.
  • Prova logikprogrammering! En mild introduktion till Prolog: detta fokuserar på logisk programmering som ett annat programmeringsparadigm.
  • Prolog: – Handledning: detta är en detaljerad, exempelorienterad introduktion till språket.
  • Lär dig Prolog nu: detta är en grundlig handledning som börjar i början och går in i avancerade ämnen.

Videohandledning

Förutom de vanliga tutorials finns det många bra videohandledning på Prolog. De är ett förvånansvärt enkelt sätt att lära sig grunderna.

  • Derek Banas Prolog Tutorial: det här är en utmärkt timlånga videostudie som får dig igång från början: installera Prolog på din dator.
  • Programmering i Prolog: det här är The Simple Engineers fyradelade videointroduktion med SWI-Prolog, som körs på nästan allt.
  • Logikprogrammering: detta är en del av en föreläsningsserie av Pallab Dasgupta om konstgjord intelligens. Den här är logisk programmering över alla. Det finns också en uppföljningsföreläsning om Prolog specifikt.

Prolog Books

Om du verkligen är intresserad kanske du vill kolla in en bok som kan ta dig igenom ämnet grundligare.

  • Prolog-programmering Framgång på en dag av Sam Key: en liten bok som introducerar Prolog på en dag (eller kväll).
  • Programmering i Prolog av Clocksin Mellish: detta är en grundlig men kortfattad introduktion till Prolog.
  • Prolog-programmering för konstgjord intelligens av Ivan Bratko: trots hur det låter så är detta en introduktion till Prolog – och en som går mycket djup in i ämnet.
  • The Art of Prolog: Advanced Programming Techniques av Sterling och Shapiro: detta är en klassiker, men inte en introduktion. Det är något du bör kolla in när du är bekväm med språket.

Prolog-implementeringar

Det finns olika gratis Prolog-kompilatorer och tolkar tillgängliga.

  • Toy Prolog-tolk: detta är en online-tolk från Monash University som är ett bra verktyg för att kolla in små kodbitar. Det är särskilt bra att använda med självstudier innan du besvärar dig att installera en kompilator på din dator.
  • SWI-Prolog: detta är ett allmänt använt Prolog-genomförande som är tillgängligt för nästan alla plattformar.
  • GNU Prolog: det här är Daniel Diaz gratis kompilator.
  • Gratis Prolog-kompilatorer och implementeringar: Det fria lands listan över andra Prolog-implementationer.

Andra resurser

Det finns många andra resurser tillgängliga. En del av det går långt tillbaka, så var medveten om att en del av informationen kan vara inaktuell.

  • Prolog Resource Guide: detta är en ganska gammal resurs, men den har en enorm mängd användbar information i den.
  • Real World-programmering i SWI-Prolog: detta har massor av information för SWI-Prolog-kodare, men mycket av det kommer att vara användbart för människor som använder andra miljöer. Av särskilt intresse är de vanliga frågorna för ## Prolog.
  • Prolog WikiBook: detta är en utmärkt översikt över språket med mycket avancerat material.
  • Stack Overflow Prolog: detta är onlineforumet för programmerare med en enorm mängd information. Kolla också på sidan Prolog-taggade frågor.
  • SWI-Prolog Google Group: detta är inte en oerhört aktiv grupp, men det finns fortfarande många kunniga människor på den. Kolla också in komp.lang.prolog-gruppen.

Sammanfattning

Oavsett om du vill fokusera på det eller bara använda det för att komplettera dina andra programmeringsverktyg är Prolog ett bra språk att studera. Som ett logiskt programmeringsspråk får du att tänka på problem på mindre processuella sätt. Med resurserna här kan du lära dig och gå vidare i din Prolog-programmering.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me