I grafi di conoscenza
Uno dei problemi fondamentali dell’informatica moderna non è la mancanza di dati, ma l’assenza di significato strutturato. I database tradizionali conservano enormi quantità di informazioni, ma lo fanno in modo che risulta comprensibile principalmente agli esseri umani o alle applicazioni che conoscono già lo schema. Un computer, da solo, non “capisce” che una tabella contiene persone, che una colonna rappresenta una relazione di parentela o che da due fatti ne può derivare logicamente un terzo. In altre parole, i sistemi informatici classici memorizzano dati, ma non conoscenza.
I grafi di conoscenza nascono per risolvere proprio questo problema: rappresentare informazioni in modo che il loro significato sia esplicito, formalizzato e utilizzabile per il ragionamento automatico. Non si limitano a dire che esistono certi valori, ma chiariscono che cosa sono, come sono collegati e quali regole logiche governano quei collegamenti.
Dati collegati non bastano: serve semantica
Un grafo di conoscenza rappresenta il mondo come una rete di entità collegate da relazioni. A prima vista potrebbe sembrare simile a un normale grafo informatico, ma la differenza cruciale sta nel fatto che le relazioni hanno un significato formale. Dire che “Roma è capitale di Italia” non è solo un collegamento tra due nodi: è un’affermazione semanticamente interpretabile, su cui un sistema può ragionare.
Questa struttura consente di esprimere la conoscenza in forma di triple del tipo:
(soggetto) — (relazione) → (oggetto)
Ma la vera svolta avviene quando si introduce un livello ulteriore: le ontologie.
Le ontologie: quando il grafo diventa logica
Un’ontologia è ciò che trasforma un insieme di collegamenti in un sistema logico coerente. Essa definisce non solo quali relazioni esistono, ma come si comportano. Questo punto è essenziale per comprendere tutto ciò che abbiamo discusso.
Un grafo di conoscenza non deduce nulla “per intuizione”. Se una relazione è transitiva, simmetrica o riflessiva, lo è perché questa proprietà è stata dichiarata esplicitamente nel modello. È l’ontologia che stabilisce le regole del gioco; il motore di inferenza si limita ad applicarle in modo rigoroso.
Prendiamo la transitività. Se dichiaro che la relazione “è parte di” è transitiva, allora dal fatto che A è parte di B e B è parte di C, il sistema dedurrà automaticamente che A è parte di C. Se la transitività non è dichiarata, la deduzione non avviene, anche se per un essere umano sarebbe “ovvia”. Questo principio vale per tutte le altre proprietà.

Oltre le tre proprietà classiche
Transitività, simmetria e riflessività sono solo l’inizio. Le ontologie permettono di descrivere con grande precisione il comportamento delle relazioni.
Alcune relazioni sono asimmetriche: se A è genitore di B, B non può essere genitore di A. Altre sono irriflessive, cioè non possono mai valere tra un’entità e sé stessa, come “essere più grande di”. Esistono anche relazioni antisimmetriche, fondamentali in matematica e nelle gerarchie, dove se A è in relazione con B e B con A, allora A e B coincidono. (Per esempio: A ⊆ B e B ⊆ A allora gli insiemi A e B coincidono. Se due cose si dominano a vicenda, allora sono la stessa cosa.)
A questo si aggiunge la possibilità di dichiarare relazioni inverse. Se esiste “è genitore di”, può esistere formalmente anche “è figlio di”, e il sistema può passare dall’una all’altra senza che entrambe debbano essere scritte manualmente.
Quantità, non solo qualità: la cardinalità
Un altro aspetto cruciale delle ontologie riguarda i vincoli quantitativi. Non basta sapere che una relazione esiste: spesso è necessario sapere quante volte può esistere. Alcune relazioni sono funzionali: una persona può avere un solo codice fiscale. Altre hanno una cardinalità esatta: una persona ha esattamente due genitori biologici. Questi vincoli non sono commenti informali, ma regole logiche che il sistema può verificare e usare per individuare incoerenze.
Qui il grafo smette definitivamente di essere un semplice modello dati e diventa una forma di conoscenza normativa: non descrive solo il mondo, ma dice anche come deve essere.
Composizione delle relazioni e inferenza
Uno dei punti più potenti emersi è quello delle catene di proprietà. Le ontologie permettono di affermare che una sequenza di relazioni implica una nuova relazione. Se “genitore di” composto con “genitore di” implica “nonno di”, il sistema può dedurre automaticamente relazioni che non sono mai state esplicitamente dichiarate.
Schema concettuale:
A — genitore di → B
B — genitore di → C
⇒
A — nonno di → C
Questa capacità di composizione avvicina i grafi di conoscenza alla logica del primo ordine, rendendoli strumenti di ragionamento formale, non semplici strutture di memorizzazione.
Dominio, codominio e coerenza semantica
Le ontologie permettono anche di specificare chi può partecipare a una relazione. Se una relazione ha come dominio “Docente” e come codominio “Materia”, allora ogni volta che vedo quella relazione applicata, posso dedurre automaticamente il tipo delle entità coinvolte. Questo meccanismo consente al sistema di arricchire la conoscenza senza nuove informazioni esterne.
Allo stesso tempo, è possibile dichiarare che alcune relazioni sono disgiunte, cioè logicamente incompatibili. Se due relazioni disgiunte vengono applicate allo stesso modo, il sistema non “sceglie”, ma segnala un’incoerenza. Questo è un punto chiave: i grafi di conoscenza non servono solo a inferire, ma anche a controllare la correttezza logica delle informazioni.
L’assunzione del mondo aperto
Tutto questo avviene sotto un principio fondamentale: l’Open World Assumption. Nei grafi di conoscenza, il fatto che qualcosa non sia noto non significa che sia falso. L’assenza di informazione non autorizza una negazione. Questo distingue radicalmente i grafi di conoscenza dai database tradizionali e spiega perché siano più adatti a rappresentare il sapere umano, che è per definizione incompleto.
I grafi di conoscenza risolvono un problema profondo: permettere alle macchine non solo di conservare dati, ma di manipolare significati. Lo fanno attraverso ontologie che trasformano relazioni in oggetti logici, dotati di proprietà formali, vincoli, composizioni e regole di inferenza. Il risultato è un sistema in cui la conoscenza non è solo scritta, ma ragionata.
In questo senso, un grafo di conoscenza non è un database più moderno, ma una forma di logica applicata: una struttura in cui il sapere diventa eseguibile.
Approfondimento matematico






