Salta ai contenuti

AI simbolica anni Sessanta: Logic Theorist, GPS, microworlds, SHRDLU

Quindici anni di ottimismo programmatico, tre laboratori dominanti, una manciata di sistemi che sembrano davvero pensare in microcosmi ben definiti, e l’inizio della scoperta che dai microcosmi al mondo aperto la strada non è una rampa ma un baratro.

Dicembre 1955: Allen Newell, Cliff Shaw e Herbert Simon, alla RAND Corporation di Santa Monica, eseguono a mano — su carta, dieci persone reclutate fra studenti e mogli dei ricercatori, ciascuna che simula una porzione di memoria di un computer ipotetico — il primo programma di Logic Theorist. Funziona. Dimostra il teorema 2.01 dei Principia Mathematica di Russell e Whitehead. È il primo programma della storia che produce qualcosa che si è sempre chiamato “ragionamento”, non aritmetica. Da lì, in quindici anni, un piccolo numero di persone fonda quasi tutti i concetti che oggi chiamiamo symbolic AI: heuristic search, problem reduction, microworlds, frame, semantic networks.

L’epoca merita attenzione per due ragioni divergenti. La prima è di filiazione: una parte del vocabolario tecnico moderno (proof assistant, planner classici, knowledge representation) discende direttamente da quegli anni; gli algoritmi sono spesso identici sotto altri nomi. La seconda è di contro-esempio: la stessa epoca contiene un campionario di errori prevedibili — predizioni sbagliate di ordini di grandezza, dimostrazioni esistenziali confuse con dimostrazioni di scalabilità, microworlds che funzionano perché sono micro. Ogni nuova ondata di entusiasmo nell’AI ripete almeno uno di quei pattern. Sapere come furono fatti la prima volta è una buona difesa.

Una terza nota più sottile riguarda il rapporto fra simbolico e connessionista. La storia non è una linea retta di sostituzione: è un’oscillazione. Le ricadute contemporanee — dove componenti simboliche tornano in dialogo con architetture statistiche — sono discusse nelle “Applicazioni pratiche”. Qui ci concentriamo sui quindici anni in cui il simbolico è il programma esplicito.

Per inquadrare questo capitolo bisogna sapere dove eravamo dopo Dartmouth. La fondazione organizzativa del campo e i suoi primi protagonisti sono raccontati in dartmouth-1956. Le radici filosofiche e ingegneristiche più lontane sono in preistoria-intelligenza e turing-macchina-mente. Qui prendiamo il filo dalla fine dell’estate 1956 e lo seguiamo fino ai primi anni Settanta.

Tre poli geografici dominano. Al Massachusetts Institute of Technology (MIT, Cambridge, Massachusetts), Marvin Minsky (matematico e scienziato cognitivo statunitense, 1927-2016) e John McCarthy (matematico e logico statunitense, 1927-2011) fondano nel 1959 il MIT AI Project, presto rinominato MIT AI Lab. Quando McCarthy nel 1962 si trasferisce a Stanford, Minsky resta al MIT e con Seymour Papert (matematico ed educatore sudafricano-statunitense, 1928-2016) ne fa per il decennio successivo il più grande centro al mondo per la AI simbolica. Da li escono SHRDLU, ELIZA, MACSYMA, ANALOGY, e una intera generazione di studenti che diventeranno i nomi di riferimento.

A Pittsburgh, Pennsylvania, al Carnegie Institute of Technology (che diventerà Carnegie Mellon University nel 1967), Allen Newell (informatico statunitense, 1927-1992) e Herbert Simon (politologo, economista e informatico statunitense, 1916-2001) lavorano su quella che chiamano cognitive simulation: programmi che non si limitano a risolvere problemi, ma che riproducono i passaggi cognitivi di un essere umano che li risolve. Ricevono entrambi il Turing Award nel 1975 per “contributi fondamentali all’AI, alla psicologia della cognizione umana, e all’elaborazione delle liste”. Simon riceverà anche il premio Nobel per l’Economia nel 1978 per la teoria della razionalità limitata. Da CMU escono Logic Theorist, GPS, e una scuola di pensiero che tratta l’AI come continuazione della psicologia cognitiva.

A Palo Alto, California, John McCarthy fonda nello Stanford AI Laboratory (SAIL) nel 1963. Lo stile è diverso: più robotica, più logica formale, più collaborazione con il vicino Stanford Research Institute (SRI), dove Nils Nilsson (informatico statunitense, 1933-2019), Peter Hart, Bertram Raphael e altri lavorano su Shakey the Robot e su algoritmi di ricerca formalizzati. Da Stanford e SRI escono A* (1968), STRIPS (1971), DENDRAL (1965-1970), MYCIN (1972-1980, già parte del capitolo successivo).

Il finanziatore principale di tutti e tre i poli è la Defense Advanced Research Projects Agency (DARPA, allora chiamata semplicemente ARPA), agenzia del Dipartimento della Difesa americano fondata nel 1958 in risposta al lancio dello Sputnik. Sotto la direzione di J. C. R. Licklider (psicologo e informatico statunitense, 1915-1990) all’Information Processing Techniques Office (IPTO), ARPA finanzia generosamente l’AI dal 1962 in poi. Lo schema è “block funding”: si finanzia un laboratorio nel suo complesso, non un progetto specifico. Questo da libertà enorme ai principal investigators e produce molti dei risultati di quegli anni.

Sullo sfondo, la separazione storica tra AI e cibernetica si consuma definitivamente. La cibernetica, fondata da Norbert Wiener (matematico statunitense, 1894-1964) con il libro omonimo del 1948 e con le Macy Conferences (1946-1953), aveva al centro feedback continui, sistemi analogici, modellazione di organismi biologici. La nuova AI di McCarthy e Minsky è digitale, simbolica, discreta. McCarthy stesso disse molti anni dopo che la scelta di coniare il termine artificial intelligence a Dartmouth servi anche a marcare questa distanza (“desideravo evitare di dover accettare Wiener come guru o di dovergli litigare contro”). Nei quindici anni del nostro racconto, la cibernetica come tradizione si frammenta; l’AI simbolica diventa egemonica. Il filone connessionista (i percettroni di Frank Rosenblatt) rimane vivo ma marginale, fino al colpo del 1969 di cui parleremo a fine capitolo.

Angolo filosofico: la Physical Symbol System Hypothesis

Sezione intitolata “Angolo filosofico: la Physical Symbol System Hypothesis”

L’AI simbolica degli anni Sessanta è tenuta insieme da una scommessa filosofica esplicita. Newell e Simon la formulano nella loro Turing Award Lecture del 1976, ma ne scrivono e parlano già dai primi anni Sessanta. Il nome che le danno è Physical Symbol System Hypothesis (in italiano, ipotesi del sistema fisico di simboli):

