|
|
Nello stesso momento in cui le tecniche subsimboliche stanno prendendo il sopravvento nel campo dell'Intelligenza Artificiale, le tecniche simboliche stanno ottenendo grande attenzione per rispondere ad alcune criticità evidenziate dalle prime, come possibilità di essere comprensibili e facilmente spiegabili.
Tuttavia, nel tempo, le tecniche simboliche – e, le tecnologie legate alla programmazione logica in particolare – hanno mostrato alcuni limiti, che un campo attivo nell'ambito della ricerca sta cercando di superare. Tra questi limiti si evidenza solitamente la possibilità di gestire un numero limitato di dati — quelli che possono essere mantenuti senza problemi in memoria.
La tesi si muove in questo contesto con lo scopo di studiare la fattibilità e progettare un sistema di archiviazione della conoscenza di un motore Prolog che consenta la gestione di un numero elevato di dati.
tuProlog è un motore Prolog ideato per l'Intelligenza Artificiale che lavora con teorie logiche mantenute in memoria, e verrà utilizzato per la realizzazione del caso di studio.
Si vuole ampliare l'applicazione con la possibilità di salvare le teorie Prolog in un database NoSQL per permettere di operare con teorie molto grandi che non stanno in memoria. L'interazione con il database deve essere resa trasparente all'utente, il quale non deve accedere direttamente al database né deve conoscere il linguaggio in cui si formulano le query.
Nel dettaglio la tesi si articolerà come segue: i) studio e analisi dei database NoSQL a grafo e basati su documenti (rispettivamente nelle implementazioni Neo4j e MongoDB) confrontando le loro peculiarità; ii) selezione della tecnologia ritenuta migliore; iii) progettazione di una soluzione efficiente ed efficace per i motori Prolog; iv) implementazione e collaudo in tuProlog.
keywords
tuProlog, database NoSQL, Neo4j, indicizzazione clausole logiche