In sintesi

Il concetto di Open World Assumption
Database e grafi di conoscenza: il ruolo decisivo del modello.
La differenza sostanziale tra un database relazionale e un grafo di conoscenza non risiede semplicemente nella tecnologia o nel linguaggio di query, ma nel ruolo che il modello gioca rispetto alla conoscenza.
In particolare, ciò che distingue profondamente i due approcci è il modo in cui il modello reagisce all’incompletezza, all’evoluzione del dominio e al conflitto tra informazioni.
L’esempio della patente di guida rende questa differenza particolarmente chiara.
Il caso del database relazionale: il modello come assunzione rigida
Consideriamo un database anagrafico tradizionale. Una modellazione tipica potrebbe includere una tabella PERSONE e un’informazione ha_patente rappresentata come valore booleano oppure come riga in una tabella separata.
Questa scelta di schema implica un’assunzione forte, spesso implicita:
per ogni persona esiste (o dovrebbe esistere) un valore corretto e univoco che descrive lo stato della patente.
Se per Mario Rossi non esiste alcuna riga o valore relativo alla patente, il database — per sua natura — non distingue tra:
- “Mario non ha la patente”
- “non sappiamo se Mario ha la patente”
- “il dato non è ancora arrivato”
- “una fonte lo afferma, un’altra lo nega”
Per evitare falsi negativi, lo sviluppatore può arricchire il modello introducendo uno stato esplicito (SÌ / NO) e trattare l’assenza come “sconosciuto”.
Questo funziona, ma è importante notare dove vive questa logica:
- non è il database a sapere che il mondo è incompleto;
- è il programma applicativo che interpreta l’assenza;
- la semantica è affidata a convenzioni esterne allo schema.
Il problema emerge quando il dominio evolve.
Se entra in gioco una seconda fonte che fornisce informazioni discordanti sulla patente di Mario, il database non ha un luogo naturale dove rappresentare il conflitto.
A meno di modificare lo schema (aggiungendo tabelle, colonne, vincoli, metadati), una delle due informazioni verrà:
- sovrascritta,
- scartata,
- o forzata in una sintesi prematura.
In questo senso, nel database:
il modello è una trappola epistemica:
se il mondo è più ricco di quanto previsto, l’informazione in eccesso viene persa.
Il caso del grafo di conoscenza: il modello come parte del sapere
Nel grafo di conoscenza, la situazione è radicalmente diversa.
Qui vale l’Open World Assumption: l’assenza di una relazione non significa falsità, ma semplicemente mancanza di conoscenza.
Se nel grafo non esiste alcuna affermazione sul fatto che Mario Rossi abbia la patente, il sistema non conclude nulla. Rimane in uno stato epistemico di sospensione del giudizio.
Quando arrivano le informazioni, esse non devono essere forzate in un valore unico.
Il grafo può rappresentare affermazioni come:
- “Secondo la Fonte A, Mario ha la patente”
- “Secondo la Fonte B, Mario non ha la patente”
Questo è possibile solo perché il modello lo consente: la fonte, il contesto e l’asserzione diventano parte esplicita della conoscenza.
Il conflitto non è un errore da risolvere prima di salvare i dati, ma un fatto da rappresentare.
Ed è qui il punto cruciale che hai colto:
nei grafi è previsto che il modello cambi ed evolva.
Se inizialmente il dominio era semplice (patente sì/no), l’ontologia può crescere per includere:
- la nozione di fonte,
- il tempo dell’asserzione,
- il grado di affidabilità.
Questa evoluzione non invalida i dati precedenti: li arricchisce.
La differenza sostanziale
Nel database:
- il modello è una struttura rigida;
- se il mondo cambia, bisogna cambiarlo manualmente;
- se non lo si cambia, il conflitto viene distrutto o nascosto.
Nel grafo:
- il modello è una componente viva del sistema;
- è normale scoprire che era incompleto;
- il conflitto diventa conoscenza di livello superiore.
Detto in modo sintetico ma preciso:
Nel DB il modello è un’ipotesi sul mondo che, se sbagliata, produce errori.
Nel grafo il modello è una teoria sul mondo che può essere migliorata.
Un database può essere progettato per gestire incertezza e persino simulare un comportamento “open world”, ma lo fa contro la propria natura, delegando tutto alla logica applicativa.
Un grafo di conoscenza, invece, nasce assumendo che il sapere sia:
- incompleto,
- distribuito,
- talvolta contraddittorio.
Per questo, quando il dominio cresce — come nel semplice caso della patente — il grafo non “si rompe”: impara.