A physical symbol system has the necessary and sufficient means for general intelligent action.

In parole povere: un sistema fisico capace di costruire, copiare, comparare e modificare strutture di simboli ha tutto il necessario per produrre comportamento intelligente generale. Necessary and sufficient sono parole forti. Necessary significa: niente intelligenza generale senza manipolazione di simboli; sufficient significa: dato un sistema simbolico abbastanza ricco, l’intelligenza generale è raggiungibile. La tesi posiziona il paradigma simbolico come la via maestra, non come una via tra molte.

Il programma di ricerca che ne discende è costruttivo. Un sistema simbolico fa qualcosa di intelligente? Allora è un dato di fatto a favore della tesi. Un sistema simbolico fallisce su un certo tipo di compito? Lo si analizza, si raffina la rappresentazione o l’euristica, si riprova. Fino a quando non si incontra un compito su cui nessun sistema simbolico può per principio riuscire, la tesi regge.

La fiducia generata da questa scommessa è notevole. Simon nel 1957, parlando a un convegno di operations research, dice: within ten years a digital computer will be the world’s chess champion. Nel 1965, in un libro, scrive: machines will be capable, within twenty years, of doing any work a man can do. Minsky nel 1967, nel suo libro Computation: Finite and Infinite Machines, afferma: within a generation […] the problem of creating “artificial intelligence” will substantially be solved. Letti oggi, questi proclami suonano arroganti. Letti nel contesto di una giovane disciplina che vede ogni anno nuovi sistemi simbolici eseguire compiti prima ritenuti impossibili, suonano come estrapolazioni naturali di una curva di crescita esponenziale.

Conviene fissare bene il contrasto con la posizione opposta, quella connessionista (le reti neurali nella linea McCulloch-Pitts-Hebb-Rosenblatt). Per il connessionismo, l’intelligenza emerge da pattern subsimbolici distribuiti, da pesi numerici aggiustati per esperienza, non da regole esplicite. Negli anni Sessanta i due paradigmi convivono, ma con asimmetria di potere: i finanziamenti, i posti accademici, le riviste sono dominati dalla scuola simbolica. Il colpo decisivo arriverà nel 1969 con il libro di Minsky e Papert su Perceptrons, di cui parleremo. Il pendolo si sarebbe rimesso in moto solo a meta degli anni Ottanta.

Angolo operativo: i microworlds come strategia di ricerca

Sezione intitolata “Angolo operativo: i microworlds come strategia di ricerca”

L’intuizione complementare è tattica. L’intelligenza generale è troppo grande per essere affrontata in monoblocco. Allora si seleziona un dominio piccolo, completamente formalizzabile, in cui il sistema può agire in modo intelligente in senso pieno. Si studiano in quel dominio i meccanismi cognitivi (parsing del linguaggio, planning di azioni, ragionamento sui vincoli), e poi si generalizzano.

Minsky e Papert al MIT formalizzano questa strategia attorno al 1968 con il termine microworlds. Esempi tipici: il blocks-world (cubi e piramidi colorati su un tavolo, manipolati da un braccio robotico virtuale), il calcolo simbolico di derivate e integrali, le analogie geometriche su figure piane, gli scacchi.

L’argomento è analogico. La fisica del Seicento, dicono Minsky e Papert, non ha cominciato studiando il mondo intero. Ha cominciato studiando piani inclinati, sfere su superfici lisce, pendoli idealizzati. Solo quando la dinamica era ben capita su questi sistemi semplificati i fisici hanno potuto generalizzare alle situazioni reali. Allo stesso modo, l’AI deve cominciare con i suoi piani inclinati: domini ridotti dove ogni variabile è sotto controllo, dove le tecniche cognitive si possono isolare e perfezionare.

L’intuizione è fertile per la tattica. Dai microworlds escono i risultati spettacolari del periodo: SHRDLU sopra tutti, e poi STUDENT, ANALOGY, MACSYMA. Nel breve termine produce articoli, tesi di PhD, demo che impressionano i giornalisti. Fallisce nel medio-lungo periodo per la strategia: le tecniche non si generalizzano. Quando si esce dal blocks-world, nessuna delle tecniche di SHRDLU si esporta a un parser di natural language general-purpose. Il “principio del piano inclinato” non vale più. Sara una lezione dura, e arriverà lentamente.

Il primo programma deliberatamente progettato per fare ragionamento automatico nasce alla RAND Corporation a Santa Monica, California, tra fine 1955 e meta 1956. Gli autori sono Allen Newell, Cliff Shaw (programmatore RAND, 1922-1991) ed Herbert Simon. Logic Theorist, abbreviato LT, viene presentato al workshop di Dartmouth nell’estate 1956: è l’unico sistema funzionante mostrato all’evento. Un dettaglio aneddotico: a gennaio 1956, prima di avere accesso alla macchina, Simon aveva fatto eseguire una hand-simulation a casa, con la moglie e i figli che recitavano i ruoli delle sotto-routine.

Linguaggio di implementazione: IPL-II (Information Processing Language), inventato dagli stessi autori per gestire liste di simboli a basso livello. IPL è antesignano concettuale di Lisp ma operativamente molto più vicino all’assembly: si lavora con celle di memoria e puntatori espliciti.

Hardware: JOHNNIAC, la macchina della RAND copia dell’architettura IAS di John von Neumann (matematico ungherese-americano, 1903-1957). Pochi kilobyte di memoria. Velocità misurata in migliaia di operazioni al secondo, non miliardi.

Dominio: il Capitolo 2 dei Principia Mathematica di Bertrand Russell (filosofo e matematico inglese, 1872-1970) e Alfred North Whitehead (matematico e filosofo inglese, 1861-1947), opera in tre volumi pubblicata tra il 1910 e il 1913 che tenta di derivare l’aritmetica dalla pura logica. Il Capitolo 2 contiene 52 teoremi della logica proposizionale primitiva. LT ne dimostra 38.

Per il teorema *2.85, LT trova una dimostrazione più corta dell’originale. Newell e Simon scrivono a Russell informandolo. Russell, nelle parole dei due autori, ne fu delighted. Newell e Simon sottomettono al Journal of Symbolic Logic un paper che attribuisce la dimostrazione a “Newell, Shaw, Simon e LT (Logic Theorist)”. Il paper viene rifiutato perché “il risultato non è originale” (essendo già in Principia); l’argomento che il valore stava nella generazione automatica della prova non basta. Il JSL non era pronto a contemplare una macchina come co-autore. È un problema istituzionale che si ripresenterà in forme nuove ogni volta che i sistemi automatici producono output assimilabili a contributi originali.

