Knowledge Representation and Reasoning

Anno accademico 2026/2027 - Docente: DANIELE FRANCESCO SANTAMARIA

Risultati di apprendimento attesi

Il corso di Knowledge Representation and Reasoning ha lo scopo di fornire agli studenti gli strumenti teorici e pratici necessari per comprendere i principi alla base della rappresentazione della conoscenza e del ragionamento automatico, con particolare riferimento alle tecnologie dei Knowledge Graphs.


Il corso introduce i principali concetti, le metodologie e le tecnologie per la progettazione, lo sviluppo, la documentazione e la codifica di basi di conoscenza, fornendo le competenze necessarie per realizzare e utilizzare sistemi basati su Knowledge Graphs.


Il corso è articolato in una parte teorica e una parte pratica. Quest'ultima prevede l'utilizzo del framework Neo4j, attraverso il quale gli studenti potranno acquisire esperienza nella progettazione, realizzazione e interrogazione di Knowledge Graphs.

 

Il corso si pone i seguenti obiettivi formativi generali in termini di risultati di apprendimento attesi.

 

1. Conoscenza e capacità di comprensione (Knowledge and understanding). Al termine del corso, lo studente avrà acquisito una conoscenza dei principali concetti, modelli, metodologie e tecnologie relativi alla rappresentazione della conoscenza  e ai Knowledge Graphs. Sarà inoltre in grado di comprendere i principi alla base della progettazione e della gestione di basi di conoscenza e dei principali strumenti per la loro realizzazione e interrogazione.


2. Capacità di applicare conoscenza e comprensione (Applying knowledge and understanding). Al termine del corso, lo studente sarà in grado di applicare le conoscenze acquisite alla progettazione, realizzazione, documentazione e interrogazione di basi di conoscenza. Sarà inoltre in grado di utilizzare il framework Neo4j per implementare e gestire Knowledge Graphs, applicando tecniche e metodologie appropriate a semplici problemi di rappresentazione e gestione della conoscenza.


3. Autonomia di giudizio (Making judgements). Lo studente sarà in grado di analizzare problemi di rappresentazione della conoscenza e di valutare criticamente approcci, modelli e soluzioni tecnologiche in relazione alle caratteristiche del problema da affrontare. Sarà inoltre in grado di individuare le modalità più appropriate per modellare, organizzare e interrogare la conoscenza all'interno di un Knowledge Graph.


4. Abilità comunicative (Communication skills). Lo studente sarà in grado di descrivere e presentare in modo chiaro e adeguato i concetti, le metodologie e le soluzioni adottate nell'ambito della rappresentazione della conoscenza e dei Knowledge Graphs. Sarà inoltre in grado di documentare le basi di conoscenza realizzate e di comunicare le proprie scelte progettuali utilizzando una terminologia tecnica appropriata.

5. Capacità di apprendimento (Learning skills). Lo studente svilupperà la capacità di apprendere autonomamente nuovi strumenti, tecnologie e metodologie nell'ambito della rappresentazione della conoscenza e dei Knowledge Graphs. Sarà inoltre in grado di consultare documentazione tecnica e scientifica e di approfondire autonomamente gli argomenti affrontati durante il corso, anche in relazione all'evoluzione delle tecnologie per la gestione della conoscenza.

Modalità di svolgimento dell'insegnamento

Il corso prevede lezioni teoriche ed esercitazioni pratiche in aula, integrate, ove possibile, da seminari, finalizzate alla presentazione e alla discussione dei principali concetti, metodologie e tecnologie relativi alla rappresentazione della conoscenza e ai Knowledge Graphs.

Prerequisiti richiesti

Non sono richiesti prerequisiti specifici. È tuttavia richiesta una preparazione di base nelle discipline informatiche, corrispondente alle conoscenze e competenze tipicamente acquisite al termine di un corso di laurea triennale in Informatica.

Frequenza lezioni

La frequenza è facoltativa, ma fortemente consigliata.

