Prolog-programmering: Giv din AI-bot Det er det bedste liv.

Afsløring: Din support hjælper med at holde webstedet kørt! Vi tjener et henvisningsgebyr for nogle af de tjenester, vi anbefaler på denne side.


Prolog er et logisk programmeringssprog. Som sådan kan det virke ligefrem bizart for mennesker, der har erfaring med ting som C ++ eller Perl. Ideen er meget enkel. I et program definerer du fakta og regler (forholdet mellem fakta). Og baseret på dette kan du udføre forespørgsler. Men med disse enkle funktioner kan man gøre meget

For at give dig en idé om Prolog’s magt var det designet til at udføre naturlig sprogbehandling. Du har sandsynligvis hørt om ELIZA – en af ​​de første chatbots, der nogensinde er skrevet. Det er den slags ting Prolog var designet til at gøre.

Der er faktisk Prolog-versioner af ELIZA online. Men dette er bare starten. Det bruges i vid udstrækning på en række områder, som vi i vid udstrækning betragter som “kunstig intelligens”, især i ekspertsystemer.

Sådan fungerer Prolog

Prolog kan være forvirrende for mennesker, der har erfaring med proceduresprog. Selvom det bestemt har proceduremæssige aspekter, handler det mest om at skabe et system med fakta, og hvordan de forholder sig. Derefter lader du Prolog styre detaljerne for, hvordan det gøres. Procedureprogrammering involverer normalt at stille en masse ”hvis” spørgsmål. Prolog har det aspekt indbygget i datasystemet.

For at få en grundlæggende idé om Prolog, er vi nødt til at tale om dets tre grundlæggende aspekter: fakta, regler og forespørgsler.

  • Fakta: dette er bare hvad du ville tænke. Det fortæller systemet nogle oplysninger. I det følgende eksempel erklærer vi, at Heather kan lide Thomas:
    • kan lide (lyng, thomas).
  • Regler: disse skaber logiske udtryk. De bruger ting som: – operatøren, der dybest set betyder “hvis:
    • likes (thomas, lyng): – likes (lyng, thomas).

    Dette siger, at Thomas kan lide Heather, hvis “Heather kan lide Thomas” er sandt. Bemærk, at den originale kendsgerning er en implicit regel, der kunne have været skrevet som:

    • kan lide (lyng, thomas): = sandt.
  • forespørgsler: disse giver os mulighed for at stille systemspørgsmål. For eksempel:
    • ? kan lide (thomas, lyng).

    Dette stiller spørgsmålet, “Kan Thomas lide Heather?” Og Prolog svarede tilbage, “ja.” Dette skyldes, at vi først konstaterede, at Heather kunne lide Thomas med en kendsgerning. Så skabte vi en regel, der sagde, at Thomas kunne lide Heather, hvis hun kunne lide ham.

Et andet vigtigt aspekt af Prolog er dets anvendelse af variabler. Du har måske bemærket, hvordan alle eksemplerne hidtil er små bogstaver. I Prolog er et element (kaldet et “atom”), der begynder med et stort bogstav, en variabel. Så forestil dig, at vi ønskede at finde ud af, hvilke venner Heather havde, vi kunne oprette en variabel Friends til at gøre dette:

? kan lide (lyng, Venner).

Dette stiller spørgsmålet, “Hvem kan lyng lide?” Og Prolog indlæser venner med alt hvad der er defineret. I vores tilfælde er det Thomas. Men det kan være en liste over mennesker.

Ressourcer

Nu hvor du har en grundlæggende idé om, hvad Prolog handler om, lad os se på nogle ressourcer, som du kan komme i gang som en logisk programmør.

Vejledninger

  • Introduktion til Prolog: dette er en meget enkel tutorial, men en, der beskæftiger sig med nogle grundlæggende problemer, som andre tutorials har tendens til at glans over.
  • Prøv logisk programmering! En blid introduktion til Prolog: dette er fokuseret på logisk programmering som et andet programmeringsparadigme.
  • Prolog: – Tutorial: dette er en detaljeret, eksempelorienteret introduktion til sproget.
  • Lær Prolog nu: dette er en grundig tutorial, der starter i begyndelsen og kommer ind i avancerede emner.

Video-tutorials

Ud over de almindelige tutorials findes der mange gode videotutorials på Prolog. De er en overraskende nem måde at lære de grundlæggende.

  • Derek Banas’s Prolog-tutorial: dette er en fremragende timelang videotutorial, der får dig i gang helt fra starten: installation af Prolog på din computer.
  • Programmering i Prolog: dette er The Simple Engineers fire-delede videoindføring ved hjælp af SWI-Prolog, der kører på næsten alt.
  • Logisk programmering: dette er en del af en forelæsningsserie af Pallab Dasgupta om kunstig intelligens. Denne er over alt logisk programmeret. Der er også et opfølgende foredrag om Prolog specifikt.

Prolog-bøger

Hvis du virkelig er interesseret, kan du tjekke en bog, som kan føre dig gennem emnet mere grundigt.

  • Prolog-programmering af succes på en dag af Sam Key: en lille bog, der introducerer Prolog på en dag (eller aften).
  • Programmering i Prolog af Clocksin Mellish: dette er en grundig, men kortfattet introduktion til Prolog.
  • Prolog-programmering til kunstig intelligens af Ivan Bratko: på trods af hvordan det lyder, er dette en introduktion til Prolog – og en der går meget dybt ind i emnet.
  • The Art of Prolog: Advanced Programming Techniques af Sterling og Shapiro: dette er en klassiker, men ikke en introduktion. Det er noget, du skal tjekke ud, når du har det godt med sproget.

Prolog-implementeringer

Der er forskellige gratis Prolog-compilere og tolke tilgængelige.

  • Toy Prolog-tolk: dette er en online tolk fra Monash University, der er et godt værktøj til at tjekke små kodestykker. Det er især godt at bruge tutorials, før du gider i at installere en compiler på din computer.
  • SWI-Prolog: dette er en meget brugt Prolog-implementering, der er tilgængelig for stort set alle platforme.
  • GNU Prolog: dette er Daniel Diaz’s gratis compiler.
  • Gratis Prolog-samlere og implementeringer: Det frie lands liste over andre Prolog-implementeringer.

Andre ressourcer

Der er masser af andre ressourcer til rådighed. Nogle af dem stammer langt tilbage, så vær opmærksom på, at nogle af oplysningerne kan være forældede.

  • Prolog-ressourcevejledning: dette er en ganske gammel ressource, men den har en stor mængde nyttige oplysninger i sig.
  • Real World-programmering i SWI-Prolog: dette har masser af oplysninger til SWI-Prolog-kodere, men meget af det vil være nyttigt for folk, der bruger andre miljøer. Af særlig interesse er de ofte stillede spørgsmål til ## Prolog.
  • Prolog WikiBook: dette er en fremragende oversigt over sproget med en masse avanceret materiale.
  • Stack Overflow Prolog: dette er online forum for programmerere med en enorm mængde information. Se også siden Prolog-tagede spørgsmål.
  • SWI-Prolog Google Group: dette er ikke en meget aktiv gruppe, men der er stadig en masse kyndige mennesker på den. Tjek også gruppen comp.lang.prolog.

Resumé

Uanset om du vil fokusere på det eller bare bruge det til at supplere dine andre programmeringsværktøjer, er Prolog et fantastisk sprog at studere. Som et logisk programmeringssprog får det dig til at tænke på problemer på mindre proceduremæssige måder. Med ressourcerne her kan du lære og gå videre i din Prolog-programmering.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map