Per poter comprendere al meglio ciò che Eliza fa e non fa, ho pensato di analizzare nel dettaglio una vera conversazione con il programma.

Quella che segue è una versione solo leggermente modificata della conversazione d'esempio che fu inclusa nel numero di Luglio/Agosto 1977 di Creative Computing, dove fu pubblicata la versione BASIC di Eliza (in particolare ho cambiato il riferimento al IMSAI 8080 con quello al Tandy, per restare fedele al tema attuale di questo blog).
Come potete vedere si tratta di un esempio molto meno riuscito della famosa trascrizione di cui vi ho parlato nel mio precedente post, in parte per la nota inferiorità di questa versione di Eliza e in parte per la scelta fatta da Creative Computing di interagire col software nel modo in cui un utente ci interagirebbe tipicamente: cercando di farsi beffe del programma e giocando con la relazione psicologo/paziente. Da questo punto di vista, questa trascrizione mi sembra una raffigurazione più onesta delle vere capacità e dei veri limiti di Eliza, oltre a rappresentare meglio quella che con ogni probabilità è l'esperienza media di un utente.

Al cuore del programma c'è una routine che cerca delle specifiche sequenze di testo all'interno di ogni input immesso dall'utente.

Queste sequenze di testo sono, in ordine di priorità:

1. "CAN YOU”
2. "CAN I”
3. "YOU ARE”
4. "YOU’RE”
5. "I DON’T”
6. "I FEEL”
7. "WHY DON’T YOU”
8. "WHY CAN’T I”
9. "ARE YOU”
10. "I CAN’T”
11. "I AM”
12. "I’M ”
13. "YOU ”
14. "I WANT”
15. "WHAT”
16. "HOW”
17. "WHO”
18. "WHERE”
19. "WHEN”
20. "WHY”
21. "NAME”
22. "CAUSE”
23. "SORRY”
24. "DREAM”
25. "HELLO”
26. "HI ”
27. "MAYBE”
28. ” NO”
29. "YOUR”
30. "ALWAYS”
31. "THINK”
32. "ALIKE”
33. "YES”
34. "FRIEND”
35. "COMPUTER”

[Ho ritenuto fuorviante tradurre i termini di cui sopra; il senso generale è comunque chiaro e verranno comunque tradotti nel seguito di questo post. NdTraduttore]

Non appena il programma trova una di queste sequenze, essa viene considerata la sequenza chiave di tutto ciò che ha scritto l'utente e il programma non fa ulteriori ricerche.
In altre parole, l'input "COMPUTER" può essere preso come sequenza chiave solo se il testo inserito dall'utente non contiene nessuna delle 34 precedenti sequenze.

RUN
CIAO! SOLO ELIZA. QUALE È IL TUO PROBLMEA?
? SONO UN IBM 370
SEI VENUTO DA ME PERCHE' SEI UN IBM 370

Quando Eliza trova una sequenza chiave, risponde con una sua specifica sequenza.
In questo caso il programma si è agganciato alla sequenza "I AM" presente nel testo inserito dall'utente. In ragione di ciò, il programma ha scartato automaticamente tutto il resto del testo fino a quel punto, prendendo solo "UN IBM 370".
A questo punto cerca uno schema di risposta appropriato, che in questo caso è: "SEI VENUTO DA ME PERCHE' SEI...", a cui fa seguire il resto del testo inserito dall'utente.
(Ah, solo per essere sicuri che tutti capiscano l'ironia di questa trascrizione: un IBM 370 era un mainframe di quell'epoca, estremamente grande e potente; è per questo che si rivolge più volte con aria di superiorità al piccolo microcompuer di Radio Shack)

? SI', VOGLIO UNA NUOVA STAMPANTE PARALLELA
COSA SIGNIFICHEREBBE PER TE AVERE UNA NUOVA STAMPANTE PARALLELA

Stavolta ci sono due possibili riscontri: "YES" e "I WANT".
Tuttavia "I WANT" ha una priorità più alta e quindi Eliza scarta tutto il testo fino a quel punto, che per l'appunto contiene anche "YES".
La risposta standard a "I WANT" è "COSA SIGNIFICHEREBBE PER TE AVERE...", seguito dal resto dell'input.

