La rappresentazione della conoscenza

Trovare una logica a tutto ciò che si dice o si osserva è impossibile. La realtà è complessa e, spesso, nemmeno un essere umano riesce a interpretarla correttamente. L'uomo ha imparato a convivere con i dubbi e l'incertezza. A partire da queste premesse, sarebbe irrazionale chiedere a un elaboratore di comprendere la realtà che ci circonda utilizzando soltanto la logica. È comune pensare che la logica sia sinonimo di razionalità e di perfezione. Nulla di più errato. La logica booleana è molto forte sul piano matematico ma ben poco si adatta a interpretare la complessità della realtà. Soltanto un essere onnisciente con una conoscenza perfetta dell'universo ( informazione perfetta ) potrebbe dare un senso logico a ciò che accade in modo razionale e completo. Senza contare che alcuni fenomeni naturali hanno una natura aleatoria che non potrebbe essere colmata nemmeno eliminando l'ignoranza sulla materia. Ciò accade, ad esempio, nella fisica quantistica. Qualsiasi forma di intelligenza artificiale deve saper convivere con l'incertezza come l'uomo. Da questo punto di vista la logica fuzzy è molto più idonea a rappresentare la conoscenza e i processi inferenziali. Resta il fatto che la realtà debba essere osservata o spiegata all'agente. L'agente razionale può apprendere dall'osservazione ma almeno un minimo di conoscenza di base va sviluppata in fase di progettazione e di programmazione. A questo punto la mia domanda è la seguente: quale linguaggio di programmazione utilizzare? Si potrebbe creare un nuovo formalismo logico per aiutare la macchina svolgere i suoi calcoli. Negli ultimi trent'anni molti sviluppatori hanno provato la strada del formalismo ad hoc ( es. Prolog, logica del primo ordine, ecc. ). Questi formalismi velocizzano il processo inferenziale ma sono poco user friendly per un essere umano non addetto ai lavori, i quali sono abituati a descrivere la realtà nel linguaggio naturale. È quindi necessario sviluppare un'interfaccia tra il linguaggio naturale delle persone e qualsiasi linguaggio logico-formale della macchina. Perdere inizialmente un po' di tempo sull'interfaccia ha il vantaggio di velocizzare la fase di introduzione manuale della conoscenza poiché chiunque, ognuno nella sua specifica competenza, sarebbe in grado farlo. Il processo di costruzione della rappresentazione di conoscenza sarebbe molto più veloce. Inoltre, quanto più il linguaggio logico formale della macchina si avvicina al linguaggio naturale, tanto più la macchina sarà in grado di comprendere e di rappresentare il mondo in modo simile a un uomo. Una volta raggiunto un minimo di conoscenza, la macchina potrà continuare da sé ad acquisire la conoscenza dall'esterno tramite i sensori, elaborare nuove ipotesi e generare nuova conoscenza tramite i propri processi inferenziali interni. 21 / 06 / 2014


Per scrivere un commento

knowledge base