Contenuti del corso

  1. Il ruolo dei Knowledge Graph nel l’IA moderni, cenni.
  2. Introduzione alla rappresentazione della conoscenza: definizione di conoscenza, informazione, dato; la piramide DIKW e il triangolo semiotico.
  3. Introduzione alla rappresentazione della conoscenza: le Reti Semantiche.
  4. Introduzione alla rappresentazione della conoscenza: i Frame.
  5. Introduzione alla rappresentazione della conoscenza: soluzioni moderne.
  6. Introduzione al ragionamento sulla conoscenza: definizioni.
  7. Introduzione al ragionamento sulla conoscenza: cenni di Logica Descrittiva.
  8. Introduzione al ragionamento sulla conoscenza: cenni di Logic Programming.
  9. Introduzione al ragionamento sulla conoscenza: cenni di Production System Rules.
  10. Introduzione alla modellazione della conoscenza: KADS.
  11. Introduzione alla modellazione della conoscenza: le ontologie.
  12. Knowledge Graph: cenni storici.
  13. Knowledge Graph: definizioni.
  14. Knowledge Graph: modelli di dato.
  15. Knowledge Graph, dalla progettazione al rilascio: introduzione.
  16. Knowledge Graph, dalla progettazione al rilascio; la fase di creazione.
  17. Knowledge Graph, dalla progettazione al rilascio; la fase di hosting.
  18. Knowledge Graph, dalla progettazione al rilascio: la fase di gestione.
  19. Knowledge Graph, dalla progettazione al rilascio: la fase di rilascio.

Testi di riferimento

I testi adottati sono i seguenti:
  • Dieter Fensel et al., Knowledge Graphs: Methodology, Tools and Selected Use Cases.
  • Neo4J Cypher Official Manual (Cypher Version 25).

Il docente fornirà inoltre tutto il materiale didattico integrativo necessario allo svolgimento del corso, comprese dispense, esercitazioni, letture supplementari e ulteriori risorse utili.

Programmazione del corso

 ArgomentiRiferimenti testi
1Il ruolo dei Knowledge Graph nell'IA moderna, cenniSlides
2Introduzione alla rappresentazione della conoscenza: definizione di conoscenza, informazione, dato; la piramide DIKW e il triangolo semioticoSlides
3Introduzione alla rappresentazione della conoscenza:  le Reti SemanticheSlides
4Introduzione alla rappresentazione della conoscenza: i FrameSlides
5Introduzione alla rappresentazione della conoscenza: soluzioni moderneSlides
6Introduzione al ragionamento sulla conoscenza: definizioniSlides
7Introduzione al ragionamento sulla conoscenza: cenni di Logica DescrittivaSlides
8Introduzione al ragionamento sulla conoscenza: cenni di Logic ProgrammingSlides
9Introduzione al ragionamento sulla conoscenza: cenni di Production System RulesSlides
10Introduzione alla modellazione della conoscenza: KADS Slides
11Introduzione alla modellazione della conoscenza: le ontologieSlides
12Knowledge Graph: cenni storiciFensel, capitolo I
13Knowledge Graph: definizioniFensel, capitolo I
14Knowledge Graph: modelli di datoFensel, capitolo I
15Knowledge Graph, dalla progettazione al rilascio: introduzioneFensel, capitolo I
16Knowledge Graph, dalla progettazione al rilascio; la fase di creazioneFensel, capitolo II
17Knowledge Graph, dalla progettazione al rilascio; la fase di hostingFensel, capitolo II
18Knowledge Graph, dalla progettazione al rilascio: la fase di gestioneFensel, capitolo II
19Knowledge Graph, dalla progettazione al rilascio: la fase di rilascioFensel, capitolo II

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento


L'esame consiste nella realizzazione e presentazione di un progetto, concordato con il docente, volto a verificare la capacità dello studente di applicare le conoscenze e le competenze acquisite durante il corso alla progettazione, implementazione e interrogazione di un Knowledge Graph. 

Criteri di attribuzione del voto finale

