Logikprogrammering
I den reneste form er ideen med logikprogrammering, at en computer ikke skal have eksplicitte instruktioner i form af et traditionelt program, men derimod kun en problembeskrivelse og tilstrækkelig viden om problemområdet, begge to repræsenteret ved rent logiske klausuler i form af definitioner, egenskaber og relationer mellem forskellige objekter og begreber. Det er så logikprogramfortolkerens opgave at løse det givne problem ved at ræsonnere med programklausuler og som en konsekvens af dette at generere og udføre de nødvendige numeriske og ikke-numeriske maskininstruktioner. Alle løsninger på problemet skal fremkomme.
Da al den relevante viden for en given problemkreds er repræsenteret i en meget generel deklarativ form, kan den bruges til løsning af mange forskellige specifikke problemer, selv de, der ikke er kendt på det tidspunkt, hvor specifikationen af den pågældende viden bliver formuleret. Hovedbegreber i forbindelse med en abstrakt logikprogramfortolker er inferensmaskine, non-determinisme, og unifikation. Tilsvarende komponenter findes også i PROLOG, den hidtil bedste implementation.
Logikprogrammering kan også opfattes som generelle modelleringsprog beregnet til at beskrive menneskelige begreber og tankegang.
