Ingegneria della conoscenza
L'ingegneria della conoscenza (in inglese Knowledge Engineering, KE) è una disciplina è una disciplina scientifica e tecnologica, afferente all'intelligenza artificiale (IA) che che si occupa di 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[1][2]. 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[3].
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[4]. 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
[modifica | modifica wikitesto]Il termine è stato coniato da Edward Feigenbaum negli anni '70 del XX secolo durante lo sviluppo dei primi sistemi esperti (come MYCIN e DENDRAL).[1]
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
[modifica | modifica wikitesto]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
[modifica | modifica wikitesto]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)[5].
- 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 consistenza logica della base di conoscenza (assenza di contraddizioni) e validazione dei risultati rispetto alle risposte fornite dagli esperti umani.
Esempio
[modifica | modifica wikitesto]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
[modifica | modifica wikitesto]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[6].
- Methontology: Una delle metodologie più diffuse per la costruzione specifica di ontologie da zero, focalizzata sul ciclo di vita del software.
Applicazioni
[modifica | modifica wikitesto]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[7];
- 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
[modifica | modifica wikitesto]- 1 2 Edward A. Felgenbaum, The art of artificial intelligence: themes and case studies of knowledge engineering, in Proceedings of the 5th international joint conference on Artificial intelligence - Volume 2, Morgan Kaufmann Publishers Inc., 1977, pp. 1014–1029, DOI:10.5555/1622943.1623042.
- ↑ Zhong zhi Shi, Intelligence science: leading the age of intelligence, Elsevier, 2021, ISBN 978-0-323-85380-4.
- ↑ Knowledge Engineering, su sciencedirect.com. URL consultato il 4 luglio 2026.
- ↑ (EN) Niels Peek, Carlo Combi e Roque Marin, Thirty years of artificial intelligence in medicine (AIME) conferences: A review of research themes, in Artificial Intelligence in Medicine, vol. 65, n. 1, 2015-09, pp. 61–73, DOI:10.1016/j.artmed.2015.07.003.
- ↑ Rudi Studer, V. Richard Benjamins e Dieter Fensel, Knowledge engineering: Principles and methods, in Data & Knowledge Engineering, vol. 25, n. 1, 1998, pp. 161–197, DOI:10.1016/S0169-023X(97)00056-6.
- ↑ (EN) Guus Schreiber, Hans Akkermans e Anjo Anjewierden, Knowledge Engineering and Management: The CommonKADS Methodology, The MIT Press, 1999, DOI:10.7551/mitpress/4073.001.0001, ISBN 978-0-262-28323-6.
- ↑ (EN) Natasha Noy, Yuqing Gao e Anshu Jain, Industry-scale knowledge graphs: lessons and challenges, in Communications of the ACM, vol. 62, n. 8, 2019, pp. 36–43, DOI:10.1145/3331166.