L’architettura di LT è semplice ma rivoluzionaria. Dato un teorema-obiettivo, il programma cerca una catena di proposizioni che lo colleghi agli assiomi tramite quattro operatori:

  • Substitution: rimpiazzare uniformemente una variabile con un’espressione (es. da ppp \to p ottenere (¬q)(¬q)(\neg q) \to (\neg q)).
  • Detachment: una forma di modus ponens applicata all’indietro (se l’obiettivo è BB e si possiede ABA \to B, basta dimostrare AA).
  • Forward chaining: applicare modus ponens in avanti dagli assiomi noti.
  • Backward chaining: lavorare a ritroso dall’obiettivo.

La novità decisiva sono le euristiche. Una proposizione candidata è considerata promettente se “somiglia” sintatticamente all’obiettivo, dove la similarita è misurata contando simboli condivisi e patterns strutturali. Le proposizioni non promettenti vengono potate. Senza euristiche lo spazio dei teoremi raggiungibili da pochi assiomi tramite quattro regole esplode in modo astronomico in pochi passi; con esse, lo spazio diventa esplorabile.

È qui che nasce il vocabolario tecnico della heuristic search. Negli anni successivi viene formalizzato in best-first search, branch-and-bound, A* (Hart, Nilsson, Raphael 1968), MCTS. La filiazione concettuale fra LT e i motori di reasoning contemporanei basati su search è discussa in “Applicazioni pratiche”.

Subito dopo LT, Newell, Simon e Shaw lavorano a un sistema più ambizioso: un general problem solver, capace di affrontare problemi diversi senza essere specializzato a uno solo. La prima descrizione è del 1957, la versione matura del 1959, presentata al congresso IFIP. Il paper di riferimento è “Report on a General Problem-Solving Program” (Newell, Shaw, Simon, 1959).

L’idea chiave è la separazione tra rappresentazione del problema e motore di ricerca. La rappresentazione varia con il dominio: per la torre di Hanoi avrai dischi e pioli, per missionari-cannibali avrai persone e barche, per una dimostrazione logica avrai proposizioni e regole. Il motore invece è fisso. Si chiama means-ends analysis (analisi dei mezzi-fini).

L’idea di means-ends analysis si esprime in pochi passi. Hai uno stato corrente e uno stato goal. Confronti i due e ottieni una lista di differenze. Per ciascun tipo di differenza esiste (in una table of differences costruita per il dominio specifico) un operatore che la riduce. Scegli la differenza più importante e applichi l’operatore. Se l’operatore non è applicabile direttamente perché le sue precondizioni non sono soddisfatte, ricorri: trasforma le precondizioni dell’operatore in un nuovo sotto-goal e applica means-ends su di esso. Quando il sotto-problema è risolto, torni al problema originale.

In pseudocodice:

risolvi(stato_corrente, stato_goal):
se stato_corrente == stato_goal:
return []
differenze = confronta(stato_corrente, stato_goal)
diff_principale = piu_grande(differenze)
operatore = scegli_da_table(diff_principale)
se operatore.applicabile(stato_corrente):
nuovo_stato = applica(operatore, stato_corrente)
return [operatore] + risolvi(nuovo_stato, stato_goal)
else:
# rendi applicabile l'operatore: ricorri sulle sue precondizioni
sotto_piano = risolvi(stato_corrente, operatore.precondizione)
stato_dopo = simula(sotto_piano, stato_corrente)
return sotto_piano + [operatore] + \
risolvi(applica(operatore, stato_dopo), stato_goal)

Riga per riga: il caso base è “siamo arrivati”; altrimenti misuriamo le differenze, scegliamo la più rilevante (questa è l’euristica generica), prendiamo l’operatore raccomandato; se applicabile lo applichiamo e ricorriamo; se no, fabbrichiamo prima un sotto-piano che renda l’operatore applicabile.

GPS funziona su torre di Hanoi, missionari-cannibali, integrazione simbolica elementare, semplici problemi geometrici, dimostrazioni in logica proposizionale. La torre di Hanoi a 3 dischi, ad esempio, viene risolta automaticamente dall’algoritmo ricorsivo classico (vedi sezione “Esempi”).

I limiti emergono presto. Il primo: la combinatorial explosion. L’euristica generica funziona bene su problemi dove la differenza tra stato corrente e goal si scompone naturalmente in differenze più piccole indipendenti. Sui problemi reali questa scomposizione non c’è: gli operatori interagiscono, applicare A può invalidare le precondizioni per B, l’ordine in cui si riducono le differenze conta enormemente. Il secondo: la table of differences deve essere costruita a mano, dominio per dominio. La generality promessa dal nome era più modesta di quanto il nome suggerisse: era una generality del motore, non una generality del sistema.

Eppure GPS apre una direzione concettuale che sopravvivra. La separazione tra rappresentazione del problema e motore di ricerca sarà la base di planning-strips (in preparazione) (STRIPS, sviluppato all’SRI nel 1971 da Richard Fikes e Nils Nilsson) e poi di PDDL (Planning Domain Definition Language, 1998) e di tutta la moderna industria del planning automatico.

Quando McCarthy lascia Dartmouth per il MIT nel 1958, porta con se l’idea di un linguaggio di programmazione che renda naturale manipolare strutture simboliche annidate. Lo chiama Lisp (LISt Processing). Lo progetta nel 1958-59; Steve Russell, suo studente, implementa il primo eval su IBM 704 nel 1959 quasi per scommessa (McCarthy aveva scritto eval come specifica matematica, non pensandola eseguibile). Il manuale completo Lisp 1.5 esce nel 1962.

Le scelte di design fissano la cultura tecnica dell’AI simbolica per i trent’anni successivi.

S-expressions: ogni programma e ogni dato è un albero di liste annidate. Una lista si scrive con parentesi tonde e elementi separati da spazi. La lista vuota è (). L’espressione (+ 1 (* 2 3)) è una lista di tre elementi: il simbolo +, il numero 1, e una sotto-lista. La stessa notazione vale per dati e per programmi: non c’è differenza sintattica.

Code as data: poiché programmi e dati hanno la stessa rappresentazione, un programma può costruire, ispezionare e modificare altri programmi come fossero strutture dati. Questo è il fondamento delle macro Lisp e di tutta la meta-programmazione che ne deriva. La funzione eval, scritta in Lisp stesso in poche righe, prende una S-expression e la valuta: è la base della tradizione “il linguaggio si scrive in se stesso”.

Recursion first-class: la ricorsione è il meccanismo primario di iterazione. Funzioni come factorial, length, map si esprimono in due o tre righe. Esempio canonico:

(defun factorial (n)
(if (= n 0)
1
(* n (factorial (- n 1)))))

L’espressione è al tempo stesso il programma che calcola il fattoriale, e una struttura dati che il programma stesso può manipolare (per esempio può esaminarla, o riscriverla, o passarla come argomento a un’altra funzione).