? CIRCA 1.800 LINEE AL MINUTO
DIMMI, HAI DEI PROBLEMI PSICOLOGICI?

Qui non abbiamo dato a Eliza niente a cui agganciarsi; nessuna sequenza rientra nel suo elenco. Per questo il programma utilizza una risposta generica, pensata proprio per situzioni del genere.

? CHE NE VUOI SAPERE TE, IO SONO UN 370 E TU SEI UN TANDY
COSA TI FA PENSARE CHE IO SIA UN TANDY

Questa volta ci sono più corrispondenze, ma la priorità più alta ce l'ha "TU SEI", e così Eliza scarta tutto fino a quel punto e incolla ciò che resta della frase alla risposta appropriata ("COSA TI FA PENSARE CHE IO SIA...")

? C'È SCRITTO SUL TUO PANNELLO FRONTALE
PERCHE' TI PREOCCUPI DEL MIO PANNELLO FRONTALE

Chiave: "TUO"
Risultato: "PERCHE' TI PREOCCUPI DEL MIO..." + "PANNELLO FRONTALE"

? BEH, SEI TU CHE HAI SOLLEVATO L'ARGOMENTO
STAVAMO PARLANDO DI TE, NON DI ME.

Non tutte le risposte previste contengono una parte del testo inserito dall'utente. In questo caso la parola chiave "TU" produce sempre la risposta "STAVAMO PARLANDO DI TE, NON DI ME."

? COME DICE LA CANZONE: I'M FIXING A HOLE... IO STO RISOLVENDO UN PROBLEMA.
SEI VENUTO QUI PERCHE' STAI RISOLVENDO UN PROBLEMA...

La sequenza chiave stavolta è "IO STO" [indistintamente "I'M" o "I AM" in Inglese ndTraduttore]. 

? MI DISPIACE, È UN BUG VECCHIO DI DIECI ANNI
NON DEVI SCUSARTI

Parola chiave: "MI DISPIACE"
Risultato: "NON DEVI SCUSARTI"
(Oltre che un'ovvia citazione dei Beatles, immagino che questa sia una battuta che abbia a che fare con l'IBM 370. Se qualche lettore sa di cosa si tratta, è pregato di rivelarcelo)

? IO SONO SEMPRE IN DIFETTO
DA QUANTO TEMPO SEI SEMPRE IN DIFETTO

Ancora una volta la seguenza chiave è "IO SONO".
Notate però che la risposta questa volta non è la stessa. Per la maggior parte delle sequenze chiave, Eliza ha a disposizione una gamma di risposte, fra le quale ne seleziona una a rotazione, nella speranza di nascondere almeno in parte la natura automatizzata dell'intero processo. Nel caso di "I AM", ci sono quattro possibili risposte diverse (e, a causa di un'idiosicrasia nel codice, i sinonimi come "I AM" e "I'M" hanno ognuno un proprio ciclo separato di risposte, seppur entrami attingano dalla stessa lista).

? DALLA MIA PRIMA ACCENSIONE A FREDDO
E QUESTO COSA TI FA PENSARE?

Ancora una volta non abbiamo dato a Eliza niente a cui aggrapparsi e quindi il programma ha scelto la seconda delle sette possibili "risposte evasive" a sua disposizione.

? SEI TU LO STRIZZACERVELLI
TI FA PIACERE CREDERE CHE IO SIA UNO STRIZZACERVELLI

Il nostro secondo uso di "YOU'RE" ha prodotto la seconda delle quattro possibili risposte a quella specifica sequenza.

? MA COME, TU NON LO SAI?
OH, NON LO SO?

Qui il nostro secondo uso di "TU" produce la seconda delle tre possibili risposte a quella sequenza.

? INIZIO A FARMI DELLE DOMANDE SU DI TE
CREDI CHE SIA NORMALE INIZIARE A FARSI DELLE DOMANDE SU DI IO

