Prolog ( Programmering i Logic ) ble utviklet i Frankrike for å skape naturlige språk oversettere . Det ble perfeksjonert i Skottland for å skrive automatiske teorem rørnormaler for matematikk og logikk . Det kom til internasjonal oppmerksomhet da det ble valgt for den japanske " femte generasjon" -prosjektet . Prolog programmene består av en nøye sortert liste over regler ( skrevet som horn klausuler ) . Brukeren stiller et spørsmål og programmet svar - i forhold til reglene . Det er en bemerkelsesverdig nyttig paradigme . Standard Horn klausulene
Horn klausuler ble oppfunnet i 1951 av den amerikanske matematikeren Alfred Horn . I hans ord , er et horn klausul " en disjunksjon av litteraler som har høyst en positiv bokstavelig . " En typisk horn klausul ser slik ut: ( ikke A) eller ( ikke B ) eller C. Den positive bokstavelige er C , både A og B er "negative ". Hvis horn klausulen har nøyaktig én positiv bokstavelig - som Prolog horn klausuler gjør - det kalles et klart horn klausul . Horn klausuler er vanligvis skrevet i en forenklet , men tilsvarende format . Disjunktiv setningen ( ikke A) eller ( ikke B) eller C er logisk ekvivalent med uttalelsen ( A og B ) impliserer C. Dette forenkles til : A, B - : c (i hvilket den "-: " representerer implikasjonen pil) . Den enkleste horn klausulen er en eneste positive bokstavelig ( der det er ingen pil ) - dette er den samme for begge horn klausuler og Prolog
Prolog Horn klausuler
< . p> Prolog regler ser ut som horn klausuler , bortsett pilen peker den andre veien . Grammatikken regelen om at en setning består av et substantiv setning og et verb setning er skrevet S : - NP , VP . Regelverket kan også inneholde utsagn som et substantiv setning består av en artikkel og et substantiv , skrevet NP : - A, N. Hvis det er en annen regel som sier at et substantiv setning er et flertall substantiv , kan det bli skrevet NP : - PN . Når alle regler er på plass , kan brukeren sende inn en " setning " til programmet, og programmet vil prøve å matche " setning " til reglene. Prolog fungerer bakover gjennom reglene - hvis spørsmålet samsvarer med konklusjonen (positiv bokstavelig ) av en regel , forløpere (negative literals ) blir de nye spørsmålene . Hvis alle spørsmål til slutt kampen opp med fakta , er den " setningen" en gyldig setning. Dette matchende prosessen fungerer for matematikk, logikk og andre regelbaserte systemer , så vel som det fungerer for grammatikk.
The Cut Clause
p Det er tre typer av horn klausuler som brukes i Prolog : den ( ingen pil ) uttalelse om faktum , regelen (med en pil , en positiv bokstavelig og minst én negativ bokstavelig ) og kuttet. Cut klausuler inneholde "!" symbol . Når Prolog tolk ser kuttet symbol (uttales " bang" ) , slettes de resterende regler som har samme positive bokstavelig som regelen som inneholder bang . Dette kan ha flere effekter på programmene - det kan representere visse negative resultater , kan det unngå eller håndtere jevnt med feil, eller det kan rett og slett eliminere en del av søket plass og øke hastigheten på programmet