Garbage collection: gestione automatica della memoria. Quando una porzione di memoria non è più raggiungibile da nessun simbolo attivo, il garbage collector la riconosce e la riclicla. La prima implementazione fu mark-and-sweep. È la prima volta che un linguaggio mainstream ha questa caratteristica; precede di decenni Java (1995), Python (1991), e in generale tutta la tradizione managed-memory.

Lambda: implementa il lambda calcolo di Alonzo Church (logico statunitense, 1903-1995) del 1936. Una funzione anonima si scrive (lambda (x) (* x x)); è una funzione che eleva al quadrato. Le funzioni sono first-class: si possono passare come argomento, restituire come risultato, memorizzare in variabili.

Lisp diventa il lingua franca dell’AI simbolica. SHRDLU, MACSYMA, DENDRAL, MYCIN, e in generale tutti i grandi sistemi simbolici degli anni Sessanta-Ottanta sono scritti in Lisp o in suoi dialetti (MacLisp, InterLisp, Common Lisp standardizzato nel 1984, Scheme nato a meta anni Settanta come variante minimalista). Ancora oggi nella didattica universitaria Scheme è il linguaggio di scelta in molti corsi introduttivi a struttura dei programmi (SICP del MIT). In industria, Clojure (2007) lo porta sulla JVM con successo modesto ma stabile.

L’idea dei microworlds, come abbiamo visto, è una strategia di ricerca: restringere il dominio per isolare i meccanismi cognitivi, in attesa di generalizzarli. Nel periodo 1964-1972 la strategia produce una serie di sistemi che diventano celebri, ognuno nel suo microworld specifico.

STUDENT (Daniel Bobrow, MIT, tesi PhD 1964): risolve problemi algebrici espressi in inglese del tipo Mary is twice as old as Ann was when Mary was as old as Ann is now. If Mary is 24 years old, how old is Ann?. Il sistema fa pattern matching sulla frase, la traduce in un sistema di equazioni, lo risolve algebricamente. Il microworld è la sotto-grammatica dell’inglese matematico scolastico.

ANALOGY (Tom Evans, MIT, tesi PhD 1964, paper 1968): risolve problemi di analogia geometrica del tipo A sta a B come C sta a ?, scegliendo tra cinque opzioni. Le figure sono descritte simbolicamente (poligoni, posizioni relative, trasformazioni); il programma cerca una trasformazione che mappa A in B e applica la stessa trasformazione a C. Il microworld è il dominio dei test psicometrici di analogia visiva.

MACSYMA (Bill Martin, Joel Moses al MIT, dal 1968): primo sistema di calcolo algebrico simbolico (CAS) di rilievo. Calcola derivate, integrali, fattorizzazioni, risolve equazioni. Il microworld è la matematica simbolica come è formalizzata nei manuali di calcolo. MACSYMA è l’antenato diretto di Mathematica (1988) e Maple (1981).

SHRDLU (Terry Winograd, MIT, 1968-1970): il vertice del paradigma microworld. Se ne parla nella sezione successiva.

L’argomento metodologico funziona, fino a un certo punto. STUDENT impressiona perché sembra capire “l’inglese matematico”; ANALOGY perché sembra fare ragionamento per analogia; MACSYMA perché manipola formule come uno studente di calcolo. La pubblicistica dell’epoca tende a estrapolare: se un sistema fa questo nel suo dominio, è questione di tempo prima che lo faccia nel mondo aperto. La parte “questione di tempo” si rivelerà sbagliata.

Terry Winograd (informatico statunitense, n. 1946) sviluppa SHRDLU al MIT AI Lab tra il 1968 e il 1970 come parte della sua tesi di PhD, supervisore Seymour Papert. La tesi (MIT AI Memo 235) viene depositata a febbraio 1971; una versione condensata esce su Cognitive Psychology nel 1972. Il nome viene da ETAOIN SHRDLU, le 12 lettere più frequenti dell’inglese, disposte sulle prime due colonne di tasti di una linotype: una citazione tipografica dei Mad Magazine dell’epoca.

Il dominio è il blocks-world. Una decina di oggetti su un tavolo: cubi grandi e piccoli di vari colori (rosso, verde, blu), piramidi colorate, una scatola che può contenere oggetti. Un braccio robotico virtuale che li manipola. Tutto su un display grafico semplice (linee in 2D che rappresentano la scena).

Il sistema dialoga in inglese. L’esempio canonico, leggermente abbreviato dalla tesi:

Person: Pick up a big red block.
SHRDLU: OK. (the system does it)
Person: Grasp the pyramid.
SHRDLU: I don't understand which pyramid you mean.
Person: Find a block which is taller than the one you are
holding and put it into the box.
SHRDLU: By "it", I assume you mean the block which is taller
than the one I am holding. OK. (does it)
Person: What does the box contain?
SHRDLU: The blue pyramid and the blue block.
Person: What is the pyramid supported by?
SHRDLU: The box.
Person: How many blocks are not in the box?
SHRDLU: Four of them.
Person: Is at least one of them narrower than the one which
I told you to pick up?
SHRDLU: Yes, the red cube.
Person: Can the table pick up blocks?
SHRDLU: No.
Person: Can a pyramid support a pyramid?
SHRDLU: I don't know.
Person: Stack up two pyramids.
SHRDLU: I can't.

L’effetto sul lettore dell’epoca è notevole. Il sistema risolve coreference (il pronome it riferito al blocco precedentemente menzionato), gestisce ambiguita (“which pyramid you mean”), risponde a domande di stato del mondo, esegue piani composti, ammette i propri limiti (“I can’t”, “I don’t know”). Sembra capire.

L’architettura interna ha cinque componenti principali, tutti scritti in MacLisp ed eseguiti su un PDP-10 al MIT AI Lab.

  • Parser: implementato secondo la grammatica systemic di Michael Halliday (linguista britannico, 1925-2018), una grammatica funzionale che enfatizza i ruoli (soggetto, complemento, modificatore) più che le categorie sintattiche pure. Il parser è top-down con backtracking.
  • Semantic interpreter: associa interpretazione semantica alle strutture sintattiche. Riconosce riferimenti a oggetti del blocks-world e li traduce in espressioni interne.
  • Planner: Micro-Planner, un sottoinsieme di Planner di Carl Hewitt (informatico statunitense, n. 1944, MIT). È un linguaggio di programmazione pattern-directed: ogni azione è definita con precondizioni, effetti, sotto-procedure. Il planner cerca catene di azioni che portano dallo stato iniziale al goal, con backtracking quando una scelta porta a un vicolo cieco.
  • Executor: applica fisicamente i piani al mondo simulato.
  • Dialogue manager: gestisce coreference (a quale oggetto si riferisce it?) e contesto (il mondo come è adesso, il mondo come era prima dell’ultima azione, le motivazioni delle ultime azioni). È questa componente che permette al sistema di rispondere a domande tipo Why did you do that? con risposte gerarchiche.

