Che fine ha fatto il Prolog?
Negli anni '80, credendo che la logica fosse il futuro del calcolo, il Giappone puntò tutto su Prolog per il suo progetto “Fifth Generation Computer”. Quando il progetto fallì, sia perché l'hardware non reggeva sia perché i problemi reali sono troppo complessi per la pura deduzione logica, Prolog perse finanziamenti e popolarità. Inoltre, l'ascesa del C++ e poi di Java portò i programmatori verso il paradigma imperativo/object-oriented, più vicino al'HW e al mercato del lavoro.
In particolare ha i limiti seguenti:
- la gestione di eccezioni, di input/output e delle interazioni con il mondo esterno risulta scomoda;
- ragionare per backtracking e unificazione è controintuitivo per chi viene da linguaggi procedurali;
- per calcoli numerici o elaborazione massiva di dati, è lentissimo;
- non ha librerie moderne per il web, il machine learning o la grafica.
Sopravvive comunque in tre ambiti principali:
- sistemi esperti e regole di business, infatti grandi aziende (banche, assicurazioni) lo usano per motori di validazione di contratti o frodi, dove le regole sono tante e cambiano spesso;
- Bioinformatica e chimica computazionale per modellare molecole e reazioni, dove servono relazioni complesse;
- Elaborazione del linguaggio naturale (NLP), non per il deep learning, ma per fare parsing grammaticale di frasi ambigue, come il Core Language Engine o progetti accademici di linguistica computazionale.
- AI spiegabile (XAI), un insieme di metodi, tecniche e processi progettati per rendere trasparenti, comprensibili e affidabili i processi decisionali dei modelli di intelligenza artificiale e machine learning; a differenza dei tradizionali modelli "black box" (scatola nera), che generano output senza chiarire la logica sottostante, la XAI mira a colmare il divario tra la complessità computazionale e la comprensione umana, permettendo agli utenti di capire perché un sistema ha preso una specifica decisione o generato un certo risultato; Prolog produce tracce logiche su come ha preso una decisione, fondamentale per la medicina o la finanza;
- Sistemi di raccomandazione, progettati per filtrare contenuti e fornire suggerimenti personalizzati agli utenti, aiutandoli a navigare tra grandi volumi di informazioni, dove servono regole semantiche come "se il cliente ha figli e vive in città, suggerisci X";
- Graph Database, poiché la logica di Prolog si sposa benissimo con le query su grafi; alcuni usano Prolog per interrogare neo4j in modo più espressivo di Cypher.
- IBM ha sperimentato ProbLog per i sistemi di decisione in finanza (valutazione del rischio di credito con regole normative e dati incerti),
- Aziende farmaceutiche per drug repurposing, che consiste nell'identificare nuove indicazioni terapeutiche per farmaci già approvati o in fase di sviluppo sfruttando i loro profili di sicurezza e efficacia già noti, combinano dati di letteratura (incerti) con regole biochimiche,
- Smart Manufacturing, diagnosticare guasti in catene di montaggio dove i sensori danno letture probabilistiche.
Riferimenti sito/bibliografici
- Prolog, da Wikipedia
- Simply Logical – Intelligent Reasoning by Example, by Peter Flach
- SICStus Prolog
- SWISH, great tool for Prolog
- OneCompiler Prolog