Prolog ( Programming in Logic) è stato sviluppato in Francia per la creazione di traduttori di lingua naturale . Si è perfezionato in Scozia per la scrittura di dimostratori automatici di teoremi per la matematica e la logica . Si è imposta all'attenzione internazionale quando è stato scelto per il progetto giapponese " quinta generazione " . Programmi Prolog consistono in un elenco accuratamente ordinata di regole (scritte da clausole di Horn) . L' utente fa una domanda e le risposte del programma - in termini di regole . È un paradigma straordinariamente utile . Il corno Clausole
clausole di Horn standard sono state inventate nel 1951 dal matematico americano Alfred Horn . Nelle sue parole , una clausola di corno è " una disgiunzione di letterali che hanno al più un letterale positivo . " Una clausola tipico corno assomiglia a questo : ( non A) o ( non B ) o C. Il positivo letterale è C , A e B sono "negativo ". Se la clausola di corno ha esattamente un letterale positivo - come clausole di Horn Prolog fanno - si chiama una clausola di Horn definita. Clausole di Horn sono scritti in un formato semplificato ma equivalente . La dichiarazione disgiuntiva ( non A) o ( non B ) o C è logicamente equivalente alla dichiarazione ( A e B ) implica C. Questo è semplificata a : A, B - : C ( in cui il " - : " rappresenta la freccia implicazione ) . La clausola di corno semplice è un singolo letterale positivo ( in cui non c'è nessuna freccia ) - questa è la stessa per entrambe le clausole di Horn e Prolog
prologo Horn clausole
< . p> regole Prolog assomigliano clausole di Horn , tranne la freccia punta nella direzione opposta. La regola di grammatica che una frase è composta da un sintagma nominale e un sintagma verbale è scritto S : - NP , VP . L' insieme di regole potrebbe anche contenere il detto che un sintagma nominale è composto da un articolo e un sostantivo , scritta NP : - A, N. Se c'è un'altra regola che indica che un sintagma nominale è un sostantivo plurale , potrebbe essere scritta NP : - PN . Quando tutte le regole sono a posto, l'utente può presentare una " condanna " per il programma e il programma cercherà di abbinare la " condanna " per le regole. Prolog lavora a ritroso attraverso le regole - se la questione corrisponde alla conclusione ( positiva letterale) di una regola , gli antecedenti ( letterali negativi ) diventano le nuove domande. Se tutte le domande alla fine coincidono con i fatti , la " frase " è una frase valida . Questo abbinamento funziona il processo per gli altri sistemi basati su regole matematiche , logica e così come funziona per la grammatica .
The Cut Clausola
Ci sono tre tipi di clausole di Horn che vengono utilizzati in Prolog : il ( nessuna freccia ) dichiarazione di fatto , la regola ( con una freccia , uno positivo letterale e almeno un letterale negativo) e il taglio . Clausole Cut contengono il " ! " simbolo. Quando l'interprete Prolog vede il simbolo di taglio (si pronuncia " bang" ) , elimina le regole rimanenti che hanno lo stesso positivo letterale come la regola che contiene il botto . Questo può avere diversi effetti sui programmi - può rappresentare certi risultati negativi , si può evitare o affrontare senza problemi con guasti, oppure può semplicemente eliminare una parte dello spazio di ricerca e di accelerare il programma
< br . >