Il punto di forza tecnico è la integrazione. SHRDLU non è solo un parser, o solo un planner, o solo un dialogue manager: è i cinque componenti che lavorano insieme. Quando l’utente dice Find a block which is taller than the one you are holding, il parser produce una struttura sintattica, l’interpreter la traduce in una query semantica al planner (trova un blocco con altezza > altezza del blocco corrente), il planner consulta il modello del mondo, l’executor esegue.

Il punto di debolezza è che tutto è hard-coded per il blocks-world. La grammatica supporta i costrutti che servono per parlare di blocchi e azioni di manipolazione; non supporta una conversazione su altri argomenti. La rappresentazione semantica conosce concetti come “supportare”, “essere dentro a”, “essere più alto di”; non conosce concetti che non c’entrano con il mondo dei blocchi. Estendere SHRDLU a un dominio diverso non significa aggiungere qualcosa: significa riscrivere quasi tutto.

Winograd stesso, alcuni anni dopo, sarà uno dei critici più lucidi dell’AI simbolica. Si dedicherà all’Human-Computer Interaction e nel 1986 pubblicherà con Fernando Flores Understanding Computers and Cognition, un libro che riformula in chiave heideggeriana le ambizioni dell’AI e ne smonta molti presupposti. Il fatto che il padre di SHRDLU sia diventato uno dei suoi più duri critici è uno dei segnali del cambio di clima dei primi anni Settanta.

Su un binario parallelo a quello dei microworlds del MIT, Arthur Samuel (ingegnere statunitense, 1901-1990) lavora a IBM su un programma di dama (checkers) che impara dall’esperienza. La prima versione è del 1952 su IBM 701; la versione con apprendimento è del 1955; la celebre demo televisiva è del 24 febbraio 1956 (le cronache riportano che il titolo IBM sale di 15 punti in un giorno dopo la dimostrazione). Il paper completo, “Some Studies in Machine Learning Using the Game of Checkers”, esce nel 1959 sull’IBM Journal of Research and Development. Una seconda versione del paper e del programma esce nel 1967 (“Recent Progress”).

Tecniche utilizzate. Per la ricerca: minimax su alberi di gioco con potatura alpha-beta (l’idea di alpha-beta circolava all’epoca, McCarthy la formalizza pochi anni dopo). Per l’apprendimento: due meccanismi distinti.

Il rote learning memorizza posizioni già incontrate insieme alla loro valutazione, evitando di ricomputarle. È una forma elementare di caching, applicata all’albero di gioco: quando lo stesso nodo riappare in una partita successiva, la valutazione si recupera dalla tabella.

Il generalization learning aggiorna i pesi di una funzione di valutazione lineare. La funzione assegna a ogni posizione un punteggio che è combinazione di feature: numero di pezzi propri vs avversari, mobilita, controllo del centro, posizioni avanzate, materiale “re” vs “pedone”. I pesi vengono aggiornati con un meccanismo che confronta la valutazione di una posizione con la valutazione minimax dei suoi successori, spingendo i pesi a rendere coerenti le due. Questa idea anticipa il temporal difference learning che Richard Sutton formalizzerà nel 1988.

Risultato: nel 1962 il programma batte Robert Nealey, descritto all’epoca come “checkers master” (gli storici hanno poi messo in dubbio il livello reale di Nealey, ma il programma giocava certamente a livello amatoriale forte). È la prima volta che un programma supera un giocatore umano riconosciuto in un gioco non banale.

Samuel conia nel paper del 1959 il termine machine learning. Storicamente il programma è antesignano di tre famiglie distinte: il reinforcement learning moderno (la valutazione adattiva di Samuel anticipa Bellman e il TD-learning), i sistemi di gioco basati su evaluation function (filiazione che porta a Deep Blue 1997 e poi ad AlphaGo 2016 e AlphaZero 2017), e l’idea di self-play (il programma giocava contro versioni precedenti di se stesso, embrione di ciò che AlphaZero perfezionerà mezzo secolo dopo).

Samuel è un’eccezione nel panorama simbolico-puro del periodo. Il suo lavoro è simbolico nelle strutture (alberi di gioco, posizioni discrete) ma quantitativo nell’apprendimento (pesi numerici, gradienti). È un ibrido che anticipa metodologicamente la futura riconciliazione tra simbolico e statistico.

Joseph Weizenbaum (informatico statunitense di origine tedesca, 1923-2008), professore al MIT, sviluppa ELIZA tra il 1964 e il 1966. Pubblica nel gennaio 1966 su Communications of the ACM il paper “ELIZA — A Computer Program For the Study of Natural Language Communication Between Man and Machine”.

ELIZA è un framework per pattern matching su linguaggio naturale. Riceve una frase, cerca pattern noti, applica trasformazioni di scripting, restituisce una frase. Lo script più famoso e DOCTOR, che simula uno psicoterapeuta rogeriano (la terapia centrata sul cliente di Carl Rogers, psicologo statunitense, 1902-1987, dove il terapeuta riflette le affermazioni del paziente come domande aperte).

Esempio paradigmatico:

User: Men are all alike.
ELIZA: In what way?
User: They're always bugging us about something or other.
ELIZA: Can you think of a specific example?
User: Well, my boyfriend made me come here.
ELIZA: Your boyfriend made you come here?
User: He says I'm depressed much of the time.
ELIZA: I am sorry to hear you are depressed.
User: My father.
ELIZA: Tell me more about your family.

L’implementazione è minuscola: poche centinaia di righe in MAD-SLIP (un dialetto di Lisp che Weizenbaum aveva sviluppato). La logica è tutta in regole di scripting tipo I am X -> How long have you been X? con priorità per certi keyword (come “father”, “mother”, “depressed”) che innescano risposte tematiche.

Niente comprensione semantica. Niente memoria oltre alla frase precedente. Niente modello del mondo. Ma il framework rogeriano è particolarmente adatto perché permette risposte aperte e riflessive che funzionano anche senza capire il contenuto.

Weizenbaum nota con allarme che persone con cui ELIZA conversava, inclusa la sua segretaria al MIT, formavano legami emotivi con il programma e gli attribuivano comprensione. Sua segretaria, sapendo perfettamente come funzionava ELIZA (lo aveva visto programmare da Weizenbaum stesso), gli chiese di lasciare la stanza per parlare in privato con il programma. Psichiatri di Stanford suggerirono seriamente di usare ELIZA come strumento terapeutico per espandere la disponibilità di servizi di salute mentale.

Nasce qui il termine ELIZA effect: la tendenza umana ad attribuire comprensione, intenzione e profondità a sistemi che eseguono solo pattern matching superficiale. È una proprietà dell’osservatore, non del sistema. Si tratta di un fenomeno psicologico generale, non legato a una tecnologia specifica: ricomparirà ogni volta che un’interfaccia conversazionale supera una soglia di plausibilità, indipendentemente da cosa abbia sotto.

