Lingegneria della conoscenza (in inglese Knowledge Engineering, KE) è una disciplina scientifico-tecnologica afferente all'intelligenza artificiale (IA) che che si occupa della costruzione, manutenzione e sviluppo di sistemi basati sulla conoscenza (Knowledge-Based Systems, KBS) atti a risolvere problemi complessi che tipicamente richiedono un alto livello di specializzazione. Il suo obiettivo principale è l'estrazione, la formalizzazione, la rappresentazione e l'integrazione della conoscenza umana (spesso specialistica o di dominio) all'interno di sistemi informatici, al fine di abilitare capacità computazionali di ragionamento automatico e risoluzione di problemi complessi.
Tale disciplina è correlata all'ingegneria del software ed è utilizzata in diverse aree dell'informatica quali l'intelligenza artificiale, le basi di dati, il data mining, i sistemi esperti e così via. L'ingegneria della conoscenza è anche correlata alla logica matematica e alle scienze cognitive. A differenza del machine learning classico, che adotta un approccio induttivo basato sui dati, l'ingegneria della conoscenza adotta un approccio deduttivo o guidato dai modelli (knowledge-driven), focalizzandosi sul significato esplicito delle informazioni (semantica).
Storia Il termine è stato coniato da Edward Feigenbaum negli anni '70 del XX secolo durante lo sviluppo dei primi sistemi esperti (come MYCIN e DENDRAL).
Inizialmente, il processo veniva visto come un mero "trasferimento" della conoscenza dalla mente dell'esperto umano al codice software (approccio transfer view). Negli anni '90, a causa del cosiddetto "collo di bottiglia dell'acquisizione della conoscenza" (knowledge acquisition bottleneck), la disciplina si è evoluta verso la costruzione di modelli espliciti e strutturati del dominio (approccio modeling view), formalizzati attraverso metodologie standardizzate come CommonKADS.
Con l'avvento del Web semantico negli anni 2000, l'ingegneria della conoscenza si è fusa con lo studio delle ontologie, portando alla nascita dei moderni Knowledge graph (grafi di conoscenza) utilizzati dai motori di ricerca e dai sistemi industriali contemporanei.
Architettura di un KBS Un tipico Sistema basato sulla conoscenza (Knowledge Based System, KBS) si fonda sulla netta separazione tra la conoscenza esplicita e i meccanismi computazionali che la elaborano. L'architettura standard prevede tre componenti logiche principali:
Base di conoscenza (Knowledge Base, KB): La componente che memorizza i fatti, le regole, le relazioni e i vincoli del dominio d'interesse. Motore di ragionamento (Inference Engine): Il software che applica regole logiche alla base di conoscenza per dedurre nuove informazioni o risolvere problemi (ad es. sistemi a catena in avanti/''forward chaining'' o all'indietro/''backward chaining''). Interfaccia utente e spiegazione: Il modulo che permette l'interazione con l'utente e giustifica il percorso logico seguito dal motore di inferenza (tracciabilità).
Processo di ingegnerizzazione della conoscenza Il ciclo di vita dello sviluppo di una KB è strutturato in diverse fasi standardizzate:
Acquisizione della conoscenza (Knowledge Acquisition): È la fase di raccolta delle informazioni da fonti umane (esperti di dominio) o documentali. Utilizza tecniche come: Interviste strutturate o semi-strutturate. Protocol Analysis (l'esperto "pensa a voce alta" mentre risolve un problema). Text mining ed estrazione automatica da testi (Ontology Learning). Rappresentazione della conoscenza (Knowledge Representation, KR): La conoscenza grezza viene tradotta in un formalismo logico-matematico interpretabile dalla macchina. I principali formalismi includono: Logica dei predicati del primo ordine (FOL): Offre grande espressività ma soffre di problemi di decidibilità computazionale; Logiche descrittive (Description Logics, DL): Sottoinsiemi della FOL che garantiscono la decidibilità, ampiamente usate per definire le ontologie; Regole: Strutture del tipo IF [condizione] THEN [azione/conclusione]; Reti semantiche e frame: Strutture a grafo basate su nodi (concetti) e archi (relazioni). Validazione e Manutenzione: Verifica della correttezza logica della base di conoscenza (assenza di contraddizioni) e validazione dei risultati rispetto alle risposte fornite dagli esperti umani.
Esempio Per comprendere l'applicazione pratica, si consideri la modellazione ontologica di un dominio medico mediante il linguaggio standard W3C OWL, basato sulle Logiche Descrittive.
Vogliamo definire formalmente la classe PazienteARischio come un paziente che soffre di ipertensione ed è anziano (età superiore a 65 anni).
La sintassi formale nella logica descrittiva è:
In sintassi Turtle (W3C), utilizzata comunemente nell'ingegneria della conoscenza per serializzare i dati RDF/OWL, l'esempio si traduce nel seguente codice:
@prefix ex: <http://example.org/medical#> . @prefix owl: <http://www.w3.org/2002/07/owl#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
# Definizione della Classe Complessa ex:PazienteARischio a owl:Class ; owl:equivalentClass [ a owl:Class ; owl:intersectionOf ( ex:Paziente [ a owl:Restriction ; owl:onProperty ex:soffreDi ; owl:someValuesFrom ex:Ipertensione ] [ a owl:Restriction ; owl:onProperty ex:haEta ; owl:someValuesFrom ex:Anziano ] ) ] .
Un motore di ragionamento (ragionatore OWL come HermiT o Pellet) può analizzare questa definizione e classificare automaticamente un individuo specifico (es. ex:Paziente_Mario) come ex:PazienteARischio non appena i dati sulle sue patologie e la sua età vengono inseriti nel sistema.
Metodologie standard La comunità scientifica ha sviluppato metodologie strutturate per guidare l'ingegnere della conoscenza (Knowledge Engineer):
CommonKADS: La metodologia leader per l'ingegneria della conoscenza manageriale e tecnica. Propone una suite di modelli che analizzano il contesto organizzativo fino alla progettazione del codice software. Methontology: Una delle metodologie più diffuse per la costruzione specifica di ontologie da zero, focalizzata sul ciclo di vita del software.
Applicazioni Oggi l'ingegneria della conoscenza trova applicazione in scenari complessi dove l'accuratezza logica è fondamentale: Sistemi di supporto alle decisioni cliniche (CDSS): integrazione di linee guida mediche formali per la diagnosi e la terapia; Knowledge graph aziendali: utilizzati da grandi organizzazioni per interconnettere silos di dati eterogenei e abilitare ricerche semantiche avanzate; Integrazione con i modelli linguistici di grandi dimensioni (LLM): architetture ibride (come la Retrieval-Augmented Generation, RAG) che usano i grafi di conoscenza per ancorare i modelli generativi a fatti verificati, riducendo le allucinazioni.
Note
Voci correlate Logica matematica Ontologia (informatica) Scienze cognitive
Categoria:Conoscenza Categoria:Intelligenza artificiale