libertas.sm logo news informazioni san marino rimini romagna
libertas romagna san marino applicazioni mobile apple android
h 11:17 giovedì 24 maggio 2012/1711 d.F.R. english version

Informatica nella didattica utilizzando il linguaggio prolog (Marino Cecchetti)

Condividi:

 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.


Cerca nel sito

Cerca tra news, articoli e comunicati!


nel sito news e comunicati
Sponsor
Sponsor
Sponsor
Sponsor
Sponsor
Libertas.sm © 2012 by Belcom - testata di informazioni e news sulla Repubblica di San Marino