Weizenbaum diventa nel 1976 (“Computer Power and Human Reason”) uno dei critici filosofici più lucidi dell’AI, da insider. Sostiene che certe decisioni — terapia, giudizio in tribunale, scelte etiche — non dovrebbero essere delegate a macchine, indipendentemente dalla loro capacità tecnica. La sua posizione anticipa di mezzo secolo i dibattiti contemporanei su AI ethics e human-AI delegation.

A Stanford, Edward Feigenbaum (informatico statunitense, n. 1936) avvia nel 1965 con Joshua Lederberg (genetista e premio Nobel 1958, 1925-2008) e Bruce Buchanan (informatico statunitense) il progetto DENDRAL. Consulente chimico: Carl Djerassi (chimico austriaco-statunitense, 1923-2015, noto anche come uno dei padri della pillola contraccettiva).

Dominio: identificare la struttura molecolare di un composto organico a partire dal suo spettro di massa (la firma di un composto ottenuta bombardandolo con elettroni e misurando la distribuzione dei frammenti).

Architettura: sistema generate-and-test. Un componente plan genera tutte le ipotesi di struttura compatibili con la formula molecolare grezza; un componente test simula lo spettro di massa di ciascuna ipotesi e lo confronta con quello osservato; un componente plan successivo restringe lo spazio in base a vincoli aggiuntivi.

DENDRAL è considerato il primo expert system di successo. La novità rispetto a GPS è che la conoscenza di dominio (regole di chimica organica: come si frammentano le molecole, quali strutture sono plausibili in quali contesti) è incarnata esplicitamente sotto forma di regole, manipolate da un motore di inferenza generico. La separazione tra knowledge base e inference engine è la struttura archetipica degli expert systems che dominer il decennio successivo.

DENDRAL apre la via a MYCIN (diagnostica medica per infezioni batteriche, sviluppato a Stanford da Edward Shortliffe dal 1972), XCON (configurazione di computer DEC, sviluppato a CMU dal 1978), e a tutta la filiazione raccontata in sistemi-esperti.

Esempio 1 — un teorema dimostrato da Logic Theorist

Sezione intitolata “Esempio 1 — un teorema dimostrato da Logic Theorist”

Il teorema *2.01 dei Principia Mathematica afferma:

(p¬p)¬p(p \to \neg p) \to \neg p

Letto in italiano: “se da pp segue la sua negazione, allora pp è falso”. È una forma del reductio ad absurdum per implicazione.

Per dimostrarlo dagli assiomi della logica proposizionale primitiva, LT esplora lo spazio applicando i suoi quattro operatori. Una dimostrazione tipica usa l’assioma *2.04 (principio di permutazione: da p(qr)p \to (q \to r) si deriva q(pr)q \to (p \to r)) e l’assioma *2.05 (principio di concatenazione: (qr)((pq)(pr))(q \to r) \to ((p \to q) \to (p \to r))), più definizioni di implicazione e negazione.

La ricerca di LT consiste nell’istanziare via substitution le variabili degli assiomi con i pattern del goal, applicare detachment per ridurre il goal a sotto-goal più semplici, fino a raggiungere assiomi diretti. Senza euristiche, lo spazio è troppo grande per essere esplorato in tempi ragionevoli su un JOHNNIAC. Con la valutazione di “somiglianza sintattica”, LT pota i rami non promettenti e arriva alla dimostrazione in pochi secondi.

L’aspetto storico interessante non è il teorema in se (è uno dei più semplici di Principia) ma il fatto che il programma trova dimostrazioni non guidate da un umano. La macchina ha esplorato uno spazio formale e ne ha estratto un risultato.

Esempio 2 — torre di Hanoi via means-ends analysis (GPS)

Sezione intitolata “Esempio 2 — torre di Hanoi via means-ends analysis (GPS)”

La torre di Hanoi a 3 dischi è un esempio scolastico ma istruttivo. Stato iniziale: tre dischi (grande G, medio M, piccolo P) impilati sul piolo A in ordine di grandezza. Stato goal: tutti i tre dischi sul piolo C nello stesso ordine. Pioli intermedi: A, B, C. L’unico operatore è muovi(disco, da, a) con precondizione “il disco è in cima a da e a è vuoto o ha un disco più grande in cima”.

Esecuzione di GPS:

  1. Differenza principale tra stato iniziale e goal: G non è su C. Operatore raccomandato: muovi(G, A, C). Precondizione non soddisfatta: M e P sono sopra G; C non è vuoto se ci stanno altri dischi (in questo caso è vuoto, ma la precondizione su G è che sia in cima).

  2. Sotto-goal: rendere G in cima ad A. Differenza: M e P stanno sopra G. Operatore raccomandato: muovi(M, A, B) (per liberare M da P serve prima muovere P). Precondizione: M in cima ad A. Non soddisfatta: P sta sopra M.

  3. Sotto-sotto-goal: muovere P da sopra M. Operatore: muovi(P, A, C). Precondizione: P in cima ad A. Soddisfatta. Esegui.

  4. Risali. Ora M è in cima ad A. Esegui muovi(M, A, B).

  5. Sotto-goal di liberare G dovrebbe essere completo. Ma per applicare muovi(G, A, C) serve anche che C sia vuoto o abbia disco più grande in cima. C ha P. Sotto-goal: muovere P via da C. Operatore: muovi(P, C, B). Soddisfatta. Esegui.

  6. Ora muovi(G, A, C) ha precondizioni soddisfatte. Esegui.

  7. Goal originale parzialmente raggiunto: G è su C. Restano da mettere M e P sopra. Ricorri.

La sequenza completa che GPS produce è la sequenza ottimale a 7 mosse: P A->C, M A->B, P C->B, G A->C, P B->A, M B->C, P A->C. È identica a quella che produce l’algoritmo ricorsivo classico della torre di Hanoi insegnato in ogni corso di algoritmi.

L’esempio mostra means-ends analysis nel suo lato bello: gestione gerarchica dei sotto-goal, ricorsione esplicita, tabella operatori-differenze ben definita. Su un problema complesso reale, l’esempio mostrerebbe il lato brutto: l’esplosione combinatoria, le interazioni tra sotto-goal che si invalidano a vicenda, la necessità di backtracking massiccio.

Stato iniziale del mondo: tavolo con un cubo grande rosso, due cubi grandi verdi (uno sopra l’altro), un cubo piccolo verde, una piramide blu (sul tavolo), una scatola.

