Serializzazione di termini logici: progetto e sviluppo in tuProlog, JSON e YAML

   page       attach   

L’Intelligenza Artificiale oggi si trova ad affrontare la dicotomia tra simbolico e sub-simbolico, ossia tra un approccio in cui le regole sono esplicite e identificabili nei comportamenti dei singoli elementi e un altro dove invece non lo sono. Spesso i dispositivi intelligenti in grado di apprendere dagli stimoli del mondo esterno e di fare previsioni (ad esempio sui desideri dell’utente) si affidano a tecniche sub-simboliche, tanto efficienti quanto per loro natura difficilmente spiegabili dal punto di vista del processo di sintesi del risultato proposto. Ciò complica non poco l’accettabilità dei risultati, minandone quindi potenzialmente anche l’affidabilità. Partendo dal presupposto che pertanto gli approcci simbolici – ed in particolare la programmazione logica in Prolog – nei sistemi intelligenti pervasivi odierni (come ad esempio IoT) devono essere interoperabili con il mondo che li circonda, ed in particolare con strumenti sub-simbolici, in questa tesi si affronta il tema della serializzazione dei termini logici, che in Prolog costituiscono la base di conoscenza del sistema, in un formato interoperabile basato su JSON/YAML, così da rendere tali oggetti logici interoperabili ad esempio salvandoli in memoria o trasferendoli sulla rete. In particolare, l’obiettivo principale è quello di ideare un criterio per trasformare i termini logici in oggetti JSON/YAML rispettando un vincolo di facilità di comprensione – ovvero leggibilità – dell’oggetto serializzato. Per la realizzazione del sistema presentato nella tesi si utilizza tuProlog, un framework Prolog per applicazioni e infrastrutture distribuite.

keywordsProlog, Logic Programming, JSON, YAML, Serializzazione, IoT, Artificial Intelligence