Symbolic AI
L’IA simbolica, o GOFAI, ragiona su simboli leggibili dagli esseri umani usando regole e logica esplicite. Scopri come funzionano i sistemi esperti, quali sono i loro limiti e cos’è l’IA neuro-simbolica.
L’IA simbolica è un approccio all’intelligenza artificiale (AI) che rappresenta la conoscenza con simboli leggibili dagli esseri umani, come bird, penguin o «Socrate è un uomo», e ragiona su di essi mediante regole esplicite, logica e ricerca. Ha dominato la ricerca sull’IA dal seminario di Dartmouth del 1956 agli anni Ottanta; nel 1985, il filosofo John Haugeland la definì in seguito «Good Old-Fashioned AI» (GOFAI). Ogni conclusione raggiunta da un sistema simbolico è riconducibile a regole scritte e leggibili da una persona, il che lo rende verificabile; tutta la sua conoscenza deve però essere inserita manualmente, rendendolo difficile da scalare.
Come funziona l’IA simbolica#
Un sistema simbolico ha due componenti. La base di conoscenza memorizza fatti («Socrate è un uomo») e regole («tutti gli uomini sono mortali») in un linguaggio formale, come la logica del primo ordine, le regole di produzione se-allora o un grafo della conoscenza. Il motore inferenziale applica le regole per derivare fatti non memorizzati («Socrate è mortale»). Il concatenamento in avanti parte dai fatti noti e attiva tutte le regole le cui condizioni sono soddisfatte, finché non emergono nuovi fatti. Il concatenamento all’indietro parte da un obiettivo e risale ai fatti che potrebbero dimostrarlo: è la strategia integrata nel linguaggio di programmazione logica Prolog.
La teoria alla base dell’approccio è l’ipotesi del sistema fisico di simboli formulata nel 1976 da Allen Newell e Herbert Simon, secondo cui la manipolazione dei simboli è necessaria e sufficiente per l’intelligenza generale. Un motore a concatenamento in avanti si implementa in poche righe di Python:
# Knowledge base: IF every premise is a known fact THEN add the conclusion
rules = [
({"has_feathers", "lays_eggs"}, "bird"),
({"bird", "cannot_fly", "swims"}, "penguin"),
]
facts = {"has_feathers", "lays_eggs", "cannot_fly", "swims"}
# Forward chaining: keep firing rules until no new fact appears
changed = True
while changed:
changed = False
for premises, conclusion in rules:
if premises <= facts and conclusion not in facts:
facts.add(conclusion)
changed = True
print(f"{conclusion} <- {sorted(premises)}")Il motore stampa bird <- ['has_feathers', 'lays_eggs'] e poi penguin <- ['bird', 'cannot_fly', 'swims']: la seconda regola si attiva solo perché la prima ha aggiunto bird, e ogni riga stampata è una spiegazione completa del motivo per cui la conclusione è valida, il tipo di traccia di ragionamento che i metodi di IA spiegabile (XAI) cercano di ricostruire per le reti neurali.
Sistemi esperti#
L’IA simbolica arrivò nell’industria negli anni Settanta e Ottanta sotto forma di sistemi esperti. MYCIN, sviluppato a Stanford, identificava i batteri responsabili di infezioni gravi e consigliava antibiotici sulla base di circa 600 regole raccolte dai medici; XCON, di Digital Equipment Corporation, configurava gli ordini dei clienti per i computer VAX. I sistemi esperti affiancano al motore di base un ingegnere della conoscenza, che intervista gli esperti del settore e codifica ciò che sanno sotto forma di regole, e una funzione di spiegazione, che ripercorre le regole alla base di ogni risposta.
La fase delle interviste diventò il collo di bottiglia. Gli esperti faticano a esprimere le proprie intuizioni sotto forma di regole, le basi di regole estese falliscono nei casi imprevisti e i sistemi non possono apprendere dai dati. Il progetto Cyc di Doug Lenat, avviato nel 1984 per codificare manualmente il senso comune, ha dedicato decenni a questo problema. Quando i finanziamenti ai sistemi esperti crollarono alla fine degli anni Ottanta, il settore entrò nel suo secondo «inverno dell’IA».
AI simbolica e AI statistica#
L’IA statistica apprende schemi dagli esempi ed è alla base del moderno machine learning (ML) e del deep learning (DL). I due paradigmi falliscono in situazioni opposte:
- IA simbolica: esatta, trasparente e utilizzabile senza alcun dato di addestramento, è adatta all’aritmetica, alla pianificazione, alle normative e alle dimostrazioni formali. Non è in grado di gestire la percezione grezza, perché nessuno può scrivere regole che riconoscano un gatto dai valori dei pixel, e fallisce con input non previsti dalle sue regole.
- IA statistica: apprende la percezione e il linguaggio direttamente dai dati e tollera il rumore, ma richiede dataset di grandi dimensioni, le sue decisioni sono difficili da esaminare e i modelli linguistici possono generare risposte fluide ma errate, note come allucinazioni.
Dove si usa oggi l’IA simbolica#
- Motori di regole e conformità: i software fiscali e i motori di regole aziendali codificano le normative sotto forma di regole esplicite, così ogni risultato è riconducibile alla clausola che lo ha generato.
- Pianificazione e programmazione: i pianificatori automatici esplorano descrizioni simboliche di azioni, precondizioni ed effetti per pianificare la logistica, il lavoro in fabbrica e le operazioni dei veicoli spaziali.
- Verifica formale: risolutori SAT e SMT come Z3 di Microsoft dimostrano proprietà di chip e software, mentre assistenti di dimostrazione come Lean verificano le dimostrazioni matematiche passo dopo passo.
- Grafi della conoscenza: motori di ricerca e Wikidata memorizzano miliardi di fatti sotto forma di entità e relazioni che possono essere esplorate tramite query.
IA neuro-simbolica#
L’IA neuro-simbolica combina i due paradigmi: le reti neurali gestiscono la percezione e il riconoscimento di schemi, mentre le componenti simboliche gestiscono regole, vincoli e ragionamento esatto. Anche i modelli linguistici che chiamano una calcolatrice, un database SQL o un interprete di codice tramite la chiamata di funzioni adottano la stessa suddivisione del lavoro. Nelle pipeline di visione, un rilevatore come Ultralytics YOLO26 converte i pixel in simboli — i nomi delle classi degli oggetti individuati — su cui poi ragionano regole semplici:
from ultralytics import YOLO
# Percezione neurale: rileva gli oggetti e conserva i nomi delle classi come fatti simbolici
model = YOLO("yolo26n.pt")
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
facts = {result.names[int(c)] for c in result.boxes.cls}
# Ragionamento simbolico: SE sono presenti un autobus E una persona, ALLORA lancia un avviso
if {"bus", "person"} <= facts:
print("Rule fired: pedestrians next to a bus")Modificare la regola cambia immediatamente il comportamento del sistema, senza riaddestrarlo. AlphaGeometry di Google DeepMind applica la stessa suddivisione alla matematica: un modello linguistico neurale propone costruzioni ausiliarie, un motore di deduzione simbolico dimostra il risultato a partire da esse e, insieme, hanno risolto 25 dei 30 problemi di geometria delle Olimpiadi internazionali della matematica in un articolo pubblicato su Nature nel 2024.