Person: How many blocks are not in the box?
SHRDLU: Four of them.
Person: Put a small one onto the green cube which supports
a pyramid.
SHRDLU: OK.
Person: Why did you do that?
SHRDLU: To clear off the red cube.
Person: Why did you clear off that cube?
SHRDLU: To put it on a large green cube.
Person: Why did you do that?
SHRDLU: To stack up the red cube, a large red block,
and a large green cube.
Person: Why did you do that?
SHRDLU: Because you asked me to.
Person: How did you do it?
SHRDLU: By putting a large red block on the table; then
letting go of it; then putting a large green cube
on it; then letting go of that cube; then putting
the red cube on that cube; then letting go of that
cube.
Person: When did you pick up the green pyramid?
SHRDLU: While I was stacking up the red cube, a large red
block, and a large green cube.
Person: Why?
SHRDLU: To get rid of it.

Notare la gerarchia di motivazioni: ogni Why? fa risalire di un livello nella pila dei goal. La risposta “Because you asked me to” segna il fondo della catena: oltre, il sistema non ha motivazioni perché le motivazioni vengono dall’esterno.

È la profondità di queste risposte a Why? a convincere il pubblico dell’epoca che SHRDLU “capisce”. Una lettura più sobria: SHRDLU mantiene una pila di goal e una traccia di azioni; le risposte a Why? e a How? sono semplicemente proiezioni della struttura ricorsiva del planner sul dialogue manager. La sensazione di comprensione è un effetto di interfaccia, non un fatto sul sistema.

Molte tecniche di quell’epoca non sono solo sopravvissute: prosperano sotto altre etichette.

I theorem provers e proof assistants moderni sono nipoti diretti di Logic Theorist. Coq (1989), Isabelle (1986), Lean (2013), HOL Light, Z3 (Microsoft Research, 2007) eseguono manipolazione simbolica di proposizioni con strategie euristiche di ricerca. Sono usati per verificare formalmente kernel di sistemi operativi (seL4), ottimizzazioni di compilatore (CompCert), teoremi matematici complessi (la dimostrazione del four colors theorem in Coq, la dimostrazione formale del teorema di Feit-Thompson, parti di lavori recenti di Terence Tao in Lean). È un settore industrialmente vivo.

Il planning automatico moderno discende da GPS. STRIPS (1971) e poi PDDL (1998) formalizzano la rappresentazione del problema; planner come Fast Forward, LAMA, Fast Downward implementano motori di ricerca generici. Applicazioni: robotica, video games AI (Halo, F.E.A.R. usano planning gerarchico per gli NPC), logistica, scheduling industriale.

L’heuristic search è ovunque. A* dirige la routing in Google Maps, il path-finding nei video games, l’allineamento di sequenze in genome assembly. Monte Carlo Tree Search (MCTS), che è euristica probabilistica, è al cuore di AlphaGo (2016) e dei sistemi di reasoning su LLM che fanno search interna su token tree (parte della famiglia di tecniche di o1 e o3).

Lisp e dialetti sopravvivono in nicchie. Common Lisp in alcuni sistemi finanziari e in lavori di ricerca AI; Scheme nella didattica universitaria (SICP del MIT, vari corsi di programming languages); Clojure sulla JVM in industria, soprattutto in ambito data engineering (Datomic) e backend (alcune startup). Emacs Lisp è alla base di Emacs, l’editor che sopravvive da quarant’anni. La sintassi a parentesi che a meta anni Sessanta sembrava esotica è ancora pratica per chi la conosce.

I computer algebra systems di oggi (Mathematica 1988, Maple 1981, SymPy in Python) sono filiazione diretta di MACSYMA. Il calcolo simbolico di derivate e integrali si fa con regole sostanzialmente uguali a quelle del 1968.

I knowledge graphs (Google Knowledge Graph, Wikidata, ontologie biomediche come SNOMED-CT, schema.org) sono discendenti dei frames di Minsky (1974) e degli ontology systems sviluppati negli anni Settanta-Ottanta. Tornano oggi in uso pratico per ancorare la conoscenza dei LLM a strutture verificate.

Infine, il filone neuro-simbolico è attivamente in ricerca presso DeepMind, IBM Research, e numerosi gruppi accademici. Combina reti neurali (per percezione, embedding, generazione fluida) e ragionamento simbolico (per planning, verifica, logica). La Physical Symbol System Hypothesis non è morta; sta in una fase di trasformazione.

Il programma simbolico classico mostra crepe sostanziali ben prima del rapporto Lighthill del 1973 che ne sancisce il declino di finanziamenti (di cui parla primo-inverno-ai). Le crepe sono di natura tecnica, non solo politica.

Combinatorial explosion. Lo spazio di ricerca cresce esponenzialmente con il numero di operatori e di stati intermedi. Le euristiche generiche aiutano nei microworlds; non bastano nel mondo aperto. Un sistema di planning con 100 operatori e 50 oggetti può già avere uno spazio di stati con 101510^{15} elementi, intrattabile per qualunque hardware general-purpose, indipendentemente dall’epoca.

Common sense reasoning intrattabile. McCarthy nel 1959 propone l’Advice Taker, un sistema che dovrebbe ragionare sul senso comune. Sessantacinque anni dopo, il problema resta sostanzialmente aperto. La quantità di conoscenza implicita necessaria per gestire situazioni quotidiane (un bicchiere rotto si raccoglie, l’acqua bagna, le persone non camminano sui muri) è così vasta che codificarla a mano in regole esplicite non scala. Il progetto Cyc di Doug Lenat (1984-presente) ci ha provato per quarant’anni con risultati discussi.

Brittleness. Piccole variazioni distruggono il sistema. SHRDLU funziona finché le frasi rispettano la grammatica prevista; appena si esce, fallisce in modo silenzioso (parsing fallito) o catastrofico (interpretazione semantica errata che porta a azioni sbagliate). Stesso vale per i sistemi esperti del decennio successivo: MYCIN funziona bene su infezioni batteriche tipiche; appena si esce dal training set degli esperti che hanno scritto le regole, le sue diagnosi diventano inaffidabili.

Knowledge acquisition bottleneck. Costruire la table of differences di GPS, le regole di SHRDLU, la knowledge base di MYCIN richiede settimane o mesi di lavoro con esperti umani. Negli expert systems degli anni Ottanta nasce il knowledge engineer, un professionista la cui unica funzione è tradurre l’expertise umana in regole formali. Non scala. È uno dei principali motivi per cui gli expert systems collasseranno commercialmente nei tardi anni Ottanta.

Effetto ELIZA. L’utente attribuisce comprensione dove c’è solo pattern matching. Non è solo un problema etico per Weizenbaum: è un problema metodologico per i ricercatori, che tendono a sopravvalutare le capacità dei propri sistemi sulla base dell’impressione che fanno agli osservatori. Il fenomeno è strutturale e ricompare in ogni generazione di sistemi conversazionali: la fluidità di output viene scambiata per profondità di comprensione.