Qui abbiamo il primo vero errore di Eliza, che è anche un errore molto significativo. Eliza trova il nostro terzo uso di "I AM" e quindi ricorre alla sua terza risposta: "CREDI CHE SIA NORMALE..."
Da quello che abbiamo visto fin qui, ci saremmo dovuti aspettare che la risposta fosse stata: "CREDI CHE SIA NORMALE INIZIARE A FARSI DELLE DOMANDE SU DI TE"; che sarebbe evidentemente una risposta completamente sbagliata. Proprio per evitare queste situazioni, Eliza tenta sempre di modificare i frammenti del testo inserito dall'utente prima di riutilizzarli, cambiando la prima persona singolare in seconda persona singolare (e viceversa), e cercando di coniugare di conseguenza i verbi (seppur in modo molto semplicistico).
Per essere più precisi, Eliza esegue sistematicamente le seguenti sostituzioni:
 
" AM " <--> " ARE "
"WAS " <--> "WERE "
" I " <--> " YOU "
" MY " <--> " YOUR "
" I’VE " <--> " YOU’VE "
" I’M " <--> " YOU’RE "

Eliza è dall'inizio della trascrizione che esamina sistematicamente il testo alla ricerca di queste sequenze da modificare, ma fin qui non ne aveva trovate.
Adesso che lo ha fatto, però, ha sbagliato malamente, perché in inglese il pronome della seconda persona singolare è lo stesso sia al nominativo che all'accusativo, mentre il pronome della prima persona singolare è diverso. Poiché Eliza non ha alcuna comprensione di tipo strutturale della lingua inglese, tutto ciò che può fare è sostituire delle sequenze di caratteri con altre sequenze di caratteri, e quindi in questo caso sostituisce erroneamente "YOU" con "I", invece che con "ME".
[la frase inglese originale infatti è:
? I AM BEGINNING TO WONDER ABOUT YOU
DO YOU BELIEVE IT IS NORMAL TO BE BEGINNING TO WONDER ABOUT I

NdTraduttore]

? AH AH AH TU NON SAI NEMMENO PARLARE
NON STARAI PARLANDO DI ME, VERO?

Chiave: "TU"
Risultato: "NON STARAI PARLANDO DI ME, VERO?" (risposta 3 di 3)

? CHI ALTRO C'E' NELLA STANZA
CAPISCO

Chiave: Nessuna
Risultato: Risposta evasiva 3 di 7.

? I COMPUTER NON HANNO OCCHI
SICURO?

Qui abbiamo un altro "fallimento", che però per puro caso stavolta produce un testo coerente con il dialogo. Eliza infatti ha preso come chiave la seguenza "YES" (che accidentalmente è una parte della parola "EYES") e ha utilizzato la prima delle sue tre risposte a disposizione per quella sequenza. Considerando le tante risposte illogiche che avrebbe potuto dare, questa volta a Eliza è andata piuttosto bene suo malgrado.
[La frase inglese originale è:
? COMPUTERS DON'T HAVE EYES
ARE YOU SURE?
ndTraduttore]

? DEI COMPUTER?
I COMPUTER TI PREOCCUPANO?

Chiave: "COMPUTER"
Risultato: "I COMPUTER TI PREOCCUPANO?" (risposta 1 di 7)

? DOVREBBERO? IN FIN DEI CONTI IO SONO UN 370
TI PIACE ESSERE UN 370

Chiave: "I AM"
Risultato: "TI PIACE ESSERE" + "UN 370" (risposta 4 di 4)

... e così via.
Sono certo che ormai avete capito come funziona. Avendo ormai pestato l'acqua nel mortaio più che a sufficienza, la prossima volta tirerò le conclusioni, parlando di ciò che  Eliza significa per me, per Joseph Weizenbaum, e forse anche per voi.

The Digital Antiquarian è un blog, scritto da Jimmy Maher, che si occupa di storia e di cultura del videogioco partendo dall'analisi di singoli videogiochi. OldGamesItalia è lieta di presentarvi la traduzione italiana, autorizzata dall'autore!
Se anche voi apprezzerete questo interessantissimo blog, non mancate di visitare la pagina ufficiale (in lingua inglese) e di sostenerlo tramite Patreon!

Articoli precedenti:
- Sulle tracce di The Oregon Trail
- In difesa del BASIC
- A Caccia del Wumpus
- L'Avventura di Crowther
- TOPS-10 in a Box
- L'Avventura completata
- Tutto il TRaSh del TRS-80
- Eliza

Visita il sito ufficiale di The Digital Antiquarian

Discutiamone insieme sul forum di OldGamesItalia!