L’informatica nella scuola usando il PROLOG (prima puntata)

L’informatica nella scuola  usando il  PROLOG (prima  puntata)

 L’informatica nella scuola

usando il  PROLOG
(prima  puntata)

(da: “Scuola e Didattica”, Editrice La Scuola,
Brescia, Anno XXXIV,  n.5 (15 novembre 1988)

 

Prima parte: CONOSCENZE
NOZIONISTICHE

Nel tentativo
di introdurre alcuni concetti di informatica non percorrendo la ‘via storica’
dei linguaggi di tipo procedurale, ma imboccando la ‘via razionale’ dei
linguaggi di programmazione logica, l’Autore presenta un’esperienza didattica di
uso del Prolog di cui pubblichiamo qui la prima parte
(La redazione)

Il computer,
come tante altre macchine, è costruito con plastica, vetro, metalli, ecc. e
consuma energia (energia elettrica) per eseguire la sua specifica lavorazione.
Mentre una comune macchina trasforma, ad esempio, un pezzo di legno o di ferro
grezzi in un uten­sile, il computer “lavora” informazioni.

Le informazioni sono qualcosa di immateriale: per immetterle nel
computer (come materia prima) o per prelevarle (come prodotto finito) occorre
individuare un “linguaggio” che sia comune a noi e al computer stesso. Il PROLOG
è uno di questi linguaggi: ci permette di utilizzare la macchina-computer per
fare informatica, cioè il trattamento automa­tico delle informazioni.

Per comunicare con la nostra macchina, ci serviremo, dapprima,
solo di frasi molto semplici e, precisamente, di frasi che espri­mono una
relazione fra due entità. Esempio:

                    Il topo mangia il formaggio.

Si può tradurre in PROLOG così:

                    mangia(topo,formaggio).

Cioè:  * non sono stati trascritti gli articoli; 

       * si è dato un rilievo particolare al predicato verbale;

       * sono comparsi segni grafici nuovi.

L’elemento   che   precede  la parentesi,cioè  “mangia”  è 
chiamato PREDICATO mentre gli elementi dentro le parentesi tonde (cioè “topo” e
“formag­gio”) separati da virgole, sono chiamati ARGOMENTI.

In PROLOG: – ogni frase semplice (o affermazione o proposizione)
è costituita da un PREDICATO e dai suoi ARGOMENTI;

– gli ARGOMENTI sono separati da virgole e sono racchiusi da
parentesi tonde;

– ogni frase deve terminare con il punto.

Anche l’ordine degli argomenti è importante: fatta una scelta,
occorre restare coerenti con essa. Nel nostro caso, abbiamo scelto di mettere il
soggetto (cioè topo) come primo argomento, per favorire la leggibi­lità della
frase PROLOG.

Il computer è in grado di recepire una frase PROLOG del tipo

               mangia(topo,formaggio).

e di interpretarla, previa traduzione, che esegue
automaticamente, nel linguaggio suo proprio (detto linguaggio macchina,
costruito con un alfabeto di due soli segni). A noi invece tocca fare lo sforzo
di tradurre le informazioni dall’I­taliano  in PROLOG, quando mandiamo messaggi
al computer e, viceversa, quando riceviamo messaggi dal com­puter.    

Facciamo ancora qualche esercizio di traduzione:

              Italiano:  studio storia.

              PROLOG  :  studio(io,storia).


 

 

E’ stato esplicitato il soggetto. Ed ancora:

              Italiano:  Marco studia storia e italiano.

              PROLOG  :  studia(marco,storia).

                                   studia(marco,italiano).

Si è scelta questa forma di traduzione, per mantenere invariato
lo schema di frase prescelto.

Già siamo in grado di colloquiare col computer. Ne approfittiamo
subito per fargli un “discorsino” e quindi per interrogarlo in meri­to.

Supponiamo che la nostra conoscenza relativa alle città di
residenza di alcune persone sia la seguente:

     Marco e Tiziana abitano a Roma, Giovanni a Milano, Louis a
Parigi. Parigi è capitale della Francia, Roma dell’Italia.

Tale conoscenza si può riscrivere così:

               Marco abita a Roma.

               Giovanni abita a Milano.

               Louis abita a Parigi.

               Tiziana abita a Roma.

               Roma è capitale dell’Italia.

               Parigi è capitale della Francia.

Traducendo le frasi ad una ad una in PROLOG, avremo:

               abita_a(marco,roma).

               abita_a(giovanni,milano).

               abita_a(louis,parigi).

               abita_a(tiziana,roma).

               è_capitale_di(roma,italia).

               è_capitale_di(parigi,francia).

Affermazioni di questo tipo vengono chiamate, in gergo, FATTI.

La conoscenza ora può essere comunicata al computer: basta
battere sulla tastiera tutte le frasi PROLOG in cui l’abbiamo tradotta. In
pratica abbiamo scritto un PROGRAMMA in linguaggio PROLOG o, come noi
preferiamo, abbiamo descritto un AMBIENTE.  A questo punto il computer è già in
grado di lavorare per noi, cioè di rispondere alle domande o, come si dice in
gergo, di raggiungere l’obiet­tivo, che noi gli asse­gneremo.

Anche le domande, ovviamente, dovranno essere formulate in
PROLOG: saranno frasi costituite, ognuna, da un PREDICATO (e dai suoi argomenti)
appartenente all’AMBIENTE, e dovranno essere scritte nel punto dello schermo che
il computer stesso ci indicherà. Distinguiamo due tipi di domande.

 

DOMANDE DI VERIFICA (CHECK)

Sono domande che ci permettono di verificare, ad esempio, se la
cono­scenza è stata “recepita”. Infatti:

alla domanda:        

                 abita_a(marco,roma).

il computer risponde: VERO.

In pratica il computer, ricevuta la frase-domanda, si mette
subito al lavoro per dimostrare che essa, nel nostro AMBIENTE, è vera. Al
con­trario ogni frase-domanda che il computer non può dimostrare essere vera,
nel nostro AMBIENTE, ottiene come risposta: FALSO. Esempio:

alla domanda:          capitale_di(madrid,francia).

il computer risponde:  FALSO.

alla domanda:          capitale_di(madrid,spagna).

il computer risponde:  FALSO.

Finora abbiamo utilizzato domande in cui entrambe le entità
(legate dalla relazione espressa dal predicato) sono note: il computer controlla
se, sulla base delle informazioni presenti nell’AMBIENTE, sussiste, fra quelle
entità, la relazione indicata e risponde di conseguenza VERO o FALSO.

Queste domande sono dette di tipo CHECK o di CONTROLLO o di
VERIFICA.

 

DOMANDE DI RICERCA (GENERATE)

Consideriamo la domanda:

                      chi abita a Milano?

Sembra, a prima vista, che la frase non possa essere tradotta in
PROLOG, in quanto ci è sconosciuta una delle entità della relazione: non
sappiamo come tradurre il pronome o sostituente “Chi”. Infatti avremmo in
PROLOG:                                             _______

                           abita_a(_______,milano).

dove la cornice contorna lo spazio dell’entità mancante, cioè
segna un posto vuoto. Sappiamo però che questa entità (se esiste) appartiene
all’insieme delle persone che godono della proprietà di abitare a Milano.
Siamo di fronte ad una “FRASE APERTA”, frase della quale al momento non si può
stabilire se è vera o falsa. Solo riempiendo il posto con una determinata
entità, potremo stabilire, in base all’enti­tà stessa e alle informazioni
disponibili, se la frase è vera o falsa.

Ebbene, il computer accetta, come domanda, anche una “FRASE
APERTA”. Però la cornice (o posto vuoto) deve essere sostituita da una
lettera maiuscola o da una sequenza di caratteri che cominci con una lettera
maiuscola:
VARIABILE.                  

Per favorire la leggibilità, utilizzeremo, come VARIABILE, una
lettera o un vocabolo che richiami l’entità o il tipo di entità oggetto della
domanda.

Potremmo scrivere, ad esempio, nel nostro caso:

                   Domanda: abita_a(Persona,milano).

Il computer risponderà:

                   Persona=giovanni

Analogamente:     

                   Domanda:abita_a(Persona,roma).

Il computer risponderà:

                   Persona=marco

                   Persona=tiziana

 

Si possono porre domande analoghe mediante il predicato
è_capitale_di.

Si possono, inoltre, porre domande con più di una variabile.

Esempio: Domanda: è_capitale_di(Capitale,Stato).

Il computer risponderà:

                   Capitale=roma         Stato=italia

                   Capitale=parigi       Stato=francia

 

Analogamente: Domanda: abita_a(Persona,Luogo).

Il computer risponderà:

                   Persona=marco         Luogo=roma

                   Persona=giovanni      Luogo=milano

                   Persona=louis            Luogo=parigi

                   Persona=tiziana          Luogo=roma

 

Abbiamo imparato a descrivere un frammento di conoscenza in
PROLOG mediante frasi semplici, cioè costituite da un solo predicato, che
abbiamo chiamato FATTI. In pratica, scelto un tema, le conoscenze relative a
questo tema sono state tradotte in FATTI ed in base a quei FATTI il computer
risponde a nostre domande, espresse anch’esse nella forma di frasi semplici.
Finora abbiamo imparato a gestire le cosid­dette informazioni nozionistiche. Il
computer è stato messo in grado di restituirci le informazioni che noi abbiamo
fornito, così come gliele abbiamo for­nite: abbiamo imparato a utilizzare solo
alcune potenzialità del computer, quali la memoria e la ricerca veloce dei dati.

La prossima volta pretenderemo dal computer qualcosa di più.
Vogliamo infatti che il computer impari a ricavare nuove conoscenze dalle
conoscenze di base. E’ possi­bile, se…. gli insegniamo come fare: dovremo cioè
fornirgli REGOLE. Considereremo frasi del tipo:

           Se la mamma sta in casa, Marco studia la lezione.

E vedremo, soprattutto, come il computer è in grado, in certi
ambiti, di “dedurre conoscenze da conoscenze” (in gergo, infe­rire), alla
stregua di quanto avviene, ad esempio, nel famoso sillo­gismo aristote­lico:

           Tutti gli uomini sono mortali.

           Socrate è uomo.

           _____________________________

           Socrate è mortale.

Condividi


Per rimanere aggiornato su tutte le novità iscriviti alla newsletter

Quando invii il modulo, controlla la tua inbox per confermare l'iscrizione

Privacy Policy