L’attribuzione del voto finale terrà conto principalmente della qualità del Knowledge Graph realizzato, della correttezza delle scelte di modellazione, della capacità di rappresentare adeguatamente il dominio applicativo e della qualità della relativa documentazione. Saranno inoltre valutate la capacità dello studente di illustrare il progetto, motivare le scelte effettuate e collegare criticamente gli aspetti teorici e pratici affrontati durante il corso.

  • Non approvato: il Knowledge Graph non raggiunge gli obiettivi minimi del progetto, presenta carenze sostanziali nella modellazione o nella rappresentazione della conoscenza e/o non è adeguatamente documentato. Lo studente non dimostra di aver acquisito i concetti di base necessari per comprendere, realizzare e discutere il progetto. Il giudizio sarà inoltre non approvato qualora il progetto risulti essere prevalentemente frutto di AI slop, ossia di contenuti generati automaticamente e non adeguatamente compresi, verificati, integrati e motivati dallo studente.

  • 18–23: il Knowledge Graph copre i concetti fondamentali del dominio e presenta una modellazione essenziale, seppur con eventuali semplificazioni o limitazioni. Le scelte progettuali sono comprese e motivate solo parzialmente. La documentazione è sufficiente a descrivere la struttura e le principali caratteristiche del Knowledge Graph, ma risulta limitata nell’analisi delle scelte effettuate e nella loro motivazione. Durante la discussione, lo studente dimostra una padronanza minima dei concetti di base e capacità modeste di collegare gli aspetti teorici alle soluzioni adottate nel progetto.

  • 24–27: il Knowledge Graph è ben progettato e strutturato, rappresenta in modo adeguato il dominio scelto e mostra una buona applicazione dei concetti e delle tecniche affrontate durante il corso. Le principali scelte di modellazione sono motivate e il progetto presenta un buon livello di coerenza e completezza. La documentazione è discreta e descrive in modo chiaro il modello adottato, le principali scelte progettuali, i dati rappresentati e le modalità di utilizzo o interrogazione del Knowledge Graph. Lo studente dimostra una buona padronanza dei contenuti e una buona capacità di discuterne le implicazioni.

  • 28–30 e lode: il Knowledge Graph è completo, coerente e ben concepito, con scelte di modellazione adeguatamente motivate e un’elevata attenzione alla qualità della rappresentazione della conoscenza. Il progetto dimostra una piena padronanza dei concetti del corso e, ove pertinente, considera criticamente aspetti quali riuso e allineamento delle ontologie, qualità e provenienza dei dati, interoperabilità, validazione e interrogazione del grafo. La documentazione è completa, chiara e tecnicamente approfondita, tale da consentire a un lettore esterno di comprendere il dominio, il modello di conoscenza, le scelte progettuali e le modalità di utilizzo del Knowledge Graph. Durante la discussione, lo studente dimostra di saper esporre compiutamente il progetto, motivare le proprie scelte e collegare criticamente gli aspetti teorici e pratici affrontati nel corso.

Discussione del progetto

La valutazione del progetto comprenderà anche una discussione orale, durante la quale lo studente dovrà essere in grado di:

  • descrivere il dominio e gli obiettivi del Knowledge Graph;

  • illustrare la struttura e le principali scelte di modellazione;

  • motivare le scelte effettuate e discutere eventuali alternative;

  • spiegare come i dati sono stati acquisiti, trasformati e rappresentati;

  • mostrare e discutere le principali modalità di interrogazione e utilizzo del Knowledge Graph;

  • illustrare la documentazione prodotta;

  • rispondere a domande relative ai concetti teorici del corso applicati al progetto.

La discussione dovrà dimostrare che il Knowledge Graph e la relativa documentazione sono stati compresi e realizzati consapevolmente dallo studente, e non semplicemente prodotti mediante strumenti automatici.

Prenotazione dell’esame

Per partecipare all’esame è necessario aver effettuato la prenotazione sul portale SmartEdu.

La discussione del progetto si svolgerà in una data successiva a quella della prenotazione, concordata con il docente.

Studenti con disabilità e/o DSA

Gli studenti con disabilità e/o DSA dovranno contattare con sufficiente anticipo rispetto alla data dell’esame il docente e il referente CInAP del DMI, comunicando la volontà di sostenere l’esame usufruendo delle opportune misure compensative.

Esempi di domande e/o esercizi frequenti

  • Progettare un Knowledge Graph a partire da uno specifico dominio applicativo, individuando entità, relazioni e proprietà rilevanti.
  • Modellare un dominio utilizzando il modello a grafo e implementarlo mediante Neo4j.
  • Scrivere ed eseguire query Cypher per inserire, modificare, recuperare e analizzare i dati presenti nel Knowledge Graph.
  • Analizzare un modello di conoscenza esistente e proporre eventuali modifiche o miglioramenti.
  • Documentare le scelte effettuate nella progettazione del Knowledge Graph, motivando la scelta delle strutture e delle relazioni utilizzate.
  • Risolvere semplici problemi di interrogazione e ragionamento sulla conoscenza utilizzando gli strumenti e le tecniche presentati durante il corso.