Predizioni grossolanamente sbagliate. Gli scacchi non cadono nel 1967 ma nel 1997, con Deep Blue, e con tecnica largamente non simbolica nel senso classico (search bruta su hardware specializzato, evaluation function tunata da grandmaster, niente “ragionamento” nel senso di GPS). Il problema generale dell’AI non è stato “sostanzialmente risolto entro una generazione” come prediceva Minsky: a quasi sessant’anni di distanza siamo ancora in mezzo al guado, anche se con strumenti che Minsky non avrebbe immaginato.

La frattura connessionista. Nel 1969 Minsky e Papert pubblicano Perceptrons: An Introduction to Computational Geometry. Il libro dimostra rigorosamente che un perceptron a strato singolo non può rappresentare la funzione XOR (uno-o-l’altro-ma-non-entrambi). Il risultato matematico è corretto e limitato: dice qualcosa sul perceptron a strato singolo, non sulle reti neurali in generale (le reti multistrato non hanno questo limite, come si scoprira con la backpropagation). Ma l’effetto retorico è devastante: i finanziamenti per le reti neurali si prosciugano per quasi vent’anni. La rinascita arriverà nel 1986 con Rumelhart, Hinton e Williams, e culminerà nel 2012 con AlexNet. Ne parliamo in reti-neurali-80-90 e imagenet-alexnet-2012.

ALPAC e la traduzione automatica. Nel 1966 il rapporto ALPAC (Automatic Language Processing Advisory Committee) della National Academy of Sciences valuta i progressi della machine translation finanziata dal governo americano e li giudica deludenti. Conclusione: tagliare i fondi. Per dieci anni la machine translation resta in penombra. Tornerà con metodi statistici negli anni Novanta e con metodi neurali negli anni Duemiladieci. Il caso ALPAC anticipa la dinamica del Lighthill report del 1973.

L’effetto cumulativo di queste crepe matura nei primi anni Settanta in quello che verrà chiamato il primo inverno dell’AI: tagli di fondi, scetticismo accademico, fuga di talento verso aree adiacenti (ricerca operativa, statistica, linguistica computazionale separata dall’AI). Il programma simbolico non muore, ma si ritrae. Risorgerà negli anni Ottanta in forma di expert systems commerciali, raccontati in sistemi-esperti.

  • dartmouth-1956 — il punto di partenza: la fondazione organizzativa e i primi attori. Logic Theorist viene presentato qui per la prima volta; tutte le persone chiave del periodo 1956-1973 transitano da quel workshop.
  • turing-macchina-mente — il manifesto filosofico del 1950 e la child machine di Turing prefigurano il programma simbolico, anche se Turing stesso non era un simbolista puro.
  • preistoria-intelligenza — Boole, Frege, Russell-Whitehead sono il sostrato logico che Logic Theorist e GPS manipolano. Senza Principia Mathematica non c’è Logic Theorist.
  • primo-inverno-ai — le crepe degli anni Settanta (Lighthill report 1973, ALPAC 1966 sul fronte traduzione automatica, Perceptrons 1969 sul fronte connessionista) chiudono l’era simbolica iniziale e tagliano i fondi a tre laboratori per quasi un decennio.
  • sistemi-esperti — la filiazione diretta degli anni Settanta-Ottanta. DENDRAL è il padre, MYCIN e XCON i figli commerciali. La struttura “knowledge base + inference engine” che dominerà il decennio nasce qui.
  • reti-neurali-80-90 — il ritorno del paradigma alternativo dopo la lunga eclissi causata da Perceptrons del 1969. Backpropagation 1986, connessionismo che riemerge come scuola, deep learning incubato.
  • logica-proposizionale (Parte VII) — la tradizione formale che Logic Theorist trasforma in calcolo automatico. Da li parte la lunga storia di SAT solvers, theorem provers, model checkers.
  • planning-strips (Parte VII) — STRIPS al SRI nel 1971 (Fikes e Nilsson) è la diretta discendente di GPS. Formalizza il problema di planning con stati, operatori, precondizioni e effetti come strutture esplicite.
  • rappresentazione-conoscenza (Parte VII) — i frames di Minsky (1974) e gli scripts di Schank (1977) maturano da questa tradizione. Tornano in uso oggi nei knowledge graphs.
  • ai-forte-ai-debole (Parte II) — la Physical Symbol System Hypothesis è la versione “ai forte” del paradigma simbolico. La critica filosofica successiva (Searle con la stanza cinese del 1980, Dreyfus con What Computers Can’t Do del 1972) si confronterà direttamente con questa tesi.
  • neuro-simbolico (Parte VII) — il filone moderno che cerca di ricomporre simbolico e connessionista. Eredità esplicitamente vocabolario e tecniche dal periodo che abbiamo raccontato.
  • Newell, A.; Shaw, J. C.; Simon, H. A. “Empirical Explorations of the Logic Theory Machine.” Proceedings of the Western Joint Computer Conference, 1957. Resoconto tecnico originale di Logic Theorist, scritto dagli autori l’anno dopo la prima esecuzione. Si legge ancora bene.
  • Weizenbaum, J. “ELIZA — A Computer Program For the Study of Natural Language Communication Between Man and Machine.” Communications of the ACM 9(1), 1966. Il paper originale di ELIZA, con codice della script DOCTOR e la celebre osservazione di Weizenbaum sull’attribuzione di comprensione.
  • Winograd, T. “Procedures as a Representation for Data in a Computer Program for Understanding Natural Language.” MIT AI Technical Report 235, February 1971. La tesi PhD che descrive SHRDLU: architettura, esempi di dialogo, planner, lessico. È lunga (oltre 400 pagine) ma le prime 100 sono molto leggibili.
  • Newell, A.; Simon, H. A. “Computer Science as Empirical Inquiry: Symbols and Search.” Communications of the ACM 19(3), 1976. La Turing Award Lecture in cui viene formalizzata la Physical Symbol System Hypothesis. Documento foundational.
  • McCorduck, P. “Machines Who Think.” A. K. Peters, 2nd edition 2004 (originale 1979). Storia dell’AI scritta da una giornalista che intervisto direttamente Newell, Simon, McCarthy, Minsky negli anni Settanta. Piena di citazioni dirette e aneddoti che non si trovano altrove.
  • Russell, S.; Norvig, P. “Artificial Intelligence: A Modern Approach.” Pearson, 4th edition 2020. Il capitolo storico (capitolo 1) è la sintesi più equilibrata in circolazione, scritta da due autori che padroneggiano sia la storia sia lo stato dell’arte.
  • Nilsson, N. J. “The Quest for Artificial Intelligence: A History of Ideas and Achievements.” Cambridge University Press, 2010. Storia dell’AI scritta da uno dei protagonisti (lavoro al SRI, co-autore di A* e di STRIPS). Disponibile gratuitamente come PDF dal sito di Stanford.